diff --git a/Generator.hs b/Generator.hs
deleted file mode 100644
--- a/Generator.hs
+++ /dev/null
@@ -1,603 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
-{-# LANGUAGE PatternGuards #-}
------------------------------------------------------------------------------
--- |
--- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
--- License     :  BSD-style (see the file LICENSE)
--- Maintainer  :  Edward Kmett <ekmett@gmail.com>
--- Stability   :  experimental
--- Portability :  portable
---
-----------------------------------------------------------------------------
-module Generator (generateSource) where
-
-import Control.Arrow
-import Control.Monad
-import Control.Monad.Trans.State
-import Data.Char
-import qualified Data.Foldable as Foldable
-import Data.Functor
-import Data.List
-import qualified Data.Map as Map
-import Data.Map (Map)
-import qualified Data.Set as Set
-import Data.Set (Set)
-import Text.Printf
-import Module
-import Registry
-import Utils
-import Prelude
-
-data Entry
-  = F String
-  | E String
-  deriving (Eq, Ord, Show)
-
-type Signature = String
-type Name = String
-type ModuleName = String
-type SectionName = String
-type ExtensionName = String
-type ExportItem = String
-
-data Category = C SectionName (Set ExportItem)
-  deriving (Eq, Ord, Show)
-
-saneEnum :: Name -> Name
-saneEnum = ("GL_"++) . intercalate "_" . tail . splitOn "_"
-
-saneModule :: Name -> Name
-saneModule "422Pixels" = "FourTwoTwoPixels"
-saneModule x = x
-
-sanePrefix :: Name -> Name
-sanePrefix "3DFX" = "ThreeDFX"
-sanePrefix x = x
-
-wrap :: Int -> Maybe String -> String -> String
-wrap 0 _ s = s
-wrap c w'@(Just w) s
-  | any isSpace s = wrap (c-1) w' $ printf "%s (%s)" w s
-  | otherwise = wrap (c-1) w' $ printf "%s %s" w s
-wrap _ Nothing s = s
-
-link :: Map Name Category -> Name -> String
-link cs n = case Map.lookup n cs of
-  Just (C _ ss) -> case compare (Set.size ss) 1 of
-    GT -> "'Graphics.GL.Internal.Shared." ++ n ++ "'"
-    EQ -> "'" ++ Set.findMin ss ++ "." ++ n ++ "'"
-    LT -> "@" ++ n ++ "@"
-  _ -> "@" ++ n ++ "@"
-
-commandDescription :: Map String [String] -> Map Name Category -> Command -> Set String -> String
-commandDescription fm cs (Command cmdName _cmdType cmdParameters vecEquiv alias) man = concat $
-  [ "-- | Usage: @" ++ unwords (("'" ++ cmdName ++ "'") : map parameterName cmdParameters) ++ "@\n" ] ++
-  [ case Map.lookup grp fm of
-      Just xs -> printf "--\n-- The parameter @%s@ is a @%s@, one of: %s.\n"
-         (parameterName param) grp $ intercalate ", " (map (link cs) xs)
-      Nothing -> printf "--\n-- The parameter @%s@ is a @%s@.\n" (parameterName param) grp
-  | param <- cmdParameters, Just grp <- [parameterGroup param] 
-  ] ++
-  [ "--\n-- The length of @" ++ parameterName param ++ "@ should be " ++ describeLength x ++ ".\n"
-  | param <- cmdParameters, Just x <- [parameterLen param]
-  ] ++
-  [ "--\n-- This command is an alias for " ++ link cs a ++ ".\n" | Just a <- [alias] ] ++
-  [ "--\n-- The vector equivalent of this command is " ++ link cs v ++ ".\n" | Just v <- [vecEquiv] ] ++
-  [ "--\n-- Manual page: <https://www.opengl.org/sdk/docs/man/html/" ++ cmdName ++ ".xhtml>\n" | Set.member cmdName man ]
-  where
-    describeLength x = "@" ++ x ++ "@"
-
-commandSignature :: Maybe Name -> Command -> Signature
-commandSignature monad command =
-  intercalate " -> " $ parameterSignature (commandParameters command) ++ [returnSignature $ commandType command]
-  where
-    parameterSignature :: [Parameter] -> [String]
-    parameterSignature = map (typeSignature . parameterType)
-
-    returnSignature :: Type -> String
-    returnSignature t = wrap 1 monad . wrap (typePointer t) (Just "Ptr") $
-      case typeName t of
-        Nothing -> "()"
-        Just "GLvoid" -> "()"
-        Just x -> x
-
-    typeSignature :: Type -> String
-    typeSignature t = wrap (typePointer t) (Just "Ptr") $
-      case typeName t of
-        Nothing -> "()"
-        Just "GLvoid" -> "()"
-        Just "struct _cl_context" -> "()"
-        Just "struct _cl_event" -> "()"
-        Just x -> x
-
-commonName :: Signature -> Name
-commonName
-  = concat
-  . splitOn "GL"
-  . concatMap (filter isAlphaNum . replace "()" "V")
-  . splitOn " -> "
-  . ioish
-
-dynamicName :: Signature -> Name
-dynamicName xs = "dyn" ++ commonName xs
-
-invokerName :: Signature -> Name
-invokerName xs = "ffi" ++ commonName xs
-
-extensionModuleName :: ExtensionName -> ModuleName
-extensionModuleName name =
-  printf "Graphics.GL.Ext.%s.%s"
-    (sanePrefix prefix) (saneModule $ camelCase (intercalate "_" rest))
-  where
-    (_:prefix:rest) = splitOn "_" name
-
-    camelCase :: String -> String
-    camelCase str = concatMap (\(x:xs) -> toUpper x : xs) $ splitOn "_" str
-
-profileModuleName :: String -> String -> (ModuleName, Maybe ModuleName)
-profileModuleName feature profile =
-  (printf "Graphics.GL.%s" *** liftM (printf "Graphics.GL.%s")) submodule
-  where
-    submodule = case (feature, profile) of
-      ("GL_VERSION_1_0", _) -> ("Standard10", Nothing)
-      ("GL_VERSION_1_1", _) -> ("Standard11", Nothing)
-      ("GL_VERSION_1_2", _) -> ("Standard12", Nothing)
-      ("GL_VERSION_1_3", _) -> ("Standard13", Nothing)
-      ("GL_VERSION_1_4", _) -> ("Standard14", Nothing)
-      ("GL_VERSION_1_5", _) -> ("Standard15", Nothing)
-      ("GL_VERSION_2_0", _) -> ("Standard20", Nothing)
-      ("GL_VERSION_2_1", _) -> ("Standard21", Nothing)
-      ("GL_VERSION_3_0", _) -> ("Standard30", Nothing)
-      ("GL_VERSION_3_1", _) -> ("Standard31", Nothing)
-
-      ("GL_VERSION_3_2", "core") -> ("Core32", Just "Compatibility32")
-      ("GL_VERSION_3_2", "compatibility") -> ("Compatibility32", Nothing)
-      ("GL_VERSION_3_2", _) -> ("Core32", Nothing)
-
-      ("GL_VERSION_3_3", "core") -> ("Core33", Just "Compatibility33")
-      ("GL_VERSION_3_3", "compatibility") -> ("Compatibility33", Nothing)
-      ("GL_VERSION_3_3", _) -> ("Core33", Nothing)
-
-      ("GL_VERSION_4_0", "core") -> ("Core40", Just "Compatibility40")
-      ("GL_VERSION_4_0", "compatibility") -> ("Compatibility40", Nothing)
-      ("GL_VERSION_4_0", _) -> ("Core40", Nothing)
-
-      ("GL_VERSION_4_1", "core") -> ("Core41", Just "Compatibility41")
-      ("GL_VERSION_4_1", "compatibility") -> ("Compatibility41", Nothing)
-      ("GL_VERSION_4_1", _) -> ("Core41", Nothing)
-
-      ("GL_VERSION_4_2", "core") -> ("Core42", Just "Compatibility42")
-      ("GL_VERSION_4_2", "compatibility") -> ("Compatibility42", Nothing)
-      ("GL_VERSION_4_2", _) -> ("Core42", Nothing)
-
-      ("GL_VERSION_4_3", "core") -> ("Core43", Just "Compatibility43")
-      ("GL_VERSION_4_3", "compatibility") -> ("Compatibility43", Nothing)
-      ("GL_VERSION_4_3", _) -> ("Core43", Nothing)
-
-      ("GL_VERSION_4_4", "core") -> ("Core44", Just "Compatibility44")
-      ("GL_VERSION_4_4", "compatibility") -> ("Compatibility44", Nothing)
-      ("GL_VERSION_4_4", _) -> ("Core44", Nothing)
-
-      ("GL_VERSION_4_5", "core") -> ("Core45", Just "Compatibility45")
-      ("GL_VERSION_4_5", "compatibility") -> ("Compatibility45", Nothing)
-      ("GL_VERSION_4_5", _) -> ("Core45", Nothing)
-
-      ("GL_VERSION_ES_CM_1_0", "common") -> ("EmbeddedCommon11", Nothing)
-      ("GL_VERSION_ES_CM_1_0", _) -> ("EmbeddedLite11", Nothing)
-
-      ("GL_ES_VERSION_2_0", _) -> ("Embedded20", Nothing)
-      ("GL_ES_VERSION_3_0", _) -> ("Embedded30", Nothing)
-      ("GL_ES_VERSION_3_1", _) -> ("Embedded31", Nothing)
-      ("GL_ES_VERSION_3_2", _) -> ("Embedded32", Nothing)
-
-      ("GL_SC_VERSION_2_0", _) -> ("SafetyCritical20", Nothing)
-
-      a -> error $ show a
-
-implicitPrelude :: String -> ([String], [Body])
-implicitPrelude m = case m of
-  "Graphics.GL.Compatibility32" -> mk [
-      "Graphics.GL.Core32"
-    ]
-  "Graphics.GL.Compatibility33" -> mk [
-      "Graphics.GL.Compatibility32"
-    , "Graphics.GL.Core33"
-    ]
-  "Graphics.GL.Compatibility40" -> mk [
-      "Graphics.GL.Compatibility33"
-    , "Graphics.GL.Core40"
-    ]
-  "Graphics.GL.Compatibility41" -> mk [
-      "Graphics.GL.Compatibility40"
-    , "Graphics.GL.Core41"
-    ]
-  "Graphics.GL.Compatibility42" -> mk [
-      "Graphics.GL.Compatibility41"
-    , "Graphics.GL.Core42"
-    ]
-  "Graphics.GL.Compatibility43" -> mk [
-      "Graphics.GL.Compatibility42"
-    , "Graphics.GL.Core43"
-    ]
-  "Graphics.GL.Compatibility44" -> mk [
-      "Graphics.GL.Compatibility43"
-    , "Graphics.GL.Core44"
-    ]
-  "Graphics.GL.Compatibility45" -> mk [
-      "Graphics.GL.Compatibility44"
-    , "Graphics.GL.Core45"
-    ]
-  "Graphics.GL.Core33" -> mk [
-      "Graphics.GL.Core32"
-    ]
-  "Graphics.GL.Core40" -> mk [
-      "Graphics.GL.Core33"
-    ]
-  "Graphics.GL.Core41" -> mk [
-      "Graphics.GL.Core40"
-    ]
-  "Graphics.GL.Core42" -> mk [
-      "Graphics.GL.Core41"
-    ]
-  "Graphics.GL.Core43" -> mk [
-      "Graphics.GL.Core42"
-    ]
-  "Graphics.GL.Core44" -> mk [
-      "Graphics.GL.Core43"
-    ]
-  "Graphics.GL.Core45" -> mk [
-      "Graphics.GL.Core44"
-    ]
-  "Graphics.GL.EmbeddedCommon11" -> mk [
-      "Graphics.GL.EmbeddedLite11"
-    ]
-  "Graphics.GL.Embedded30" -> mk [
-      "Graphics.GL.Embedded20"
-    ]
-  "Graphics.GL.Embedded31" -> mk [
-      "Graphics.GL.Embedded30"
-    ]
-  "Graphics.GL.Embedded32" -> mk [
-      "Graphics.GL.Embedded31"
-    ]
-  "Graphics.GL.Standard11" -> mk [
-      "Graphics.GL.Standard10"
-    ]
-  "Graphics.GL.Standard12" -> mk [
-      "Graphics.GL.Standard11"
-    ]
-  "Graphics.GL.Standard13" -> mk [
-      "Graphics.GL.Standard12"
-    ]
-  "Graphics.GL.Standard14" -> mk [
-      "Graphics.GL.Standard13"
-    ]
-  "Graphics.GL.Standard15" -> mk [
-      "Graphics.GL.Standard14"
-    ]
-  "Graphics.GL.Standard20" -> mk [
-      "Graphics.GL.Standard15"
-    ]
-  "Graphics.GL.Standard21" -> mk [
-      "Graphics.GL.Standard20"
-    ]
-  "Graphics.GL.Standard30" -> mk [
-      "Graphics.GL.Standard21"
-    ]
-  "Graphics.GL.Standard31" -> mk [
-      "Graphics.GL.Standard30"
-    ]
-  "Graphics.GL.Ext.ANDROID.ExtensionPackEs31a" -> mk [
-      "Graphics.GL.Ext.KHR.Debug"
-    , "Graphics.GL.Ext.KHR.TextureCompressionAstcLdr"
-    , "Graphics.GL.Ext.KHR.BlendEquationAdvanced"
-    , "Graphics.GL.Ext.OES.SampleShading"
-    , "Graphics.GL.Ext.OES.SampleVariables"
-    , "Graphics.GL.Ext.OES.ShaderImageAtomic"
-    , "Graphics.GL.Ext.OES.ShaderMultisampleInterpolation"
-    , "Graphics.GL.Ext.OES.TextureStencil8"
-    , "Graphics.GL.Ext.OES.TextureStorageMultisample2dArray"
-    , "Graphics.GL.Ext.EXT.CopyImage"
-    , "Graphics.GL.Ext.EXT.DrawBuffersIndexed"
-    , "Graphics.GL.Ext.EXT.GeometryShader"
-    , "Graphics.GL.Ext.EXT.GpuShader5"
-    , "Graphics.GL.Ext.EXT.PrimitiveBoundingBox"
-    , "Graphics.GL.Ext.EXT.ShaderIoBlocks"
-    , "Graphics.GL.Ext.EXT.TessellationShader"
-    , "Graphics.GL.Ext.EXT.TextureBorderClamp"
-    , "Graphics.GL.Ext.EXT.TextureBuffer"
-    , "Graphics.GL.Ext.EXT.TextureCubeMapArray"
-    , "Graphics.GL.Ext.EXT.TextureSRGBDecode"
-    ]
-  _ -> ([], [])
-  where
-    mk names = (map ("module "++) names, [Import names])
-
-requires :: String -> Require -> State (Map Entry Category) ()
-requires name req = do
-  forM_ (requireEnums req) $ \e ->
-    modify $ Map.adjust (\(C v m) -> C v $ Set.insert name m) (E $ saneEnum e)
-
-  forM_ (requireCommands req) $ \f ->
-    modify $ Map.adjust (\(C v m) -> C v $ Set.insert name m) (F f)
-
-entries :: Registry -> State (Map Entry Category) ()
-entries registry = do
-  forM_ (registryCommands registry) $ \f ->
-    modify $ Map.insert
-      (F $ commandName f)
-      (C (commandSignature (Just "m") f) Set.empty)
-
-  forM_ (registryEnums registry) $ \e ->
-    modify $ Map.insert
-      (E . saneEnum $ enumName e)
-      (C (enumValue e) Set.empty)
-
-  forM_ (registryExtensions registry) $ \ext ->
-    forM_ (extensionRequires ext) $ \req ->
-      requires (extensionModuleName $ extensionName ext) req
-
-  forM_ (registryFeatures registry) $ \fe -> do
-    let feature = featureName fe
-
-    forM_ (featureRequires fe) $ \req -> do
-      let name = fst . profileModuleName feature $ requireProfile req
-      requires name req
-
-      when ("Graphics.GL.Standard" `isPrefixOf` name) $
-        requires "Graphics.GL.Core32" req
-
-    forM_ (featureRemoves fe) $ \rm -> do
-      let profile = removeProfile rm
-      let (name, removeName) = profileModuleName feature profile
-
-      forM_ (removeEnums rm) $ \e -> do
-        modify $ Map.adjust
-          (\(C v m) -> C v $ Set.delete name m)
-          (E $ saneEnum e)
-
-        case removeName of
-          Just name' -> modify $ Map.adjust
-            (\(C v m) -> C v $ Set.insert name' m) (E $ saneEnum e)
-          Nothing -> return ()
-
-      forM_ (removeCommands rm) $ \f -> do
-        modify $ Map.adjust
-          (\(C v m) -> C v $ Set.delete name m)
-          (F f)
-
-        case removeName of
-          Just name' -> modify $ Map.adjust
-            (\(C v m) -> C v $ Set.insert name' m) (F f)
-          Nothing -> return ()
-
-modules :: Registry
-        -> Map Entry Category
-        -> State (Map String [(Bool, Entry, String)]) ()
-modules registry entr = do
-  forM_ (registryExtensions registry) $ \ext ->
-    modify $ Map.insert (extensionModuleName $ extensionName ext) []
-
-  forM_ profiles $ \profile ->
-    modify $ Map.insert (printf "Graphics.GL.%s" profile) []
-
-  forM_ (Map.toList entr) $ \(k, C v ms) ->
-    forM_ (Set.toList ms) $ \m ->
-      modify $ Map.alter (f (Set.size ms > 1, k, v)) m
-  where
-    f r Nothing = Just [r]
-    f r (Just a) = Just $ a ++ [r]
-
-    profiles = [
-        "Compatibility32"
-      , "Compatibility33"
-      , "Compatibility40"
-      , "Compatibility41"
-      , "Compatibility42"
-      , "Compatibility43"
-      , "Compatibility44"
-      , "Compatibility45"
-      , "Core32"
-      , "Core33"
-      , "Core40"
-      , "Core41"
-      , "Core42"
-      , "Core43"
-      , "Core44"
-      , "Core45"
-      , "EmbeddedCommon11"
-      , "EmbeddedLite11"
-      , "Embedded20"
-      , "Embedded30"
-      , "Embedded31"
-      , "Embedded32"
-      , "SafetyCritical20"
-      , "Standard10"
-      , "Standard11"
-      , "Standard12"
-      , "Standard13"
-      , "Standard14"
-      , "Standard15"
-      , "Standard20"
-      , "Standard21"
-      , "Standard30"
-      , "Standard31"
-      ]
-
-data FunMap = FunMap
-  { funSignatures   :: Map Name Signature           -- signatures by method name
-  , funDescriptions :: Map Name String              -- descriptions by method name
-  , funExtensions   :: Map ModuleName ExtensionName -- module name to extension name
-  } deriving (Eq, Show)
-
-ioish :: Signature -> Signature
-ioish = replace "m (" "IO (" . replace "m GL" "IO GL"
-
-funMap :: Registry -> Map Name Category -> [(Bool, Entry, String)] -> [String] -> FunMap
-funMap registry cs es man = FunMap
-  (Map.fromList [ (n, s) | (_, F n, s) <- es ])
-  (Map.fromList [ (commandName cmd, commandDescription rgs cs cmd manset) | cmd <- registryCommands registry ])
-  (Map.fromList $ map ((extensionModuleName&&&id).extensionName) $ registryExtensions registry)
-  where rgs = Map.fromList [ (n, s) | Group n s <- registryGroups registry ]
-        manset = Set.fromList man
-
-funBody :: FunMap -> Name -> Signature -> [Body]
-funBody fm n v =
-  [ Code $ funDescriptions fm Map.! n
-  , Function n ("MonadIO m => " ++ v) $ strip $ printf "= %s %s" (invokerName v) np
-  , Function np ("FunPtr (" ++ v' ++ ")") $ strip $ printf "= unsafePerformIO (getProcAddress %s)" (show n)
-  , Code $ printf "{-# NOINLINE %s #-}" np
-  ] where
-  np = n ++ "FunPtr"
-  v' = ioish v
-
-mkFFI :: FunMap -> Module
-mkFFI fm = Module "Graphics.GL.Internal.FFI" export body where
-  export = [ Section "Invokers" (nub $ invokerName <$> Foldable.toList (funSignatures fm)) ]
-  body = Import
-    [ "Control.Monad.IO.Class"
-    , "Foreign.C.Types"
-    , "Foreign.Ptr"
-    , "Graphics.GL.Types"
-    , "Numeric.Fixed"
-    , "Numeric.Half"
-    ] : nub (Foldable.concatMap invokers $ funSignatures fm)
-
-invokers :: Signature -> [Body]
-invokers v =
-  [ Code $ printf "foreign import CALLCONV \"dynamic\" %s :: FunPtr (%s) -> %s" nd v' v'
-  , Function ni (printf "MonadIO m => FunPtr (%s) -> %s" v' v) $
-      printf "fp %s = liftIO (%s fp %s)" params nd params
-  ] where
-  parts = splitOn " -> " v
-  numArgs = subtract 2 $ length parts
-  params = unwords $ map (\x -> "v" ++ show x) [0..numArgs]
-  v' = ioish v
-  nd = dynamicName v
-  ni = invokerName v
-
-mkShared :: FunMap -> [(Bool, Entry, String)] -> Module
-mkShared fm entr = Module "Graphics.GL.Internal.Shared" [] body
-  where
-    imp =
-      [ Import
-        [ "Control.Monad.IO.Class"
-        , "Foreign.Ptr"
-        , "Graphics.GL.Types"
-        , "Graphics.GL.Internal.FFI"
-        , "Graphics.GL.Internal.Proc"
-        , "System.IO.Unsafe"
-        ]
-      ]
-
-    body = imp ++ concatMap bodyF (nub entr)
-    bodyF (False, _, _) = []
-    bodyF (_, E n, v) = [Pattern n Nothing ("= " ++ v)]
-    bodyF (_, F n, v) = funBody fm n v
-
-mkModule :: FunMap -> Map String String -> String -> [(Bool, Entry, String)] -> Module
-mkModule fm re m entr = Module m export body
-  where
-    entryName (E n) = "pattern " ++ n
-    entryName (F n) = n
-
-    (ie, ib) = implicitPrelude m
-    hasUnsharedFunctions = any (\(s, e, _) -> not s && case e of F _ -> True; _ -> False) entr
-    hasExt = Map.member m (funExtensions fm)
-
-    export = case Map.lookup m (funExtensions fm) of
-      Just en ->
-        [ Section "Extension Support"
-          [ "gl_" ++ (intercalate "_" . tail $ splitOn "_" en)
-          ]
-        , Section en $ ie ++ map (\(_, e, _) -> entryName e) entr
-        ]
-      Nothing ->
-        [ Section m $ ie ++ map (\(_, e, _) -> entryName e) entr
-        ]
-
-    needsTypes (True, _, _) = False
-    needsTypes (_ , E _, _) = False
-    needsTypes (_ , F _, t) = "GL" `isInfixOf` t
-
-    body =
-      [ Import $ sort $ concat
-        [ [ "Graphics.GL.Internal.Shared" | any (\(s, _, _) -> s) entr ]
-        , [ "Graphics.GL.Internal.Proc"   | hasExt || hasUnsharedFunctions ]
-        , [ "Graphics.GL.Types"           | any needsTypes entr ]
-        , [ "Data.Set"                        | hasExt ]
-        , guard hasUnsharedFunctions >>
-          [ "Control.Monad.IO.Class"
-          , "Foreign.Ptr"
-          , "Graphics.GL.Internal.FFI"
-          , "System.IO.Unsafe"
-          ]
-        ]
-      ] ++
-      ib ++
-      extCheck ++
-      concatMap bodyF entr
-
-    tryLink en = case Map.lookup en re of
-      Just uri -> "<" ++ uri ++ " " ++ en ++ ">"
-      Nothing -> en
-
-    extCheck = case Map.lookup m (funExtensions fm) of
-      Just en 
-        | parts@(_:_) <- tail (splitOn "_" en) ->
-          [ Code $ "-- | Checks that the " ++ tryLink en ++ " extension is available."
-          , Function ("gl_" ++ intercalate "_" parts) "Bool"
-            (printf "= member %s extensions\n{-# NOINLINE %s #-}"
-              (show en)
-              ("gl_" ++ intercalate "_" parts))
-          ]
-        | otherwise -> error $ "malformed extension: " ++ en
-      Nothing -> []
-
-    bodyF (True, _, _) = []
-    bodyF (_, E n, v) = [Pattern n Nothing ("= " ++ v)]
-    bodyF (_, F n, v) = funBody fm n v
-
-mkExtensionGather :: FunMap -> [Module]
-mkExtensionGather fm = flip map extensionGroups $
-  \x -> Module (printf "Graphics.GL.Ext.%s" $ sanePrefix x)
-    [Section (printf "%s Extensions" x) $ map ("module "++) $ extInGroup x]
-    [Import $ extInGroup x]
-  where
-  extInGroup grp
-    = map fst
-    . sort
-    . filter (\x -> grp == (head . tail . splitOn "_" $ snd x))
-    . Map.toList
-    $ funExtensions fm
-
-  extensionGroups
-    = sort
-    . nub
-    . map (head . tail . splitOn "_" . snd)
-    . Map.toList
-    $ funExtensions fm
-
-mkExtensionGroupGather :: [Module] -> Module
-mkExtensionGroupGather ms = Module "Graphics.GL.Ext"
-  [Section "Extensions" $ map (("module "++) . moduleName) ms]
-  [Import $ map moduleName ms]
-
-generateSource :: FilePath -> Registry -> [String] -> [(String, String)] -> IO ()
-generateSource fp registry man extensions = do
-  let s = execState (entries registry) Map.empty
-  let m = execState (modules registry s) Map.empty
-  let re = Map.fromList extensions
-  let fm' = Foldable.concat m
-  let s' = Map.fromList $ first entryName <$> Map.toList s
-  let fm = funMap registry s' fm' man
-  saveModule fp $ mkFFI fm
-  saveModule fp $ mkShared fm fm'
-  forM_ (Map.toList m) $ \(k,v) -> saveModule fp $ mkModule fm re k v
-  let exts = mkExtensionGather fm
-  forM_ exts $ saveModule fp
-  saveModule fp $ mkExtensionGroupGather exts
-  where
-    entryName :: Entry -> String
-    entryName (F s) = s
-    entryName (E s) = s
diff --git a/Module.hs b/Module.hs
deleted file mode 100644
--- a/Module.hs
+++ /dev/null
@@ -1,95 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
------------------------------------------------------------------------------
--- |
--- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
--- License     :  BSD-style (see the file LICENSE)
--- Maintainer  :  Edward Kmett <ekmett@gmail.com>
--- Stability   :  experimental
--- Portability :  portable
---
-----------------------------------------------------------------------------
-module Module
-  ( Module(..)
-  , Export(..)
-  , Body(..)
-  , renderModule
-  , saveModule
-  ) where
-
-import Data.List
-import System.Directory
-import System.FilePath
-import Text.Printf
-import Utils
-
-data Module = Module
-  { moduleName :: String
-  , moduleExport :: [Export]
-  , moduleBody :: [Body]
-  } deriving (Eq, Show)
-
-data Export
-  = Section
-    { sectionHeading :: String
-    , sectionExport :: [String]
-    }
-  | Subsection
-    { sectionHeading :: String
-    , sectionExport :: [String]
-    } deriving (Eq, Show)
-
-data Body
-  = Import [String]
-  | Function String String String
-  | Pattern String (Maybe String) String
-  | Code String
-  deriving (Eq, Show)
-
-renderModule :: Module -> String
-renderModule m =
-  printf 
-    ("-- This file was automatically generated.\n" ++
-    "{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}\n" ++
-    "module %s%s where\n\n%s")
-     (moduleName m) (renderExports $ moduleExport m) (intercalate "\n\n" . map renderBody $ moduleBody m)
-
-
-renderExports :: [Export] -> String
-renderExports [] = ""
-renderExports exports =
-    printf " (\n%s)"
-  . intercalate "\n"
-  . zipWith renderExport (True : repeat False)
-  $ filter nonEmpty exports
-  where
-    renderExport :: Bool -> Export -> String
-    renderExport first (Section heading export) =
-      printf "  -- * %s\n  %s %s"
-        heading
-        (if first then " " else ",")
-        ((++"\n") . intercalate "\n  , " $ export)
-    renderExport first (Subsection heading export) =
-      printf "  -- ** %s\n  %s %s"
-        heading
-        (if first then " " else ",")
-        ((++"\n") . intercalate "\n  , " $ export)
-    nonEmpty :: Export -> Bool
-    nonEmpty (Section _ []) = False
-    nonEmpty (Subsection _ []) = False
-    nonEmpty _ = True
-
-renderBody :: Body -> String
-renderBody body = case body of
-  Import m -> intercalate "\n" $ map (printf "import %s") m
-  Function name signature b -> printf "%s :: %s\n%s %s" name signature name b
-  Pattern name (Just signature) b -> printf "pattern %s %s :: %s" name b signature
-  Pattern name Nothing b -> printf "pattern %s %s" name b
-  Code code -> code
-
-saveModule :: FilePath -> Module -> IO ()
-saveModule fp m = do
-  createDirectoryIfMissing True folderPath
-  writeFile filePath $ renderModule m
-  where
-    filePath = fp </> replace "." [pathSeparator] (moduleName m) <.> "hs"
-    folderPath = intercalate [pathSeparator] . init $ splitOn [pathSeparator] filePath
diff --git a/Parser.hs b/Parser.hs
deleted file mode 100644
--- a/Parser.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE Arrows #-}
-{-# OPTIONS_GHC -Wall #-}
------------------------------------------------------------------------------
--- |
--- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
--- License     :  BSD-style (see the file LICENSE)
--- Maintainer  :  Edward Kmett <ekmett@gmail.com>
--- Stability   :  experimental
--- Portability :  portable
---
-----------------------------------------------------------------------------
-module Parser
-  ( parseFile
-  ) where
-
-import Registry
-import Text.XML.HXT.Core
-
-#ifdef HLINT
-{-# ANN module "HLint: ignore Reduce duplication" #-}
-#endif
-
-to :: ArrowXml a => String -> a XmlTree XmlTree
-to name = hasName name <<< isElem <<< getChildren
-
-perhaps :: ArrowIf a => a b c -> a b (Maybe c)
-perhaps x = (arr Just <<< x) `orElse` constA Nothing
-
-parseCommand :: ArrowXml a => a XmlTree Command
-parseCommand = proc x -> do
-  command <- to "command" -< x
-  name <- getText <<< getChildren <<< to "name" <<< to "proto" -< command
-  typ <- parseType <<< to "proto" -< command
-  params <- listA parseParameter -< command
-  veceq   <- perhaps (getAttrValue0 "name" <<< to "vecequiv") -< command
-  alias   <- perhaps (getAttrValue0 "name" <<< to "alias") -< command
-  returnA -< Command name typ params veceq alias
-
-parseParameter :: ArrowXml a => a XmlTree Parameter
-parseParameter = proc x -> do
-  param <- to "param" -< x
-  typ   <- parseType -< param
-  name  <- getText <<< getChildren <<< to "name" -< param
-  grp   <- perhaps (getAttrValue0 "group") -< param
-  len   <- perhaps (getAttrValue0 "len") -< param
-  returnA -< Parameter name typ grp len
-
-parseEnum :: ArrowXml a => a XmlTree Enumeratee
-parseEnum = proc x -> do
-  enum <- to "enum" -< x
-  name <- getAttrValue0 "name" -< enum
-  value <- getAttrValue0 "value" -< enum
-  returnA -< Enumeratee name value
-
-parseExtension :: ArrowXml a => a XmlTree Extension
-parseExtension = proc x -> do
-  extension <- to "extension" -< x
-  name <- getAttrValue0 "name" -< extension
-  supported <- getAttrValue "supported" -< extension
-  require <- listA $ parseRequire <<< to "require" -< extension
-  returnA -< Extension name supported require
-
-parseFeature :: ArrowXml a => a XmlTree Feature
-parseFeature = proc x -> do
-  name <- getAttrValue0 "name" -< x
-  require <- listA $ parseRequire <<< to "require" -< x
-  remove <- listA $ parseRemove <<< to "remove" -< x
-  returnA -< Feature name require remove
-
-parseGroup :: ArrowXml a => a XmlTree Group
-parseGroup = proc x -> do
-  group <- to "group" -< x
-  name <- getAttrValue0 "name" -< group
-  enum <- listA $ getAttrValue0 "name" <<< to "enum" -< group
-  returnA -< Group name enum
-
-parseRemove :: ArrowXml a => a XmlTree Remove
-parseRemove = proc x -> do
-  profile <- getAttrValue "profile" -< x
-  comment <- getAttrValue "comment" -< x
-  enums <- listA $ getAttrValue0 "name" <<< to "enum" -< x
-  commands <- listA $ getAttrValue0 "name" <<< to "command" -< x
-  returnA -< Remove profile comment enums commands
-
-parseRequire :: ArrowXml a => a XmlTree Require
-parseRequire = proc x -> do
-  comment <- getAttrValue "comment" -< x
-  enums <- listA $ getAttrValue0 "name" <<< to "enum" -< x
-  commands <- listA $ getAttrValue0 "name" <<< to "command" -< x
-  profile <- getAttrValue "profile" -< x
-  returnA -< Require enums commands comment profile
-
-parseType :: ArrowXml a => a XmlTree Type
-parseType = proc x -> do
-  ptype <- perhaps $ getText <<< getChildren <<< to "ptype" -< x
-  pointer <- (getText <<< getChildren) >. length . filter (== '*') . concat -< x
-  returnA -< Type
-    { typeName = ptype
-    , typePointer = pointer
-    }
-
-parse :: IOSLA (XIOState ()) XmlTree Registry
-parse = proc x -> do
-  registry <- to "registry" -< x
-  groups <- listA $ parseGroup <<< to "groups" -< registry
-  enums <- listA $ parseEnum <<< to "enums" -< registry
-  extensions <- listA $ parseExtension <<< to "extensions" -< registry
-  commands <- listA $ parseCommand <<< to "commands" -< registry
-  features <- listA $ parseFeature <<< to "feature" -< registry
-  returnA -< Registry
-    { registryCommands = commands
-    , registryEnums = enums
-    , registryExtensions = extensions
-    , registryFeatures = features
-    , registryGroups = groups
-    }
-
-parseFile :: String -> IO Registry
-parseFile file = return . head =<< runX (readDocument [withRemoveWS yes] file >>> parse)
diff --git a/Registry.hs b/Registry.hs
deleted file mode 100644
--- a/Registry.hs
+++ /dev/null
@@ -1,200 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
------------------------------------------------------------------------------
--- |
--- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
--- License     :  BSD-style (see the file LICENSE)
--- Maintainer  :  Edward Kmett <ekmett@gmail.com>
--- Stability   :  experimental
--- Portability :  portable
---
-----------------------------------------------------------------------------
-module Registry
-  ( Registry(..)
-  , Command(..)
-  , Parameter(..)
-  , Enumeratee(..)
-  , Extension(..)
-  , Feature(..)
-  , Group(..)
-  , Remove(..)
-  , Require(..)
-  , Type(..)
-  , lookupCommand
-  , lookupEnum
-  , deshenaniganize
-  ) where
-
-import Data.Functor
-import Prelude
-
-data Registry = Registry
-  { registryCommands :: [Command]
-  , registryEnums :: [Enumeratee]
-  , registryExtensions :: [Extension]
-  , registryFeatures :: [Feature]
-  , registryGroups :: [Group]
-  } deriving (Eq, Show)
-
-data Parameter = Parameter
-  { parameterName :: String
-  , parameterType :: Type
-  , parameterGroup :: Maybe String
-  , parameterLen :: Maybe String
-  } deriving (Eq, Show)
-
-data Command = Command
-  { commandName :: String
-  , commandType :: Type
-  , commandParameters :: [Parameter]
-  , commandVectorEquivalent :: Maybe String
-  , commandAlias :: Maybe String
-  } deriving (Eq, Show)
-
-data Enumeratee = Enumeratee
-  { enumName :: String
-  , enumValue :: String
-  } deriving (Eq, Show)
-
-data Extension = Extension
-  { extensionName :: String
-  , extensionPlatform :: String
-  , extensionRequires :: [Require]
-  } deriving (Eq, Show)
-
-data Feature = Feature
-  { featureName :: String
-  , featureRequires :: [Require]
-  , featureRemoves :: [Remove]
-  } deriving (Eq, Show)
-
-data Group = Group
-  { groupName :: String
-  , groupEnum :: [String]
-  } deriving (Eq, Show)
-
-data Remove = Remove
-  { removeProfile :: String
-  , removeComment :: String
-  , removeEnums :: [String]
-  , removeCommands :: [String]
-  } deriving (Eq, Show)
-
-data Require = Require
-  { requireEnums :: [String]
-  , requireCommands :: [String]
-  , requireComment :: String
-  , requireProfile :: String
-  } deriving (Eq, Show)
-
-data Type = Type
-  { typeName :: Maybe String
-  , typePointer :: Int
-  } deriving (Eq, Show)
-
-lookupCommand :: Registry -> String -> Command
-lookupCommand registry command =
-  head . filter ((== command) . commandName) $ registryCommands registry
-
-lookupEnum :: Registry -> String -> Enumeratee
-lookupEnum registry enum =
-  head . filter ((== enum) . enumName) $ registryEnums registry
-
--- | Resolve shenanigans in the OpenGL Registry
-deshenaniganize :: Registry -> Registry
-deshenaniganize registry = registry
-  { registryFeatures =
-     cleanFeature "GL_VERSION_3_1" clean31require .
-     cleanFeature "GL_VERSION_4_4" clean44require .
-     cleanFeature "GL_VERSION_4_5" clean45require .
-     cleanFeature "GL_ES_VERSION_3_2" cleanES32require <$> registryFeatures registry
-  , registryCommands = cleanCommand <$> registryCommands registry
-  , registryExtensions = cleanExtensions <$> registryExtensions registry
-  }
-
-cleanCommand :: Command -> Command
-cleanCommand cmd = cmd { commandParameters = cleanParameter <$> commandParameters cmd }
-
-cleanExtensions :: Extension -> Extension
-cleanExtensions ext
-  | extensionName ext == "GL_EXT_multisampled_compatibility" =
-      ext { extensionName = "GL_EXT_multisample_compatibility" }
-  | otherwise = ext
-
-cleanParameter :: Parameter -> Parameter
-cleanParameter param
-  | parameterName param == "baseAndCount" = param { parameterType = (parameterType param) { typePointer = 1 }}
-  | otherwise = param { parameterGroup = cleanParameterGroup <$> parameterGroup param }
-
-cleanParameterGroup :: String -> String
-cleanParameterGroup "PixelInternalFormat" = "InternalFormat"
-cleanParameterGroup "SGIXFfdMask" = "FfdMaskSGIX"
-cleanParameterGroup xs = xs
-
-cleanFeature :: String -> (Require -> Require) -> Feature -> Feature
-cleanFeature name f feature
-  | featureName feature == name = feature { featureRequires = f <$> featureRequires feature }
-  | otherwise = feature
-
-clean31require :: Require -> Require
-clean31require require = require
-  { requireCommands = filter (`notElem` removed) $ requireCommands require
-  , requireEnums = "GL_BLEND_COLOR" : requireEnums require
-  } where
-  removed =
-    [ "glBindBufferBase"
-    , "glBindBufferRange"
-    , "glGetIntegeri_v"
-    ]
-
-clean44require :: Require -> Require
-clean44require require = require
-  { requireEnums = filter (`notElem` removed) $
-    requireEnums require
-  } where
-  removed =
-    [ "GL_MAP_READ_BIT"
-    , "GL_MAP_WRITE_BIT"
-    , "GL_STENCIL_INDEX"
-    , "GL_STENCIL_INDEX8"
-    , "GL_TRANSFORM_FEEDBACK_BUFFER"
-    , "GL_UNSIGNED_INT_10F_11F_11F_REV"
-    ]
-
-clean45require :: Require -> Require
-clean45require require = require
-  { requireEnums = filter (`notElem` removed) $
-    requireEnums require
-  } where
-  removed =
-    [ "GL_BACK"
-    , "GL_LOWER_LEFT"
-    , "GL_NONE"
-    , "GL_NO_ERROR"
-    , "GL_TEXTURE_BINDING_1D"
-    , "GL_TEXTURE_BINDING_1D_ARRAY"
-    , "GL_TEXTURE_BINDING_2D"
-    , "GL_TEXTURE_BINDING_2D_ARRAY"
-    , "GL_TEXTURE_BINDING_2D_MULTISAMPLE"
-    , "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"
-    , "GL_TEXTURE_BINDING_3D"
-    , "GL_TEXTURE_BINDING_BUFFER"
-    , "GL_TEXTURE_BINDING_CUBE_MAP"
-    , "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"
-    , "GL_TEXTURE_BINDING_RECTANGLE"
-    , "GL_UPPER_LEFT"
-    ]
-
-cleanES32require :: Require -> Require
-cleanES32require require = require
-  { requireEnums = filter (`notElem` removed) $
-    requireEnums require
-  } where
-  removed =
-    [ "GL_CCW"
-    , "GL_CW"
-    , "GL_EQUAL"
-    , "GL_NO_ERROR"
-    , "GL_STENCIL_INDEX"
-    , "GL_STENCIL_INDEX8"
-    , "GL_TRIANGLES"
-    ]
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,45 +1,2 @@
-{-# OPTIONS_GHC -Wall #-}
------------------------------------------------------------------------------
--- |
--- Copyright   :  (C) 2014 Edward Kmett and Gabríel Arthúr Pétursson
--- License     :  BSD-style (see the file LICENSE)
--- Maintainer  :  Edward Kmett <ekmett@gmail.com>
--- Stability   :  experimental
--- Portability :  portable
---
---
--- Loaded by cabal to configure the project.
---
--- Local hooks are provided to generate the API on build, producing haddocks and to enable @cabal sdist@
-----------------------------------------------------------------------------
-import Data.Functor
 import Distribution.Simple
-import Distribution.Simple.LocalBuildInfo
-import Distribution.PackageDescription
-import System.FilePath
-import Generator (generateSource)
-import Parser (parseFile)
-import Registry (deshenaniganize)
-import Prelude
-
-generateAPI :: LocalBuildInfo -> IO ()
-generateAPI l = do
-  registry <- parseFile "gl.xml"
-  man <- lines <$> readFile "man.txt"
-  extensions <- lines <$> readFile "extensions.txt"
-  putStr "Generating API..."
-  generateSource (buildDir l </> "autogen") (deshenaniganize registry) man [ (x,y) | [x,y] <- map words extensions ]
-  putStrLn "done"
-
-main :: IO ()
-main = defaultMainWithHooks simpleUserHooks
-  { buildHook = \p l h f -> generateAPI l >> buildHook simpleUserHooks p l h f
-  , haddockHook = \p l h f -> generateAPI l >> haddockHook simpleUserHooks p l h f
-  , sDistHook = \p ml h f -> case ml of
-     Nothing -> fail "No local buildinfo available. configure first"
-     Just l -> do
-       let editlib lib = lib { libBuildInfo = editBuildInfo (libBuildInfo lib) }
-           editBuildInfo bi = bi { hsSourceDirs = (buildDir l </> "autogen") : hsSourceDirs bi }
-           p' = p { library = fmap editlib (library p) }
-       generateAPI l >> sDistHook simpleUserHooks p' ml h f
-  }
+main = defaultMain
diff --git a/Utils.hs b/Utils.hs
deleted file mode 100644
--- a/Utils.hs
+++ /dev/null
@@ -1,30 +0,0 @@
-{-# OPTIONS_GHC -Wall #-}
------------------------------------------------------------------------------
--- |
--- Copyright   :  (C) 2014 Edward Kmett
--- License     :  BSD-style (see the file LICENSE)
--- Maintainer  :  Edward Kmett <ekmett@gmail.com>
--- Stability   :  experimental
--- Portability :  portable
---
--- Simple string munging utilities
-----------------------------------------------------------------------------
-module Utils (splitOn, strip, replace) where
-
-import Data.Char (isSpace)
-import Data.List (intercalate, isPrefixOf)
-
-strip :: String -> String
-strip = dropWhile isSpace . reverse . dropWhile isSpace . reverse
-
-replace :: Eq a => [a] -> [a] -> [a] -> [a]
-replace a b = intercalate b . splitOn a
-
-splitOn :: Eq a => [a] -> [a] -> [[a]]
-splitOn _ [] = []
-splitOn xs ys0 = go [] ys0 where
-  go acc ys
-    | isPrefixOf xs ys = reverse acc : go [] (drop (length xs) ys)
-    | otherwise = case ys of
-      z:zs -> go (z:acc) zs
-      [] -> [reverse acc]
diff --git a/dist/build/autogen/Graphics/GL/Compatibility32.hs b/dist/build/autogen/Graphics/GL/Compatibility32.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility32.hs
+++ /dev/null
@@ -1,791 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Compatibility32 (
-  -- * Graphics.GL.Compatibility32
-    module Graphics.GL.Core32
-  , glAccum
-  , glAlphaFunc
-  , glAreTexturesResident
-  , glArrayElement
-  , glBegin
-  , glBitmap
-  , glCallList
-  , glCallLists
-  , glClearAccum
-  , glClearIndex
-  , glClientActiveTexture
-  , glClipPlane
-  , glColor3b
-  , glColor3bv
-  , glColor3d
-  , glColor3dv
-  , glColor3f
-  , glColor3fv
-  , glColor3i
-  , glColor3iv
-  , glColor3s
-  , glColor3sv
-  , glColor3ub
-  , glColor3ubv
-  , glColor3ui
-  , glColor3uiv
-  , glColor3us
-  , glColor3usv
-  , glColor4b
-  , glColor4bv
-  , glColor4d
-  , glColor4dv
-  , glColor4f
-  , glColor4fv
-  , glColor4i
-  , glColor4iv
-  , glColor4s
-  , glColor4sv
-  , glColor4ub
-  , glColor4ubv
-  , glColor4ui
-  , glColor4uiv
-  , glColor4us
-  , glColor4usv
-  , glColorMaterial
-  , glColorPointer
-  , glCopyPixels
-  , glDeleteLists
-  , glDisableClientState
-  , glDrawPixels
-  , glEdgeFlag
-  , glEdgeFlagPointer
-  , glEdgeFlagv
-  , glEnableClientState
-  , glEnd
-  , glEndList
-  , glEvalCoord1d
-  , glEvalCoord1dv
-  , glEvalCoord1f
-  , glEvalCoord1fv
-  , glEvalCoord2d
-  , glEvalCoord2dv
-  , glEvalCoord2f
-  , glEvalCoord2fv
-  , glEvalMesh1
-  , glEvalMesh2
-  , glEvalPoint1
-  , glEvalPoint2
-  , glFeedbackBuffer
-  , glFogCoordPointer
-  , glFogCoordd
-  , glFogCoorddv
-  , glFogCoordf
-  , glFogCoordfv
-  , glFogf
-  , glFogfv
-  , glFogi
-  , glFogiv
-  , glFrustum
-  , glGenLists
-  , glGetClipPlane
-  , glGetLightfv
-  , glGetLightiv
-  , glGetMapdv
-  , glGetMapfv
-  , glGetMapiv
-  , glGetMaterialfv
-  , glGetMaterialiv
-  , glGetPixelMapfv
-  , glGetPixelMapuiv
-  , glGetPixelMapusv
-  , glGetPointerv
-  , glGetPolygonStipple
-  , glGetTexEnvfv
-  , glGetTexEnviv
-  , glGetTexGendv
-  , glGetTexGenfv
-  , glGetTexGeniv
-  , glIndexMask
-  , glIndexPointer
-  , glIndexd
-  , glIndexdv
-  , glIndexf
-  , glIndexfv
-  , glIndexi
-  , glIndexiv
-  , glIndexs
-  , glIndexsv
-  , glIndexub
-  , glIndexubv
-  , glInitNames
-  , glInterleavedArrays
-  , glIsList
-  , glLightModelf
-  , glLightModelfv
-  , glLightModeli
-  , glLightModeliv
-  , glLightf
-  , glLightfv
-  , glLighti
-  , glLightiv
-  , glLineStipple
-  , glListBase
-  , glLoadIdentity
-  , glLoadMatrixd
-  , glLoadMatrixf
-  , glLoadName
-  , glLoadTransposeMatrixd
-  , glLoadTransposeMatrixf
-  , glMap1d
-  , glMap1f
-  , glMap2d
-  , glMap2f
-  , glMapGrid1d
-  , glMapGrid1f
-  , glMapGrid2d
-  , glMapGrid2f
-  , glMaterialf
-  , glMaterialfv
-  , glMateriali
-  , glMaterialiv
-  , glMatrixMode
-  , glMultMatrixd
-  , glMultMatrixf
-  , glMultTransposeMatrixd
-  , glMultTransposeMatrixf
-  , glMultiTexCoord1d
-  , glMultiTexCoord1dv
-  , glMultiTexCoord1f
-  , glMultiTexCoord1fv
-  , glMultiTexCoord1i
-  , glMultiTexCoord1iv
-  , glMultiTexCoord1s
-  , glMultiTexCoord1sv
-  , glMultiTexCoord2d
-  , glMultiTexCoord2dv
-  , glMultiTexCoord2f
-  , glMultiTexCoord2fv
-  , glMultiTexCoord2i
-  , glMultiTexCoord2iv
-  , glMultiTexCoord2s
-  , glMultiTexCoord2sv
-  , glMultiTexCoord3d
-  , glMultiTexCoord3dv
-  , glMultiTexCoord3f
-  , glMultiTexCoord3fv
-  , glMultiTexCoord3i
-  , glMultiTexCoord3iv
-  , glMultiTexCoord3s
-  , glMultiTexCoord3sv
-  , glMultiTexCoord4d
-  , glMultiTexCoord4dv
-  , glMultiTexCoord4f
-  , glMultiTexCoord4fv
-  , glMultiTexCoord4i
-  , glMultiTexCoord4iv
-  , glMultiTexCoord4s
-  , glMultiTexCoord4sv
-  , glNewList
-  , glNormal3b
-  , glNormal3bv
-  , glNormal3d
-  , glNormal3dv
-  , glNormal3f
-  , glNormal3fv
-  , glNormal3i
-  , glNormal3iv
-  , glNormal3s
-  , glNormal3sv
-  , glNormalPointer
-  , glOrtho
-  , glPassThrough
-  , glPixelMapfv
-  , glPixelMapuiv
-  , glPixelMapusv
-  , glPixelTransferf
-  , glPixelTransferi
-  , glPixelZoom
-  , glPolygonStipple
-  , glPopAttrib
-  , glPopClientAttrib
-  , glPopMatrix
-  , glPopName
-  , glPrioritizeTextures
-  , glPushAttrib
-  , glPushClientAttrib
-  , glPushMatrix
-  , glPushName
-  , glRasterPos2d
-  , glRasterPos2dv
-  , glRasterPos2f
-  , glRasterPos2fv
-  , glRasterPos2i
-  , glRasterPos2iv
-  , glRasterPos2s
-  , glRasterPos2sv
-  , glRasterPos3d
-  , glRasterPos3dv
-  , glRasterPos3f
-  , glRasterPos3fv
-  , glRasterPos3i
-  , glRasterPos3iv
-  , glRasterPos3s
-  , glRasterPos3sv
-  , glRasterPos4d
-  , glRasterPos4dv
-  , glRasterPos4f
-  , glRasterPos4fv
-  , glRasterPos4i
-  , glRasterPos4iv
-  , glRasterPos4s
-  , glRasterPos4sv
-  , glRectd
-  , glRectdv
-  , glRectf
-  , glRectfv
-  , glRecti
-  , glRectiv
-  , glRects
-  , glRectsv
-  , glRenderMode
-  , glRotated
-  , glRotatef
-  , glScaled
-  , glScalef
-  , glSecondaryColor3b
-  , glSecondaryColor3bv
-  , glSecondaryColor3d
-  , glSecondaryColor3dv
-  , glSecondaryColor3f
-  , glSecondaryColor3fv
-  , glSecondaryColor3i
-  , glSecondaryColor3iv
-  , glSecondaryColor3s
-  , glSecondaryColor3sv
-  , glSecondaryColor3ub
-  , glSecondaryColor3ubv
-  , glSecondaryColor3ui
-  , glSecondaryColor3uiv
-  , glSecondaryColor3us
-  , glSecondaryColor3usv
-  , glSecondaryColorPointer
-  , glSelectBuffer
-  , glShadeModel
-  , glTexCoord1d
-  , glTexCoord1dv
-  , glTexCoord1f
-  , glTexCoord1fv
-  , glTexCoord1i
-  , glTexCoord1iv
-  , glTexCoord1s
-  , glTexCoord1sv
-  , glTexCoord2d
-  , glTexCoord2dv
-  , glTexCoord2f
-  , glTexCoord2fv
-  , glTexCoord2i
-  , glTexCoord2iv
-  , glTexCoord2s
-  , glTexCoord2sv
-  , glTexCoord3d
-  , glTexCoord3dv
-  , glTexCoord3f
-  , glTexCoord3fv
-  , glTexCoord3i
-  , glTexCoord3iv
-  , glTexCoord3s
-  , glTexCoord3sv
-  , glTexCoord4d
-  , glTexCoord4dv
-  , glTexCoord4f
-  , glTexCoord4fv
-  , glTexCoord4i
-  , glTexCoord4iv
-  , glTexCoord4s
-  , glTexCoord4sv
-  , glTexCoordPointer
-  , glTexEnvf
-  , glTexEnvfv
-  , glTexEnvi
-  , glTexEnviv
-  , glTexGend
-  , glTexGendv
-  , glTexGenf
-  , glTexGenfv
-  , glTexGeni
-  , glTexGeniv
-  , glTranslated
-  , glTranslatef
-  , glVertex2d
-  , glVertex2dv
-  , glVertex2f
-  , glVertex2fv
-  , glVertex2i
-  , glVertex2iv
-  , glVertex2s
-  , glVertex2sv
-  , glVertex3d
-  , glVertex3dv
-  , glVertex3f
-  , glVertex3fv
-  , glVertex3i
-  , glVertex3iv
-  , glVertex3s
-  , glVertex3sv
-  , glVertex4d
-  , glVertex4dv
-  , glVertex4f
-  , glVertex4fv
-  , glVertex4i
-  , glVertex4iv
-  , glVertex4s
-  , glVertex4sv
-  , glVertexPointer
-  , glWindowPos2d
-  , glWindowPos2dv
-  , glWindowPos2f
-  , glWindowPos2fv
-  , glWindowPos2i
-  , glWindowPos2iv
-  , glWindowPos2s
-  , glWindowPos2sv
-  , glWindowPos3d
-  , glWindowPos3dv
-  , glWindowPos3f
-  , glWindowPos3fv
-  , glWindowPos3i
-  , glWindowPos3iv
-  , glWindowPos3s
-  , glWindowPos3sv
-  , pattern GL_2D
-  , pattern GL_2_BYTES
-  , pattern GL_3D
-  , pattern GL_3D_COLOR
-  , pattern GL_3D_COLOR_TEXTURE
-  , pattern GL_3_BYTES
-  , pattern GL_4D_COLOR_TEXTURE
-  , pattern GL_4_BYTES
-  , pattern GL_ACCUM
-  , pattern GL_ACCUM_ALPHA_BITS
-  , pattern GL_ACCUM_BLUE_BITS
-  , pattern GL_ACCUM_BUFFER_BIT
-  , pattern GL_ACCUM_CLEAR_VALUE
-  , pattern GL_ACCUM_GREEN_BITS
-  , pattern GL_ACCUM_RED_BITS
-  , pattern GL_ADD
-  , pattern GL_ADD_SIGNED
-  , pattern GL_ALIASED_POINT_SIZE_RANGE
-  , pattern GL_ALL_ATTRIB_BITS
-  , pattern GL_ALPHA12
-  , pattern GL_ALPHA16
-  , pattern GL_ALPHA4
-  , pattern GL_ALPHA8
-  , pattern GL_ALPHA_BIAS
-  , pattern GL_ALPHA_BITS
-  , pattern GL_ALPHA_INTEGER
-  , pattern GL_ALPHA_SCALE
-  , pattern GL_ALPHA_TEST
-  , pattern GL_ALPHA_TEST_FUNC
-  , pattern GL_ALPHA_TEST_REF
-  , pattern GL_AMBIENT
-  , pattern GL_AMBIENT_AND_DIFFUSE
-  , pattern GL_ATTRIB_STACK_DEPTH
-  , pattern GL_AUTO_NORMAL
-  , pattern GL_AUX0
-  , pattern GL_AUX1
-  , pattern GL_AUX2
-  , pattern GL_AUX3
-  , pattern GL_AUX_BUFFERS
-  , pattern GL_BITMAP
-  , pattern GL_BITMAP_TOKEN
-  , pattern GL_BLUE_BIAS
-  , pattern GL_BLUE_BITS
-  , pattern GL_BLUE_SCALE
-  , pattern GL_C3F_V3F
-  , pattern GL_C4F_N3F_V3F
-  , pattern GL_C4UB_V2F
-  , pattern GL_C4UB_V3F
-  , pattern GL_CLAMP
-  , pattern GL_CLAMP_FRAGMENT_COLOR
-  , pattern GL_CLAMP_VERTEX_COLOR
-  , pattern GL_CLIENT_ACTIVE_TEXTURE
-  , pattern GL_CLIENT_ALL_ATTRIB_BITS
-  , pattern GL_CLIENT_ATTRIB_STACK_DEPTH
-  , pattern GL_CLIENT_PIXEL_STORE_BIT
-  , pattern GL_CLIENT_VERTEX_ARRAY_BIT
-  , pattern GL_CLIP_PLANE0
-  , pattern GL_CLIP_PLANE1
-  , pattern GL_CLIP_PLANE2
-  , pattern GL_CLIP_PLANE3
-  , pattern GL_CLIP_PLANE4
-  , pattern GL_CLIP_PLANE5
-  , pattern GL_COEFF
-  , pattern GL_COLOR_ARRAY
-  , pattern GL_COLOR_ARRAY_BUFFER_BINDING
-  , pattern GL_COLOR_ARRAY_POINTER
-  , pattern GL_COLOR_ARRAY_SIZE
-  , pattern GL_COLOR_ARRAY_STRIDE
-  , pattern GL_COLOR_ARRAY_TYPE
-  , pattern GL_COLOR_INDEX
-  , pattern GL_COLOR_INDEXES
-  , pattern GL_COLOR_MATERIAL
-  , pattern GL_COLOR_MATERIAL_FACE
-  , pattern GL_COLOR_MATERIAL_PARAMETER
-  , pattern GL_COLOR_SUM
-  , pattern GL_COMBINE
-  , pattern GL_COMBINE_ALPHA
-  , pattern GL_COMBINE_RGB
-  , pattern GL_COMPARE_R_TO_TEXTURE
-  , pattern GL_COMPILE
-  , pattern GL_COMPILE_AND_EXECUTE
-  , pattern GL_COMPRESSED_ALPHA
-  , pattern GL_COMPRESSED_INTENSITY
-  , pattern GL_COMPRESSED_LUMINANCE
-  , pattern GL_COMPRESSED_LUMINANCE_ALPHA
-  , pattern GL_COMPRESSED_SLUMINANCE
-  , pattern GL_COMPRESSED_SLUMINANCE_ALPHA
-  , pattern GL_CONSTANT
-  , pattern GL_CONSTANT_ATTENUATION
-  , pattern GL_COORD_REPLACE
-  , pattern GL_COPY_PIXEL_TOKEN
-  , pattern GL_CURRENT_BIT
-  , pattern GL_CURRENT_COLOR
-  , pattern GL_CURRENT_FOG_COORD
-  , pattern GL_CURRENT_FOG_COORDINATE
-  , pattern GL_CURRENT_INDEX
-  , pattern GL_CURRENT_NORMAL
-  , pattern GL_CURRENT_RASTER_COLOR
-  , pattern GL_CURRENT_RASTER_DISTANCE
-  , pattern GL_CURRENT_RASTER_INDEX
-  , pattern GL_CURRENT_RASTER_POSITION
-  , pattern GL_CURRENT_RASTER_POSITION_VALID
-  , pattern GL_CURRENT_RASTER_SECONDARY_COLOR
-  , pattern GL_CURRENT_RASTER_TEXTURE_COORDS
-  , pattern GL_CURRENT_SECONDARY_COLOR
-  , pattern GL_CURRENT_TEXTURE_COORDS
-  , pattern GL_DECAL
-  , pattern GL_DEPTH_BIAS
-  , pattern GL_DEPTH_BITS
-  , pattern GL_DEPTH_SCALE
-  , pattern GL_DEPTH_TEXTURE_MODE
-  , pattern GL_DIFFUSE
-  , pattern GL_DOMAIN
-  , pattern GL_DOT3_RGB
-  , pattern GL_DOT3_RGBA
-  , pattern GL_DRAW_PIXEL_TOKEN
-  , pattern GL_EDGE_FLAG
-  , pattern GL_EDGE_FLAG_ARRAY
-  , pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING
-  , pattern GL_EDGE_FLAG_ARRAY_POINTER
-  , pattern GL_EDGE_FLAG_ARRAY_STRIDE
-  , pattern GL_EMISSION
-  , pattern GL_ENABLE_BIT
-  , pattern GL_EVAL_BIT
-  , pattern GL_EXP
-  , pattern GL_EXP2
-  , pattern GL_EYE_LINEAR
-  , pattern GL_EYE_PLANE
-  , pattern GL_FEEDBACK
-  , pattern GL_FEEDBACK_BUFFER_POINTER
-  , pattern GL_FEEDBACK_BUFFER_SIZE
-  , pattern GL_FEEDBACK_BUFFER_TYPE
-  , pattern GL_FLAT
-  , pattern GL_FOG
-  , pattern GL_FOG_BIT
-  , pattern GL_FOG_COLOR
-  , pattern GL_FOG_COORD
-  , pattern GL_FOG_COORDINATE
-  , pattern GL_FOG_COORDINATE_ARRAY
-  , pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
-  , pattern GL_FOG_COORDINATE_ARRAY_POINTER
-  , pattern GL_FOG_COORDINATE_ARRAY_STRIDE
-  , pattern GL_FOG_COORDINATE_ARRAY_TYPE
-  , pattern GL_FOG_COORDINATE_SOURCE
-  , pattern GL_FOG_COORD_ARRAY
-  , pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING
-  , pattern GL_FOG_COORD_ARRAY_POINTER
-  , pattern GL_FOG_COORD_ARRAY_STRIDE
-  , pattern GL_FOG_COORD_ARRAY_TYPE
-  , pattern GL_FOG_COORD_SRC
-  , pattern GL_FOG_DENSITY
-  , pattern GL_FOG_END
-  , pattern GL_FOG_HINT
-  , pattern GL_FOG_INDEX
-  , pattern GL_FOG_MODE
-  , pattern GL_FOG_START
-  , pattern GL_FRAGMENT_DEPTH
-  , pattern GL_GENERATE_MIPMAP
-  , pattern GL_GENERATE_MIPMAP_HINT
-  , pattern GL_GREEN_BIAS
-  , pattern GL_GREEN_BITS
-  , pattern GL_GREEN_SCALE
-  , pattern GL_HINT_BIT
-  , pattern GL_INDEX_ARRAY
-  , pattern GL_INDEX_ARRAY_BUFFER_BINDING
-  , pattern GL_INDEX_ARRAY_POINTER
-  , pattern GL_INDEX_ARRAY_STRIDE
-  , pattern GL_INDEX_ARRAY_TYPE
-  , pattern GL_INDEX_BITS
-  , pattern GL_INDEX_CLEAR_VALUE
-  , pattern GL_INDEX_LOGIC_OP
-  , pattern GL_INDEX_MODE
-  , pattern GL_INDEX_OFFSET
-  , pattern GL_INDEX_SHIFT
-  , pattern GL_INDEX_WRITEMASK
-  , pattern GL_INTENSITY
-  , pattern GL_INTENSITY12
-  , pattern GL_INTENSITY16
-  , pattern GL_INTENSITY4
-  , pattern GL_INTENSITY8
-  , pattern GL_INTERPOLATE
-  , pattern GL_LIGHT0
-  , pattern GL_LIGHT1
-  , pattern GL_LIGHT2
-  , pattern GL_LIGHT3
-  , pattern GL_LIGHT4
-  , pattern GL_LIGHT5
-  , pattern GL_LIGHT6
-  , pattern GL_LIGHT7
-  , pattern GL_LIGHTING
-  , pattern GL_LIGHTING_BIT
-  , pattern GL_LIGHT_MODEL_AMBIENT
-  , pattern GL_LIGHT_MODEL_COLOR_CONTROL
-  , pattern GL_LIGHT_MODEL_LOCAL_VIEWER
-  , pattern GL_LIGHT_MODEL_TWO_SIDE
-  , pattern GL_LINEAR_ATTENUATION
-  , pattern GL_LINE_BIT
-  , pattern GL_LINE_RESET_TOKEN
-  , pattern GL_LINE_STIPPLE
-  , pattern GL_LINE_STIPPLE_PATTERN
-  , pattern GL_LINE_STIPPLE_REPEAT
-  , pattern GL_LINE_TOKEN
-  , pattern GL_LIST_BASE
-  , pattern GL_LIST_BIT
-  , pattern GL_LIST_INDEX
-  , pattern GL_LIST_MODE
-  , pattern GL_LOAD
-  , pattern GL_LOGIC_OP
-  , pattern GL_LUMINANCE
-  , pattern GL_LUMINANCE12
-  , pattern GL_LUMINANCE12_ALPHA12
-  , pattern GL_LUMINANCE12_ALPHA4
-  , pattern GL_LUMINANCE16
-  , pattern GL_LUMINANCE16_ALPHA16
-  , pattern GL_LUMINANCE4
-  , pattern GL_LUMINANCE4_ALPHA4
-  , pattern GL_LUMINANCE6_ALPHA2
-  , pattern GL_LUMINANCE8
-  , pattern GL_LUMINANCE8_ALPHA8
-  , pattern GL_LUMINANCE_ALPHA
-  , pattern GL_MAP1_COLOR_4
-  , pattern GL_MAP1_GRID_DOMAIN
-  , pattern GL_MAP1_GRID_SEGMENTS
-  , pattern GL_MAP1_INDEX
-  , pattern GL_MAP1_NORMAL
-  , pattern GL_MAP1_TEXTURE_COORD_1
-  , pattern GL_MAP1_TEXTURE_COORD_2
-  , pattern GL_MAP1_TEXTURE_COORD_3
-  , pattern GL_MAP1_TEXTURE_COORD_4
-  , pattern GL_MAP1_VERTEX_3
-  , pattern GL_MAP1_VERTEX_4
-  , pattern GL_MAP2_COLOR_4
-  , pattern GL_MAP2_GRID_DOMAIN
-  , pattern GL_MAP2_GRID_SEGMENTS
-  , pattern GL_MAP2_INDEX
-  , pattern GL_MAP2_NORMAL
-  , pattern GL_MAP2_TEXTURE_COORD_1
-  , pattern GL_MAP2_TEXTURE_COORD_2
-  , pattern GL_MAP2_TEXTURE_COORD_3
-  , pattern GL_MAP2_TEXTURE_COORD_4
-  , pattern GL_MAP2_VERTEX_3
-  , pattern GL_MAP2_VERTEX_4
-  , pattern GL_MAP_COLOR
-  , pattern GL_MAP_STENCIL
-  , pattern GL_MATRIX_MODE
-  , pattern GL_MAX_ATTRIB_STACK_DEPTH
-  , pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
-  , pattern GL_MAX_CLIP_PLANES
-  , pattern GL_MAX_EVAL_ORDER
-  , pattern GL_MAX_LIGHTS
-  , pattern GL_MAX_LIST_NESTING
-  , pattern GL_MAX_MODELVIEW_STACK_DEPTH
-  , pattern GL_MAX_NAME_STACK_DEPTH
-  , pattern GL_MAX_PIXEL_MAP_TABLE
-  , pattern GL_MAX_PROJECTION_STACK_DEPTH
-  , pattern GL_MAX_TEXTURE_COORDS
-  , pattern GL_MAX_TEXTURE_STACK_DEPTH
-  , pattern GL_MAX_TEXTURE_UNITS
-  , pattern GL_MODELVIEW
-  , pattern GL_MODELVIEW_MATRIX
-  , pattern GL_MODELVIEW_STACK_DEPTH
-  , pattern GL_MODULATE
-  , pattern GL_MULT
-  , pattern GL_MULTISAMPLE_BIT
-  , pattern GL_N3F_V3F
-  , pattern GL_NAME_STACK_DEPTH
-  , pattern GL_NORMALIZE
-  , pattern GL_NORMAL_ARRAY
-  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING
-  , pattern GL_NORMAL_ARRAY_POINTER
-  , pattern GL_NORMAL_ARRAY_STRIDE
-  , pattern GL_NORMAL_ARRAY_TYPE
-  , pattern GL_NORMAL_MAP
-  , pattern GL_OBJECT_LINEAR
-  , pattern GL_OBJECT_PLANE
-  , pattern GL_OPERAND0_ALPHA
-  , pattern GL_OPERAND0_RGB
-  , pattern GL_OPERAND1_ALPHA
-  , pattern GL_OPERAND1_RGB
-  , pattern GL_OPERAND2_ALPHA
-  , pattern GL_OPERAND2_RGB
-  , pattern GL_ORDER
-  , pattern GL_PASS_THROUGH_TOKEN
-  , pattern GL_PERSPECTIVE_CORRECTION_HINT
-  , pattern GL_PIXEL_MAP_A_TO_A
-  , pattern GL_PIXEL_MAP_A_TO_A_SIZE
-  , pattern GL_PIXEL_MAP_B_TO_B
-  , pattern GL_PIXEL_MAP_B_TO_B_SIZE
-  , pattern GL_PIXEL_MAP_G_TO_G
-  , pattern GL_PIXEL_MAP_G_TO_G_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_A
-  , pattern GL_PIXEL_MAP_I_TO_A_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_B
-  , pattern GL_PIXEL_MAP_I_TO_B_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_G
-  , pattern GL_PIXEL_MAP_I_TO_G_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_I
-  , pattern GL_PIXEL_MAP_I_TO_I_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_R
-  , pattern GL_PIXEL_MAP_I_TO_R_SIZE
-  , pattern GL_PIXEL_MAP_R_TO_R
-  , pattern GL_PIXEL_MAP_R_TO_R_SIZE
-  , pattern GL_PIXEL_MAP_S_TO_S
-  , pattern GL_PIXEL_MAP_S_TO_S_SIZE
-  , pattern GL_PIXEL_MODE_BIT
-  , pattern GL_POINT_BIT
-  , pattern GL_POINT_DISTANCE_ATTENUATION
-  , pattern GL_POINT_SIZE_MAX
-  , pattern GL_POINT_SIZE_MIN
-  , pattern GL_POINT_SMOOTH
-  , pattern GL_POINT_SMOOTH_HINT
-  , pattern GL_POINT_SPRITE
-  , pattern GL_POINT_TOKEN
-  , pattern GL_POLYGON
-  , pattern GL_POLYGON_BIT
-  , pattern GL_POLYGON_STIPPLE
-  , pattern GL_POLYGON_STIPPLE_BIT
-  , pattern GL_POLYGON_TOKEN
-  , pattern GL_POSITION
-  , pattern GL_PREVIOUS
-  , pattern GL_PRIMARY_COLOR
-  , pattern GL_PROJECTION
-  , pattern GL_PROJECTION_MATRIX
-  , pattern GL_PROJECTION_STACK_DEPTH
-  , pattern GL_Q
-  , pattern GL_QUADRATIC_ATTENUATION
-  , pattern GL_QUADS
-  , pattern GL_QUAD_STRIP
-  , pattern GL_R
-  , pattern GL_RED_BIAS
-  , pattern GL_RED_BITS
-  , pattern GL_RED_SCALE
-  , pattern GL_REFLECTION_MAP
-  , pattern GL_RENDER
-  , pattern GL_RENDER_MODE
-  , pattern GL_RESCALE_NORMAL
-  , pattern GL_RETURN
-  , pattern GL_RGBA_MODE
-  , pattern GL_RGB_SCALE
-  , pattern GL_S
-  , pattern GL_SCISSOR_BIT
-  , pattern GL_SECONDARY_COLOR_ARRAY
-  , pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING
-  , pattern GL_SECONDARY_COLOR_ARRAY_POINTER
-  , pattern GL_SECONDARY_COLOR_ARRAY_SIZE
-  , pattern GL_SECONDARY_COLOR_ARRAY_STRIDE
-  , pattern GL_SECONDARY_COLOR_ARRAY_TYPE
-  , pattern GL_SELECT
-  , pattern GL_SELECTION_BUFFER_POINTER
-  , pattern GL_SELECTION_BUFFER_SIZE
-  , pattern GL_SEPARATE_SPECULAR_COLOR
-  , pattern GL_SHADE_MODEL
-  , pattern GL_SHININESS
-  , pattern GL_SINGLE_COLOR
-  , pattern GL_SLUMINANCE
-  , pattern GL_SLUMINANCE8
-  , pattern GL_SLUMINANCE8_ALPHA8
-  , pattern GL_SLUMINANCE_ALPHA
-  , pattern GL_SMOOTH
-  , pattern GL_SOURCE0_ALPHA
-  , pattern GL_SOURCE0_RGB
-  , pattern GL_SOURCE1_ALPHA
-  , pattern GL_SOURCE1_RGB
-  , pattern GL_SOURCE2_ALPHA
-  , pattern GL_SOURCE2_RGB
-  , pattern GL_SPECULAR
-  , pattern GL_SPHERE_MAP
-  , pattern GL_SPOT_CUTOFF
-  , pattern GL_SPOT_DIRECTION
-  , pattern GL_SPOT_EXPONENT
-  , pattern GL_SRC0_ALPHA
-  , pattern GL_SRC0_RGB
-  , pattern GL_SRC1_RGB
-  , pattern GL_SRC2_ALPHA
-  , pattern GL_SRC2_RGB
-  , pattern GL_STACK_OVERFLOW
-  , pattern GL_STACK_UNDERFLOW
-  , pattern GL_STENCIL_BITS
-  , pattern GL_SUBTRACT
-  , pattern GL_T
-  , pattern GL_T2F_C3F_V3F
-  , pattern GL_T2F_C4F_N3F_V3F
-  , pattern GL_T2F_C4UB_V3F
-  , pattern GL_T2F_N3F_V3F
-  , pattern GL_T2F_V3F
-  , pattern GL_T4F_C4F_N3F_V4F
-  , pattern GL_T4F_V4F
-  , pattern GL_TEXTURE_BIT
-  , pattern GL_TEXTURE_BORDER
-  , pattern GL_TEXTURE_COMPONENTS
-  , pattern GL_TEXTURE_COORD_ARRAY
-  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
-  , pattern GL_TEXTURE_COORD_ARRAY_POINTER
-  , pattern GL_TEXTURE_COORD_ARRAY_SIZE
-  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE
-  , pattern GL_TEXTURE_COORD_ARRAY_TYPE
-  , pattern GL_TEXTURE_ENV
-  , pattern GL_TEXTURE_ENV_COLOR
-  , pattern GL_TEXTURE_ENV_MODE
-  , pattern GL_TEXTURE_FILTER_CONTROL
-  , pattern GL_TEXTURE_GEN_MODE
-  , pattern GL_TEXTURE_GEN_Q
-  , pattern GL_TEXTURE_GEN_R
-  , pattern GL_TEXTURE_GEN_S
-  , pattern GL_TEXTURE_GEN_T
-  , pattern GL_TEXTURE_INTENSITY_SIZE
-  , pattern GL_TEXTURE_INTENSITY_TYPE
-  , pattern GL_TEXTURE_LUMINANCE_SIZE
-  , pattern GL_TEXTURE_LUMINANCE_TYPE
-  , pattern GL_TEXTURE_MATRIX
-  , pattern GL_TEXTURE_PRIORITY
-  , pattern GL_TEXTURE_RESIDENT
-  , pattern GL_TEXTURE_STACK_DEPTH
-  , pattern GL_TRANSFORM_BIT
-  , pattern GL_TRANSPOSE_COLOR_MATRIX
-  , pattern GL_TRANSPOSE_MODELVIEW_MATRIX
-  , pattern GL_TRANSPOSE_PROJECTION_MATRIX
-  , pattern GL_TRANSPOSE_TEXTURE_MATRIX
-  , pattern GL_V2F
-  , pattern GL_V3F
-  , pattern GL_VERTEX_ARRAY
-  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING
-  , pattern GL_VERTEX_ARRAY_POINTER
-  , pattern GL_VERTEX_ARRAY_SIZE
-  , pattern GL_VERTEX_ARRAY_STRIDE
-  , pattern GL_VERTEX_ARRAY_TYPE
-  , pattern GL_VERTEX_PROGRAM_TWO_SIDE
-  , pattern GL_VIEWPORT_BIT
-  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING
-  , pattern GL_ZOOM_X
-  , pattern GL_ZOOM_Y
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Core32
diff --git a/dist/build/autogen/Graphics/GL/Compatibility33.hs b/dist/build/autogen/Graphics/GL/Compatibility33.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility33.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Compatibility33 (
-  -- * Graphics.GL.Compatibility33
-    module Graphics.GL.Compatibility32
-  , module Graphics.GL.Core33
-  , glColorP3ui
-  , glColorP3uiv
-  , glColorP4ui
-  , glColorP4uiv
-  , glMultiTexCoordP1ui
-  , glMultiTexCoordP1uiv
-  , glMultiTexCoordP2ui
-  , glMultiTexCoordP2uiv
-  , glMultiTexCoordP3ui
-  , glMultiTexCoordP3uiv
-  , glMultiTexCoordP4ui
-  , glMultiTexCoordP4uiv
-  , glNormalP3ui
-  , glNormalP3uiv
-  , glSecondaryColorP3ui
-  , glSecondaryColorP3uiv
-  , glTexCoordP1ui
-  , glTexCoordP1uiv
-  , glTexCoordP2ui
-  , glTexCoordP2uiv
-  , glTexCoordP3ui
-  , glTexCoordP3uiv
-  , glTexCoordP4ui
-  , glTexCoordP4uiv
-  , glVertexP2ui
-  , glVertexP2uiv
-  , glVertexP3ui
-  , glVertexP3uiv
-  , glVertexP4ui
-  , glVertexP4uiv
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Compatibility32
-import Graphics.GL.Core33
diff --git a/dist/build/autogen/Graphics/GL/Compatibility40.hs b/dist/build/autogen/Graphics/GL/Compatibility40.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility40.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Compatibility40 (
-  -- * Graphics.GL.Compatibility40
-    module Graphics.GL.Compatibility33
-  , module Graphics.GL.Core40
-) where
-
-
-
-import Graphics.GL.Compatibility33
-import Graphics.GL.Core40
diff --git a/dist/build/autogen/Graphics/GL/Compatibility41.hs b/dist/build/autogen/Graphics/GL/Compatibility41.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility41.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Compatibility41 (
-  -- * Graphics.GL.Compatibility41
-    module Graphics.GL.Compatibility40
-  , module Graphics.GL.Core41
-) where
-
-
-
-import Graphics.GL.Compatibility40
-import Graphics.GL.Core41
diff --git a/dist/build/autogen/Graphics/GL/Compatibility42.hs b/dist/build/autogen/Graphics/GL/Compatibility42.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility42.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Compatibility42 (
-  -- * Graphics.GL.Compatibility42
-    module Graphics.GL.Compatibility41
-  , module Graphics.GL.Core42
-) where
-
-
-
-import Graphics.GL.Compatibility41
-import Graphics.GL.Core42
diff --git a/dist/build/autogen/Graphics/GL/Compatibility43.hs b/dist/build/autogen/Graphics/GL/Compatibility43.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility43.hs
+++ /dev/null
@@ -1,13 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Compatibility43 (
-  -- * Graphics.GL.Compatibility43
-    module Graphics.GL.Compatibility42
-  , module Graphics.GL.Core43
-  , pattern GL_DISPLAY_LIST
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Compatibility42
-import Graphics.GL.Core43
diff --git a/dist/build/autogen/Graphics/GL/Compatibility44.hs b/dist/build/autogen/Graphics/GL/Compatibility44.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility44.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Compatibility44 (
-  -- * Graphics.GL.Compatibility44
-    module Graphics.GL.Compatibility43
-  , module Graphics.GL.Core44
-) where
-
-
-
-import Graphics.GL.Compatibility43
-import Graphics.GL.Core44
diff --git a/dist/build/autogen/Graphics/GL/Compatibility45.hs b/dist/build/autogen/Graphics/GL/Compatibility45.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Compatibility45.hs
+++ /dev/null
@@ -1,161 +0,0 @@
--- 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 = ffienumenumenumsizeiPtrVIOV glGetnColorTableFunPtr
-
-glGetnColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnColorTableFunPtr = unsafePerformIO (getProcAddress "glGetnColorTable")
-
-{-# NOINLINE glGetnColorTableFunPtr #-}
-
--- | Usage: @'glGetnConvolutionFilter' target format type bufSize image@
-
-
-glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnConvolutionFilter = ffienumenumenumsizeiPtrVIOV glGetnConvolutionFilterFunPtr
-
-glGetnConvolutionFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnConvolutionFilterFunPtr = unsafePerformIO (getProcAddress "glGetnConvolutionFilter")
-
-{-# NOINLINE glGetnConvolutionFilterFunPtr #-}
-
--- | Usage: @'glGetnHistogram' target reset format type bufSize values@
-
-
-glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnHistogram = ffienumbooleanenumenumsizeiPtrVIOV glGetnHistogramFunPtr
-
-glGetnHistogramFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnHistogramFunPtr = unsafePerformIO (getProcAddress "glGetnHistogram")
-
-{-# NOINLINE glGetnHistogramFunPtr #-}
-
--- | Usage: @'glGetnMapdv' target query bufSize v@
-
-
-glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
-glGetnMapdv = ffienumenumsizeiPtrdoubleIOV glGetnMapdvFunPtr
-
-glGetnMapdvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
-glGetnMapdvFunPtr = unsafePerformIO (getProcAddress "glGetnMapdv")
-
-{-# NOINLINE glGetnMapdvFunPtr #-}
-
--- | Usage: @'glGetnMapfv' target query bufSize v@
-
-
-glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glGetnMapfv = ffienumenumsizeiPtrfloatIOV glGetnMapfvFunPtr
-
-glGetnMapfvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnMapfvFunPtr = unsafePerformIO (getProcAddress "glGetnMapfv")
-
-{-# NOINLINE glGetnMapfvFunPtr #-}
-
--- | Usage: @'glGetnMapiv' target query bufSize v@
-
-
-glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
-glGetnMapiv = ffienumenumsizeiPtrintIOV glGetnMapivFunPtr
-
-glGetnMapivFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
-glGetnMapivFunPtr = unsafePerformIO (getProcAddress "glGetnMapiv")
-
-{-# NOINLINE glGetnMapivFunPtr #-}
-
--- | Usage: @'glGetnMinmax' target reset format type bufSize values@
-
-
-glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnMinmax = ffienumbooleanenumenumsizeiPtrVIOV glGetnMinmaxFunPtr
-
-glGetnMinmaxFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnMinmaxFunPtr = unsafePerformIO (getProcAddress "glGetnMinmax")
-
-{-# NOINLINE glGetnMinmaxFunPtr #-}
-
--- | Usage: @'glGetnPixelMapfv' map bufSize values@
-
-
-glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glGetnPixelMapfv = ffienumsizeiPtrfloatIOV glGetnPixelMapfvFunPtr
-
-glGetnPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapfv")
-
-{-# NOINLINE glGetnPixelMapfvFunPtr #-}
-
--- | Usage: @'glGetnPixelMapuiv' map bufSize values@
-
-
-glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glGetnPixelMapuiv = ffienumsizeiPtruintIOV glGetnPixelMapuivFunPtr
-
-glGetnPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glGetnPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapuiv")
-
-{-# NOINLINE glGetnPixelMapuivFunPtr #-}
-
--- | Usage: @'glGetnPixelMapusv' map bufSize values@
-
-
-glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
-glGetnPixelMapusv = ffienumsizeiPtrushortIOV glGetnPixelMapusvFunPtr
-
-glGetnPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
-glGetnPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapusv")
-
-{-# NOINLINE glGetnPixelMapusvFunPtr #-}
-
--- | Usage: @'glGetnPolygonStipple' bufSize pattern@
-
-
-glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
-glGetnPolygonStipple = ffisizeiPtrubyteIOV glGetnPolygonStippleFunPtr
-
-glGetnPolygonStippleFunPtr :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
-glGetnPolygonStippleFunPtr = unsafePerformIO (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 = ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV glGetnSeparableFilterFunPtr
-
-glGetnSeparableFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ())
-glGetnSeparableFilterFunPtr = unsafePerformIO (getProcAddress "glGetnSeparableFilter")
-
-{-# NOINLINE glGetnSeparableFilterFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Core32.hs b/dist/build/autogen/Graphics/GL/Core32.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core32.hs
+++ /dev/null
@@ -1,1133 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core32 (
-  -- * Graphics.GL.Core32
-    glActiveTexture
-  , glAttachShader
-  , glBeginConditionalRender
-  , glBeginQuery
-  , glBeginTransformFeedback
-  , glBindAttribLocation
-  , glBindBuffer
-  , glBindBufferBase
-  , glBindBufferRange
-  , glBindFragDataLocation
-  , glBindFramebuffer
-  , glBindRenderbuffer
-  , glBindTexture
-  , glBindVertexArray
-  , glBlendColor
-  , glBlendEquation
-  , glBlendEquationSeparate
-  , glBlendFunc
-  , glBlendFuncSeparate
-  , glBlitFramebuffer
-  , glBufferData
-  , glBufferSubData
-  , glCheckFramebufferStatus
-  , glClampColor
-  , glClear
-  , glClearBufferfi
-  , glClearBufferfv
-  , glClearBufferiv
-  , glClearBufferuiv
-  , glClearColor
-  , glClearDepth
-  , glClearStencil
-  , glClientWaitSync
-  , glColorMask
-  , glColorMaski
-  , glCompileShader
-  , glCompressedTexImage1D
-  , glCompressedTexImage2D
-  , glCompressedTexImage3D
-  , glCompressedTexSubImage1D
-  , glCompressedTexSubImage2D
-  , glCompressedTexSubImage3D
-  , glCopyBufferSubData
-  , glCopyTexImage1D
-  , glCopyTexImage2D
-  , glCopyTexSubImage1D
-  , glCopyTexSubImage2D
-  , glCopyTexSubImage3D
-  , glCreateProgram
-  , glCreateShader
-  , glCullFace
-  , glDeleteBuffers
-  , glDeleteFramebuffers
-  , glDeleteProgram
-  , glDeleteQueries
-  , glDeleteRenderbuffers
-  , glDeleteShader
-  , glDeleteSync
-  , glDeleteTextures
-  , glDeleteVertexArrays
-  , glDepthFunc
-  , glDepthMask
-  , glDepthRange
-  , glDetachShader
-  , glDisable
-  , glDisableVertexAttribArray
-  , glDisablei
-  , glDrawArrays
-  , glDrawArraysInstanced
-  , glDrawBuffer
-  , glDrawBuffers
-  , glDrawElements
-  , glDrawElementsBaseVertex
-  , glDrawElementsInstanced
-  , glDrawElementsInstancedBaseVertex
-  , glDrawRangeElements
-  , glDrawRangeElementsBaseVertex
-  , glEnable
-  , glEnableVertexAttribArray
-  , glEnablei
-  , glEndConditionalRender
-  , glEndQuery
-  , glEndTransformFeedback
-  , glFenceSync
-  , glFinish
-  , glFlush
-  , glFlushMappedBufferRange
-  , glFramebufferRenderbuffer
-  , glFramebufferTexture
-  , glFramebufferTexture1D
-  , glFramebufferTexture2D
-  , glFramebufferTexture3D
-  , glFramebufferTextureLayer
-  , glFrontFace
-  , glGenBuffers
-  , glGenFramebuffers
-  , glGenQueries
-  , glGenRenderbuffers
-  , glGenTextures
-  , glGenVertexArrays
-  , glGenerateMipmap
-  , glGetActiveAttrib
-  , glGetActiveUniform
-  , glGetActiveUniformBlockName
-  , glGetActiveUniformBlockiv
-  , glGetActiveUniformName
-  , glGetActiveUniformsiv
-  , glGetAttachedShaders
-  , glGetAttribLocation
-  , glGetBooleani_v
-  , glGetBooleanv
-  , glGetBufferParameteri64v
-  , glGetBufferParameteriv
-  , glGetBufferPointerv
-  , glGetBufferSubData
-  , glGetCompressedTexImage
-  , glGetDoublev
-  , glGetError
-  , glGetFloatv
-  , glGetFragDataLocation
-  , glGetFramebufferAttachmentParameteriv
-  , glGetInteger64i_v
-  , glGetInteger64v
-  , glGetIntegeri_v
-  , glGetIntegerv
-  , glGetMultisamplefv
-  , glGetProgramInfoLog
-  , glGetProgramiv
-  , glGetQueryObjectiv
-  , glGetQueryObjectuiv
-  , glGetQueryiv
-  , glGetRenderbufferParameteriv
-  , glGetShaderInfoLog
-  , glGetShaderSource
-  , glGetShaderiv
-  , glGetString
-  , glGetStringi
-  , glGetSynciv
-  , glGetTexImage
-  , glGetTexLevelParameterfv
-  , glGetTexLevelParameteriv
-  , glGetTexParameterIiv
-  , glGetTexParameterIuiv
-  , glGetTexParameterfv
-  , glGetTexParameteriv
-  , glGetTransformFeedbackVarying
-  , glGetUniformBlockIndex
-  , glGetUniformIndices
-  , glGetUniformLocation
-  , glGetUniformfv
-  , glGetUniformiv
-  , glGetUniformuiv
-  , glGetVertexAttribIiv
-  , glGetVertexAttribIuiv
-  , glGetVertexAttribPointerv
-  , glGetVertexAttribdv
-  , glGetVertexAttribfv
-  , glGetVertexAttribiv
-  , glHint
-  , glIsBuffer
-  , glIsEnabled
-  , glIsEnabledi
-  , glIsFramebuffer
-  , glIsProgram
-  , glIsQuery
-  , glIsRenderbuffer
-  , glIsShader
-  , glIsSync
-  , glIsTexture
-  , glIsVertexArray
-  , glLineWidth
-  , glLinkProgram
-  , glLogicOp
-  , glMapBuffer
-  , glMapBufferRange
-  , glMultiDrawArrays
-  , glMultiDrawElements
-  , glMultiDrawElementsBaseVertex
-  , glPixelStoref
-  , glPixelStorei
-  , glPointParameterf
-  , glPointParameterfv
-  , glPointParameteri
-  , glPointParameteriv
-  , glPointSize
-  , glPolygonMode
-  , glPolygonOffset
-  , glPrimitiveRestartIndex
-  , glProvokingVertex
-  , glReadBuffer
-  , glReadPixels
-  , glRenderbufferStorage
-  , glRenderbufferStorageMultisample
-  , glSampleCoverage
-  , glSampleMaski
-  , glScissor
-  , glShaderSource
-  , glStencilFunc
-  , glStencilFuncSeparate
-  , glStencilMask
-  , glStencilMaskSeparate
-  , glStencilOp
-  , glStencilOpSeparate
-  , glTexBuffer
-  , glTexImage1D
-  , glTexImage2D
-  , glTexImage2DMultisample
-  , glTexImage3D
-  , glTexImage3DMultisample
-  , glTexParameterIiv
-  , glTexParameterIuiv
-  , glTexParameterf
-  , glTexParameterfv
-  , glTexParameteri
-  , glTexParameteriv
-  , glTexSubImage1D
-  , glTexSubImage2D
-  , glTexSubImage3D
-  , glTransformFeedbackVaryings
-  , glUniform1f
-  , glUniform1fv
-  , glUniform1i
-  , glUniform1iv
-  , glUniform1ui
-  , glUniform1uiv
-  , glUniform2f
-  , glUniform2fv
-  , glUniform2i
-  , glUniform2iv
-  , glUniform2ui
-  , glUniform2uiv
-  , glUniform3f
-  , glUniform3fv
-  , glUniform3i
-  , glUniform3iv
-  , glUniform3ui
-  , glUniform3uiv
-  , glUniform4f
-  , glUniform4fv
-  , glUniform4i
-  , glUniform4iv
-  , glUniform4ui
-  , glUniform4uiv
-  , glUniformBlockBinding
-  , glUniformMatrix2fv
-  , glUniformMatrix2x3fv
-  , glUniformMatrix2x4fv
-  , glUniformMatrix3fv
-  , glUniformMatrix3x2fv
-  , glUniformMatrix3x4fv
-  , glUniformMatrix4fv
-  , glUniformMatrix4x2fv
-  , glUniformMatrix4x3fv
-  , glUnmapBuffer
-  , glUseProgram
-  , glValidateProgram
-  , glVertexAttrib1d
-  , glVertexAttrib1dv
-  , glVertexAttrib1f
-  , glVertexAttrib1fv
-  , glVertexAttrib1s
-  , glVertexAttrib1sv
-  , glVertexAttrib2d
-  , glVertexAttrib2dv
-  , glVertexAttrib2f
-  , glVertexAttrib2fv
-  , glVertexAttrib2s
-  , glVertexAttrib2sv
-  , glVertexAttrib3d
-  , glVertexAttrib3dv
-  , glVertexAttrib3f
-  , glVertexAttrib3fv
-  , glVertexAttrib3s
-  , glVertexAttrib3sv
-  , glVertexAttrib4Nbv
-  , glVertexAttrib4Niv
-  , glVertexAttrib4Nsv
-  , glVertexAttrib4Nub
-  , glVertexAttrib4Nubv
-  , glVertexAttrib4Nuiv
-  , glVertexAttrib4Nusv
-  , glVertexAttrib4bv
-  , glVertexAttrib4d
-  , glVertexAttrib4dv
-  , glVertexAttrib4f
-  , glVertexAttrib4fv
-  , glVertexAttrib4iv
-  , glVertexAttrib4s
-  , glVertexAttrib4sv
-  , glVertexAttrib4ubv
-  , glVertexAttrib4uiv
-  , glVertexAttrib4usv
-  , glVertexAttribI1i
-  , glVertexAttribI1iv
-  , glVertexAttribI1ui
-  , glVertexAttribI1uiv
-  , glVertexAttribI2i
-  , glVertexAttribI2iv
-  , glVertexAttribI2ui
-  , glVertexAttribI2uiv
-  , glVertexAttribI3i
-  , glVertexAttribI3iv
-  , glVertexAttribI3ui
-  , glVertexAttribI3uiv
-  , glVertexAttribI4bv
-  , glVertexAttribI4i
-  , glVertexAttribI4iv
-  , glVertexAttribI4sv
-  , glVertexAttribI4ubv
-  , glVertexAttribI4ui
-  , glVertexAttribI4uiv
-  , glVertexAttribI4usv
-  , glVertexAttribIPointer
-  , glVertexAttribPointer
-  , glViewport
-  , glWaitSync
-  , pattern GL_ACTIVE_ATTRIBUTES
-  , pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
-  , pattern GL_ACTIVE_TEXTURE
-  , pattern GL_ACTIVE_UNIFORMS
-  , pattern GL_ACTIVE_UNIFORM_BLOCKS
-  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
-  , pattern GL_ACTIVE_UNIFORM_MAX_LENGTH
-  , pattern GL_ALIASED_LINE_WIDTH_RANGE
-  , pattern GL_ALPHA
-  , pattern GL_ALREADY_SIGNALED
-  , pattern GL_ALWAYS
-  , pattern GL_AND
-  , pattern GL_AND_INVERTED
-  , pattern GL_AND_REVERSE
-  , pattern GL_ARRAY_BUFFER
-  , pattern GL_ARRAY_BUFFER_BINDING
-  , pattern GL_ATTACHED_SHADERS
-  , pattern GL_BACK
-  , pattern GL_BACK_LEFT
-  , pattern GL_BACK_RIGHT
-  , pattern GL_BGR
-  , pattern GL_BGRA
-  , pattern GL_BGRA_INTEGER
-  , pattern GL_BGR_INTEGER
-  , pattern GL_BLEND
-  , pattern GL_BLEND_COLOR
-  , pattern GL_BLEND_DST
-  , pattern GL_BLEND_DST_ALPHA
-  , pattern GL_BLEND_DST_RGB
-  , pattern GL_BLEND_EQUATION_ALPHA
-  , pattern GL_BLEND_EQUATION_RGB
-  , pattern GL_BLEND_SRC
-  , pattern GL_BLEND_SRC_ALPHA
-  , pattern GL_BLEND_SRC_RGB
-  , pattern GL_BLUE
-  , pattern GL_BLUE_INTEGER
-  , pattern GL_BOOL
-  , pattern GL_BOOL_VEC2
-  , pattern GL_BOOL_VEC3
-  , pattern GL_BOOL_VEC4
-  , pattern GL_BUFFER_ACCESS
-  , pattern GL_BUFFER_ACCESS_FLAGS
-  , pattern GL_BUFFER_MAPPED
-  , pattern GL_BUFFER_MAP_LENGTH
-  , pattern GL_BUFFER_MAP_OFFSET
-  , pattern GL_BUFFER_MAP_POINTER
-  , pattern GL_BUFFER_SIZE
-  , pattern GL_BUFFER_USAGE
-  , pattern GL_BYTE
-  , pattern GL_CCW
-  , pattern GL_CLAMP_READ_COLOR
-  , pattern GL_CLAMP_TO_BORDER
-  , pattern GL_CLAMP_TO_EDGE
-  , pattern GL_CLEAR
-  , pattern GL_CLIP_DISTANCE0
-  , pattern GL_CLIP_DISTANCE1
-  , pattern GL_CLIP_DISTANCE2
-  , pattern GL_CLIP_DISTANCE3
-  , pattern GL_CLIP_DISTANCE4
-  , pattern GL_CLIP_DISTANCE5
-  , pattern GL_CLIP_DISTANCE6
-  , pattern GL_CLIP_DISTANCE7
-  , pattern GL_COLOR
-  , pattern GL_COLOR_ATTACHMENT0
-  , pattern GL_COLOR_ATTACHMENT1
-  , pattern GL_COLOR_ATTACHMENT10
-  , pattern GL_COLOR_ATTACHMENT11
-  , pattern GL_COLOR_ATTACHMENT12
-  , pattern GL_COLOR_ATTACHMENT13
-  , pattern GL_COLOR_ATTACHMENT14
-  , pattern GL_COLOR_ATTACHMENT15
-  , pattern GL_COLOR_ATTACHMENT16
-  , pattern GL_COLOR_ATTACHMENT17
-  , pattern GL_COLOR_ATTACHMENT18
-  , pattern GL_COLOR_ATTACHMENT19
-  , pattern GL_COLOR_ATTACHMENT2
-  , pattern GL_COLOR_ATTACHMENT20
-  , pattern GL_COLOR_ATTACHMENT21
-  , pattern GL_COLOR_ATTACHMENT22
-  , pattern GL_COLOR_ATTACHMENT23
-  , pattern GL_COLOR_ATTACHMENT24
-  , pattern GL_COLOR_ATTACHMENT25
-  , pattern GL_COLOR_ATTACHMENT26
-  , pattern GL_COLOR_ATTACHMENT27
-  , pattern GL_COLOR_ATTACHMENT28
-  , pattern GL_COLOR_ATTACHMENT29
-  , pattern GL_COLOR_ATTACHMENT3
-  , pattern GL_COLOR_ATTACHMENT30
-  , pattern GL_COLOR_ATTACHMENT31
-  , pattern GL_COLOR_ATTACHMENT4
-  , pattern GL_COLOR_ATTACHMENT5
-  , pattern GL_COLOR_ATTACHMENT6
-  , pattern GL_COLOR_ATTACHMENT7
-  , pattern GL_COLOR_ATTACHMENT8
-  , pattern GL_COLOR_ATTACHMENT9
-  , pattern GL_COLOR_BUFFER_BIT
-  , pattern GL_COLOR_CLEAR_VALUE
-  , pattern GL_COLOR_LOGIC_OP
-  , pattern GL_COLOR_WRITEMASK
-  , pattern GL_COMPARE_REF_TO_TEXTURE
-  , pattern GL_COMPILE_STATUS
-  , pattern GL_COMPRESSED_RED
-  , pattern GL_COMPRESSED_RED_RGTC1
-  , pattern GL_COMPRESSED_RG
-  , pattern GL_COMPRESSED_RGB
-  , pattern GL_COMPRESSED_RGBA
-  , pattern GL_COMPRESSED_RG_RGTC2
-  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1
-  , pattern GL_COMPRESSED_SIGNED_RG_RGTC2
-  , pattern GL_COMPRESSED_SRGB
-  , pattern GL_COMPRESSED_SRGB_ALPHA
-  , pattern GL_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_CONDITION_SATISFIED
-  , pattern GL_CONSTANT_ALPHA
-  , pattern GL_CONSTANT_COLOR
-  , pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT
-  , pattern GL_CONTEXT_CORE_PROFILE_BIT
-  , pattern GL_CONTEXT_FLAGS
-  , pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT
-  , pattern GL_CONTEXT_PROFILE_MASK
-  , pattern GL_COPY
-  , pattern GL_COPY_INVERTED
-  , pattern GL_COPY_READ_BUFFER
-  , pattern GL_COPY_WRITE_BUFFER
-  , pattern GL_CULL_FACE
-  , pattern GL_CULL_FACE_MODE
-  , pattern GL_CURRENT_PROGRAM
-  , pattern GL_CURRENT_QUERY
-  , pattern GL_CURRENT_VERTEX_ATTRIB
-  , pattern GL_CW
-  , pattern GL_DECR
-  , pattern GL_DECR_WRAP
-  , pattern GL_DELETE_STATUS
-  , pattern GL_DEPTH
-  , pattern GL_DEPTH24_STENCIL8
-  , pattern GL_DEPTH32F_STENCIL8
-  , pattern GL_DEPTH_ATTACHMENT
-  , pattern GL_DEPTH_BUFFER_BIT
-  , pattern GL_DEPTH_CLAMP
-  , pattern GL_DEPTH_CLEAR_VALUE
-  , pattern GL_DEPTH_COMPONENT
-  , pattern GL_DEPTH_COMPONENT16
-  , pattern GL_DEPTH_COMPONENT24
-  , pattern GL_DEPTH_COMPONENT32
-  , pattern GL_DEPTH_COMPONENT32F
-  , pattern GL_DEPTH_FUNC
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_DEPTH_STENCIL
-  , pattern GL_DEPTH_STENCIL_ATTACHMENT
-  , pattern GL_DEPTH_TEST
-  , pattern GL_DEPTH_WRITEMASK
-  , pattern GL_DITHER
-  , pattern GL_DONT_CARE
-  , pattern GL_DOUBLE
-  , pattern GL_DOUBLEBUFFER
-  , pattern GL_DRAW_BUFFER
-  , pattern GL_DRAW_BUFFER0
-  , pattern GL_DRAW_BUFFER1
-  , pattern GL_DRAW_BUFFER10
-  , pattern GL_DRAW_BUFFER11
-  , pattern GL_DRAW_BUFFER12
-  , pattern GL_DRAW_BUFFER13
-  , pattern GL_DRAW_BUFFER14
-  , pattern GL_DRAW_BUFFER15
-  , pattern GL_DRAW_BUFFER2
-  , pattern GL_DRAW_BUFFER3
-  , pattern GL_DRAW_BUFFER4
-  , pattern GL_DRAW_BUFFER5
-  , pattern GL_DRAW_BUFFER6
-  , pattern GL_DRAW_BUFFER7
-  , pattern GL_DRAW_BUFFER8
-  , pattern GL_DRAW_BUFFER9
-  , pattern GL_DRAW_FRAMEBUFFER
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING
-  , pattern GL_DST_ALPHA
-  , pattern GL_DST_COLOR
-  , pattern GL_DYNAMIC_COPY
-  , pattern GL_DYNAMIC_DRAW
-  , pattern GL_DYNAMIC_READ
-  , pattern GL_ELEMENT_ARRAY_BUFFER
-  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
-  , pattern GL_EQUAL
-  , pattern GL_EQUIV
-  , pattern GL_EXTENSIONS
-  , pattern GL_FALSE
-  , pattern GL_FASTEST
-  , pattern GL_FILL
-  , pattern GL_FIRST_VERTEX_CONVENTION
-  , pattern GL_FIXED_ONLY
-  , pattern GL_FLOAT
-  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
-  , pattern GL_FLOAT_MAT2
-  , pattern GL_FLOAT_MAT2x3
-  , pattern GL_FLOAT_MAT2x4
-  , pattern GL_FLOAT_MAT3
-  , pattern GL_FLOAT_MAT3x2
-  , pattern GL_FLOAT_MAT3x4
-  , pattern GL_FLOAT_MAT4
-  , pattern GL_FLOAT_MAT4x2
-  , pattern GL_FLOAT_MAT4x3
-  , pattern GL_FLOAT_VEC2
-  , pattern GL_FLOAT_VEC3
-  , pattern GL_FLOAT_VEC4
-  , pattern GL_FRAGMENT_SHADER
-  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT
-  , pattern GL_FRAMEBUFFER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
-  , pattern GL_FRAMEBUFFER_BINDING
-  , pattern GL_FRAMEBUFFER_COMPLETE
-  , pattern GL_FRAMEBUFFER_DEFAULT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
-  , pattern GL_FRAMEBUFFER_SRGB
-  , pattern GL_FRAMEBUFFER_UNDEFINED
-  , pattern GL_FRAMEBUFFER_UNSUPPORTED
-  , pattern GL_FRONT
-  , pattern GL_FRONT_AND_BACK
-  , pattern GL_FRONT_FACE
-  , pattern GL_FRONT_LEFT
-  , pattern GL_FRONT_RIGHT
-  , pattern GL_FUNC_ADD
-  , pattern GL_FUNC_REVERSE_SUBTRACT
-  , pattern GL_FUNC_SUBTRACT
-  , pattern GL_GEOMETRY_INPUT_TYPE
-  , pattern GL_GEOMETRY_OUTPUT_TYPE
-  , pattern GL_GEOMETRY_SHADER
-  , pattern GL_GEOMETRY_VERTICES_OUT
-  , pattern GL_GEQUAL
-  , pattern GL_GREATER
-  , pattern GL_GREEN
-  , pattern GL_GREEN_INTEGER
-  , pattern GL_HALF_FLOAT
-  , pattern GL_INCR
-  , pattern GL_INCR_WRAP
-  , pattern GL_INDEX
-  , pattern GL_INFO_LOG_LENGTH
-  , pattern GL_INT
-  , pattern GL_INTERLEAVED_ATTRIBS
-  , pattern GL_INT_SAMPLER_1D
-  , pattern GL_INT_SAMPLER_1D_ARRAY
-  , pattern GL_INT_SAMPLER_2D
-  , pattern GL_INT_SAMPLER_2D_ARRAY
-  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_INT_SAMPLER_2D_RECT
-  , pattern GL_INT_SAMPLER_3D
-  , pattern GL_INT_SAMPLER_BUFFER
-  , pattern GL_INT_SAMPLER_CUBE
-  , pattern GL_INT_VEC2
-  , pattern GL_INT_VEC3
-  , pattern GL_INT_VEC4
-  , pattern GL_INVALID_ENUM
-  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
-  , pattern GL_INVALID_INDEX
-  , pattern GL_INVALID_OPERATION
-  , pattern GL_INVALID_VALUE
-  , pattern GL_INVERT
-  , pattern GL_KEEP
-  , pattern GL_LAST_VERTEX_CONVENTION
-  , pattern GL_LEFT
-  , pattern GL_LEQUAL
-  , pattern GL_LESS
-  , pattern GL_LINE
-  , pattern GL_LINEAR
-  , pattern GL_LINEAR_MIPMAP_LINEAR
-  , pattern GL_LINEAR_MIPMAP_NEAREST
-  , pattern GL_LINES
-  , pattern GL_LINES_ADJACENCY
-  , pattern GL_LINE_LOOP
-  , pattern GL_LINE_SMOOTH
-  , pattern GL_LINE_SMOOTH_HINT
-  , pattern GL_LINE_STRIP
-  , pattern GL_LINE_STRIP_ADJACENCY
-  , pattern GL_LINE_WIDTH
-  , pattern GL_LINE_WIDTH_GRANULARITY
-  , pattern GL_LINE_WIDTH_RANGE
-  , pattern GL_LINK_STATUS
-  , pattern GL_LOGIC_OP_MODE
-  , pattern GL_LOWER_LEFT
-  , pattern GL_MAJOR_VERSION
-  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
-  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
-  , pattern GL_MAP_INVALIDATE_RANGE_BIT
-  , pattern GL_MAP_READ_BIT
-  , pattern GL_MAP_UNSYNCHRONIZED_BIT
-  , pattern GL_MAP_WRITE_BIT
-  , pattern GL_MAX
-  , pattern GL_MAX_3D_TEXTURE_SIZE
-  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS
-  , pattern GL_MAX_CLIP_DISTANCES
-  , pattern GL_MAX_COLOR_ATTACHMENTS
-  , pattern GL_MAX_COLOR_TEXTURE_SAMPLES
-  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
-  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
-  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE
-  , pattern GL_MAX_DEPTH_TEXTURE_SAMPLES
-  , pattern GL_MAX_DRAW_BUFFERS
-  , pattern GL_MAX_ELEMENTS_INDICES
-  , pattern GL_MAX_ELEMENTS_VERTICES
-  , pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
-  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS
-  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS
-  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES
-  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
-  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS
-  , pattern GL_MAX_INTEGER_SAMPLES
-  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET
-  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE
-  , pattern GL_MAX_RENDERBUFFER_SIZE
-  , pattern GL_MAX_SAMPLES
-  , pattern GL_MAX_SAMPLE_MASK_WORDS
-  , pattern GL_MAX_SERVER_WAIT_TIMEOUT
-  , pattern GL_MAX_TEXTURE_BUFFER_SIZE
-  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TEXTURE_LOD_BIAS
-  , pattern GL_MAX_TEXTURE_SIZE
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
-  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
-  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
-  , pattern GL_MAX_VARYING_COMPONENTS
-  , pattern GL_MAX_VARYING_FLOATS
-  , pattern GL_MAX_VERTEX_ATTRIBS
-  , pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS
-  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
-  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS
-  , pattern GL_MAX_VIEWPORT_DIMS
-  , pattern GL_MIN
-  , pattern GL_MINOR_VERSION
-  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET
-  , pattern GL_MIRRORED_REPEAT
-  , pattern GL_MULTISAMPLE
-  , pattern GL_NAND
-  , pattern GL_NEAREST
-  , pattern GL_NEAREST_MIPMAP_LINEAR
-  , pattern GL_NEAREST_MIPMAP_NEAREST
-  , pattern GL_NEVER
-  , pattern GL_NICEST
-  , pattern GL_NONE
-  , pattern GL_NOOP
-  , pattern GL_NOR
-  , pattern GL_NOTEQUAL
-  , pattern GL_NO_ERROR
-  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_NUM_EXTENSIONS
-  , pattern GL_OBJECT_TYPE
-  , pattern GL_ONE
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR
-  , pattern GL_ONE_MINUS_DST_ALPHA
-  , pattern GL_ONE_MINUS_DST_COLOR
-  , pattern GL_ONE_MINUS_SRC_ALPHA
-  , pattern GL_ONE_MINUS_SRC_COLOR
-  , pattern GL_OR
-  , pattern GL_OR_INVERTED
-  , pattern GL_OR_REVERSE
-  , pattern GL_OUT_OF_MEMORY
-  , pattern GL_PACK_ALIGNMENT
-  , pattern GL_PACK_IMAGE_HEIGHT
-  , pattern GL_PACK_LSB_FIRST
-  , pattern GL_PACK_ROW_LENGTH
-  , pattern GL_PACK_SKIP_IMAGES
-  , pattern GL_PACK_SKIP_PIXELS
-  , pattern GL_PACK_SKIP_ROWS
-  , pattern GL_PACK_SWAP_BYTES
-  , pattern GL_PIXEL_PACK_BUFFER
-  , pattern GL_PIXEL_PACK_BUFFER_BINDING
-  , pattern GL_PIXEL_UNPACK_BUFFER
-  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING
-  , pattern GL_POINT
-  , pattern GL_POINTS
-  , pattern GL_POINT_FADE_THRESHOLD_SIZE
-  , pattern GL_POINT_SIZE
-  , pattern GL_POINT_SIZE_GRANULARITY
-  , pattern GL_POINT_SIZE_RANGE
-  , pattern GL_POINT_SPRITE_COORD_ORIGIN
-  , pattern GL_POLYGON_MODE
-  , pattern GL_POLYGON_OFFSET_FACTOR
-  , pattern GL_POLYGON_OFFSET_FILL
-  , pattern GL_POLYGON_OFFSET_LINE
-  , pattern GL_POLYGON_OFFSET_POINT
-  , pattern GL_POLYGON_OFFSET_UNITS
-  , pattern GL_POLYGON_SMOOTH
-  , pattern GL_POLYGON_SMOOTH_HINT
-  , pattern GL_PRIMITIVES_GENERATED
-  , pattern GL_PRIMITIVE_RESTART
-  , pattern GL_PRIMITIVE_RESTART_INDEX
-  , pattern GL_PROGRAM_POINT_SIZE
-  , pattern GL_PROVOKING_VERTEX
-  , pattern GL_PROXY_TEXTURE_1D
-  , pattern GL_PROXY_TEXTURE_1D_ARRAY
-  , pattern GL_PROXY_TEXTURE_2D
-  , pattern GL_PROXY_TEXTURE_2D_ARRAY
-  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE
-  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_PROXY_TEXTURE_3D
-  , pattern GL_PROXY_TEXTURE_CUBE_MAP
-  , pattern GL_PROXY_TEXTURE_RECTANGLE
-  , pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
-  , pattern GL_QUERY_BY_REGION_NO_WAIT
-  , pattern GL_QUERY_BY_REGION_WAIT
-  , pattern GL_QUERY_COUNTER_BITS
-  , pattern GL_QUERY_NO_WAIT
-  , pattern GL_QUERY_RESULT
-  , pattern GL_QUERY_RESULT_AVAILABLE
-  , pattern GL_QUERY_WAIT
-  , pattern GL_R11F_G11F_B10F
-  , pattern GL_R16
-  , pattern GL_R16F
-  , pattern GL_R16I
-  , pattern GL_R16UI
-  , pattern GL_R16_SNORM
-  , pattern GL_R32F
-  , pattern GL_R32I
-  , pattern GL_R32UI
-  , pattern GL_R3_G3_B2
-  , pattern GL_R8
-  , pattern GL_R8I
-  , pattern GL_R8UI
-  , pattern GL_R8_SNORM
-  , pattern GL_RASTERIZER_DISCARD
-  , pattern GL_READ_BUFFER
-  , pattern GL_READ_FRAMEBUFFER
-  , pattern GL_READ_FRAMEBUFFER_BINDING
-  , pattern GL_READ_ONLY
-  , pattern GL_READ_WRITE
-  , pattern GL_RED
-  , pattern GL_RED_INTEGER
-  , pattern GL_RENDERBUFFER
-  , pattern GL_RENDERBUFFER_ALPHA_SIZE
-  , pattern GL_RENDERBUFFER_BINDING
-  , pattern GL_RENDERBUFFER_BLUE_SIZE
-  , pattern GL_RENDERBUFFER_DEPTH_SIZE
-  , pattern GL_RENDERBUFFER_GREEN_SIZE
-  , pattern GL_RENDERBUFFER_HEIGHT
-  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
-  , pattern GL_RENDERBUFFER_RED_SIZE
-  , pattern GL_RENDERBUFFER_SAMPLES
-  , pattern GL_RENDERBUFFER_STENCIL_SIZE
-  , pattern GL_RENDERBUFFER_WIDTH
-  , pattern GL_RENDERER
-  , pattern GL_REPEAT
-  , pattern GL_REPLACE
-  , pattern GL_RG
-  , pattern GL_RG16
-  , pattern GL_RG16F
-  , pattern GL_RG16I
-  , pattern GL_RG16UI
-  , pattern GL_RG16_SNORM
-  , pattern GL_RG32F
-  , pattern GL_RG32I
-  , pattern GL_RG32UI
-  , pattern GL_RG8
-  , pattern GL_RG8I
-  , pattern GL_RG8UI
-  , pattern GL_RG8_SNORM
-  , pattern GL_RGB
-  , pattern GL_RGB10
-  , pattern GL_RGB10_A2
-  , pattern GL_RGB12
-  , pattern GL_RGB16
-  , pattern GL_RGB16F
-  , pattern GL_RGB16I
-  , pattern GL_RGB16UI
-  , pattern GL_RGB16_SNORM
-  , pattern GL_RGB32F
-  , pattern GL_RGB32I
-  , pattern GL_RGB32UI
-  , pattern GL_RGB4
-  , pattern GL_RGB5
-  , pattern GL_RGB5_A1
-  , pattern GL_RGB8
-  , pattern GL_RGB8I
-  , pattern GL_RGB8UI
-  , pattern GL_RGB8_SNORM
-  , pattern GL_RGB9_E5
-  , pattern GL_RGBA
-  , pattern GL_RGBA12
-  , pattern GL_RGBA16
-  , pattern GL_RGBA16F
-  , pattern GL_RGBA16I
-  , pattern GL_RGBA16UI
-  , pattern GL_RGBA16_SNORM
-  , pattern GL_RGBA2
-  , pattern GL_RGBA32F
-  , pattern GL_RGBA32I
-  , pattern GL_RGBA32UI
-  , pattern GL_RGBA4
-  , pattern GL_RGBA8
-  , pattern GL_RGBA8I
-  , pattern GL_RGBA8UI
-  , pattern GL_RGBA8_SNORM
-  , pattern GL_RGBA_INTEGER
-  , pattern GL_RGB_INTEGER
-  , pattern GL_RG_INTEGER
-  , pattern GL_RIGHT
-  , pattern GL_SAMPLER_1D
-  , pattern GL_SAMPLER_1D_ARRAY
-  , pattern GL_SAMPLER_1D_ARRAY_SHADOW
-  , pattern GL_SAMPLER_1D_SHADOW
-  , pattern GL_SAMPLER_2D
-  , pattern GL_SAMPLER_2D_ARRAY
-  , pattern GL_SAMPLER_2D_ARRAY_SHADOW
-  , pattern GL_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_SAMPLER_2D_RECT
-  , pattern GL_SAMPLER_2D_RECT_SHADOW
-  , pattern GL_SAMPLER_2D_SHADOW
-  , pattern GL_SAMPLER_3D
-  , pattern GL_SAMPLER_BUFFER
-  , pattern GL_SAMPLER_CUBE
-  , pattern GL_SAMPLER_CUBE_SHADOW
-  , pattern GL_SAMPLES
-  , pattern GL_SAMPLES_PASSED
-  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
-  , pattern GL_SAMPLE_ALPHA_TO_ONE
-  , pattern GL_SAMPLE_BUFFERS
-  , pattern GL_SAMPLE_COVERAGE
-  , pattern GL_SAMPLE_COVERAGE_INVERT
-  , pattern GL_SAMPLE_COVERAGE_VALUE
-  , pattern GL_SAMPLE_MASK
-  , pattern GL_SAMPLE_MASK_VALUE
-  , pattern GL_SAMPLE_POSITION
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_SEPARATE_ATTRIBS
-  , pattern GL_SET
-  , pattern GL_SHADER_SOURCE_LENGTH
-  , pattern GL_SHADER_TYPE
-  , pattern GL_SHADING_LANGUAGE_VERSION
-  , pattern GL_SHORT
-  , pattern GL_SIGNALED
-  , pattern GL_SIGNED_NORMALIZED
-  , pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY
-  , pattern GL_SMOOTH_LINE_WIDTH_RANGE
-  , pattern GL_SMOOTH_POINT_SIZE_GRANULARITY
-  , pattern GL_SMOOTH_POINT_SIZE_RANGE
-  , pattern GL_SRC1_ALPHA
-  , pattern GL_SRC_ALPHA
-  , pattern GL_SRC_ALPHA_SATURATE
-  , pattern GL_SRC_COLOR
-  , pattern GL_SRGB
-  , pattern GL_SRGB8
-  , pattern GL_SRGB8_ALPHA8
-  , pattern GL_SRGB_ALPHA
-  , pattern GL_STATIC_COPY
-  , pattern GL_STATIC_DRAW
-  , pattern GL_STATIC_READ
-  , pattern GL_STENCIL
-  , pattern GL_STENCIL_ATTACHMENT
-  , pattern GL_STENCIL_BACK_FAIL
-  , pattern GL_STENCIL_BACK_FUNC
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_BACK_REF
-  , pattern GL_STENCIL_BACK_VALUE_MASK
-  , pattern GL_STENCIL_BACK_WRITEMASK
-  , pattern GL_STENCIL_BUFFER_BIT
-  , pattern GL_STENCIL_CLEAR_VALUE
-  , pattern GL_STENCIL_FAIL
-  , pattern GL_STENCIL_FUNC
-  , pattern GL_STENCIL_INDEX
-  , pattern GL_STENCIL_INDEX1
-  , pattern GL_STENCIL_INDEX16
-  , pattern GL_STENCIL_INDEX4
-  , pattern GL_STENCIL_INDEX8
-  , pattern GL_STENCIL_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_REF
-  , pattern GL_STENCIL_TEST
-  , pattern GL_STENCIL_VALUE_MASK
-  , pattern GL_STENCIL_WRITEMASK
-  , pattern GL_STEREO
-  , pattern GL_STREAM_COPY
-  , pattern GL_STREAM_DRAW
-  , pattern GL_STREAM_READ
-  , pattern GL_SUBPIXEL_BITS
-  , pattern GL_SYNC_CONDITION
-  , pattern GL_SYNC_FENCE
-  , pattern GL_SYNC_FLAGS
-  , pattern GL_SYNC_FLUSH_COMMANDS_BIT
-  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE
-  , pattern GL_SYNC_STATUS
-  , pattern GL_TEXTURE
-  , pattern GL_TEXTURE0
-  , pattern GL_TEXTURE1
-  , pattern GL_TEXTURE10
-  , pattern GL_TEXTURE11
-  , pattern GL_TEXTURE12
-  , pattern GL_TEXTURE13
-  , pattern GL_TEXTURE14
-  , pattern GL_TEXTURE15
-  , pattern GL_TEXTURE16
-  , pattern GL_TEXTURE17
-  , pattern GL_TEXTURE18
-  , pattern GL_TEXTURE19
-  , pattern GL_TEXTURE2
-  , pattern GL_TEXTURE20
-  , pattern GL_TEXTURE21
-  , pattern GL_TEXTURE22
-  , pattern GL_TEXTURE23
-  , pattern GL_TEXTURE24
-  , pattern GL_TEXTURE25
-  , pattern GL_TEXTURE26
-  , pattern GL_TEXTURE27
-  , pattern GL_TEXTURE28
-  , pattern GL_TEXTURE29
-  , pattern GL_TEXTURE3
-  , pattern GL_TEXTURE30
-  , pattern GL_TEXTURE31
-  , pattern GL_TEXTURE4
-  , pattern GL_TEXTURE5
-  , pattern GL_TEXTURE6
-  , pattern GL_TEXTURE7
-  , pattern GL_TEXTURE8
-  , pattern GL_TEXTURE9
-  , pattern GL_TEXTURE_1D
-  , pattern GL_TEXTURE_1D_ARRAY
-  , pattern GL_TEXTURE_2D
-  , pattern GL_TEXTURE_2D_ARRAY
-  , pattern GL_TEXTURE_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_3D
-  , pattern GL_TEXTURE_ALPHA_SIZE
-  , pattern GL_TEXTURE_ALPHA_TYPE
-  , pattern GL_TEXTURE_BASE_LEVEL
-  , pattern GL_TEXTURE_BINDING_1D
-  , pattern GL_TEXTURE_BINDING_1D_ARRAY
-  , pattern GL_TEXTURE_BINDING_2D
-  , pattern GL_TEXTURE_BINDING_2D_ARRAY
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_BINDING_3D
-  , pattern GL_TEXTURE_BINDING_BUFFER
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP
-  , pattern GL_TEXTURE_BINDING_RECTANGLE
-  , pattern GL_TEXTURE_BLUE_SIZE
-  , pattern GL_TEXTURE_BLUE_TYPE
-  , pattern GL_TEXTURE_BORDER_COLOR
-  , pattern GL_TEXTURE_BUFFER
-  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING
-  , pattern GL_TEXTURE_COMPARE_FUNC
-  , pattern GL_TEXTURE_COMPARE_MODE
-  , pattern GL_TEXTURE_COMPRESSED
-  , pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE
-  , pattern GL_TEXTURE_COMPRESSION_HINT
-  , pattern GL_TEXTURE_CUBE_MAP
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z
-  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
-  , pattern GL_TEXTURE_DEPTH
-  , pattern GL_TEXTURE_DEPTH_SIZE
-  , pattern GL_TEXTURE_DEPTH_TYPE
-  , pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
-  , pattern GL_TEXTURE_GREEN_SIZE
-  , pattern GL_TEXTURE_GREEN_TYPE
-  , pattern GL_TEXTURE_HEIGHT
-  , pattern GL_TEXTURE_INTERNAL_FORMAT
-  , pattern GL_TEXTURE_LOD_BIAS
-  , pattern GL_TEXTURE_MAG_FILTER
-  , pattern GL_TEXTURE_MAX_LEVEL
-  , pattern GL_TEXTURE_MAX_LOD
-  , pattern GL_TEXTURE_MIN_FILTER
-  , pattern GL_TEXTURE_MIN_LOD
-  , pattern GL_TEXTURE_RECTANGLE
-  , pattern GL_TEXTURE_RED_SIZE
-  , pattern GL_TEXTURE_RED_TYPE
-  , pattern GL_TEXTURE_SAMPLES
-  , pattern GL_TEXTURE_SHARED_SIZE
-  , pattern GL_TEXTURE_STENCIL_SIZE
-  , pattern GL_TEXTURE_WIDTH
-  , pattern GL_TEXTURE_WRAP_R
-  , pattern GL_TEXTURE_WRAP_S
-  , pattern GL_TEXTURE_WRAP_T
-  , pattern GL_TIMEOUT_EXPIRED
-  , pattern GL_TIMEOUT_IGNORED
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START
-  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
-  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS
-  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
-  , pattern GL_TRIANGLES
-  , pattern GL_TRIANGLES_ADJACENCY
-  , pattern GL_TRIANGLE_FAN
-  , pattern GL_TRIANGLE_STRIP
-  , pattern GL_TRIANGLE_STRIP_ADJACENCY
-  , pattern GL_TRUE
-  , pattern GL_UNIFORM_ARRAY_STRIDE
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
-  , pattern GL_UNIFORM_BLOCK_BINDING
-  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
-  , pattern GL_UNIFORM_BLOCK_INDEX
-  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_UNIFORM_BUFFER
-  , pattern GL_UNIFORM_BUFFER_BINDING
-  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_UNIFORM_BUFFER_SIZE
-  , pattern GL_UNIFORM_BUFFER_START
-  , pattern GL_UNIFORM_IS_ROW_MAJOR
-  , pattern GL_UNIFORM_MATRIX_STRIDE
-  , pattern GL_UNIFORM_NAME_LENGTH
-  , pattern GL_UNIFORM_OFFSET
-  , pattern GL_UNIFORM_SIZE
-  , pattern GL_UNIFORM_TYPE
-  , pattern GL_UNPACK_ALIGNMENT
-  , pattern GL_UNPACK_IMAGE_HEIGHT
-  , pattern GL_UNPACK_LSB_FIRST
-  , pattern GL_UNPACK_ROW_LENGTH
-  , pattern GL_UNPACK_SKIP_IMAGES
-  , pattern GL_UNPACK_SKIP_PIXELS
-  , pattern GL_UNPACK_SKIP_ROWS
-  , pattern GL_UNPACK_SWAP_BYTES
-  , pattern GL_UNSIGNALED
-  , pattern GL_UNSIGNED_BYTE
-  , pattern GL_UNSIGNED_BYTE_2_3_3_REV
-  , pattern GL_UNSIGNED_BYTE_3_3_2
-  , pattern GL_UNSIGNED_INT
-  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
-  , pattern GL_UNSIGNED_INT_10_10_10_2
-  , pattern GL_UNSIGNED_INT_24_8
-  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
-  , pattern GL_UNSIGNED_INT_5_9_9_9_REV
-  , pattern GL_UNSIGNED_INT_8_8_8_8
-  , pattern GL_UNSIGNED_INT_8_8_8_8_REV
-  , pattern GL_UNSIGNED_INT_SAMPLER_1D
-  , pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT
-  , pattern GL_UNSIGNED_INT_SAMPLER_3D
-  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE
-  , pattern GL_UNSIGNED_INT_VEC2
-  , pattern GL_UNSIGNED_INT_VEC3
-  , pattern GL_UNSIGNED_INT_VEC4
-  , pattern GL_UNSIGNED_NORMALIZED
-  , pattern GL_UNSIGNED_SHORT
-  , pattern GL_UNSIGNED_SHORT_1_5_5_5_REV
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV
-  , pattern GL_UNSIGNED_SHORT_5_5_5_1
-  , pattern GL_UNSIGNED_SHORT_5_6_5
-  , pattern GL_UNSIGNED_SHORT_5_6_5_REV
-  , pattern GL_UPPER_LEFT
-  , pattern GL_VALIDATE_STATUS
-  , pattern GL_VENDOR
-  , pattern GL_VERSION
-  , pattern GL_VERTEX_ARRAY_BINDING
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
-  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER
-  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
-  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
-  , pattern GL_VERTEX_PROGRAM_POINT_SIZE
-  , pattern GL_VERTEX_SHADER
-  , pattern GL_VIEWPORT
-  , pattern GL_WAIT_FAILED
-  , pattern GL_WRITE_ONLY
-  , pattern GL_XOR
-  , pattern GL_ZERO
-) where
-
-import Graphics.GL.Internal.Shared
-
-pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
-
-pattern GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001
-
-pattern GL_CONTEXT_PROFILE_MASK = 0x9126
-
-pattern GL_PROGRAM_POINT_SIZE = 0x8642
diff --git a/dist/build/autogen/Graphics/GL/Core33.hs b/dist/build/autogen/Graphics/GL/Core33.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core33.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core33 (
-  -- * Graphics.GL.Core33
-    module Graphics.GL.Core32
-  , glBindFragDataLocationIndexed
-  , glBindSampler
-  , glDeleteSamplers
-  , glGenSamplers
-  , glGetFragDataIndex
-  , glGetQueryObjecti64v
-  , glGetQueryObjectui64v
-  , glGetSamplerParameterIiv
-  , glGetSamplerParameterIuiv
-  , glGetSamplerParameterfv
-  , glGetSamplerParameteriv
-  , glIsSampler
-  , glQueryCounter
-  , glSamplerParameterIiv
-  , glSamplerParameterIuiv
-  , glSamplerParameterf
-  , glSamplerParameterfv
-  , glSamplerParameteri
-  , glSamplerParameteriv
-  , glVertexAttribDivisor
-  , glVertexAttribP1ui
-  , glVertexAttribP1uiv
-  , glVertexAttribP2ui
-  , glVertexAttribP2uiv
-  , glVertexAttribP3ui
-  , glVertexAttribP3uiv
-  , glVertexAttribP4ui
-  , glVertexAttribP4uiv
-  , pattern GL_ANY_SAMPLES_PASSED
-  , pattern GL_INT_2_10_10_10_REV
-  , pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
-  , pattern GL_ONE_MINUS_SRC1_ALPHA
-  , pattern GL_ONE_MINUS_SRC1_COLOR
-  , pattern GL_RGB10_A2UI
-  , pattern GL_SAMPLER_BINDING
-  , pattern GL_SRC1_COLOR
-  , pattern GL_TEXTURE_SWIZZLE_A
-  , pattern GL_TEXTURE_SWIZZLE_B
-  , pattern GL_TEXTURE_SWIZZLE_G
-  , pattern GL_TEXTURE_SWIZZLE_R
-  , pattern GL_TEXTURE_SWIZZLE_RGBA
-  , pattern GL_TIMESTAMP
-  , pattern GL_TIME_ELAPSED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Core32
diff --git a/dist/build/autogen/Graphics/GL/Core40.hs b/dist/build/autogen/Graphics/GL/Core40.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core40.hs
+++ /dev/null
@@ -1,136 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core40 (
-  -- * Graphics.GL.Core40
-    module Graphics.GL.Core33
-  , glBeginQueryIndexed
-  , glBindTransformFeedback
-  , glBlendEquationSeparatei
-  , glBlendEquationi
-  , glBlendFuncSeparatei
-  , glBlendFunci
-  , glDeleteTransformFeedbacks
-  , glDrawArraysIndirect
-  , glDrawElementsIndirect
-  , glDrawTransformFeedback
-  , glDrawTransformFeedbackStream
-  , glEndQueryIndexed
-  , glGenTransformFeedbacks
-  , glGetActiveSubroutineName
-  , glGetActiveSubroutineUniformName
-  , glGetActiveSubroutineUniformiv
-  , glGetProgramStageiv
-  , glGetQueryIndexediv
-  , glGetSubroutineIndex
-  , glGetSubroutineUniformLocation
-  , glGetUniformSubroutineuiv
-  , glGetUniformdv
-  , glIsTransformFeedback
-  , glMinSampleShading
-  , glPatchParameterfv
-  , glPatchParameteri
-  , glPauseTransformFeedback
-  , glResumeTransformFeedback
-  , glUniform1d
-  , glUniform1dv
-  , glUniform2d
-  , glUniform2dv
-  , glUniform3d
-  , glUniform3dv
-  , glUniform4d
-  , glUniform4dv
-  , glUniformMatrix2dv
-  , glUniformMatrix2x3dv
-  , glUniformMatrix2x4dv
-  , glUniformMatrix3dv
-  , glUniformMatrix3x2dv
-  , glUniformMatrix3x4dv
-  , glUniformMatrix4dv
-  , glUniformMatrix4x2dv
-  , glUniformMatrix4x3dv
-  , glUniformSubroutinesuiv
-  , pattern GL_ACTIVE_SUBROUTINES
-  , pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH
-  , pattern GL_ACTIVE_SUBROUTINE_UNIFORMS
-  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
-  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
-  , pattern GL_COMPATIBLE_SUBROUTINES
-  , pattern GL_DOUBLE_MAT2
-  , pattern GL_DOUBLE_MAT2x3
-  , pattern GL_DOUBLE_MAT2x4
-  , pattern GL_DOUBLE_MAT3
-  , pattern GL_DOUBLE_MAT3x2
-  , pattern GL_DOUBLE_MAT3x4
-  , pattern GL_DOUBLE_MAT4
-  , pattern GL_DOUBLE_MAT4x2
-  , pattern GL_DOUBLE_MAT4x3
-  , pattern GL_DOUBLE_VEC2
-  , pattern GL_DOUBLE_VEC3
-  , pattern GL_DOUBLE_VEC4
-  , pattern GL_DRAW_INDIRECT_BUFFER
-  , pattern GL_DRAW_INDIRECT_BUFFER_BINDING
-  , pattern GL_FRACTIONAL_EVEN
-  , pattern GL_FRACTIONAL_ODD
-  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
-  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
-  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY
-  , pattern GL_ISOLINES
-  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
-  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
-  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS
-  , pattern GL_MAX_PATCH_VERTICES
-  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET
-  , pattern GL_MAX_SUBROUTINES
-  , pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
-  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
-  , pattern GL_MAX_TESS_GEN_LEVEL
-  , pattern GL_MAX_TESS_PATCH_COMPONENTS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
-  , pattern GL_MAX_VERTEX_STREAMS
-  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
-  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET
-  , pattern GL_MIN_SAMPLE_SHADING_VALUE
-  , pattern GL_NUM_COMPATIBLE_SUBROUTINES
-  , pattern GL_PATCHES
-  , pattern GL_PATCH_DEFAULT_INNER_LEVEL
-  , pattern GL_PATCH_DEFAULT_OUTER_LEVEL
-  , pattern GL_PATCH_VERTICES
-  , pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY
-  , pattern GL_QUADS
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
-  , pattern GL_SAMPLE_SHADING
-  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES
-  , pattern GL_TESS_CONTROL_SHADER
-  , pattern GL_TESS_EVALUATION_SHADER
-  , pattern GL_TESS_GEN_MODE
-  , pattern GL_TESS_GEN_POINT_MODE
-  , pattern GL_TESS_GEN_SPACING
-  , pattern GL_TESS_GEN_VERTEX_ORDER
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
-  , pattern GL_TEXTURE_CUBE_MAP_ARRAY
-  , pattern GL_TRANSFORM_FEEDBACK
-  , pattern GL_TRANSFORM_FEEDBACK_BINDING
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Core33
-
-pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
diff --git a/dist/build/autogen/Graphics/GL/Core41.hs b/dist/build/autogen/Graphics/GL/Core41.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core41.hs
+++ /dev/null
@@ -1,133 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core41 (
-  -- * Graphics.GL.Core41
-    module Graphics.GL.Core40
-  , glActiveShaderProgram
-  , glBindProgramPipeline
-  , glClearDepthf
-  , glCreateShaderProgramv
-  , glDeleteProgramPipelines
-  , glDepthRangeArrayv
-  , glDepthRangeIndexed
-  , glDepthRangef
-  , glGenProgramPipelines
-  , glGetDoublei_v
-  , glGetFloati_v
-  , glGetProgramBinary
-  , glGetProgramPipelineInfoLog
-  , glGetProgramPipelineiv
-  , glGetShaderPrecisionFormat
-  , glGetVertexAttribLdv
-  , glIsProgramPipeline
-  , glProgramBinary
-  , glProgramParameteri
-  , glProgramUniform1d
-  , glProgramUniform1dv
-  , glProgramUniform1f
-  , glProgramUniform1fv
-  , glProgramUniform1i
-  , glProgramUniform1iv
-  , glProgramUniform1ui
-  , glProgramUniform1uiv
-  , glProgramUniform2d
-  , glProgramUniform2dv
-  , glProgramUniform2f
-  , glProgramUniform2fv
-  , glProgramUniform2i
-  , glProgramUniform2iv
-  , glProgramUniform2ui
-  , glProgramUniform2uiv
-  , glProgramUniform3d
-  , glProgramUniform3dv
-  , glProgramUniform3f
-  , glProgramUniform3fv
-  , glProgramUniform3i
-  , glProgramUniform3iv
-  , glProgramUniform3ui
-  , glProgramUniform3uiv
-  , glProgramUniform4d
-  , glProgramUniform4dv
-  , glProgramUniform4f
-  , glProgramUniform4fv
-  , glProgramUniform4i
-  , glProgramUniform4iv
-  , glProgramUniform4ui
-  , glProgramUniform4uiv
-  , glProgramUniformMatrix2dv
-  , glProgramUniformMatrix2fv
-  , glProgramUniformMatrix2x3dv
-  , glProgramUniformMatrix2x3fv
-  , glProgramUniformMatrix2x4dv
-  , glProgramUniformMatrix2x4fv
-  , glProgramUniformMatrix3dv
-  , glProgramUniformMatrix3fv
-  , glProgramUniformMatrix3x2dv
-  , glProgramUniformMatrix3x2fv
-  , glProgramUniformMatrix3x4dv
-  , glProgramUniformMatrix3x4fv
-  , glProgramUniformMatrix4dv
-  , glProgramUniformMatrix4fv
-  , glProgramUniformMatrix4x2dv
-  , glProgramUniformMatrix4x2fv
-  , glProgramUniformMatrix4x3dv
-  , glProgramUniformMatrix4x3fv
-  , glReleaseShaderCompiler
-  , glScissorArrayv
-  , glScissorIndexed
-  , glScissorIndexedv
-  , glShaderBinary
-  , glUseProgramStages
-  , glValidateProgramPipeline
-  , glVertexAttribL1d
-  , glVertexAttribL1dv
-  , glVertexAttribL2d
-  , glVertexAttribL2dv
-  , glVertexAttribL3d
-  , glVertexAttribL3dv
-  , glVertexAttribL4d
-  , glVertexAttribL4dv
-  , glVertexAttribLPointer
-  , glViewportArrayv
-  , glViewportIndexedf
-  , glViewportIndexedfv
-  , pattern GL_ACTIVE_PROGRAM
-  , pattern GL_ALL_SHADER_BITS
-  , pattern GL_FIXED
-  , pattern GL_FRAGMENT_SHADER_BIT
-  , pattern GL_GEOMETRY_SHADER_BIT
-  , pattern GL_HIGH_FLOAT
-  , pattern GL_HIGH_INT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
-  , pattern GL_LAYER_PROVOKING_VERTEX
-  , pattern GL_LOW_FLOAT
-  , pattern GL_LOW_INT
-  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
-  , pattern GL_MAX_VARYING_VECTORS
-  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
-  , pattern GL_MAX_VIEWPORTS
-  , pattern GL_MEDIUM_FLOAT
-  , pattern GL_MEDIUM_INT
-  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
-  , pattern GL_NUM_SHADER_BINARY_FORMATS
-  , pattern GL_PROGRAM_BINARY_FORMATS
-  , pattern GL_PROGRAM_BINARY_LENGTH
-  , pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT
-  , pattern GL_PROGRAM_PIPELINE_BINDING
-  , pattern GL_PROGRAM_SEPARABLE
-  , pattern GL_RGB565
-  , pattern GL_SHADER_BINARY_FORMATS
-  , pattern GL_SHADER_COMPILER
-  , pattern GL_TESS_CONTROL_SHADER_BIT
-  , pattern GL_TESS_EVALUATION_SHADER_BIT
-  , pattern GL_UNDEFINED_VERTEX
-  , pattern GL_VERTEX_SHADER_BIT
-  , pattern GL_VIEWPORT_BOUNDS_RANGE
-  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX
-  , pattern GL_VIEWPORT_SUBPIXEL_BITS
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Core40
diff --git a/dist/build/autogen/Graphics/GL/Core42.hs b/dist/build/autogen/Graphics/GL/Core42.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core42.hs
+++ /dev/null
@@ -1,142 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core42 (
-  -- * Graphics.GL.Core42
-    module Graphics.GL.Core41
-  , glBindImageTexture
-  , glDrawArraysInstancedBaseInstance
-  , glDrawElementsInstancedBaseInstance
-  , glDrawElementsInstancedBaseVertexBaseInstance
-  , glDrawTransformFeedbackInstanced
-  , glDrawTransformFeedbackStreamInstanced
-  , glGetActiveAtomicCounterBufferiv
-  , glGetInternalformativ
-  , glMemoryBarrier
-  , glTexStorage1D
-  , glTexStorage2D
-  , glTexStorage3D
-  , pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_ALL_BARRIER_BITS
-  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT
-  , pattern GL_ATOMIC_COUNTER_BUFFER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
-  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
-  , pattern GL_ATOMIC_COUNTER_BUFFER_BINDING
-  , pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_SIZE
-  , pattern GL_ATOMIC_COUNTER_BUFFER_START
-  , pattern GL_BUFFER_UPDATE_BARRIER_BIT
-  , pattern GL_COMMAND_BARRIER_BIT
-  , pattern GL_COMPRESSED_RGBA_BPTC_UNORM
-  , pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
-  , pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
-  , pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
-  , pattern GL_COPY_READ_BUFFER_BINDING
-  , pattern GL_COPY_WRITE_BUFFER_BINDING
-  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT
-  , pattern GL_FRAMEBUFFER_BARRIER_BIT
-  , pattern GL_IMAGE_1D
-  , pattern GL_IMAGE_1D_ARRAY
-  , pattern GL_IMAGE_2D
-  , pattern GL_IMAGE_2D_ARRAY
-  , pattern GL_IMAGE_2D_MULTISAMPLE
-  , pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_IMAGE_2D_RECT
-  , pattern GL_IMAGE_3D
-  , pattern GL_IMAGE_BINDING_ACCESS
-  , pattern GL_IMAGE_BINDING_FORMAT
-  , pattern GL_IMAGE_BINDING_LAYER
-  , pattern GL_IMAGE_BINDING_LAYERED
-  , pattern GL_IMAGE_BINDING_LEVEL
-  , pattern GL_IMAGE_BINDING_NAME
-  , pattern GL_IMAGE_BUFFER
-  , pattern GL_IMAGE_CUBE
-  , pattern GL_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
-  , pattern GL_INT_IMAGE_1D
-  , pattern GL_INT_IMAGE_1D_ARRAY
-  , pattern GL_INT_IMAGE_2D
-  , pattern GL_INT_IMAGE_2D_ARRAY
-  , pattern GL_INT_IMAGE_2D_MULTISAMPLE
-  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_INT_IMAGE_2D_RECT
-  , pattern GL_INT_IMAGE_3D
-  , pattern GL_INT_IMAGE_BUFFER
-  , pattern GL_INT_IMAGE_CUBE
-  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
-  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
-  , pattern GL_MAX_COMBINED_ATOMIC_COUNTERS
-  , pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_COMBINED_IMAGE_UNIFORMS
-  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
-  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS
-  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS
-  , pattern GL_MAX_IMAGE_SAMPLES
-  , pattern GL_MAX_IMAGE_UNITS
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
-  , pattern GL_MAX_VERTEX_ATOMIC_COUNTERS
-  , pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_VERTEX_IMAGE_UNIFORMS
-  , pattern GL_MIN_MAP_BUFFER_ALIGNMENT
-  , pattern GL_NUM_SAMPLE_COUNTS
-  , pattern GL_PACK_COMPRESSED_BLOCK_DEPTH
-  , pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT
-  , pattern GL_PACK_COMPRESSED_BLOCK_SIZE
-  , pattern GL_PACK_COMPRESSED_BLOCK_WIDTH
-  , pattern GL_PIXEL_BUFFER_BARRIER_BIT
-  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
-  , pattern GL_TEXTURE_FETCH_BARRIER_BIT
-  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
-  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT
-  , pattern GL_TRANSFORM_FEEDBACK_ACTIVE
-  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT
-  , pattern GL_TRANSFORM_FEEDBACK_PAUSED
-  , pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
-  , pattern GL_UNIFORM_BARRIER_BIT
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH
-  , pattern GL_UNSIGNED_INT_ATOMIC_COUNTER
-  , pattern GL_UNSIGNED_INT_IMAGE_1D
-  , pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY
-  , pattern GL_UNSIGNED_INT_IMAGE_2D
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_RECT
-  , pattern GL_UNSIGNED_INT_IMAGE_3D
-  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Core41
-
-pattern GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
-
-pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
-
-pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
-
-pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
diff --git a/dist/build/autogen/Graphics/GL/Core43.hs b/dist/build/autogen/Graphics/GL/Core43.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core43.hs
+++ /dev/null
@@ -1,319 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core43 (
-  -- * Graphics.GL.Core43
-    module Graphics.GL.Core42
-  , glBindVertexBuffer
-  , glClearBufferData
-  , glClearBufferSubData
-  , glCopyImageSubData
-  , glDebugMessageCallback
-  , glDebugMessageControl
-  , glDebugMessageInsert
-  , glDispatchCompute
-  , glDispatchComputeIndirect
-  , glFramebufferParameteri
-  , glGetDebugMessageLog
-  , glGetFramebufferParameteriv
-  , glGetInternalformati64v
-  , glGetObjectLabel
-  , glGetObjectPtrLabel
-  , glGetPointerv
-  , glGetProgramInterfaceiv
-  , glGetProgramResourceIndex
-  , glGetProgramResourceLocation
-  , glGetProgramResourceLocationIndex
-  , glGetProgramResourceName
-  , glGetProgramResourceiv
-  , glInvalidateBufferData
-  , glInvalidateBufferSubData
-  , glInvalidateFramebuffer
-  , glInvalidateSubFramebuffer
-  , glInvalidateTexImage
-  , glInvalidateTexSubImage
-  , glMultiDrawArraysIndirect
-  , glMultiDrawElementsIndirect
-  , glObjectLabel
-  , glObjectPtrLabel
-  , glPopDebugGroup
-  , glPushDebugGroup
-  , glShaderStorageBlockBinding
-  , glTexBufferRange
-  , glTexStorage2DMultisample
-  , glTexStorage3DMultisample
-  , glTextureView
-  , glVertexAttribBinding
-  , glVertexAttribFormat
-  , glVertexAttribIFormat
-  , glVertexAttribLFormat
-  , glVertexBindingDivisor
-  , pattern GL_ACTIVE_RESOURCES
-  , pattern GL_ACTIVE_VARIABLES
-  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE
-  , pattern GL_ARRAY_SIZE
-  , pattern GL_ARRAY_STRIDE
-  , pattern GL_ATOMIC_COUNTER_BUFFER_INDEX
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER
-  , pattern GL_AUTO_GENERATE_MIPMAP
-  , pattern GL_BLOCK_INDEX
-  , pattern GL_BUFFER
-  , pattern GL_BUFFER_BINDING
-  , pattern GL_BUFFER_DATA_SIZE
-  , pattern GL_BUFFER_VARIABLE
-  , pattern GL_CAVEAT_SUPPORT
-  , pattern GL_CLEAR_BUFFER
-  , pattern GL_COLOR_COMPONENTS
-  , pattern GL_COLOR_ENCODING
-  , pattern GL_COLOR_RENDERABLE
-  , pattern GL_COMPRESSED_R11_EAC
-  , pattern GL_COMPRESSED_RG11_EAC
-  , pattern GL_COMPRESSED_RGB8_ETC2
-  , pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
-  , pattern GL_COMPRESSED_RGBA8_ETC2_EAC
-  , pattern GL_COMPRESSED_SIGNED_R11_EAC
-  , pattern GL_COMPRESSED_SIGNED_RG11_EAC
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
-  , pattern GL_COMPRESSED_SRGB8_ETC2
-  , pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
-  , pattern GL_COMPUTE_SHADER
-  , pattern GL_COMPUTE_SHADER_BIT
-  , pattern GL_COMPUTE_SUBROUTINE
-  , pattern GL_COMPUTE_SUBROUTINE_UNIFORM
-  , pattern GL_COMPUTE_TEXTURE
-  , pattern GL_COMPUTE_WORK_GROUP_SIZE
-  , pattern GL_CONTEXT_FLAG_DEBUG_BIT
-  , pattern GL_DEBUG_CALLBACK_FUNCTION
-  , pattern GL_DEBUG_CALLBACK_USER_PARAM
-  , pattern GL_DEBUG_GROUP_STACK_DEPTH
-  , pattern GL_DEBUG_LOGGED_MESSAGES
-  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
-  , pattern GL_DEBUG_OUTPUT
-  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS
-  , pattern GL_DEBUG_SEVERITY_HIGH
-  , pattern GL_DEBUG_SEVERITY_LOW
-  , pattern GL_DEBUG_SEVERITY_MEDIUM
-  , pattern GL_DEBUG_SEVERITY_NOTIFICATION
-  , pattern GL_DEBUG_SOURCE_API
-  , pattern GL_DEBUG_SOURCE_APPLICATION
-  , pattern GL_DEBUG_SOURCE_OTHER
-  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER
-  , pattern GL_DEBUG_SOURCE_THIRD_PARTY
-  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM
-  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
-  , pattern GL_DEBUG_TYPE_ERROR
-  , pattern GL_DEBUG_TYPE_MARKER
-  , pattern GL_DEBUG_TYPE_OTHER
-  , pattern GL_DEBUG_TYPE_PERFORMANCE
-  , pattern GL_DEBUG_TYPE_POP_GROUP
-  , pattern GL_DEBUG_TYPE_PORTABILITY
-  , pattern GL_DEBUG_TYPE_PUSH_GROUP
-  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
-  , pattern GL_DEPTH_COMPONENTS
-  , pattern GL_DEPTH_RENDERABLE
-  , pattern GL_DEPTH_STENCIL_TEXTURE_MODE
-  , pattern GL_DISPATCH_INDIRECT_BUFFER
-  , pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING
-  , pattern GL_FILTER
-  , pattern GL_FRAGMENT_SUBROUTINE
-  , pattern GL_FRAGMENT_SUBROUTINE_UNIFORM
-  , pattern GL_FRAGMENT_TEXTURE
-  , pattern GL_FRAMEBUFFER_BLEND
-  , pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
-  , pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT
-  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS
-  , pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES
-  , pattern GL_FRAMEBUFFER_DEFAULT_WIDTH
-  , pattern GL_FRAMEBUFFER_RENDERABLE
-  , pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED
-  , pattern GL_FULL_SUPPORT
-  , pattern GL_GEOMETRY_SUBROUTINE
-  , pattern GL_GEOMETRY_SUBROUTINE_UNIFORM
-  , pattern GL_GEOMETRY_TEXTURE
-  , pattern GL_GET_TEXTURE_IMAGE_FORMAT
-  , pattern GL_GET_TEXTURE_IMAGE_TYPE
-  , pattern GL_IMAGE_CLASS_10_10_10_2
-  , pattern GL_IMAGE_CLASS_11_11_10
-  , pattern GL_IMAGE_CLASS_1_X_16
-  , pattern GL_IMAGE_CLASS_1_X_32
-  , pattern GL_IMAGE_CLASS_1_X_8
-  , pattern GL_IMAGE_CLASS_2_X_16
-  , pattern GL_IMAGE_CLASS_2_X_32
-  , pattern GL_IMAGE_CLASS_2_X_8
-  , pattern GL_IMAGE_CLASS_4_X_16
-  , pattern GL_IMAGE_CLASS_4_X_32
-  , pattern GL_IMAGE_CLASS_4_X_8
-  , pattern GL_IMAGE_COMPATIBILITY_CLASS
-  , pattern GL_IMAGE_PIXEL_FORMAT
-  , pattern GL_IMAGE_PIXEL_TYPE
-  , pattern GL_IMAGE_TEXEL_SIZE
-  , pattern GL_INTERNALFORMAT_ALPHA_SIZE
-  , pattern GL_INTERNALFORMAT_ALPHA_TYPE
-  , pattern GL_INTERNALFORMAT_BLUE_SIZE
-  , pattern GL_INTERNALFORMAT_BLUE_TYPE
-  , pattern GL_INTERNALFORMAT_DEPTH_SIZE
-  , pattern GL_INTERNALFORMAT_DEPTH_TYPE
-  , pattern GL_INTERNALFORMAT_GREEN_SIZE
-  , pattern GL_INTERNALFORMAT_GREEN_TYPE
-  , pattern GL_INTERNALFORMAT_PREFERRED
-  , pattern GL_INTERNALFORMAT_RED_SIZE
-  , pattern GL_INTERNALFORMAT_RED_TYPE
-  , pattern GL_INTERNALFORMAT_SHARED_SIZE
-  , pattern GL_INTERNALFORMAT_STENCIL_SIZE
-  , pattern GL_INTERNALFORMAT_STENCIL_TYPE
-  , pattern GL_INTERNALFORMAT_SUPPORTED
-  , pattern GL_IS_PER_PATCH
-  , pattern GL_IS_ROW_MAJOR
-  , pattern GL_LOCATION
-  , pattern GL_LOCATION_INDEX
-  , pattern GL_MANUAL_GENERATE_MIPMAP
-  , pattern GL_MATRIX_STRIDE
-  , pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_DIMENSIONS
-  , pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
-  , pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS
-  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS
-  , pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
-  , pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS
-  , pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE
-  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH
-  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES
-  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH
-  , pattern GL_MAX_DEPTH
-  , pattern GL_MAX_ELEMENT_INDEX
-  , pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_FRAMEBUFFER_HEIGHT
-  , pattern GL_MAX_FRAMEBUFFER_LAYERS
-  , pattern GL_MAX_FRAMEBUFFER_SAMPLES
-  , pattern GL_MAX_FRAMEBUFFER_WIDTH
-  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_HEIGHT
-  , pattern GL_MAX_LABEL_LENGTH
-  , pattern GL_MAX_LAYERS
-  , pattern GL_MAX_NAME_LENGTH
-  , pattern GL_MAX_NUM_ACTIVE_VARIABLES
-  , pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES
-  , pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE
-  , pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
-  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_UNIFORM_LOCATIONS
-  , pattern GL_MAX_VERTEX_ATTRIB_BINDINGS
-  , pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
-  , pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_WIDTH
-  , pattern GL_MIPMAP
-  , pattern GL_NAME_LENGTH
-  , pattern GL_NUM_ACTIVE_VARIABLES
-  , pattern GL_NUM_SHADING_LANGUAGE_VERSIONS
-  , pattern GL_OFFSET
-  , pattern GL_PRIMITIVE_RESTART_FIXED_INDEX
-  , pattern GL_PROGRAM
-  , pattern GL_PROGRAM_INPUT
-  , pattern GL_PROGRAM_OUTPUT
-  , pattern GL_PROGRAM_PIPELINE
-  , pattern GL_QUERY
-  , pattern GL_READ_PIXELS
-  , pattern GL_READ_PIXELS_FORMAT
-  , pattern GL_READ_PIXELS_TYPE
-  , pattern GL_REFERENCED_BY_COMPUTE_SHADER
-  , pattern GL_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER
-  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER
-  , pattern GL_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_SAMPLER
-  , pattern GL_SHADER
-  , pattern GL_SHADER_IMAGE_ATOMIC
-  , pattern GL_SHADER_IMAGE_LOAD
-  , pattern GL_SHADER_IMAGE_STORE
-  , pattern GL_SHADER_STORAGE_BARRIER_BIT
-  , pattern GL_SHADER_STORAGE_BLOCK
-  , pattern GL_SHADER_STORAGE_BUFFER
-  , pattern GL_SHADER_STORAGE_BUFFER_BINDING
-  , pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_SHADER_STORAGE_BUFFER_SIZE
-  , pattern GL_SHADER_STORAGE_BUFFER_START
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE
-  , pattern GL_SRGB_READ
-  , pattern GL_SRGB_WRITE
-  , pattern GL_STACK_OVERFLOW
-  , pattern GL_STACK_UNDERFLOW
-  , pattern GL_STENCIL_COMPONENTS
-  , pattern GL_STENCIL_RENDERABLE
-  , pattern GL_TESS_CONTROL_SUBROUTINE
-  , pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM
-  , pattern GL_TESS_CONTROL_TEXTURE
-  , pattern GL_TESS_EVALUATION_SUBROUTINE
-  , pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
-  , pattern GL_TESS_EVALUATION_TEXTURE
-  , pattern GL_TEXTURE_BUFFER_OFFSET
-  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_TEXTURE_BUFFER_SIZE
-  , pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT
-  , pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE
-  , pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH
-  , pattern GL_TEXTURE_GATHER
-  , pattern GL_TEXTURE_GATHER_SHADOW
-  , pattern GL_TEXTURE_IMAGE_FORMAT
-  , pattern GL_TEXTURE_IMAGE_TYPE
-  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
-  , pattern GL_TEXTURE_SHADOW
-  , pattern GL_TEXTURE_VIEW
-  , pattern GL_TEXTURE_VIEW_MIN_LAYER
-  , pattern GL_TEXTURE_VIEW_MIN_LEVEL
-  , pattern GL_TEXTURE_VIEW_NUM_LAYERS
-  , pattern GL_TEXTURE_VIEW_NUM_LEVELS
-  , pattern GL_TOP_LEVEL_ARRAY_SIZE
-  , pattern GL_TOP_LEVEL_ARRAY_STRIDE
-  , pattern GL_TRANSFORM_FEEDBACK_VARYING
-  , pattern GL_TYPE
-  , pattern GL_UNIFORM
-  , pattern GL_UNIFORM_BLOCK
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
-  , pattern GL_VERTEX_ARRAY
-  , pattern GL_VERTEX_ATTRIB_ARRAY_LONG
-  , pattern GL_VERTEX_ATTRIB_BINDING
-  , pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET
-  , pattern GL_VERTEX_BINDING_BUFFER
-  , pattern GL_VERTEX_BINDING_DIVISOR
-  , pattern GL_VERTEX_BINDING_OFFSET
-  , pattern GL_VERTEX_BINDING_STRIDE
-  , pattern GL_VERTEX_SUBROUTINE
-  , pattern GL_VERTEX_SUBROUTINE_UNIFORM
-  , pattern GL_VERTEX_TEXTURE
-  , pattern GL_VIEW_CLASS_128_BITS
-  , pattern GL_VIEW_CLASS_16_BITS
-  , pattern GL_VIEW_CLASS_24_BITS
-  , pattern GL_VIEW_CLASS_32_BITS
-  , pattern GL_VIEW_CLASS_48_BITS
-  , pattern GL_VIEW_CLASS_64_BITS
-  , pattern GL_VIEW_CLASS_8_BITS
-  , pattern GL_VIEW_CLASS_96_BITS
-  , pattern GL_VIEW_CLASS_BPTC_FLOAT
-  , pattern GL_VIEW_CLASS_BPTC_UNORM
-  , pattern GL_VIEW_CLASS_RGTC1_RED
-  , pattern GL_VIEW_CLASS_RGTC2_RG
-  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGB
-  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA
-  , pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA
-  , pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA
-  , pattern GL_VIEW_COMPATIBILITY_CLASS
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Core42
-
-pattern GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9
-
-pattern GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E
diff --git a/dist/build/autogen/Graphics/GL/Core44.hs b/dist/build/autogen/Graphics/GL/Core44.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core44.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core44 (
-  -- * Graphics.GL.Core44
-    module Graphics.GL.Core43
-  , glBindBuffersBase
-  , glBindBuffersRange
-  , glBindImageTextures
-  , glBindSamplers
-  , glBindTextures
-  , glBindVertexBuffers
-  , glBufferStorage
-  , glClearTexImage
-  , glClearTexSubImage
-  , pattern GL_BUFFER_IMMUTABLE_STORAGE
-  , pattern GL_BUFFER_STORAGE_FLAGS
-  , pattern GL_CLEAR_TEXTURE
-  , pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
-  , pattern GL_CLIENT_STORAGE_BIT
-  , pattern GL_DYNAMIC_STORAGE_BIT
-  , pattern GL_LOCATION_COMPONENT
-  , pattern GL_MAP_COHERENT_BIT
-  , pattern GL_MAP_PERSISTENT_BIT
-  , pattern GL_MAX_VERTEX_ATTRIB_STRIDE
-  , pattern GL_MIRROR_CLAMP_TO_EDGE
-  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
-  , pattern GL_QUERY_BUFFER
-  , pattern GL_QUERY_BUFFER_BARRIER_BIT
-  , pattern GL_QUERY_BUFFER_BINDING
-  , pattern GL_QUERY_RESULT_NO_WAIT
-  , pattern GL_TEXTURE_BUFFER_BINDING
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Core43
diff --git a/dist/build/autogen/Graphics/GL/Core45.hs b/dist/build/autogen/Graphics/GL/Core45.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Core45.hs
+++ /dev/null
@@ -1,181 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Core45 (
-  -- * Graphics.GL.Core45
-    module Graphics.GL.Core44
-  , glBindTextureUnit
-  , glBlitNamedFramebuffer
-  , glCheckNamedFramebufferStatus
-  , glClearNamedBufferData
-  , glClearNamedBufferSubData
-  , glClearNamedFramebufferfi
-  , glClearNamedFramebufferfv
-  , glClearNamedFramebufferiv
-  , glClearNamedFramebufferuiv
-  , glClipControl
-  , glCompressedTextureSubImage1D
-  , glCompressedTextureSubImage2D
-  , glCompressedTextureSubImage3D
-  , glCopyNamedBufferSubData
-  , glCopyTextureSubImage1D
-  , glCopyTextureSubImage2D
-  , glCopyTextureSubImage3D
-  , glCreateBuffers
-  , glCreateFramebuffers
-  , glCreateProgramPipelines
-  , glCreateQueries
-  , glCreateRenderbuffers
-  , glCreateSamplers
-  , glCreateTextures
-  , glCreateTransformFeedbacks
-  , glCreateVertexArrays
-  , glDisableVertexArrayAttrib
-  , glEnableVertexArrayAttrib
-  , glFlushMappedNamedBufferRange
-  , glGenerateTextureMipmap
-  , glGetCompressedTextureImage
-  , glGetCompressedTextureSubImage
-  , glGetGraphicsResetStatus
-  , glGetNamedBufferParameteri64v
-  , glGetNamedBufferParameteriv
-  , glGetNamedBufferPointerv
-  , glGetNamedBufferSubData
-  , glGetNamedFramebufferAttachmentParameteriv
-  , glGetNamedFramebufferParameteriv
-  , glGetNamedRenderbufferParameteriv
-  , glGetQueryBufferObjecti64v
-  , glGetQueryBufferObjectiv
-  , glGetQueryBufferObjectui64v
-  , glGetQueryBufferObjectuiv
-  , glGetTextureImage
-  , glGetTextureLevelParameterfv
-  , glGetTextureLevelParameteriv
-  , glGetTextureParameterIiv
-  , glGetTextureParameterIuiv
-  , glGetTextureParameterfv
-  , glGetTextureParameteriv
-  , glGetTextureSubImage
-  , glGetTransformFeedbacki64_v
-  , glGetTransformFeedbacki_v
-  , glGetTransformFeedbackiv
-  , glGetVertexArrayIndexed64iv
-  , glGetVertexArrayIndexediv
-  , glGetVertexArrayiv
-  , glGetnCompressedTexImage
-  , glGetnTexImage
-  , glGetnUniformdv
-  , glGetnUniformfv
-  , glGetnUniformiv
-  , glGetnUniformuiv
-  , glInvalidateNamedFramebufferData
-  , glInvalidateNamedFramebufferSubData
-  , glMapNamedBuffer
-  , glMapNamedBufferRange
-  , glMemoryBarrierByRegion
-  , glNamedBufferData
-  , glNamedBufferStorage
-  , glNamedBufferSubData
-  , glNamedFramebufferDrawBuffer
-  , glNamedFramebufferDrawBuffers
-  , glNamedFramebufferParameteri
-  , glNamedFramebufferReadBuffer
-  , glNamedFramebufferRenderbuffer
-  , glNamedFramebufferTexture
-  , glNamedFramebufferTextureLayer
-  , glNamedRenderbufferStorage
-  , glNamedRenderbufferStorageMultisample
-  , glReadnPixels
-  , glTextureBarrier
-  , glTextureBuffer
-  , glTextureBufferRange
-  , glTextureParameterIiv
-  , glTextureParameterIuiv
-  , glTextureParameterf
-  , glTextureParameterfv
-  , glTextureParameteri
-  , glTextureParameteriv
-  , glTextureStorage1D
-  , glTextureStorage2D
-  , glTextureStorage2DMultisample
-  , glTextureStorage3D
-  , glTextureStorage3DMultisample
-  , glTextureSubImage1D
-  , glTextureSubImage2D
-  , glTextureSubImage3D
-  , glTransformFeedbackBufferBase
-  , glTransformFeedbackBufferRange
-  , glUnmapNamedBuffer
-  , glVertexArrayAttribBinding
-  , glVertexArrayAttribFormat
-  , glVertexArrayAttribIFormat
-  , glVertexArrayAttribLFormat
-  , glVertexArrayBindingDivisor
-  , glVertexArrayElementBuffer
-  , glVertexArrayVertexBuffer
-  , glVertexArrayVertexBuffers
-  , pattern GL_CLIP_DEPTH_MODE
-  , pattern GL_CLIP_ORIGIN
-  , pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT
-  , pattern GL_CONTEXT_LOST
-  , pattern GL_CONTEXT_RELEASE_BEHAVIOR
-  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH
-  , pattern GL_GUILTY_CONTEXT_RESET
-  , pattern GL_INNOCENT_CONTEXT_RESET
-  , pattern GL_LOSE_CONTEXT_ON_RESET
-  , pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES
-  , pattern GL_MAX_CULL_DISTANCES
-  , pattern GL_NEGATIVE_ONE_TO_ONE
-  , pattern GL_NO_RESET_NOTIFICATION
-  , pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED
-  , pattern GL_QUERY_BY_REGION_WAIT_INVERTED
-  , pattern GL_QUERY_NO_WAIT_INVERTED
-  , pattern GL_QUERY_TARGET
-  , pattern GL_QUERY_WAIT_INVERTED
-  , pattern GL_RESET_NOTIFICATION_STRATEGY
-  , pattern GL_TEXTURE_TARGET
-  , pattern GL_UNKNOWN_CONTEXT_RESET
-  , pattern GL_ZERO_TO_ONE
-) where
-
-import Control.Monad.IO.Class
-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
-
-import Graphics.GL.Core44
-
--- | Usage: @'glGetnCompressedTexImage' target lod bufSize pixels@
-
-
-glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()
-glGetnCompressedTexImage = ffienumintsizeiPtrVIOV glGetnCompressedTexImageFunPtr
-
-glGetnCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ())
-glGetnCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetnCompressedTexImage")
-
-{-# NOINLINE glGetnCompressedTexImageFunPtr #-}
-
--- | Usage: @'glGetnTexImage' target level format type bufSize pixels@
-
-
-glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnTexImage = ffienumintenumenumsizeiPtrVIOV glGetnTexImageFunPtr
-
-glGetnTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnTexImageFunPtr = unsafePerformIO (getProcAddress "glGetnTexImage")
-
-{-# NOINLINE glGetnTexImageFunPtr #-}
-
--- | Usage: @'glGetnUniformdv' program location bufSize params@
-
-
-glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glGetnUniformdv = ffiuintintsizeiPtrdoubleIOV glGetnUniformdvFunPtr
-
-glGetnUniformdvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glGetnUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformdv")
-
-{-# NOINLINE glGetnUniformdvFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Embedded20.hs b/dist/build/autogen/Graphics/GL/Embedded20.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Embedded20.hs
+++ /dev/null
@@ -1,450 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Embedded20 (
-  -- * Graphics.GL.Embedded20
-    glActiveTexture
-  , glAttachShader
-  , glBindAttribLocation
-  , glBindBuffer
-  , glBindFramebuffer
-  , glBindRenderbuffer
-  , glBindTexture
-  , glBlendColor
-  , glBlendEquation
-  , glBlendEquationSeparate
-  , glBlendFunc
-  , glBlendFuncSeparate
-  , glBufferData
-  , glBufferSubData
-  , glCheckFramebufferStatus
-  , glClear
-  , glClearColor
-  , glClearDepthf
-  , glClearStencil
-  , glColorMask
-  , glCompileShader
-  , glCompressedTexImage2D
-  , glCompressedTexSubImage2D
-  , glCopyTexImage2D
-  , glCopyTexSubImage2D
-  , glCreateProgram
-  , glCreateShader
-  , glCullFace
-  , glDeleteBuffers
-  , glDeleteFramebuffers
-  , glDeleteProgram
-  , glDeleteRenderbuffers
-  , glDeleteShader
-  , glDeleteTextures
-  , glDepthFunc
-  , glDepthMask
-  , glDepthRangef
-  , glDetachShader
-  , glDisable
-  , glDisableVertexAttribArray
-  , glDrawArrays
-  , glDrawElements
-  , glEnable
-  , glEnableVertexAttribArray
-  , glFinish
-  , glFlush
-  , glFramebufferRenderbuffer
-  , glFramebufferTexture2D
-  , glFrontFace
-  , glGenBuffers
-  , glGenFramebuffers
-  , glGenRenderbuffers
-  , glGenTextures
-  , glGenerateMipmap
-  , glGetActiveAttrib
-  , glGetActiveUniform
-  , glGetAttachedShaders
-  , glGetAttribLocation
-  , glGetBooleanv
-  , glGetBufferParameteriv
-  , glGetError
-  , glGetFloatv
-  , glGetFramebufferAttachmentParameteriv
-  , glGetIntegerv
-  , glGetProgramInfoLog
-  , glGetProgramiv
-  , glGetRenderbufferParameteriv
-  , glGetShaderInfoLog
-  , glGetShaderPrecisionFormat
-  , glGetShaderSource
-  , glGetShaderiv
-  , glGetString
-  , glGetTexParameterfv
-  , glGetTexParameteriv
-  , glGetUniformLocation
-  , glGetUniformfv
-  , glGetUniformiv
-  , glGetVertexAttribPointerv
-  , glGetVertexAttribfv
-  , glGetVertexAttribiv
-  , glHint
-  , glIsBuffer
-  , glIsEnabled
-  , glIsFramebuffer
-  , glIsProgram
-  , glIsRenderbuffer
-  , glIsShader
-  , glIsTexture
-  , glLineWidth
-  , glLinkProgram
-  , glPixelStorei
-  , glPolygonOffset
-  , glReadPixels
-  , glReleaseShaderCompiler
-  , glRenderbufferStorage
-  , glSampleCoverage
-  , glScissor
-  , glShaderBinary
-  , glShaderSource
-  , glStencilFunc
-  , glStencilFuncSeparate
-  , glStencilMask
-  , glStencilMaskSeparate
-  , glStencilOp
-  , glStencilOpSeparate
-  , glTexImage2D
-  , glTexParameterf
-  , glTexParameterfv
-  , glTexParameteri
-  , glTexParameteriv
-  , glTexSubImage2D
-  , glUniform1f
-  , glUniform1fv
-  , glUniform1i
-  , glUniform1iv
-  , glUniform2f
-  , glUniform2fv
-  , glUniform2i
-  , glUniform2iv
-  , glUniform3f
-  , glUniform3fv
-  , glUniform3i
-  , glUniform3iv
-  , glUniform4f
-  , glUniform4fv
-  , glUniform4i
-  , glUniform4iv
-  , glUniformMatrix2fv
-  , glUniformMatrix3fv
-  , glUniformMatrix4fv
-  , glUseProgram
-  , glValidateProgram
-  , glVertexAttrib1f
-  , glVertexAttrib1fv
-  , glVertexAttrib2f
-  , glVertexAttrib2fv
-  , glVertexAttrib3f
-  , glVertexAttrib3fv
-  , glVertexAttrib4f
-  , glVertexAttrib4fv
-  , glVertexAttribPointer
-  , glViewport
-  , pattern GL_ACTIVE_ATTRIBUTES
-  , pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
-  , pattern GL_ACTIVE_TEXTURE
-  , pattern GL_ACTIVE_UNIFORMS
-  , pattern GL_ACTIVE_UNIFORM_MAX_LENGTH
-  , pattern GL_ALIASED_LINE_WIDTH_RANGE
-  , pattern GL_ALIASED_POINT_SIZE_RANGE
-  , pattern GL_ALPHA
-  , pattern GL_ALPHA_BITS
-  , pattern GL_ALWAYS
-  , pattern GL_ARRAY_BUFFER
-  , pattern GL_ARRAY_BUFFER_BINDING
-  , pattern GL_ATTACHED_SHADERS
-  , pattern GL_BACK
-  , pattern GL_BLEND
-  , pattern GL_BLEND_COLOR
-  , pattern GL_BLEND_DST_ALPHA
-  , pattern GL_BLEND_DST_RGB
-  , pattern GL_BLEND_EQUATION
-  , pattern GL_BLEND_EQUATION_ALPHA
-  , pattern GL_BLEND_EQUATION_RGB
-  , pattern GL_BLEND_SRC_ALPHA
-  , pattern GL_BLEND_SRC_RGB
-  , pattern GL_BLUE_BITS
-  , pattern GL_BOOL
-  , pattern GL_BOOL_VEC2
-  , pattern GL_BOOL_VEC3
-  , pattern GL_BOOL_VEC4
-  , pattern GL_BUFFER_SIZE
-  , pattern GL_BUFFER_USAGE
-  , pattern GL_BYTE
-  , pattern GL_CCW
-  , pattern GL_CLAMP_TO_EDGE
-  , pattern GL_COLOR_ATTACHMENT0
-  , pattern GL_COLOR_BUFFER_BIT
-  , pattern GL_COLOR_CLEAR_VALUE
-  , pattern GL_COLOR_WRITEMASK
-  , pattern GL_COMPILE_STATUS
-  , pattern GL_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_CONSTANT_ALPHA
-  , pattern GL_CONSTANT_COLOR
-  , pattern GL_CULL_FACE
-  , pattern GL_CULL_FACE_MODE
-  , pattern GL_CURRENT_PROGRAM
-  , pattern GL_CURRENT_VERTEX_ATTRIB
-  , pattern GL_CW
-  , pattern GL_DECR
-  , pattern GL_DECR_WRAP
-  , pattern GL_DELETE_STATUS
-  , pattern GL_DEPTH_ATTACHMENT
-  , pattern GL_DEPTH_BITS
-  , pattern GL_DEPTH_BUFFER_BIT
-  , pattern GL_DEPTH_CLEAR_VALUE
-  , pattern GL_DEPTH_COMPONENT
-  , pattern GL_DEPTH_COMPONENT16
-  , pattern GL_DEPTH_FUNC
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_DEPTH_TEST
-  , pattern GL_DEPTH_WRITEMASK
-  , pattern GL_DITHER
-  , pattern GL_DONT_CARE
-  , pattern GL_DST_ALPHA
-  , pattern GL_DST_COLOR
-  , pattern GL_DYNAMIC_DRAW
-  , pattern GL_ELEMENT_ARRAY_BUFFER
-  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
-  , pattern GL_EQUAL
-  , pattern GL_EXTENSIONS
-  , pattern GL_FALSE
-  , pattern GL_FASTEST
-  , pattern GL_FIXED
-  , pattern GL_FLOAT
-  , pattern GL_FLOAT_MAT2
-  , pattern GL_FLOAT_MAT3
-  , pattern GL_FLOAT_MAT4
-  , pattern GL_FLOAT_VEC2
-  , pattern GL_FLOAT_VEC3
-  , pattern GL_FLOAT_VEC4
-  , pattern GL_FRAGMENT_SHADER
-  , pattern GL_FRAMEBUFFER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
-  , pattern GL_FRAMEBUFFER_BINDING
-  , pattern GL_FRAMEBUFFER_COMPLETE
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_UNSUPPORTED
-  , pattern GL_FRONT
-  , pattern GL_FRONT_AND_BACK
-  , pattern GL_FRONT_FACE
-  , pattern GL_FUNC_ADD
-  , pattern GL_FUNC_REVERSE_SUBTRACT
-  , pattern GL_FUNC_SUBTRACT
-  , pattern GL_GENERATE_MIPMAP_HINT
-  , pattern GL_GEQUAL
-  , pattern GL_GREATER
-  , pattern GL_GREEN_BITS
-  , pattern GL_HIGH_FLOAT
-  , pattern GL_HIGH_INT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
-  , pattern GL_INCR
-  , pattern GL_INCR_WRAP
-  , pattern GL_INFO_LOG_LENGTH
-  , pattern GL_INT
-  , pattern GL_INT_VEC2
-  , pattern GL_INT_VEC3
-  , pattern GL_INT_VEC4
-  , pattern GL_INVALID_ENUM
-  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
-  , pattern GL_INVALID_OPERATION
-  , pattern GL_INVALID_VALUE
-  , pattern GL_INVERT
-  , pattern GL_KEEP
-  , pattern GL_LEQUAL
-  , pattern GL_LESS
-  , pattern GL_LINEAR
-  , pattern GL_LINEAR_MIPMAP_LINEAR
-  , pattern GL_LINEAR_MIPMAP_NEAREST
-  , pattern GL_LINES
-  , pattern GL_LINE_LOOP
-  , pattern GL_LINE_STRIP
-  , pattern GL_LINE_WIDTH
-  , pattern GL_LINK_STATUS
-  , pattern GL_LOW_FLOAT
-  , pattern GL_LOW_INT
-  , pattern GL_LUMINANCE
-  , pattern GL_LUMINANCE_ALPHA
-  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE
-  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
-  , pattern GL_MAX_RENDERBUFFER_SIZE
-  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TEXTURE_SIZE
-  , pattern GL_MAX_VARYING_VECTORS
-  , pattern GL_MAX_VERTEX_ATTRIBS
-  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
-  , pattern GL_MAX_VIEWPORT_DIMS
-  , pattern GL_MEDIUM_FLOAT
-  , pattern GL_MEDIUM_INT
-  , pattern GL_MIRRORED_REPEAT
-  , pattern GL_NEAREST
-  , pattern GL_NEAREST_MIPMAP_LINEAR
-  , pattern GL_NEAREST_MIPMAP_NEAREST
-  , pattern GL_NEVER
-  , pattern GL_NICEST
-  , pattern GL_NONE
-  , pattern GL_NOTEQUAL
-  , pattern GL_NO_ERROR
-  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_NUM_SHADER_BINARY_FORMATS
-  , pattern GL_ONE
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR
-  , pattern GL_ONE_MINUS_DST_ALPHA
-  , pattern GL_ONE_MINUS_DST_COLOR
-  , pattern GL_ONE_MINUS_SRC_ALPHA
-  , pattern GL_ONE_MINUS_SRC_COLOR
-  , pattern GL_OUT_OF_MEMORY
-  , pattern GL_PACK_ALIGNMENT
-  , pattern GL_POINTS
-  , pattern GL_POLYGON_OFFSET_FACTOR
-  , pattern GL_POLYGON_OFFSET_FILL
-  , pattern GL_POLYGON_OFFSET_UNITS
-  , pattern GL_RED_BITS
-  , pattern GL_RENDERBUFFER
-  , pattern GL_RENDERBUFFER_ALPHA_SIZE
-  , pattern GL_RENDERBUFFER_BINDING
-  , pattern GL_RENDERBUFFER_BLUE_SIZE
-  , pattern GL_RENDERBUFFER_DEPTH_SIZE
-  , pattern GL_RENDERBUFFER_GREEN_SIZE
-  , pattern GL_RENDERBUFFER_HEIGHT
-  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
-  , pattern GL_RENDERBUFFER_RED_SIZE
-  , pattern GL_RENDERBUFFER_STENCIL_SIZE
-  , pattern GL_RENDERBUFFER_WIDTH
-  , pattern GL_RENDERER
-  , pattern GL_REPEAT
-  , pattern GL_REPLACE
-  , pattern GL_RGB
-  , pattern GL_RGB565
-  , pattern GL_RGB5_A1
-  , pattern GL_RGBA
-  , pattern GL_RGBA4
-  , pattern GL_SAMPLER_2D
-  , pattern GL_SAMPLER_CUBE
-  , pattern GL_SAMPLES
-  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
-  , pattern GL_SAMPLE_BUFFERS
-  , pattern GL_SAMPLE_COVERAGE
-  , pattern GL_SAMPLE_COVERAGE_INVERT
-  , pattern GL_SAMPLE_COVERAGE_VALUE
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_SHADER_BINARY_FORMATS
-  , pattern GL_SHADER_COMPILER
-  , pattern GL_SHADER_SOURCE_LENGTH
-  , pattern GL_SHADER_TYPE
-  , pattern GL_SHADING_LANGUAGE_VERSION
-  , pattern GL_SHORT
-  , pattern GL_SRC_ALPHA
-  , pattern GL_SRC_ALPHA_SATURATE
-  , pattern GL_SRC_COLOR
-  , pattern GL_STATIC_DRAW
-  , pattern GL_STENCIL_ATTACHMENT
-  , pattern GL_STENCIL_BACK_FAIL
-  , pattern GL_STENCIL_BACK_FUNC
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_BACK_REF
-  , pattern GL_STENCIL_BACK_VALUE_MASK
-  , pattern GL_STENCIL_BACK_WRITEMASK
-  , pattern GL_STENCIL_BITS
-  , pattern GL_STENCIL_BUFFER_BIT
-  , pattern GL_STENCIL_CLEAR_VALUE
-  , pattern GL_STENCIL_FAIL
-  , pattern GL_STENCIL_FUNC
-  , pattern GL_STENCIL_INDEX8
-  , pattern GL_STENCIL_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_REF
-  , pattern GL_STENCIL_TEST
-  , pattern GL_STENCIL_VALUE_MASK
-  , pattern GL_STENCIL_WRITEMASK
-  , pattern GL_STREAM_DRAW
-  , pattern GL_SUBPIXEL_BITS
-  , pattern GL_TEXTURE
-  , pattern GL_TEXTURE0
-  , pattern GL_TEXTURE1
-  , pattern GL_TEXTURE10
-  , pattern GL_TEXTURE11
-  , pattern GL_TEXTURE12
-  , pattern GL_TEXTURE13
-  , pattern GL_TEXTURE14
-  , pattern GL_TEXTURE15
-  , pattern GL_TEXTURE16
-  , pattern GL_TEXTURE17
-  , pattern GL_TEXTURE18
-  , pattern GL_TEXTURE19
-  , pattern GL_TEXTURE2
-  , pattern GL_TEXTURE20
-  , pattern GL_TEXTURE21
-  , pattern GL_TEXTURE22
-  , pattern GL_TEXTURE23
-  , pattern GL_TEXTURE24
-  , pattern GL_TEXTURE25
-  , pattern GL_TEXTURE26
-  , pattern GL_TEXTURE27
-  , pattern GL_TEXTURE28
-  , pattern GL_TEXTURE29
-  , pattern GL_TEXTURE3
-  , pattern GL_TEXTURE30
-  , pattern GL_TEXTURE31
-  , pattern GL_TEXTURE4
-  , pattern GL_TEXTURE5
-  , pattern GL_TEXTURE6
-  , pattern GL_TEXTURE7
-  , pattern GL_TEXTURE8
-  , pattern GL_TEXTURE9
-  , pattern GL_TEXTURE_2D
-  , pattern GL_TEXTURE_BINDING_2D
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP
-  , pattern GL_TEXTURE_CUBE_MAP
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z
-  , pattern GL_TEXTURE_MAG_FILTER
-  , pattern GL_TEXTURE_MIN_FILTER
-  , pattern GL_TEXTURE_WRAP_S
-  , pattern GL_TEXTURE_WRAP_T
-  , pattern GL_TRIANGLES
-  , pattern GL_TRIANGLE_FAN
-  , pattern GL_TRIANGLE_STRIP
-  , pattern GL_TRUE
-  , pattern GL_UNPACK_ALIGNMENT
-  , pattern GL_UNSIGNED_BYTE
-  , pattern GL_UNSIGNED_INT
-  , pattern GL_UNSIGNED_SHORT
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4
-  , pattern GL_UNSIGNED_SHORT_5_5_5_1
-  , pattern GL_UNSIGNED_SHORT_5_6_5
-  , pattern GL_VALIDATE_STATUS
-  , pattern GL_VENDOR
-  , pattern GL_VERSION
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
-  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
-  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
-  , pattern GL_VERTEX_SHADER
-  , pattern GL_VIEWPORT
-  , pattern GL_ZERO
-) where
-
-import Graphics.GL.Internal.Shared
diff --git a/dist/build/autogen/Graphics/GL/Embedded30.hs b/dist/build/autogen/Graphics/GL/Embedded30.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Embedded30.hs
+++ /dev/null
@@ -1,435 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Embedded30 (
-  -- * Graphics.GL.Embedded30
-    module Graphics.GL.Embedded20
-  , glBeginQuery
-  , glBeginTransformFeedback
-  , glBindBufferBase
-  , glBindBufferRange
-  , glBindSampler
-  , glBindTransformFeedback
-  , glBindVertexArray
-  , glBlitFramebuffer
-  , glClearBufferfi
-  , glClearBufferfv
-  , glClearBufferiv
-  , glClearBufferuiv
-  , glClientWaitSync
-  , glCompressedTexImage3D
-  , glCompressedTexSubImage3D
-  , glCopyBufferSubData
-  , glCopyTexSubImage3D
-  , glDeleteQueries
-  , glDeleteSamplers
-  , glDeleteSync
-  , glDeleteTransformFeedbacks
-  , glDeleteVertexArrays
-  , glDrawArraysInstanced
-  , glDrawBuffers
-  , glDrawElementsInstanced
-  , glDrawRangeElements
-  , glEndQuery
-  , glEndTransformFeedback
-  , glFenceSync
-  , glFlushMappedBufferRange
-  , glFramebufferTextureLayer
-  , glGenQueries
-  , glGenSamplers
-  , glGenTransformFeedbacks
-  , glGenVertexArrays
-  , glGetActiveUniformBlockName
-  , glGetActiveUniformBlockiv
-  , glGetActiveUniformsiv
-  , glGetBufferParameteri64v
-  , glGetBufferPointerv
-  , glGetFragDataLocation
-  , glGetInteger64i_v
-  , glGetInteger64v
-  , glGetIntegeri_v
-  , glGetInternalformativ
-  , glGetProgramBinary
-  , glGetQueryObjectuiv
-  , glGetQueryiv
-  , glGetSamplerParameterfv
-  , glGetSamplerParameteriv
-  , glGetStringi
-  , glGetSynciv
-  , glGetTransformFeedbackVarying
-  , glGetUniformBlockIndex
-  , glGetUniformIndices
-  , glGetUniformuiv
-  , glGetVertexAttribIiv
-  , glGetVertexAttribIuiv
-  , glInvalidateFramebuffer
-  , glInvalidateSubFramebuffer
-  , glIsQuery
-  , glIsSampler
-  , glIsSync
-  , glIsTransformFeedback
-  , glIsVertexArray
-  , glMapBufferRange
-  , glPauseTransformFeedback
-  , glProgramBinary
-  , glProgramParameteri
-  , glReadBuffer
-  , glRenderbufferStorageMultisample
-  , glResumeTransformFeedback
-  , glSamplerParameterf
-  , glSamplerParameterfv
-  , glSamplerParameteri
-  , glSamplerParameteriv
-  , glTexImage3D
-  , glTexStorage2D
-  , glTexStorage3D
-  , glTexSubImage3D
-  , glTransformFeedbackVaryings
-  , glUniform1ui
-  , glUniform1uiv
-  , glUniform2ui
-  , glUniform2uiv
-  , glUniform3ui
-  , glUniform3uiv
-  , glUniform4ui
-  , glUniform4uiv
-  , glUniformBlockBinding
-  , glUniformMatrix2x3fv
-  , glUniformMatrix2x4fv
-  , glUniformMatrix3x2fv
-  , glUniformMatrix3x4fv
-  , glUniformMatrix4x2fv
-  , glUniformMatrix4x3fv
-  , glUnmapBuffer
-  , glVertexAttribDivisor
-  , glVertexAttribI4i
-  , glVertexAttribI4iv
-  , glVertexAttribI4ui
-  , glVertexAttribI4uiv
-  , glVertexAttribIPointer
-  , glWaitSync
-  , pattern GL_ACTIVE_UNIFORM_BLOCKS
-  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
-  , pattern GL_ALREADY_SIGNALED
-  , pattern GL_ANY_SAMPLES_PASSED
-  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE
-  , pattern GL_BLUE
-  , pattern GL_BUFFER_ACCESS_FLAGS
-  , pattern GL_BUFFER_MAPPED
-  , pattern GL_BUFFER_MAP_LENGTH
-  , pattern GL_BUFFER_MAP_OFFSET
-  , pattern GL_BUFFER_MAP_POINTER
-  , pattern GL_COLOR
-  , pattern GL_COLOR_ATTACHMENT1
-  , pattern GL_COLOR_ATTACHMENT10
-  , pattern GL_COLOR_ATTACHMENT11
-  , pattern GL_COLOR_ATTACHMENT12
-  , pattern GL_COLOR_ATTACHMENT13
-  , pattern GL_COLOR_ATTACHMENT14
-  , pattern GL_COLOR_ATTACHMENT15
-  , pattern GL_COLOR_ATTACHMENT16
-  , pattern GL_COLOR_ATTACHMENT17
-  , pattern GL_COLOR_ATTACHMENT18
-  , pattern GL_COLOR_ATTACHMENT19
-  , pattern GL_COLOR_ATTACHMENT2
-  , pattern GL_COLOR_ATTACHMENT20
-  , pattern GL_COLOR_ATTACHMENT21
-  , pattern GL_COLOR_ATTACHMENT22
-  , pattern GL_COLOR_ATTACHMENT23
-  , pattern GL_COLOR_ATTACHMENT24
-  , pattern GL_COLOR_ATTACHMENT25
-  , pattern GL_COLOR_ATTACHMENT26
-  , pattern GL_COLOR_ATTACHMENT27
-  , pattern GL_COLOR_ATTACHMENT28
-  , pattern GL_COLOR_ATTACHMENT29
-  , pattern GL_COLOR_ATTACHMENT3
-  , pattern GL_COLOR_ATTACHMENT30
-  , pattern GL_COLOR_ATTACHMENT31
-  , pattern GL_COLOR_ATTACHMENT4
-  , pattern GL_COLOR_ATTACHMENT5
-  , pattern GL_COLOR_ATTACHMENT6
-  , pattern GL_COLOR_ATTACHMENT7
-  , pattern GL_COLOR_ATTACHMENT8
-  , pattern GL_COLOR_ATTACHMENT9
-  , pattern GL_COMPARE_REF_TO_TEXTURE
-  , pattern GL_COMPRESSED_R11_EAC
-  , pattern GL_COMPRESSED_RG11_EAC
-  , pattern GL_COMPRESSED_RGB8_ETC2
-  , pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
-  , pattern GL_COMPRESSED_RGBA8_ETC2_EAC
-  , pattern GL_COMPRESSED_SIGNED_R11_EAC
-  , pattern GL_COMPRESSED_SIGNED_RG11_EAC
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
-  , pattern GL_COMPRESSED_SRGB8_ETC2
-  , pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
-  , pattern GL_CONDITION_SATISFIED
-  , pattern GL_COPY_READ_BUFFER
-  , pattern GL_COPY_READ_BUFFER_BINDING
-  , pattern GL_COPY_WRITE_BUFFER
-  , pattern GL_COPY_WRITE_BUFFER_BINDING
-  , pattern GL_CURRENT_QUERY
-  , pattern GL_DEPTH
-  , pattern GL_DEPTH24_STENCIL8
-  , pattern GL_DEPTH32F_STENCIL8
-  , pattern GL_DEPTH_COMPONENT24
-  , pattern GL_DEPTH_COMPONENT32F
-  , pattern GL_DEPTH_STENCIL
-  , pattern GL_DEPTH_STENCIL_ATTACHMENT
-  , pattern GL_DRAW_BUFFER0
-  , pattern GL_DRAW_BUFFER1
-  , pattern GL_DRAW_BUFFER10
-  , pattern GL_DRAW_BUFFER11
-  , pattern GL_DRAW_BUFFER12
-  , pattern GL_DRAW_BUFFER13
-  , pattern GL_DRAW_BUFFER14
-  , pattern GL_DRAW_BUFFER15
-  , pattern GL_DRAW_BUFFER2
-  , pattern GL_DRAW_BUFFER3
-  , pattern GL_DRAW_BUFFER4
-  , pattern GL_DRAW_BUFFER5
-  , pattern GL_DRAW_BUFFER6
-  , pattern GL_DRAW_BUFFER7
-  , pattern GL_DRAW_BUFFER8
-  , pattern GL_DRAW_BUFFER9
-  , pattern GL_DRAW_FRAMEBUFFER
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING
-  , pattern GL_DYNAMIC_COPY
-  , pattern GL_DYNAMIC_READ
-  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
-  , pattern GL_FLOAT_MAT2x3
-  , pattern GL_FLOAT_MAT2x4
-  , pattern GL_FLOAT_MAT3x2
-  , pattern GL_FLOAT_MAT3x4
-  , pattern GL_FLOAT_MAT4x2
-  , pattern GL_FLOAT_MAT4x3
-  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
-  , pattern GL_FRAMEBUFFER_DEFAULT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
-  , pattern GL_FRAMEBUFFER_UNDEFINED
-  , pattern GL_GREEN
-  , pattern GL_HALF_FLOAT
-  , pattern GL_INTERLEAVED_ATTRIBS
-  , pattern GL_INT_2_10_10_10_REV
-  , pattern GL_INT_SAMPLER_2D
-  , pattern GL_INT_SAMPLER_2D_ARRAY
-  , pattern GL_INT_SAMPLER_3D
-  , pattern GL_INT_SAMPLER_CUBE
-  , pattern GL_INVALID_INDEX
-  , pattern GL_MAJOR_VERSION
-  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
-  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
-  , pattern GL_MAP_INVALIDATE_RANGE_BIT
-  , pattern GL_MAP_READ_BIT
-  , pattern GL_MAP_UNSYNCHRONIZED_BIT
-  , pattern GL_MAP_WRITE_BIT
-  , pattern GL_MAX
-  , pattern GL_MAX_3D_TEXTURE_SIZE
-  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS
-  , pattern GL_MAX_COLOR_ATTACHMENTS
-  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
-  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
-  , pattern GL_MAX_DRAW_BUFFERS
-  , pattern GL_MAX_ELEMENTS_INDICES
-  , pattern GL_MAX_ELEMENTS_VERTICES
-  , pattern GL_MAX_ELEMENT_INDEX
-  , pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
-  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET
-  , pattern GL_MAX_SAMPLES
-  , pattern GL_MAX_SERVER_WAIT_TIMEOUT
-  , pattern GL_MAX_TEXTURE_LOD_BIAS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
-  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
-  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
-  , pattern GL_MAX_VARYING_COMPONENTS
-  , pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS
-  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
-  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS
-  , pattern GL_MIN
-  , pattern GL_MINOR_VERSION
-  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET
-  , pattern GL_NUM_EXTENSIONS
-  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
-  , pattern GL_NUM_SAMPLE_COUNTS
-  , pattern GL_OBJECT_TYPE
-  , pattern GL_PACK_ROW_LENGTH
-  , pattern GL_PACK_SKIP_PIXELS
-  , pattern GL_PACK_SKIP_ROWS
-  , pattern GL_PIXEL_PACK_BUFFER
-  , pattern GL_PIXEL_PACK_BUFFER_BINDING
-  , pattern GL_PIXEL_UNPACK_BUFFER
-  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING
-  , pattern GL_PRIMITIVE_RESTART_FIXED_INDEX
-  , pattern GL_PROGRAM_BINARY_FORMATS
-  , pattern GL_PROGRAM_BINARY_LENGTH
-  , pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT
-  , pattern GL_QUERY_RESULT
-  , pattern GL_QUERY_RESULT_AVAILABLE
-  , pattern GL_R11F_G11F_B10F
-  , pattern GL_R16F
-  , pattern GL_R16I
-  , pattern GL_R16UI
-  , pattern GL_R32F
-  , pattern GL_R32I
-  , pattern GL_R32UI
-  , pattern GL_R8
-  , pattern GL_R8I
-  , pattern GL_R8UI
-  , pattern GL_R8_SNORM
-  , pattern GL_RASTERIZER_DISCARD
-  , pattern GL_READ_BUFFER
-  , pattern GL_READ_FRAMEBUFFER
-  , pattern GL_READ_FRAMEBUFFER_BINDING
-  , pattern GL_RED
-  , pattern GL_RED_INTEGER
-  , pattern GL_RENDERBUFFER_SAMPLES
-  , pattern GL_RG
-  , pattern GL_RG16F
-  , pattern GL_RG16I
-  , pattern GL_RG16UI
-  , pattern GL_RG32F
-  , pattern GL_RG32I
-  , pattern GL_RG32UI
-  , pattern GL_RG8
-  , pattern GL_RG8I
-  , pattern GL_RG8UI
-  , pattern GL_RG8_SNORM
-  , pattern GL_RGB10_A2
-  , pattern GL_RGB10_A2UI
-  , pattern GL_RGB16F
-  , pattern GL_RGB16I
-  , pattern GL_RGB16UI
-  , pattern GL_RGB32F
-  , pattern GL_RGB32I
-  , pattern GL_RGB32UI
-  , pattern GL_RGB8
-  , pattern GL_RGB8I
-  , pattern GL_RGB8UI
-  , pattern GL_RGB8_SNORM
-  , pattern GL_RGB9_E5
-  , pattern GL_RGBA16F
-  , pattern GL_RGBA16I
-  , pattern GL_RGBA16UI
-  , pattern GL_RGBA32F
-  , pattern GL_RGBA32I
-  , pattern GL_RGBA32UI
-  , pattern GL_RGBA8
-  , pattern GL_RGBA8I
-  , pattern GL_RGBA8UI
-  , pattern GL_RGBA8_SNORM
-  , pattern GL_RGBA_INTEGER
-  , pattern GL_RGB_INTEGER
-  , pattern GL_RG_INTEGER
-  , pattern GL_SAMPLER_2D_ARRAY
-  , pattern GL_SAMPLER_2D_ARRAY_SHADOW
-  , pattern GL_SAMPLER_2D_SHADOW
-  , pattern GL_SAMPLER_3D
-  , pattern GL_SAMPLER_BINDING
-  , pattern GL_SAMPLER_CUBE_SHADOW
-  , pattern GL_SEPARATE_ATTRIBS
-  , pattern GL_SIGNALED
-  , pattern GL_SIGNED_NORMALIZED
-  , pattern GL_SRGB
-  , pattern GL_SRGB8
-  , pattern GL_SRGB8_ALPHA8
-  , pattern GL_STATIC_COPY
-  , pattern GL_STATIC_READ
-  , pattern GL_STENCIL
-  , pattern GL_STREAM_COPY
-  , pattern GL_STREAM_READ
-  , pattern GL_SYNC_CONDITION
-  , pattern GL_SYNC_FENCE
-  , pattern GL_SYNC_FLAGS
-  , pattern GL_SYNC_FLUSH_COMMANDS_BIT
-  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE
-  , pattern GL_SYNC_STATUS
-  , pattern GL_TEXTURE_2D_ARRAY
-  , pattern GL_TEXTURE_3D
-  , pattern GL_TEXTURE_BASE_LEVEL
-  , pattern GL_TEXTURE_BINDING_2D_ARRAY
-  , pattern GL_TEXTURE_BINDING_3D
-  , pattern GL_TEXTURE_COMPARE_FUNC
-  , pattern GL_TEXTURE_COMPARE_MODE
-  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
-  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
-  , pattern GL_TEXTURE_MAX_LEVEL
-  , pattern GL_TEXTURE_MAX_LOD
-  , pattern GL_TEXTURE_MIN_LOD
-  , pattern GL_TEXTURE_SWIZZLE_A
-  , pattern GL_TEXTURE_SWIZZLE_B
-  , pattern GL_TEXTURE_SWIZZLE_G
-  , pattern GL_TEXTURE_SWIZZLE_R
-  , pattern GL_TEXTURE_WRAP_R
-  , pattern GL_TIMEOUT_EXPIRED
-  , pattern GL_TIMEOUT_IGNORED
-  , pattern GL_TRANSFORM_FEEDBACK
-  , pattern GL_TRANSFORM_FEEDBACK_ACTIVE
-  , pattern GL_TRANSFORM_FEEDBACK_BINDING
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START
-  , pattern GL_TRANSFORM_FEEDBACK_PAUSED
-  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
-  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS
-  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
-  , pattern GL_UNIFORM_ARRAY_STRIDE
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
-  , pattern GL_UNIFORM_BLOCK_BINDING
-  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
-  , pattern GL_UNIFORM_BLOCK_INDEX
-  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_UNIFORM_BUFFER
-  , pattern GL_UNIFORM_BUFFER_BINDING
-  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_UNIFORM_BUFFER_SIZE
-  , pattern GL_UNIFORM_BUFFER_START
-  , pattern GL_UNIFORM_IS_ROW_MAJOR
-  , pattern GL_UNIFORM_MATRIX_STRIDE
-  , pattern GL_UNIFORM_NAME_LENGTH
-  , pattern GL_UNIFORM_OFFSET
-  , pattern GL_UNIFORM_SIZE
-  , pattern GL_UNIFORM_TYPE
-  , pattern GL_UNPACK_IMAGE_HEIGHT
-  , pattern GL_UNPACK_ROW_LENGTH
-  , pattern GL_UNPACK_SKIP_IMAGES
-  , pattern GL_UNPACK_SKIP_PIXELS
-  , pattern GL_UNPACK_SKIP_ROWS
-  , pattern GL_UNSIGNALED
-  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
-  , pattern GL_UNSIGNED_INT_24_8
-  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
-  , pattern GL_UNSIGNED_INT_5_9_9_9_REV
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_3D
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE
-  , pattern GL_UNSIGNED_INT_VEC2
-  , pattern GL_UNSIGNED_INT_VEC3
-  , pattern GL_UNSIGNED_INT_VEC4
-  , pattern GL_UNSIGNED_NORMALIZED
-  , pattern GL_VERTEX_ARRAY_BINDING
-  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR
-  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER
-  , pattern GL_WAIT_FAILED
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Embedded20
diff --git a/dist/build/autogen/Graphics/GL/Embedded31.hs b/dist/build/autogen/Graphics/GL/Embedded31.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Embedded31.hs
+++ /dev/null
@@ -1,251 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Embedded31 (
-  -- * Graphics.GL.Embedded31
-    module Graphics.GL.Embedded30
-  , glActiveShaderProgram
-  , glBindImageTexture
-  , glBindProgramPipeline
-  , glBindVertexBuffer
-  , glCreateShaderProgramv
-  , glDeleteProgramPipelines
-  , glDispatchCompute
-  , glDispatchComputeIndirect
-  , glDrawArraysIndirect
-  , glDrawElementsIndirect
-  , glFramebufferParameteri
-  , glGenProgramPipelines
-  , glGetBooleani_v
-  , glGetFramebufferParameteriv
-  , glGetMultisamplefv
-  , glGetProgramInterfaceiv
-  , glGetProgramPipelineInfoLog
-  , glGetProgramPipelineiv
-  , glGetProgramResourceIndex
-  , glGetProgramResourceLocation
-  , glGetProgramResourceName
-  , glGetProgramResourceiv
-  , glGetTexLevelParameterfv
-  , glGetTexLevelParameteriv
-  , glIsProgramPipeline
-  , glMemoryBarrier
-  , glMemoryBarrierByRegion
-  , glProgramUniform1f
-  , glProgramUniform1fv
-  , glProgramUniform1i
-  , glProgramUniform1iv
-  , glProgramUniform1ui
-  , glProgramUniform1uiv
-  , glProgramUniform2f
-  , glProgramUniform2fv
-  , glProgramUniform2i
-  , glProgramUniform2iv
-  , glProgramUniform2ui
-  , glProgramUniform2uiv
-  , glProgramUniform3f
-  , glProgramUniform3fv
-  , glProgramUniform3i
-  , glProgramUniform3iv
-  , glProgramUniform3ui
-  , glProgramUniform3uiv
-  , glProgramUniform4f
-  , glProgramUniform4fv
-  , glProgramUniform4i
-  , glProgramUniform4iv
-  , glProgramUniform4ui
-  , glProgramUniform4uiv
-  , glProgramUniformMatrix2fv
-  , glProgramUniformMatrix2x3fv
-  , glProgramUniformMatrix2x4fv
-  , glProgramUniformMatrix3fv
-  , glProgramUniformMatrix3x2fv
-  , glProgramUniformMatrix3x4fv
-  , glProgramUniformMatrix4fv
-  , glProgramUniformMatrix4x2fv
-  , glProgramUniformMatrix4x3fv
-  , glSampleMaski
-  , glTexStorage2DMultisample
-  , glUseProgramStages
-  , glValidateProgramPipeline
-  , glVertexAttribBinding
-  , glVertexAttribFormat
-  , glVertexAttribIFormat
-  , glVertexBindingDivisor
-  , pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_ACTIVE_PROGRAM
-  , pattern GL_ACTIVE_RESOURCES
-  , pattern GL_ACTIVE_VARIABLES
-  , pattern GL_ALL_BARRIER_BITS
-  , pattern GL_ALL_SHADER_BITS
-  , pattern GL_ARRAY_SIZE
-  , pattern GL_ARRAY_STRIDE
-  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT
-  , pattern GL_ATOMIC_COUNTER_BUFFER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_BINDING
-  , pattern GL_ATOMIC_COUNTER_BUFFER_INDEX
-  , pattern GL_ATOMIC_COUNTER_BUFFER_SIZE
-  , pattern GL_ATOMIC_COUNTER_BUFFER_START
-  , pattern GL_BLOCK_INDEX
-  , pattern GL_BUFFER_BINDING
-  , pattern GL_BUFFER_DATA_SIZE
-  , pattern GL_BUFFER_UPDATE_BARRIER_BIT
-  , pattern GL_BUFFER_VARIABLE
-  , pattern GL_COMMAND_BARRIER_BIT
-  , pattern GL_COMPUTE_SHADER
-  , pattern GL_COMPUTE_SHADER_BIT
-  , pattern GL_COMPUTE_WORK_GROUP_SIZE
-  , pattern GL_DEPTH_STENCIL_TEXTURE_MODE
-  , pattern GL_DISPATCH_INDIRECT_BUFFER
-  , pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING
-  , pattern GL_DRAW_INDIRECT_BUFFER
-  , pattern GL_DRAW_INDIRECT_BUFFER_BINDING
-  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT
-  , pattern GL_FRAGMENT_SHADER_BIT
-  , pattern GL_FRAMEBUFFER_BARRIER_BIT
-  , pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
-  , pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT
-  , pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES
-  , pattern GL_FRAMEBUFFER_DEFAULT_WIDTH
-  , pattern GL_IMAGE_2D
-  , pattern GL_IMAGE_2D_ARRAY
-  , pattern GL_IMAGE_3D
-  , pattern GL_IMAGE_BINDING_ACCESS
-  , pattern GL_IMAGE_BINDING_FORMAT
-  , pattern GL_IMAGE_BINDING_LAYER
-  , pattern GL_IMAGE_BINDING_LAYERED
-  , pattern GL_IMAGE_BINDING_LEVEL
-  , pattern GL_IMAGE_BINDING_NAME
-  , pattern GL_IMAGE_CUBE
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
-  , pattern GL_INT_IMAGE_2D
-  , pattern GL_INT_IMAGE_2D_ARRAY
-  , pattern GL_INT_IMAGE_3D
-  , pattern GL_INT_IMAGE_CUBE
-  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_IS_ROW_MAJOR
-  , pattern GL_LOCATION
-  , pattern GL_MATRIX_STRIDE
-  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
-  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
-  , pattern GL_MAX_COLOR_TEXTURE_SAMPLES
-  , pattern GL_MAX_COMBINED_ATOMIC_COUNTERS
-  , pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_IMAGE_UNIFORMS
-  , pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
-  , pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS
-  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS
-  , pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
-  , pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS
-  , pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE
-  , pattern GL_MAX_DEPTH_TEXTURE_SAMPLES
-  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS
-  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS
-  , pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_FRAMEBUFFER_HEIGHT
-  , pattern GL_MAX_FRAMEBUFFER_SAMPLES
-  , pattern GL_MAX_FRAMEBUFFER_WIDTH
-  , pattern GL_MAX_IMAGE_UNITS
-  , pattern GL_MAX_INTEGER_SAMPLES
-  , pattern GL_MAX_NAME_LENGTH
-  , pattern GL_MAX_NUM_ACTIVE_VARIABLES
-  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET
-  , pattern GL_MAX_SAMPLE_MASK_WORDS
-  , pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE
-  , pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
-  , pattern GL_MAX_UNIFORM_LOCATIONS
-  , pattern GL_MAX_VERTEX_ATOMIC_COUNTERS
-  , pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_VERTEX_ATTRIB_BINDINGS
-  , pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
-  , pattern GL_MAX_VERTEX_ATTRIB_STRIDE
-  , pattern GL_MAX_VERTEX_IMAGE_UNIFORMS
-  , pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
-  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET
-  , pattern GL_NAME_LENGTH
-  , pattern GL_NUM_ACTIVE_VARIABLES
-  , pattern GL_OFFSET
-  , pattern GL_PIXEL_BUFFER_BARRIER_BIT
-  , pattern GL_PROGRAM_INPUT
-  , pattern GL_PROGRAM_OUTPUT
-  , pattern GL_PROGRAM_PIPELINE_BINDING
-  , pattern GL_PROGRAM_SEPARABLE
-  , pattern GL_READ_ONLY
-  , pattern GL_READ_WRITE
-  , pattern GL_REFERENCED_BY_COMPUTE_SHADER
-  , pattern GL_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_SAMPLE_MASK
-  , pattern GL_SAMPLE_MASK_VALUE
-  , pattern GL_SAMPLE_POSITION
-  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
-  , pattern GL_SHADER_STORAGE_BARRIER_BIT
-  , pattern GL_SHADER_STORAGE_BLOCK
-  , pattern GL_SHADER_STORAGE_BUFFER
-  , pattern GL_SHADER_STORAGE_BUFFER_BINDING
-  , pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_SHADER_STORAGE_BUFFER_SIZE
-  , pattern GL_SHADER_STORAGE_BUFFER_START
-  , pattern GL_STENCIL_INDEX
-  , pattern GL_TEXTURE_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_ALPHA_SIZE
-  , pattern GL_TEXTURE_ALPHA_TYPE
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_BLUE_SIZE
-  , pattern GL_TEXTURE_BLUE_TYPE
-  , pattern GL_TEXTURE_COMPRESSED
-  , pattern GL_TEXTURE_DEPTH
-  , pattern GL_TEXTURE_DEPTH_SIZE
-  , pattern GL_TEXTURE_DEPTH_TYPE
-  , pattern GL_TEXTURE_FETCH_BARRIER_BIT
-  , pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
-  , pattern GL_TEXTURE_GREEN_SIZE
-  , pattern GL_TEXTURE_GREEN_TYPE
-  , pattern GL_TEXTURE_HEIGHT
-  , pattern GL_TEXTURE_INTERNAL_FORMAT
-  , pattern GL_TEXTURE_RED_SIZE
-  , pattern GL_TEXTURE_RED_TYPE
-  , pattern GL_TEXTURE_SAMPLES
-  , pattern GL_TEXTURE_SHARED_SIZE
-  , pattern GL_TEXTURE_STENCIL_SIZE
-  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT
-  , pattern GL_TEXTURE_WIDTH
-  , pattern GL_TOP_LEVEL_ARRAY_SIZE
-  , pattern GL_TOP_LEVEL_ARRAY_STRIDE
-  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT
-  , pattern GL_TRANSFORM_FEEDBACK_VARYING
-  , pattern GL_TYPE
-  , pattern GL_UNIFORM
-  , pattern GL_UNIFORM_BARRIER_BIT
-  , pattern GL_UNIFORM_BLOCK
-  , pattern GL_UNSIGNED_INT_ATOMIC_COUNTER
-  , pattern GL_UNSIGNED_INT_IMAGE_2D
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY
-  , pattern GL_UNSIGNED_INT_IMAGE_3D
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
-  , pattern GL_VERTEX_ATTRIB_BINDING
-  , pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET
-  , pattern GL_VERTEX_BINDING_BUFFER
-  , pattern GL_VERTEX_BINDING_DIVISOR
-  , pattern GL_VERTEX_BINDING_OFFSET
-  , pattern GL_VERTEX_BINDING_STRIDE
-  , pattern GL_VERTEX_SHADER_BIT
-  , pattern GL_WRITE_ONLY
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Embedded30
diff --git a/dist/build/autogen/Graphics/GL/Embedded32.hs b/dist/build/autogen/Graphics/GL/Embedded32.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Embedded32.hs
+++ /dev/null
@@ -1,380 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Embedded32 (
-  -- * Graphics.GL.Embedded32
-    module Graphics.GL.Embedded31
-  , glBlendBarrier
-  , glBlendEquationSeparatei
-  , glBlendEquationi
-  , glBlendFuncSeparatei
-  , glBlendFunci
-  , glColorMaski
-  , glCopyImageSubData
-  , glDebugMessageCallback
-  , glDebugMessageControl
-  , glDebugMessageInsert
-  , glDisablei
-  , glDrawElementsBaseVertex
-  , glDrawElementsInstancedBaseVertex
-  , glDrawRangeElementsBaseVertex
-  , glEnablei
-  , glFramebufferTexture
-  , glGetDebugMessageLog
-  , glGetGraphicsResetStatus
-  , glGetObjectLabel
-  , glGetObjectPtrLabel
-  , glGetPointerv
-  , glGetSamplerParameterIiv
-  , glGetSamplerParameterIuiv
-  , glGetTexParameterIiv
-  , glGetTexParameterIuiv
-  , glGetnUniformfv
-  , glGetnUniformiv
-  , glGetnUniformuiv
-  , glIsEnabledi
-  , glMinSampleShading
-  , glObjectLabel
-  , glObjectPtrLabel
-  , glPatchParameteri
-  , glPopDebugGroup
-  , glPrimitiveBoundingBox
-  , glPushDebugGroup
-  , glReadnPixels
-  , glSamplerParameterIiv
-  , glSamplerParameterIuiv
-  , glTexBuffer
-  , glTexBufferRange
-  , glTexParameterIiv
-  , glTexParameterIuiv
-  , glTexStorage3DMultisample
-  , pattern GL_BUFFER
-  , pattern GL_CLAMP_TO_BORDER
-  , pattern GL_COLORBURN
-  , pattern GL_COLORDODGE
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x10
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x5
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x6
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x8
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x10
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x12
-  , pattern GL_COMPRESSED_RGBA_ASTC_4x4
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x4
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x5
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x5
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x6
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x5
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x6
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x8
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8
-  , pattern GL_CONTEXT_FLAGS
-  , pattern GL_CONTEXT_FLAG_DEBUG_BIT
-  , pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT
-  , pattern GL_CONTEXT_LOST
-  , pattern GL_DARKEN
-  , pattern GL_DEBUG_CALLBACK_FUNCTION
-  , pattern GL_DEBUG_CALLBACK_USER_PARAM
-  , pattern GL_DEBUG_GROUP_STACK_DEPTH
-  , pattern GL_DEBUG_LOGGED_MESSAGES
-  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
-  , pattern GL_DEBUG_OUTPUT
-  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS
-  , pattern GL_DEBUG_SEVERITY_HIGH
-  , pattern GL_DEBUG_SEVERITY_LOW
-  , pattern GL_DEBUG_SEVERITY_MEDIUM
-  , pattern GL_DEBUG_SEVERITY_NOTIFICATION
-  , pattern GL_DEBUG_SOURCE_API
-  , pattern GL_DEBUG_SOURCE_APPLICATION
-  , pattern GL_DEBUG_SOURCE_OTHER
-  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER
-  , pattern GL_DEBUG_SOURCE_THIRD_PARTY
-  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM
-  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
-  , pattern GL_DEBUG_TYPE_ERROR
-  , pattern GL_DEBUG_TYPE_MARKER
-  , pattern GL_DEBUG_TYPE_OTHER
-  , pattern GL_DEBUG_TYPE_PERFORMANCE
-  , pattern GL_DEBUG_TYPE_POP_GROUP
-  , pattern GL_DEBUG_TYPE_PORTABILITY
-  , pattern GL_DEBUG_TYPE_PUSH_GROUP
-  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
-  , pattern GL_DIFFERENCE
-  , pattern GL_EXCLUSION
-  , pattern GL_FIRST_VERTEX_CONVENTION
-  , pattern GL_FRACTIONAL_EVEN
-  , pattern GL_FRACTIONAL_ODD
-  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED
-  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS
-  , pattern GL_GEOMETRY_INPUT_TYPE
-  , pattern GL_GEOMETRY_OUTPUT_TYPE
-  , pattern GL_GEOMETRY_SHADER
-  , pattern GL_GEOMETRY_SHADER_BIT
-  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
-  , pattern GL_GEOMETRY_VERTICES_OUT
-  , pattern GL_GUILTY_CONTEXT_RESET
-  , pattern GL_HARDLIGHT
-  , pattern GL_HSL_COLOR
-  , pattern GL_HSL_HUE
-  , pattern GL_HSL_LUMINOSITY
-  , pattern GL_HSL_SATURATION
-  , pattern GL_IMAGE_BUFFER
-  , pattern GL_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_INNOCENT_CONTEXT_RESET
-  , pattern GL_INT_IMAGE_BUFFER
-  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_INT_SAMPLER_BUFFER
-  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY
-  , pattern GL_ISOLINES
-  , pattern GL_IS_PER_PATCH
-  , pattern GL_LAST_VERTEX_CONVENTION
-  , pattern GL_LAYER_PROVOKING_VERTEX
-  , pattern GL_LIGHTEN
-  , pattern GL_LINES_ADJACENCY
-  , pattern GL_LINE_STRIP_ADJACENCY
-  , pattern GL_LOSE_CONTEXT_ON_RESET
-  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
-  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH
-  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES
-  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH
-  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
-  , pattern GL_MAX_FRAMEBUFFER_LAYERS
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS
-  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS
-  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS
-  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES
-  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS
-  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
-  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS
-  , pattern GL_MAX_LABEL_LENGTH
-  , pattern GL_MAX_PATCH_VERTICES
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
-  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
-  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
-  , pattern GL_MAX_TESS_GEN_LEVEL
-  , pattern GL_MAX_TESS_PATCH_COMPONENTS
-  , pattern GL_MAX_TEXTURE_BUFFER_SIZE
-  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
-  , pattern GL_MIN_SAMPLE_SHADING_VALUE
-  , pattern GL_MULTIPLY
-  , pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY
-  , pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE
-  , pattern GL_NO_RESET_NOTIFICATION
-  , pattern GL_OVERLAY
-  , pattern GL_PATCHES
-  , pattern GL_PATCH_VERTICES
-  , pattern GL_PRIMITIVES_GENERATED
-  , pattern GL_PRIMITIVE_BOUNDING_BOX
-  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
-  , pattern GL_PROGRAM
-  , pattern GL_PROGRAM_PIPELINE
-  , pattern GL_QUADS
-  , pattern GL_QUERY
-  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER
-  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER
-  , pattern GL_RESET_NOTIFICATION_STRATEGY
-  , pattern GL_SAMPLER
-  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_SAMPLER_BUFFER
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
-  , pattern GL_SAMPLE_SHADING
-  , pattern GL_SCREEN
-  , pattern GL_SHADER
-  , pattern GL_SOFTLIGHT
-  , pattern GL_STACK_OVERFLOW
-  , pattern GL_STACK_UNDERFLOW
-  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES
-  , pattern GL_TESS_CONTROL_SHADER
-  , pattern GL_TESS_CONTROL_SHADER_BIT
-  , pattern GL_TESS_EVALUATION_SHADER
-  , pattern GL_TESS_EVALUATION_SHADER_BIT
-  , pattern GL_TESS_GEN_MODE
-  , pattern GL_TESS_GEN_POINT_MODE
-  , pattern GL_TESS_GEN_SPACING
-  , pattern GL_TESS_GEN_VERTEX_ORDER
-  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_BINDING_BUFFER
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
-  , pattern GL_TEXTURE_BORDER_COLOR
-  , pattern GL_TEXTURE_BUFFER
-  , pattern GL_TEXTURE_BUFFER_BINDING
-  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING
-  , pattern GL_TEXTURE_BUFFER_OFFSET
-  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_TEXTURE_BUFFER_SIZE
-  , pattern GL_TEXTURE_CUBE_MAP_ARRAY
-  , pattern GL_TRIANGLES_ADJACENCY
-  , pattern GL_TRIANGLE_STRIP_ADJACENCY
-  , pattern GL_UNDEFINED_VERTEX
-  , pattern GL_UNKNOWN_CONTEXT_RESET
-  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
-  , pattern GL_VERTEX_ARRAY
-) where
-
-import Control.Monad.IO.Class
-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
-
-import Graphics.GL.Embedded31
-
--- | Usage: @'glBlendBarrier'@
-
-
-glBlendBarrier :: MonadIO m => m ()
-glBlendBarrier = ffiIOV glBlendBarrierFunPtr
-
-glBlendBarrierFunPtr :: FunPtr (IO ())
-glBlendBarrierFunPtr = unsafePerformIO (getProcAddress "glBlendBarrier")
-
-{-# NOINLINE glBlendBarrierFunPtr #-}
-
--- | Usage: @'glPrimitiveBoundingBox' minX minY minZ minW maxX maxY maxZ maxW@
-
-
-glPrimitiveBoundingBox :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glPrimitiveBoundingBox = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxFunPtr
-
-glPrimitiveBoundingBoxFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glPrimitiveBoundingBoxFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBox")
-
-{-# NOINLINE glPrimitiveBoundingBoxFunPtr #-}
-
-pattern GL_COLORBURN = 0x929A
-
-pattern GL_COLORDODGE = 0x9299
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x10 = 0x93BB
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x5 = 0x93B8
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x6 = 0x93B9
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x8 = 0x93BA
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x10 = 0x93BC
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x12 = 0x93BD
-
-pattern GL_COMPRESSED_RGBA_ASTC_4x4 = 0x93B0
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x4 = 0x93B1
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x5 = 0x93B2
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x5 = 0x93B3
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x6 = 0x93B4
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x5 = 0x93B5
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x6 = 0x93B6
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x8 = 0x93B7
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7
-
-pattern GL_DARKEN = 0x9297
-
-pattern GL_DIFFERENCE = 0x929E
-
-pattern GL_EXCLUSION = 0x92A0
-
-pattern GL_HARDLIGHT = 0x929B
-
-pattern GL_HSL_COLOR = 0x92AF
-
-pattern GL_HSL_HUE = 0x92AD
-
-pattern GL_HSL_LUMINOSITY = 0x92B0
-
-pattern GL_HSL_SATURATION = 0x92AE
-
-pattern GL_LIGHTEN = 0x9298
-
-pattern GL_MULTIPLY = 0x9294
-
-pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY = 0x9382
-
-pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE = 0x9381
-
-pattern GL_OVERLAY = 0x9296
-
-pattern GL_PRIMITIVE_BOUNDING_BOX = 0x92BE
-
-pattern GL_SCREEN = 0x9295
-
-pattern GL_SOFTLIGHT = 0x929C
diff --git a/dist/build/autogen/Graphics/GL/EmbeddedCommon11.hs b/dist/build/autogen/Graphics/GL/EmbeddedCommon11.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/EmbeddedCommon11.hs
+++ /dev/null
@@ -1,102 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.EmbeddedCommon11 (
-  -- * Graphics.GL.EmbeddedCommon11
-    module Graphics.GL.EmbeddedLite11
-  , glAlphaFunc
-  , glClearColor
-  , glClearDepthf
-  , glClipPlanef
-  , glColor4f
-  , glDepthRangef
-  , glFogf
-  , glFogfv
-  , glFrustumf
-  , glGetClipPlanef
-  , glGetFloatv
-  , glGetLightfv
-  , glGetMaterialfv
-  , glGetTexEnvfv
-  , glGetTexParameterfv
-  , glLightModelf
-  , glLightModelfv
-  , glLightf
-  , glLightfv
-  , glLineWidth
-  , glLoadMatrixf
-  , glMaterialf
-  , glMaterialfv
-  , glMultMatrixf
-  , glMultiTexCoord4f
-  , glNormal3f
-  , glOrthof
-  , glPointParameterf
-  , glPointParameterfv
-  , glPointSize
-  , glPolygonOffset
-  , glRotatef
-  , glScalef
-  , glTexEnvf
-  , glTexEnvfv
-  , glTexParameterf
-  , glTexParameterfv
-  , glTranslatef
-) where
-
-import Control.Monad.IO.Class
-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
-
-import Graphics.GL.EmbeddedLite11
-
--- | Usage: @'glClipPlanef' p eqn@
---
--- The length of @eqn@ should be @4@.
-
-
-glClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glClipPlanef = ffienumPtrfloatIOV glClipPlanefFunPtr
-
-glClipPlanefFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glClipPlanefFunPtr = unsafePerformIO (getProcAddress "glClipPlanef")
-
-{-# NOINLINE glClipPlanefFunPtr #-}
-
--- | Usage: @'glFrustumf' l r b t n f@
-
-
-glFrustumf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glFrustumf = ffifloatfloatfloatfloatfloatfloatIOV glFrustumfFunPtr
-
-glFrustumfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glFrustumfFunPtr = unsafePerformIO (getProcAddress "glFrustumf")
-
-{-# NOINLINE glFrustumfFunPtr #-}
-
--- | Usage: @'glGetClipPlanef' plane equation@
---
--- The length of @equation@ should be @4@.
-
-
-glGetClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetClipPlanef = ffienumPtrfloatIOV glGetClipPlanefFunPtr
-
-glGetClipPlanefFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetClipPlanefFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanef")
-
-{-# NOINLINE glGetClipPlanefFunPtr #-}
-
--- | Usage: @'glOrthof' l r b t n f@
-
-
-glOrthof :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glOrthof = ffifloatfloatfloatfloatfloatfloatIOV glOrthofFunPtr
-
-glOrthofFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glOrthofFunPtr = unsafePerformIO (getProcAddress "glOrthof")
-
-{-# NOINLINE glOrthofFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/EmbeddedLite11.hs b/dist/build/autogen/Graphics/GL/EmbeddedLite11.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/EmbeddedLite11.hs
+++ /dev/null
@@ -1,917 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.EmbeddedLite11 (
-  -- * Graphics.GL.EmbeddedLite11
-    glActiveTexture
-  , glAlphaFuncx
-  , glBindBuffer
-  , glBindTexture
-  , glBlendFunc
-  , glBufferData
-  , glBufferSubData
-  , glClear
-  , glClearColorx
-  , glClearDepthx
-  , glClearStencil
-  , glClientActiveTexture
-  , glClipPlanex
-  , glColor4ub
-  , glColor4x
-  , glColorMask
-  , glColorPointer
-  , glCompressedTexImage2D
-  , glCompressedTexSubImage2D
-  , glCopyTexImage2D
-  , glCopyTexSubImage2D
-  , glCullFace
-  , glDeleteBuffers
-  , glDeleteTextures
-  , glDepthFunc
-  , glDepthMask
-  , glDepthRangex
-  , glDisable
-  , glDisableClientState
-  , glDrawArrays
-  , glDrawElements
-  , glEnable
-  , glEnableClientState
-  , glFinish
-  , glFlush
-  , glFogx
-  , glFogxv
-  , glFrontFace
-  , glFrustumx
-  , glGenBuffers
-  , glGenTextures
-  , glGetBooleanv
-  , glGetBufferParameteriv
-  , glGetClipPlanex
-  , glGetError
-  , glGetFixedv
-  , glGetIntegerv
-  , glGetLightxv
-  , glGetMaterialxv
-  , glGetPointerv
-  , glGetString
-  , glGetTexEnviv
-  , glGetTexEnvxv
-  , glGetTexParameteriv
-  , glGetTexParameterxv
-  , glHint
-  , glIsBuffer
-  , glIsEnabled
-  , glIsTexture
-  , glLightModelx
-  , glLightModelxv
-  , glLightx
-  , glLightxv
-  , glLineWidthx
-  , glLoadIdentity
-  , glLoadMatrixx
-  , glLogicOp
-  , glMaterialx
-  , glMaterialxv
-  , glMatrixMode
-  , glMultMatrixx
-  , glMultiTexCoord4x
-  , glNormal3x
-  , glNormalPointer
-  , glOrthox
-  , glPixelStorei
-  , glPointParameterx
-  , glPointParameterxv
-  , glPointSizex
-  , glPolygonOffsetx
-  , glPopMatrix
-  , glPushMatrix
-  , glReadPixels
-  , glRotatex
-  , glSampleCoverage
-  , glSampleCoveragex
-  , glScalex
-  , glScissor
-  , glShadeModel
-  , glStencilFunc
-  , glStencilMask
-  , glStencilOp
-  , glTexCoordPointer
-  , glTexEnvi
-  , glTexEnviv
-  , glTexEnvx
-  , glTexEnvxv
-  , glTexImage2D
-  , glTexParameteri
-  , glTexParameteriv
-  , glTexParameterx
-  , glTexParameterxv
-  , glTexSubImage2D
-  , glTranslatex
-  , glVertexPointer
-  , glViewport
-  , pattern GL_ACTIVE_TEXTURE
-  , pattern GL_ADD
-  , pattern GL_ADD_SIGNED
-  , pattern GL_ALIASED_LINE_WIDTH_RANGE
-  , pattern GL_ALIASED_POINT_SIZE_RANGE
-  , pattern GL_ALPHA
-  , pattern GL_ALPHA_BITS
-  , pattern GL_ALPHA_SCALE
-  , pattern GL_ALPHA_TEST
-  , pattern GL_ALPHA_TEST_FUNC
-  , pattern GL_ALPHA_TEST_REF
-  , pattern GL_ALWAYS
-  , pattern GL_AMBIENT
-  , pattern GL_AMBIENT_AND_DIFFUSE
-  , pattern GL_AND
-  , pattern GL_AND_INVERTED
-  , pattern GL_AND_REVERSE
-  , pattern GL_ARRAY_BUFFER
-  , pattern GL_ARRAY_BUFFER_BINDING
-  , pattern GL_BACK
-  , pattern GL_BLEND
-  , pattern GL_BLEND_DST
-  , pattern GL_BLEND_SRC
-  , pattern GL_BLUE_BITS
-  , pattern GL_BUFFER_SIZE
-  , pattern GL_BUFFER_USAGE
-  , pattern GL_BYTE
-  , pattern GL_CCW
-  , pattern GL_CLAMP_TO_EDGE
-  , pattern GL_CLEAR
-  , pattern GL_CLIENT_ACTIVE_TEXTURE
-  , pattern GL_CLIP_PLANE0
-  , pattern GL_CLIP_PLANE1
-  , pattern GL_CLIP_PLANE2
-  , pattern GL_CLIP_PLANE3
-  , pattern GL_CLIP_PLANE4
-  , pattern GL_CLIP_PLANE5
-  , pattern GL_COLOR_ARRAY
-  , pattern GL_COLOR_ARRAY_BUFFER_BINDING
-  , pattern GL_COLOR_ARRAY_POINTER
-  , pattern GL_COLOR_ARRAY_SIZE
-  , pattern GL_COLOR_ARRAY_STRIDE
-  , pattern GL_COLOR_ARRAY_TYPE
-  , pattern GL_COLOR_BUFFER_BIT
-  , pattern GL_COLOR_CLEAR_VALUE
-  , pattern GL_COLOR_LOGIC_OP
-  , pattern GL_COLOR_MATERIAL
-  , pattern GL_COLOR_WRITEMASK
-  , pattern GL_COMBINE
-  , pattern GL_COMBINE_ALPHA
-  , pattern GL_COMBINE_RGB
-  , pattern GL_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_CONSTANT
-  , pattern GL_CONSTANT_ATTENUATION
-  , pattern GL_COPY
-  , pattern GL_COPY_INVERTED
-  , pattern GL_CULL_FACE
-  , pattern GL_CULL_FACE_MODE
-  , pattern GL_CURRENT_COLOR
-  , pattern GL_CURRENT_NORMAL
-  , pattern GL_CURRENT_TEXTURE_COORDS
-  , pattern GL_CW
-  , pattern GL_DECAL
-  , pattern GL_DECR
-  , pattern GL_DEPTH_BITS
-  , pattern GL_DEPTH_BUFFER_BIT
-  , pattern GL_DEPTH_CLEAR_VALUE
-  , pattern GL_DEPTH_FUNC
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_DEPTH_TEST
-  , pattern GL_DEPTH_WRITEMASK
-  , pattern GL_DIFFUSE
-  , pattern GL_DITHER
-  , pattern GL_DONT_CARE
-  , pattern GL_DOT3_RGB
-  , pattern GL_DOT3_RGBA
-  , pattern GL_DST_ALPHA
-  , pattern GL_DST_COLOR
-  , pattern GL_DYNAMIC_DRAW
-  , pattern GL_ELEMENT_ARRAY_BUFFER
-  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
-  , pattern GL_EMISSION
-  , pattern GL_EQUAL
-  , pattern GL_EQUIV
-  , pattern GL_EXP
-  , pattern GL_EXP2
-  , pattern GL_EXTENSIONS
-  , pattern GL_FALSE
-  , pattern GL_FASTEST
-  , pattern GL_FIXED
-  , pattern GL_FLAT
-  , pattern GL_FLOAT
-  , pattern GL_FOG
-  , pattern GL_FOG_COLOR
-  , pattern GL_FOG_DENSITY
-  , pattern GL_FOG_END
-  , pattern GL_FOG_HINT
-  , pattern GL_FOG_MODE
-  , pattern GL_FOG_START
-  , pattern GL_FRONT
-  , pattern GL_FRONT_AND_BACK
-  , pattern GL_FRONT_FACE
-  , pattern GL_GENERATE_MIPMAP
-  , pattern GL_GENERATE_MIPMAP_HINT
-  , pattern GL_GEQUAL
-  , pattern GL_GREATER
-  , pattern GL_GREEN_BITS
-  , pattern GL_INCR
-  , pattern GL_INTERPOLATE
-  , pattern GL_INVALID_ENUM
-  , pattern GL_INVALID_OPERATION
-  , pattern GL_INVALID_VALUE
-  , pattern GL_INVERT
-  , pattern GL_KEEP
-  , pattern GL_LEQUAL
-  , pattern GL_LESS
-  , pattern GL_LIGHT0
-  , pattern GL_LIGHT1
-  , pattern GL_LIGHT2
-  , pattern GL_LIGHT3
-  , pattern GL_LIGHT4
-  , pattern GL_LIGHT5
-  , pattern GL_LIGHT6
-  , pattern GL_LIGHT7
-  , pattern GL_LIGHTING
-  , pattern GL_LIGHT_MODEL_AMBIENT
-  , pattern GL_LIGHT_MODEL_TWO_SIDE
-  , pattern GL_LINEAR
-  , pattern GL_LINEAR_ATTENUATION
-  , pattern GL_LINEAR_MIPMAP_LINEAR
-  , pattern GL_LINEAR_MIPMAP_NEAREST
-  , pattern GL_LINES
-  , pattern GL_LINE_LOOP
-  , pattern GL_LINE_SMOOTH
-  , pattern GL_LINE_SMOOTH_HINT
-  , pattern GL_LINE_STRIP
-  , pattern GL_LINE_WIDTH
-  , pattern GL_LOGIC_OP_MODE
-  , pattern GL_LUMINANCE
-  , pattern GL_LUMINANCE_ALPHA
-  , pattern GL_MATRIX_MODE
-  , pattern GL_MAX_CLIP_PLANES
-  , pattern GL_MAX_LIGHTS
-  , pattern GL_MAX_MODELVIEW_STACK_DEPTH
-  , pattern GL_MAX_PROJECTION_STACK_DEPTH
-  , pattern GL_MAX_TEXTURE_SIZE
-  , pattern GL_MAX_TEXTURE_STACK_DEPTH
-  , pattern GL_MAX_TEXTURE_UNITS
-  , pattern GL_MAX_VIEWPORT_DIMS
-  , pattern GL_MODELVIEW
-  , pattern GL_MODELVIEW_MATRIX
-  , pattern GL_MODELVIEW_STACK_DEPTH
-  , pattern GL_MODULATE
-  , pattern GL_MULTISAMPLE
-  , pattern GL_NAND
-  , pattern GL_NEAREST
-  , pattern GL_NEAREST_MIPMAP_LINEAR
-  , pattern GL_NEAREST_MIPMAP_NEAREST
-  , pattern GL_NEVER
-  , pattern GL_NICEST
-  , pattern GL_NOOP
-  , pattern GL_NOR
-  , pattern GL_NORMALIZE
-  , pattern GL_NORMAL_ARRAY
-  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING
-  , pattern GL_NORMAL_ARRAY_POINTER
-  , pattern GL_NORMAL_ARRAY_STRIDE
-  , pattern GL_NORMAL_ARRAY_TYPE
-  , pattern GL_NOTEQUAL
-  , pattern GL_NO_ERROR
-  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_ONE
-  , pattern GL_ONE_MINUS_DST_ALPHA
-  , pattern GL_ONE_MINUS_DST_COLOR
-  , pattern GL_ONE_MINUS_SRC_ALPHA
-  , pattern GL_ONE_MINUS_SRC_COLOR
-  , pattern GL_OPERAND0_ALPHA
-  , pattern GL_OPERAND0_RGB
-  , pattern GL_OPERAND1_ALPHA
-  , pattern GL_OPERAND1_RGB
-  , pattern GL_OPERAND2_ALPHA
-  , pattern GL_OPERAND2_RGB
-  , pattern GL_OR
-  , pattern GL_OR_INVERTED
-  , pattern GL_OR_REVERSE
-  , pattern GL_OUT_OF_MEMORY
-  , pattern GL_PACK_ALIGNMENT
-  , pattern GL_PERSPECTIVE_CORRECTION_HINT
-  , pattern GL_POINTS
-  , pattern GL_POINT_DISTANCE_ATTENUATION
-  , pattern GL_POINT_FADE_THRESHOLD_SIZE
-  , pattern GL_POINT_SIZE
-  , pattern GL_POINT_SIZE_MAX
-  , pattern GL_POINT_SIZE_MIN
-  , pattern GL_POINT_SMOOTH
-  , pattern GL_POINT_SMOOTH_HINT
-  , pattern GL_POLYGON_OFFSET_FACTOR
-  , pattern GL_POLYGON_OFFSET_FILL
-  , pattern GL_POLYGON_OFFSET_UNITS
-  , pattern GL_POSITION
-  , pattern GL_PREVIOUS
-  , pattern GL_PRIMARY_COLOR
-  , pattern GL_PROJECTION
-  , pattern GL_PROJECTION_MATRIX
-  , pattern GL_PROJECTION_STACK_DEPTH
-  , pattern GL_QUADRATIC_ATTENUATION
-  , pattern GL_RED_BITS
-  , pattern GL_RENDERER
-  , pattern GL_REPEAT
-  , pattern GL_REPLACE
-  , pattern GL_RESCALE_NORMAL
-  , pattern GL_RGB
-  , pattern GL_RGBA
-  , pattern GL_RGB_SCALE
-  , pattern GL_SAMPLES
-  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
-  , pattern GL_SAMPLE_ALPHA_TO_ONE
-  , pattern GL_SAMPLE_BUFFERS
-  , pattern GL_SAMPLE_COVERAGE
-  , pattern GL_SAMPLE_COVERAGE_INVERT
-  , pattern GL_SAMPLE_COVERAGE_VALUE
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_SET
-  , pattern GL_SHADE_MODEL
-  , pattern GL_SHININESS
-  , pattern GL_SHORT
-  , pattern GL_SMOOTH
-  , pattern GL_SMOOTH_LINE_WIDTH_RANGE
-  , pattern GL_SMOOTH_POINT_SIZE_RANGE
-  , pattern GL_SPECULAR
-  , pattern GL_SPOT_CUTOFF
-  , pattern GL_SPOT_DIRECTION
-  , pattern GL_SPOT_EXPONENT
-  , pattern GL_SRC0_ALPHA
-  , pattern GL_SRC0_RGB
-  , pattern GL_SRC1_ALPHA
-  , pattern GL_SRC1_RGB
-  , pattern GL_SRC2_ALPHA
-  , pattern GL_SRC2_RGB
-  , pattern GL_SRC_ALPHA
-  , pattern GL_SRC_ALPHA_SATURATE
-  , pattern GL_SRC_COLOR
-  , pattern GL_STACK_OVERFLOW
-  , pattern GL_STACK_UNDERFLOW
-  , pattern GL_STATIC_DRAW
-  , pattern GL_STENCIL_BITS
-  , pattern GL_STENCIL_BUFFER_BIT
-  , pattern GL_STENCIL_CLEAR_VALUE
-  , pattern GL_STENCIL_FAIL
-  , pattern GL_STENCIL_FUNC
-  , pattern GL_STENCIL_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_REF
-  , pattern GL_STENCIL_TEST
-  , pattern GL_STENCIL_VALUE_MASK
-  , pattern GL_STENCIL_WRITEMASK
-  , pattern GL_SUBPIXEL_BITS
-  , pattern GL_SUBTRACT
-  , pattern GL_TEXTURE
-  , pattern GL_TEXTURE0
-  , pattern GL_TEXTURE1
-  , pattern GL_TEXTURE10
-  , pattern GL_TEXTURE11
-  , pattern GL_TEXTURE12
-  , pattern GL_TEXTURE13
-  , pattern GL_TEXTURE14
-  , pattern GL_TEXTURE15
-  , pattern GL_TEXTURE16
-  , pattern GL_TEXTURE17
-  , pattern GL_TEXTURE18
-  , pattern GL_TEXTURE19
-  , pattern GL_TEXTURE2
-  , pattern GL_TEXTURE20
-  , pattern GL_TEXTURE21
-  , pattern GL_TEXTURE22
-  , pattern GL_TEXTURE23
-  , pattern GL_TEXTURE24
-  , pattern GL_TEXTURE25
-  , pattern GL_TEXTURE26
-  , pattern GL_TEXTURE27
-  , pattern GL_TEXTURE28
-  , pattern GL_TEXTURE29
-  , pattern GL_TEXTURE3
-  , pattern GL_TEXTURE30
-  , pattern GL_TEXTURE31
-  , pattern GL_TEXTURE4
-  , pattern GL_TEXTURE5
-  , pattern GL_TEXTURE6
-  , pattern GL_TEXTURE7
-  , pattern GL_TEXTURE8
-  , pattern GL_TEXTURE9
-  , pattern GL_TEXTURE_2D
-  , pattern GL_TEXTURE_BINDING_2D
-  , pattern GL_TEXTURE_COORD_ARRAY
-  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
-  , pattern GL_TEXTURE_COORD_ARRAY_POINTER
-  , pattern GL_TEXTURE_COORD_ARRAY_SIZE
-  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE
-  , pattern GL_TEXTURE_COORD_ARRAY_TYPE
-  , pattern GL_TEXTURE_ENV
-  , pattern GL_TEXTURE_ENV_COLOR
-  , pattern GL_TEXTURE_ENV_MODE
-  , pattern GL_TEXTURE_MAG_FILTER
-  , pattern GL_TEXTURE_MATRIX
-  , pattern GL_TEXTURE_MIN_FILTER
-  , pattern GL_TEXTURE_STACK_DEPTH
-  , pattern GL_TEXTURE_WRAP_S
-  , pattern GL_TEXTURE_WRAP_T
-  , pattern GL_TRIANGLES
-  , pattern GL_TRIANGLE_FAN
-  , pattern GL_TRIANGLE_STRIP
-  , pattern GL_TRUE
-  , pattern GL_UNPACK_ALIGNMENT
-  , pattern GL_UNSIGNED_BYTE
-  , pattern GL_UNSIGNED_SHORT
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4
-  , pattern GL_UNSIGNED_SHORT_5_5_5_1
-  , pattern GL_UNSIGNED_SHORT_5_6_5
-  , pattern GL_VENDOR
-  , pattern GL_VERSION
-  , pattern GL_VERSION_ES_CL_1_0
-  , pattern GL_VERSION_ES_CL_1_1
-  , pattern GL_VERSION_ES_CM_1_1
-  , pattern GL_VERTEX_ARRAY
-  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING
-  , pattern GL_VERTEX_ARRAY_POINTER
-  , pattern GL_VERTEX_ARRAY_SIZE
-  , pattern GL_VERTEX_ARRAY_STRIDE
-  , pattern GL_VERTEX_ARRAY_TYPE
-  , pattern GL_VIEWPORT
-  , pattern GL_XOR
-  , pattern GL_ZERO
-) where
-
-import Control.Monad.IO.Class
-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
-
--- | Usage: @'glAlphaFuncx' func ref@
-
-
-glAlphaFuncx :: MonadIO m => GLenum -> GLfixed -> m ()
-glAlphaFuncx = ffienumfixedIOV glAlphaFuncxFunPtr
-
-glAlphaFuncxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glAlphaFuncxFunPtr = unsafePerformIO (getProcAddress "glAlphaFuncx")
-
-{-# NOINLINE glAlphaFuncxFunPtr #-}
-
--- | Usage: @'glClearColorx' red green blue alpha@
-
-
-glClearColorx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glClearColorx = ffifixedfixedfixedfixedIOV glClearColorxFunPtr
-
-glClearColorxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glClearColorxFunPtr = unsafePerformIO (getProcAddress "glClearColorx")
-
-{-# NOINLINE glClearColorxFunPtr #-}
-
--- | Usage: @'glClearDepthx' depth@
-
-
-glClearDepthx :: MonadIO m => GLfixed -> m ()
-glClearDepthx = ffifixedIOV glClearDepthxFunPtr
-
-glClearDepthxFunPtr :: FunPtr (GLfixed -> IO ())
-glClearDepthxFunPtr = unsafePerformIO (getProcAddress "glClearDepthx")
-
-{-# NOINLINE glClearDepthxFunPtr #-}
-
--- | Usage: @'glClipPlanex' plane equation@
---
--- The length of @equation@ should be @4@.
-
-
-glClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glClipPlanex = ffienumPtrfixedIOV glClipPlanexFunPtr
-
-glClipPlanexFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glClipPlanexFunPtr = unsafePerformIO (getProcAddress "glClipPlanex")
-
-{-# NOINLINE glClipPlanexFunPtr #-}
-
--- | Usage: @'glColor4x' red green blue alpha@
-
-
-glColor4x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glColor4x = ffifixedfixedfixedfixedIOV glColor4xFunPtr
-
-glColor4xFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glColor4xFunPtr = unsafePerformIO (getProcAddress "glColor4x")
-
-{-# NOINLINE glColor4xFunPtr #-}
-
--- | Usage: @'glDepthRangex' n f@
-
-
-glDepthRangex :: MonadIO m => GLfixed -> GLfixed -> m ()
-glDepthRangex = ffifixedfixedIOV glDepthRangexFunPtr
-
-glDepthRangexFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glDepthRangexFunPtr = unsafePerformIO (getProcAddress "glDepthRangex")
-
-{-# NOINLINE glDepthRangexFunPtr #-}
-
--- | Usage: @'glFogx' pname param@
-
-
-glFogx :: MonadIO m => GLenum -> GLfixed -> m ()
-glFogx = ffienumfixedIOV glFogxFunPtr
-
-glFogxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glFogxFunPtr = unsafePerformIO (getProcAddress "glFogx")
-
-{-# NOINLINE glFogxFunPtr #-}
-
--- | Usage: @'glFogxv' pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glFogxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glFogxv = ffienumPtrfixedIOV glFogxvFunPtr
-
-glFogxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glFogxvFunPtr = unsafePerformIO (getProcAddress "glFogxv")
-
-{-# NOINLINE glFogxvFunPtr #-}
-
--- | Usage: @'glFrustumx' l r b t n f@
-
-
-glFrustumx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glFrustumx = ffifixedfixedfixedfixedfixedfixedIOV glFrustumxFunPtr
-
-glFrustumxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glFrustumxFunPtr = unsafePerformIO (getProcAddress "glFrustumx")
-
-{-# NOINLINE glFrustumxFunPtr #-}
-
--- | Usage: @'glGetClipPlanex' plane equation@
---
--- The length of @equation@ should be @4@.
-
-
-glGetClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glGetClipPlanex = ffienumPtrfixedIOV glGetClipPlanexFunPtr
-
-glGetClipPlanexFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glGetClipPlanexFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanex")
-
-{-# NOINLINE glGetClipPlanexFunPtr #-}
-
--- | Usage: @'glGetFixedv' pname params@
-
-
-glGetFixedv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glGetFixedv = ffienumPtrfixedIOV glGetFixedvFunPtr
-
-glGetFixedvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glGetFixedvFunPtr = unsafePerformIO (getProcAddress "glGetFixedv")
-
-{-# NOINLINE glGetFixedvFunPtr #-}
-
--- | Usage: @'glGetLightxv' light pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetLightxv = ffienumenumPtrfixedIOV glGetLightxvFunPtr
-
-glGetLightxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetLightxvFunPtr = unsafePerformIO (getProcAddress "glGetLightxv")
-
-{-# NOINLINE glGetLightxvFunPtr #-}
-
--- | Usage: @'glGetMaterialxv' face pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetMaterialxv = ffienumenumPtrfixedIOV glGetMaterialxvFunPtr
-
-glGetMaterialxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetMaterialxvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialxv")
-
-{-# NOINLINE glGetMaterialxvFunPtr #-}
-
--- | Usage: @'glGetTexEnvxv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetTexEnvxv = ffienumenumPtrfixedIOV glGetTexEnvxvFunPtr
-
-glGetTexEnvxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexEnvxvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvxv")
-
-{-# NOINLINE glGetTexEnvxvFunPtr #-}
-
--- | Usage: @'glGetTexParameterxv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetTexParameterxv = ffienumenumPtrfixedIOV glGetTexParameterxvFunPtr
-
-glGetTexParameterxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexParameterxvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterxv")
-
-{-# NOINLINE glGetTexParameterxvFunPtr #-}
-
--- | Usage: @'glLightModelx' pname param@
-
-
-glLightModelx :: MonadIO m => GLenum -> GLfixed -> m ()
-glLightModelx = ffienumfixedIOV glLightModelxFunPtr
-
-glLightModelxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glLightModelxFunPtr = unsafePerformIO (getProcAddress "glLightModelx")
-
-{-# NOINLINE glLightModelxFunPtr #-}
-
--- | Usage: @'glLightModelxv' pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glLightModelxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glLightModelxv = ffienumPtrfixedIOV glLightModelxvFunPtr
-
-glLightModelxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glLightModelxvFunPtr = unsafePerformIO (getProcAddress "glLightModelxv")
-
-{-# NOINLINE glLightModelxvFunPtr #-}
-
--- | Usage: @'glLightx' light pname param@
-
-
-glLightx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glLightx = ffienumenumfixedIOV glLightxFunPtr
-
-glLightxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glLightxFunPtr = unsafePerformIO (getProcAddress "glLightx")
-
-{-# NOINLINE glLightxFunPtr #-}
-
--- | Usage: @'glLightxv' light pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glLightxv = ffienumenumPtrfixedIOV glLightxvFunPtr
-
-glLightxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glLightxvFunPtr = unsafePerformIO (getProcAddress "glLightxv")
-
-{-# NOINLINE glLightxvFunPtr #-}
-
--- | Usage: @'glLineWidthx' width@
-
-
-glLineWidthx :: MonadIO m => GLfixed -> m ()
-glLineWidthx = ffifixedIOV glLineWidthxFunPtr
-
-glLineWidthxFunPtr :: FunPtr (GLfixed -> IO ())
-glLineWidthxFunPtr = unsafePerformIO (getProcAddress "glLineWidthx")
-
-{-# NOINLINE glLineWidthxFunPtr #-}
-
--- | Usage: @'glLoadMatrixx' m@
---
--- The length of @m@ should be @16@.
-
-
-glLoadMatrixx :: MonadIO m => Ptr GLfixed -> m ()
-glLoadMatrixx = ffiPtrfixedIOV glLoadMatrixxFunPtr
-
-glLoadMatrixxFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glLoadMatrixxFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixx")
-
-{-# NOINLINE glLoadMatrixxFunPtr #-}
-
--- | Usage: @'glMaterialx' face pname param@
-
-
-glMaterialx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glMaterialx = ffienumenumfixedIOV glMaterialxFunPtr
-
-glMaterialxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glMaterialxFunPtr = unsafePerformIO (getProcAddress "glMaterialx")
-
-{-# NOINLINE glMaterialxFunPtr #-}
-
--- | Usage: @'glMaterialxv' face pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glMaterialxv = ffienumenumPtrfixedIOV glMaterialxvFunPtr
-
-glMaterialxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glMaterialxvFunPtr = unsafePerformIO (getProcAddress "glMaterialxv")
-
-{-# NOINLINE glMaterialxvFunPtr #-}
-
--- | Usage: @'glMultMatrixx' m@
---
--- The length of @m@ should be @16@.
-
-
-glMultMatrixx :: MonadIO m => Ptr GLfixed -> m ()
-glMultMatrixx = ffiPtrfixedIOV glMultMatrixxFunPtr
-
-glMultMatrixxFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glMultMatrixxFunPtr = unsafePerformIO (getProcAddress "glMultMatrixx")
-
-{-# NOINLINE glMultMatrixxFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4x' texture s t r q@
-
-
-glMultiTexCoord4x :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glMultiTexCoord4x = ffienumfixedfixedfixedfixedIOV glMultiTexCoord4xFunPtr
-
-glMultiTexCoord4xFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glMultiTexCoord4xFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4x")
-
-{-# NOINLINE glMultiTexCoord4xFunPtr #-}
-
--- | Usage: @'glNormal3x' nx ny nz@
-
-
-glNormal3x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glNormal3x = ffifixedfixedfixedIOV glNormal3xFunPtr
-
-glNormal3xFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glNormal3xFunPtr = unsafePerformIO (getProcAddress "glNormal3x")
-
-{-# NOINLINE glNormal3xFunPtr #-}
-
--- | Usage: @'glOrthox' l r b t n f@
-
-
-glOrthox :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glOrthox = ffifixedfixedfixedfixedfixedfixedIOV glOrthoxFunPtr
-
-glOrthoxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glOrthoxFunPtr = unsafePerformIO (getProcAddress "glOrthox")
-
-{-# NOINLINE glOrthoxFunPtr #-}
-
--- | Usage: @'glPointParameterx' pname param@
-
-
-glPointParameterx :: MonadIO m => GLenum -> GLfixed -> m ()
-glPointParameterx = ffienumfixedIOV glPointParameterxFunPtr
-
-glPointParameterxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glPointParameterxFunPtr = unsafePerformIO (getProcAddress "glPointParameterx")
-
-{-# NOINLINE glPointParameterxFunPtr #-}
-
--- | Usage: @'glPointParameterxv' pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPointParameterxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glPointParameterxv = ffienumPtrfixedIOV glPointParameterxvFunPtr
-
-glPointParameterxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glPointParameterxvFunPtr = unsafePerformIO (getProcAddress "glPointParameterxv")
-
-{-# NOINLINE glPointParameterxvFunPtr #-}
-
--- | Usage: @'glPointSizex' size@
-
-
-glPointSizex :: MonadIO m => GLfixed -> m ()
-glPointSizex = ffifixedIOV glPointSizexFunPtr
-
-glPointSizexFunPtr :: FunPtr (GLfixed -> IO ())
-glPointSizexFunPtr = unsafePerformIO (getProcAddress "glPointSizex")
-
-{-# NOINLINE glPointSizexFunPtr #-}
-
--- | Usage: @'glPolygonOffsetx' factor units@
-
-
-glPolygonOffsetx :: MonadIO m => GLfixed -> GLfixed -> m ()
-glPolygonOffsetx = ffifixedfixedIOV glPolygonOffsetxFunPtr
-
-glPolygonOffsetxFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glPolygonOffsetxFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetx")
-
-{-# NOINLINE glPolygonOffsetxFunPtr #-}
-
--- | Usage: @'glRotatex' angle x y z@
-
-
-glRotatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glRotatex = ffifixedfixedfixedfixedIOV glRotatexFunPtr
-
-glRotatexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glRotatexFunPtr = unsafePerformIO (getProcAddress "glRotatex")
-
-{-# NOINLINE glRotatexFunPtr #-}
-
--- | Usage: @'glSampleCoveragex' value invert@
-
-
-glSampleCoveragex :: MonadIO m => GLclampx -> GLboolean -> m ()
-glSampleCoveragex = fficlampxbooleanIOV glSampleCoveragexFunPtr
-
-glSampleCoveragexFunPtr :: FunPtr (GLclampx -> GLboolean -> IO ())
-glSampleCoveragexFunPtr = unsafePerformIO (getProcAddress "glSampleCoveragex")
-
-{-# NOINLINE glSampleCoveragexFunPtr #-}
-
--- | Usage: @'glScalex' x y z@
-
-
-glScalex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glScalex = ffifixedfixedfixedIOV glScalexFunPtr
-
-glScalexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glScalexFunPtr = unsafePerformIO (getProcAddress "glScalex")
-
-{-# NOINLINE glScalexFunPtr #-}
-
--- | Usage: @'glTexEnvx' target pname param@
-
-
-glTexEnvx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glTexEnvx = ffienumenumfixedIOV glTexEnvxFunPtr
-
-glTexEnvxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glTexEnvxFunPtr = unsafePerformIO (getProcAddress "glTexEnvx")
-
-{-# NOINLINE glTexEnvxFunPtr #-}
-
--- | Usage: @'glTexEnvxv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glTexEnvxv = ffienumenumPtrfixedIOV glTexEnvxvFunPtr
-
-glTexEnvxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glTexEnvxvFunPtr = unsafePerformIO (getProcAddress "glTexEnvxv")
-
-{-# NOINLINE glTexEnvxvFunPtr #-}
-
--- | Usage: @'glTexParameterx' target pname param@
-
-
-glTexParameterx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glTexParameterx = ffienumenumfixedIOV glTexParameterxFunPtr
-
-glTexParameterxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glTexParameterxFunPtr = unsafePerformIO (getProcAddress "glTexParameterx")
-
-{-# NOINLINE glTexParameterxFunPtr #-}
-
--- | Usage: @'glTexParameterxv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glTexParameterxv = ffienumenumPtrfixedIOV glTexParameterxvFunPtr
-
-glTexParameterxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glTexParameterxvFunPtr = unsafePerformIO (getProcAddress "glTexParameterxv")
-
-{-# NOINLINE glTexParameterxvFunPtr #-}
-
--- | Usage: @'glTranslatex' x y z@
-
-
-glTranslatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glTranslatex = ffifixedfixedfixedIOV glTranslatexFunPtr
-
-glTranslatexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glTranslatexFunPtr = unsafePerformIO (getProcAddress "glTranslatex")
-
-{-# NOINLINE glTranslatexFunPtr #-}
-
-pattern GL_VERSION_ES_CL_1_0 = 1
-
-pattern GL_VERSION_ES_CL_1_1 = 1
-
-pattern GL_VERSION_ES_CM_1_1 = 1
diff --git a/dist/build/autogen/Graphics/GL/Ext.hs b/dist/build/autogen/Graphics/GL/Ext.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext.hs
+++ /dev/null
@@ -1,78 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext (
-  -- * Extensions
-    module Graphics.GL.Ext.ThreeDFX
-  , module Graphics.GL.Ext.AMD
-  , module Graphics.GL.Ext.ANDROID
-  , module Graphics.GL.Ext.ANGLE
-  , module Graphics.GL.Ext.APPLE
-  , module Graphics.GL.Ext.ARB
-  , module Graphics.GL.Ext.ARM
-  , module Graphics.GL.Ext.ATI
-  , module Graphics.GL.Ext.DMP
-  , module Graphics.GL.Ext.EXT
-  , module Graphics.GL.Ext.FJ
-  , module Graphics.GL.Ext.GREMEDY
-  , module Graphics.GL.Ext.HP
-  , module Graphics.GL.Ext.IBM
-  , module Graphics.GL.Ext.IMG
-  , module Graphics.GL.Ext.INGR
-  , module Graphics.GL.Ext.INTEL
-  , module Graphics.GL.Ext.KHR
-  , module Graphics.GL.Ext.MESA
-  , module Graphics.GL.Ext.MESAX
-  , module Graphics.GL.Ext.NV
-  , module Graphics.GL.Ext.NVX
-  , module Graphics.GL.Ext.OES
-  , module Graphics.GL.Ext.OML
-  , module Graphics.GL.Ext.OVR
-  , module Graphics.GL.Ext.PGI
-  , module Graphics.GL.Ext.QCOM
-  , module Graphics.GL.Ext.REND
-  , module Graphics.GL.Ext.S3
-  , module Graphics.GL.Ext.SGI
-  , module Graphics.GL.Ext.SGIS
-  , module Graphics.GL.Ext.SGIX
-  , module Graphics.GL.Ext.SUN
-  , module Graphics.GL.Ext.SUNX
-  , module Graphics.GL.Ext.VIV
-  , module Graphics.GL.Ext.WIN
-) where
-
-import Graphics.GL.Ext.ThreeDFX
-import Graphics.GL.Ext.AMD
-import Graphics.GL.Ext.ANDROID
-import Graphics.GL.Ext.ANGLE
-import Graphics.GL.Ext.APPLE
-import Graphics.GL.Ext.ARB
-import Graphics.GL.Ext.ARM
-import Graphics.GL.Ext.ATI
-import Graphics.GL.Ext.DMP
-import Graphics.GL.Ext.EXT
-import Graphics.GL.Ext.FJ
-import Graphics.GL.Ext.GREMEDY
-import Graphics.GL.Ext.HP
-import Graphics.GL.Ext.IBM
-import Graphics.GL.Ext.IMG
-import Graphics.GL.Ext.INGR
-import Graphics.GL.Ext.INTEL
-import Graphics.GL.Ext.KHR
-import Graphics.GL.Ext.MESA
-import Graphics.GL.Ext.MESAX
-import Graphics.GL.Ext.NV
-import Graphics.GL.Ext.NVX
-import Graphics.GL.Ext.OES
-import Graphics.GL.Ext.OML
-import Graphics.GL.Ext.OVR
-import Graphics.GL.Ext.PGI
-import Graphics.GL.Ext.QCOM
-import Graphics.GL.Ext.REND
-import Graphics.GL.Ext.S3
-import Graphics.GL.Ext.SGI
-import Graphics.GL.Ext.SGIS
-import Graphics.GL.Ext.SGIX
-import Graphics.GL.Ext.SUN
-import Graphics.GL.Ext.SUNX
-import Graphics.GL.Ext.VIV
-import Graphics.GL.Ext.WIN
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD.hs b/dist/build/autogen/Graphics/GL/Ext/AMD.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD.hs
+++ /dev/null
@@ -1,74 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD (
-  -- * AMD Extensions
-    module Graphics.GL.Ext.AMD.BlendMinmaxFactor
-  , module Graphics.GL.Ext.AMD.Compressed3DCTexture
-  , module Graphics.GL.Ext.AMD.CompressedATCTexture
-  , module Graphics.GL.Ext.AMD.ConservativeDepth
-  , module Graphics.GL.Ext.AMD.DebugOutput
-  , module Graphics.GL.Ext.AMD.DepthClampSeparate
-  , module Graphics.GL.Ext.AMD.DrawBuffersBlend
-  , module Graphics.GL.Ext.AMD.FramebufferSamplePositions
-  , module Graphics.GL.Ext.AMD.GcnShader
-  , module Graphics.GL.Ext.AMD.GpuShaderHalfFloat
-  , module Graphics.GL.Ext.AMD.GpuShaderInt64
-  , module Graphics.GL.Ext.AMD.InterleavedElements
-  , module Graphics.GL.Ext.AMD.MultiDrawIndirect
-  , module Graphics.GL.Ext.AMD.NameGenDelete
-  , module Graphics.GL.Ext.AMD.OcclusionQueryEvent
-  , module Graphics.GL.Ext.AMD.PerformanceMonitor
-  , module Graphics.GL.Ext.AMD.PinnedMemory
-  , module Graphics.GL.Ext.AMD.ProgramBinaryZ400
-  , module Graphics.GL.Ext.AMD.QueryBufferObject
-  , module Graphics.GL.Ext.AMD.SamplePositions
-  , module Graphics.GL.Ext.AMD.SeamlessCubemapPerTexture
-  , module Graphics.GL.Ext.AMD.ShaderAtomicCounterOps
-  , module Graphics.GL.Ext.AMD.ShaderBallot
-  , module Graphics.GL.Ext.AMD.ShaderExplicitVertexParameter
-  , module Graphics.GL.Ext.AMD.ShaderStencilExport
-  , module Graphics.GL.Ext.AMD.ShaderTrinaryMinmax
-  , module Graphics.GL.Ext.AMD.SparseTexture
-  , module Graphics.GL.Ext.AMD.StencilOperationExtended
-  , module Graphics.GL.Ext.AMD.TextureTexture4
-  , module Graphics.GL.Ext.AMD.TransformFeedback3LinesTriangles
-  , module Graphics.GL.Ext.AMD.TransformFeedback4
-  , module Graphics.GL.Ext.AMD.VertexShaderLayer
-  , module Graphics.GL.Ext.AMD.VertexShaderTessellator
-  , module Graphics.GL.Ext.AMD.VertexShaderViewportIndex
-) where
-
-import Graphics.GL.Ext.AMD.BlendMinmaxFactor
-import Graphics.GL.Ext.AMD.Compressed3DCTexture
-import Graphics.GL.Ext.AMD.CompressedATCTexture
-import Graphics.GL.Ext.AMD.ConservativeDepth
-import Graphics.GL.Ext.AMD.DebugOutput
-import Graphics.GL.Ext.AMD.DepthClampSeparate
-import Graphics.GL.Ext.AMD.DrawBuffersBlend
-import Graphics.GL.Ext.AMD.FramebufferSamplePositions
-import Graphics.GL.Ext.AMD.GcnShader
-import Graphics.GL.Ext.AMD.GpuShaderHalfFloat
-import Graphics.GL.Ext.AMD.GpuShaderInt64
-import Graphics.GL.Ext.AMD.InterleavedElements
-import Graphics.GL.Ext.AMD.MultiDrawIndirect
-import Graphics.GL.Ext.AMD.NameGenDelete
-import Graphics.GL.Ext.AMD.OcclusionQueryEvent
-import Graphics.GL.Ext.AMD.PerformanceMonitor
-import Graphics.GL.Ext.AMD.PinnedMemory
-import Graphics.GL.Ext.AMD.ProgramBinaryZ400
-import Graphics.GL.Ext.AMD.QueryBufferObject
-import Graphics.GL.Ext.AMD.SamplePositions
-import Graphics.GL.Ext.AMD.SeamlessCubemapPerTexture
-import Graphics.GL.Ext.AMD.ShaderAtomicCounterOps
-import Graphics.GL.Ext.AMD.ShaderBallot
-import Graphics.GL.Ext.AMD.ShaderExplicitVertexParameter
-import Graphics.GL.Ext.AMD.ShaderStencilExport
-import Graphics.GL.Ext.AMD.ShaderTrinaryMinmax
-import Graphics.GL.Ext.AMD.SparseTexture
-import Graphics.GL.Ext.AMD.StencilOperationExtended
-import Graphics.GL.Ext.AMD.TextureTexture4
-import Graphics.GL.Ext.AMD.TransformFeedback3LinesTriangles
-import Graphics.GL.Ext.AMD.TransformFeedback4
-import Graphics.GL.Ext.AMD.VertexShaderLayer
-import Graphics.GL.Ext.AMD.VertexShaderTessellator
-import Graphics.GL.Ext.AMD.VertexShaderViewportIndex
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.BlendMinmaxFactor (
-  -- * Extension Support
-    gl_AMD_blend_minmax_factor
-
-  -- * GL_AMD_blend_minmax_factor
-  , pattern GL_FACTOR_MAX_AMD
-  , pattern GL_FACTOR_MIN_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/blend_minmax_factor.txt GL_AMD_blend_minmax_factor> extension is available.
-
-gl_AMD_blend_minmax_factor :: Bool
-gl_AMD_blend_minmax_factor = member "GL_AMD_blend_minmax_factor" extensions
-{-# NOINLINE gl_AMD_blend_minmax_factor #-}
-
-pattern GL_FACTOR_MAX_AMD = 0x901D
-
-pattern GL_FACTOR_MIN_AMD = 0x901C
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.Compressed3DCTexture (
-  -- * Extension Support
-    gl_AMD_compressed_3DC_texture
-
-  -- * GL_AMD_compressed_3DC_texture
-  , pattern GL_3DC_XY_AMD
-  , pattern GL_3DC_X_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_compressed_3DC_texture.txt GL_AMD_compressed_3DC_texture> extension is available.
-
-gl_AMD_compressed_3DC_texture :: Bool
-gl_AMD_compressed_3DC_texture = member "GL_AMD_compressed_3DC_texture" extensions
-{-# NOINLINE gl_AMD_compressed_3DC_texture #-}
-
-pattern GL_3DC_XY_AMD = 0x87FA
-
-pattern GL_3DC_X_AMD = 0x87F9
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/CompressedATCTexture.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/CompressedATCTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/CompressedATCTexture.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.CompressedATCTexture (
-  -- * Extension Support
-    gl_AMD_compressed_ATC_texture
-
-  -- * GL_AMD_compressed_ATC_texture
-  , pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD
-  , pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD
-  , pattern GL_ATC_RGB_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_compressed_ATC_texture.txt GL_AMD_compressed_ATC_texture> extension is available.
-
-gl_AMD_compressed_ATC_texture :: Bool
-gl_AMD_compressed_ATC_texture = member "GL_AMD_compressed_ATC_texture" extensions
-{-# NOINLINE gl_AMD_compressed_ATC_texture #-}
-
-pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93
-
-pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE
-
-pattern GL_ATC_RGB_AMD = 0x8C92
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/ConservativeDepth.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/ConservativeDepth.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/ConservativeDepth.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.ConservativeDepth (
-  -- * Extension Support
-    gl_AMD_conservative_depth
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/conservative_depth.txt GL_AMD_conservative_depth> extension is available.
-
-gl_AMD_conservative_depth :: Bool
-gl_AMD_conservative_depth = member "GL_AMD_conservative_depth" extensions
-{-# NOINLINE gl_AMD_conservative_depth #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/DebugOutput.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/DebugOutput.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/DebugOutput.hs
+++ /dev/null
@@ -1,128 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.DebugOutput (
-  -- * Extension Support
-    gl_AMD_debug_output
-
-  -- * GL_AMD_debug_output
-  , glDebugMessageCallbackAMD
-  , glDebugMessageEnableAMD
-  , glDebugMessageInsertAMD
-  , glGetDebugMessageLogAMD
-  , pattern GL_DEBUG_CATEGORY_API_ERROR_AMD
-  , pattern GL_DEBUG_CATEGORY_APPLICATION_AMD
-  , pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD
-  , pattern GL_DEBUG_CATEGORY_OTHER_AMD
-  , pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD
-  , pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD
-  , pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD
-  , pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD
-  , pattern GL_DEBUG_LOGGED_MESSAGES_AMD
-  , pattern GL_DEBUG_SEVERITY_HIGH_AMD
-  , pattern GL_DEBUG_SEVERITY_LOW_AMD
-  , pattern GL_DEBUG_SEVERITY_MEDIUM_AMD
-  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD
-  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/debug_output.txt GL_AMD_debug_output> extension is available.
-
-gl_AMD_debug_output :: Bool
-gl_AMD_debug_output = member "GL_AMD_debug_output" extensions
-{-# NOINLINE gl_AMD_debug_output #-}
-
--- | Usage: @'glDebugMessageCallbackAMD' callback userParam@
-
-
-glDebugMessageCallbackAMD :: MonadIO m => GLDEBUGPROCAMD -> Ptr () -> m ()
-glDebugMessageCallbackAMD = ffiDEBUGPROCAMDPtrVIOV glDebugMessageCallbackAMDFunPtr
-
-glDebugMessageCallbackAMDFunPtr :: FunPtr (GLDEBUGPROCAMD -> Ptr () -> IO ())
-glDebugMessageCallbackAMDFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallbackAMD")
-
-{-# NOINLINE glDebugMessageCallbackAMDFunPtr #-}
-
--- | Usage: @'glDebugMessageEnableAMD' category severity count ids enabled@
---
--- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @ids@ should be @count@.
-
-
-glDebugMessageEnableAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-glDebugMessageEnableAMD = ffienumenumsizeiPtruintbooleanIOV glDebugMessageEnableAMDFunPtr
-
-glDebugMessageEnableAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
-glDebugMessageEnableAMDFunPtr = unsafePerformIO (getProcAddress "glDebugMessageEnableAMD")
-
-{-# NOINLINE glDebugMessageEnableAMDFunPtr #-}
-
--- | Usage: @'glDebugMessageInsertAMD' category severity id length buf@
---
--- The length of @buf@ should be @length@.
-
-
-glDebugMessageInsertAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glDebugMessageInsertAMD = ffienumenumuintsizeiPtrcharIOV glDebugMessageInsertAMDFunPtr
-
-glDebugMessageInsertAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glDebugMessageInsertAMDFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertAMD")
-
-{-# NOINLINE glDebugMessageInsertAMDFunPtr #-}
-
--- | Usage: @'glGetDebugMessageLogAMD' count bufsize categories severities ids lengths message@
---
--- The length of @categories@ should be @count@.
---
--- The length of @severities@ should be @count@.
---
--- The length of @ids@ should be @count@.
---
--- The length of @lengths@ should be @count@.
---
--- The length of @message@ should be @bufsize@.
-
-
-glGetDebugMessageLogAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-glGetDebugMessageLogAMD = ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint glGetDebugMessageLogAMDFunPtr
-
-glGetDebugMessageLogAMDFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
-glGetDebugMessageLogAMDFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLogAMD")
-
-{-# NOINLINE glGetDebugMessageLogAMDFunPtr #-}
-
-pattern GL_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149
-
-pattern GL_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F
-
-pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B
-
-pattern GL_DEBUG_CATEGORY_OTHER_AMD = 0x9150
-
-pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D
-
-pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E
-
-pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C
-
-pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A
-
-pattern GL_DEBUG_LOGGED_MESSAGES_AMD = 0x9145
-
-pattern GL_DEBUG_SEVERITY_HIGH_AMD = 0x9146
-
-pattern GL_DEBUG_SEVERITY_LOW_AMD = 0x9148
-
-pattern GL_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147
-
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144
-
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/DepthClampSeparate.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/DepthClampSeparate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/DepthClampSeparate.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.DepthClampSeparate (
-  -- * Extension Support
-    gl_AMD_depth_clamp_separate
-
-  -- * GL_AMD_depth_clamp_separate
-  , pattern GL_DEPTH_CLAMP_FAR_AMD
-  , pattern GL_DEPTH_CLAMP_NEAR_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/depth_clamp_separate.txt GL_AMD_depth_clamp_separate> extension is available.
-
-gl_AMD_depth_clamp_separate :: Bool
-gl_AMD_depth_clamp_separate = member "GL_AMD_depth_clamp_separate" extensions
-{-# NOINLINE gl_AMD_depth_clamp_separate #-}
-
-pattern GL_DEPTH_CLAMP_FAR_AMD = 0x901F
-
-pattern GL_DEPTH_CLAMP_NEAR_AMD = 0x901E
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/DrawBuffersBlend.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/DrawBuffersBlend.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/DrawBuffersBlend.hs
+++ /dev/null
@@ -1,78 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.DrawBuffersBlend (
-  -- * Extension Support
-    gl_AMD_draw_buffers_blend
-
-  -- * GL_AMD_draw_buffers_blend
-  , glBlendEquationIndexedAMD
-  , glBlendEquationSeparateIndexedAMD
-  , glBlendFuncIndexedAMD
-  , glBlendFuncSeparateIndexedAMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/draw_buffers_blend.txt GL_AMD_draw_buffers_blend> extension is available.
-
-gl_AMD_draw_buffers_blend :: Bool
-gl_AMD_draw_buffers_blend = member "GL_AMD_draw_buffers_blend" extensions
-{-# NOINLINE gl_AMD_draw_buffers_blend #-}
-
--- | Usage: @'glBlendEquationIndexedAMD' buf mode@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
-
-
-glBlendEquationIndexedAMD :: MonadIO m => GLuint -> GLenum -> m ()
-glBlendEquationIndexedAMD = ffiuintenumIOV glBlendEquationIndexedAMDFunPtr
-
-glBlendEquationIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBlendEquationIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendEquationIndexedAMD")
-
-{-# NOINLINE glBlendEquationIndexedAMDFunPtr #-}
-
--- | Usage: @'glBlendEquationSeparateIndexedAMD' buf modeRGB modeAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
-
-
-glBlendEquationSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendEquationSeparateIndexedAMD = ffiuintenumenumIOV glBlendEquationSeparateIndexedAMDFunPtr
-
-glBlendEquationSeparateIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendEquationSeparateIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateIndexedAMD")
-
-{-# NOINLINE glBlendEquationSeparateIndexedAMDFunPtr #-}
-
--- | Usage: @'glBlendFuncIndexedAMD' buf src dst@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
-
-
-glBlendFuncIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendFuncIndexedAMD = ffiuintenumenumIOV glBlendFuncIndexedAMDFunPtr
-
-glBlendFuncIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendFuncIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendFuncIndexedAMD")
-
-{-# NOINLINE glBlendFuncIndexedAMDFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparateIndexedAMD' buf srcRGB dstRGB srcAlpha dstAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
-
-
-glBlendFuncSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparateIndexedAMD = ffiuintenumenumenumenumIOV glBlendFuncSeparateIndexedAMDFunPtr
-
-glBlendFuncSeparateIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateIndexedAMD")
-
-{-# NOINLINE glBlendFuncSeparateIndexedAMDFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs
+++ /dev/null
@@ -1,81 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.FramebufferSamplePositions (
-  -- * Extension Support
-    gl_AMD_framebuffer_sample_positions
-
-  -- * GL_AMD_framebuffer_sample_positions
-  , glFramebufferSamplePositionsfvAMD
-  , glGetFramebufferParameterfvAMD
-  , glGetNamedFramebufferParameterfvAMD
-  , glNamedFramebufferSamplePositionsfvAMD
-  , pattern GL_ALL_PIXELS_AMD
-  , pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD
-  , pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD
-  , pattern GL_SUBSAMPLE_DISTANCE_AMD
-) 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://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_framebuffer_sample_positions.txt GL_AMD_framebuffer_sample_positions> extension is available.
-
-gl_AMD_framebuffer_sample_positions :: Bool
-gl_AMD_framebuffer_sample_positions = member "GL_AMD_framebuffer_sample_positions" extensions
-{-# NOINLINE gl_AMD_framebuffer_sample_positions #-}
-
--- | Usage: @'glFramebufferSamplePositionsfvAMD' target numsamples pixelindex values@
-
-
-glFramebufferSamplePositionsfvAMD :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()
-glFramebufferSamplePositionsfvAMD = ffienumuintuintPtrfloatIOV glFramebufferSamplePositionsfvAMDFunPtr
-
-glFramebufferSamplePositionsfvAMDFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
-glFramebufferSamplePositionsfvAMDFunPtr = unsafePerformIO (getProcAddress "glFramebufferSamplePositionsfvAMD")
-
-{-# NOINLINE glFramebufferSamplePositionsfvAMDFunPtr #-}
-
--- | Usage: @'glGetFramebufferParameterfvAMD' target pname numsamples pixelindex size values@
-
-
-glGetFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glGetFramebufferParameterfvAMD = ffienumenumuintuintsizeiPtrfloatIOV glGetFramebufferParameterfvAMDFunPtr
-
-glGetFramebufferParameterfvAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetFramebufferParameterfvAMDFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameterfvAMD")
-
-{-# NOINLINE glGetFramebufferParameterfvAMDFunPtr #-}
-
--- | Usage: @'glGetNamedFramebufferParameterfvAMD' framebuffer pname numsamples pixelindex size values@
-
-
-glGetNamedFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glGetNamedFramebufferParameterfvAMD = ffienumenumuintuintsizeiPtrfloatIOV glGetNamedFramebufferParameterfvAMDFunPtr
-
-glGetNamedFramebufferParameterfvAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetNamedFramebufferParameterfvAMDFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameterfvAMD")
-
-{-# NOINLINE glGetNamedFramebufferParameterfvAMDFunPtr #-}
-
--- | Usage: @'glNamedFramebufferSamplePositionsfvAMD' framebuffer numsamples pixelindex values@
-
-
-glNamedFramebufferSamplePositionsfvAMD :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
-glNamedFramebufferSamplePositionsfvAMD = ffiuintuintuintPtrfloatIOV glNamedFramebufferSamplePositionsfvAMDFunPtr
-
-glNamedFramebufferSamplePositionsfvAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
-glNamedFramebufferSamplePositionsfvAMDFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferSamplePositionsfvAMD")
-
-{-# NOINLINE glNamedFramebufferSamplePositionsfvAMDFunPtr #-}
-
-pattern GL_ALL_PIXELS_AMD = 0xFFFFFFFF
-
-pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD = 0x91AE
-
-pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD = 0x91AF
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/GcnShader.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/GcnShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/GcnShader.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.GcnShader (
-  -- * Extension Support
-    gl_AMD_gcn_shader
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gcn_shader.txt GL_AMD_gcn_shader> extension is available.
-
-gl_AMD_gcn_shader :: Bool
-gl_AMD_gcn_shader = member "GL_AMD_gcn_shader" extensions
-{-# NOINLINE gl_AMD_gcn_shader #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs
+++ /dev/null
@@ -1,49 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.GpuShaderHalfFloat (
-  -- * Extension Support
-    gl_AMD_gpu_shader_half_float
-
-  -- * GL_AMD_gpu_shader_half_float
-  , pattern GL_FLOAT16_MAT2_AMD
-  , pattern GL_FLOAT16_MAT2x3_AMD
-  , pattern GL_FLOAT16_MAT2x4_AMD
-  , pattern GL_FLOAT16_MAT3_AMD
-  , pattern GL_FLOAT16_MAT3x2_AMD
-  , pattern GL_FLOAT16_MAT3x4_AMD
-  , pattern GL_FLOAT16_MAT4_AMD
-  , pattern GL_FLOAT16_MAT4x2_AMD
-  , pattern GL_FLOAT16_MAT4x3_AMD
-  , pattern GL_FLOAT16_NV
-  , pattern GL_FLOAT16_VEC2_NV
-  , pattern GL_FLOAT16_VEC3_NV
-  , pattern GL_FLOAT16_VEC4_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gpu_shader_half_float.txt GL_AMD_gpu_shader_half_float> extension is available.
-
-gl_AMD_gpu_shader_half_float :: Bool
-gl_AMD_gpu_shader_half_float = member "GL_AMD_gpu_shader_half_float" extensions
-{-# NOINLINE gl_AMD_gpu_shader_half_float #-}
-
-pattern GL_FLOAT16_MAT2_AMD = 0x91C5
-
-pattern GL_FLOAT16_MAT2x3_AMD = 0x91C8
-
-pattern GL_FLOAT16_MAT2x4_AMD = 0x91C9
-
-pattern GL_FLOAT16_MAT3_AMD = 0x91C6
-
-pattern GL_FLOAT16_MAT3x2_AMD = 0x91CA
-
-pattern GL_FLOAT16_MAT3x4_AMD = 0x91CB
-
-pattern GL_FLOAT16_MAT4_AMD = 0x91C7
-
-pattern GL_FLOAT16_MAT4x2_AMD = 0x91CC
-
-pattern GL_FLOAT16_MAT4x3_AMD = 0x91CD
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/GpuShaderInt64.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/GpuShaderInt64.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/GpuShaderInt64.hs
+++ /dev/null
@@ -1,80 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.GpuShaderInt64 (
-  -- * Extension Support
-    gl_AMD_gpu_shader_int64
-
-  -- * GL_AMD_gpu_shader_int64
-  , glGetUniformi64vNV
-  , glGetUniformui64vNV
-  , glProgramUniform1i64NV
-  , glProgramUniform1i64vNV
-  , glProgramUniform1ui64NV
-  , glProgramUniform1ui64vNV
-  , glProgramUniform2i64NV
-  , glProgramUniform2i64vNV
-  , glProgramUniform2ui64NV
-  , glProgramUniform2ui64vNV
-  , glProgramUniform3i64NV
-  , glProgramUniform3i64vNV
-  , glProgramUniform3ui64NV
-  , glProgramUniform3ui64vNV
-  , glProgramUniform4i64NV
-  , glProgramUniform4i64vNV
-  , glProgramUniform4ui64NV
-  , glProgramUniform4ui64vNV
-  , glUniform1i64NV
-  , glUniform1i64vNV
-  , glUniform1ui64NV
-  , glUniform1ui64vNV
-  , glUniform2i64NV
-  , glUniform2i64vNV
-  , glUniform2ui64NV
-  , glUniform2ui64vNV
-  , glUniform3i64NV
-  , glUniform3i64vNV
-  , glUniform3ui64NV
-  , glUniform3ui64vNV
-  , glUniform4i64NV
-  , glUniform4i64vNV
-  , glUniform4ui64NV
-  , glUniform4ui64vNV
-  , pattern GL_FLOAT16_NV
-  , pattern GL_FLOAT16_VEC2_NV
-  , pattern GL_FLOAT16_VEC3_NV
-  , pattern GL_FLOAT16_VEC4_NV
-  , pattern GL_INT16_NV
-  , pattern GL_INT16_VEC2_NV
-  , pattern GL_INT16_VEC3_NV
-  , pattern GL_INT16_VEC4_NV
-  , pattern GL_INT64_NV
-  , pattern GL_INT64_VEC2_NV
-  , pattern GL_INT64_VEC3_NV
-  , pattern GL_INT64_VEC4_NV
-  , pattern GL_INT8_NV
-  , pattern GL_INT8_VEC2_NV
-  , pattern GL_INT8_VEC3_NV
-  , pattern GL_INT8_VEC4_NV
-  , pattern GL_UNSIGNED_INT16_NV
-  , pattern GL_UNSIGNED_INT16_VEC2_NV
-  , pattern GL_UNSIGNED_INT16_VEC3_NV
-  , pattern GL_UNSIGNED_INT16_VEC4_NV
-  , pattern GL_UNSIGNED_INT64_NV
-  , pattern GL_UNSIGNED_INT64_VEC2_NV
-  , pattern GL_UNSIGNED_INT64_VEC3_NV
-  , pattern GL_UNSIGNED_INT64_VEC4_NV
-  , pattern GL_UNSIGNED_INT8_NV
-  , pattern GL_UNSIGNED_INT8_VEC2_NV
-  , pattern GL_UNSIGNED_INT8_VEC3_NV
-  , pattern GL_UNSIGNED_INT8_VEC4_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gpu_shader_int64.txt GL_AMD_gpu_shader_int64> extension is available.
-
-gl_AMD_gpu_shader_int64 :: Bool
-gl_AMD_gpu_shader_int64 = member "GL_AMD_gpu_shader_int64" extensions
-{-# NOINLINE gl_AMD_gpu_shader_int64 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/InterleavedElements.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/InterleavedElements.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/InterleavedElements.hs
+++ /dev/null
@@ -1,48 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.InterleavedElements (
-  -- * Extension Support
-    gl_AMD_interleaved_elements
-
-  -- * GL_AMD_interleaved_elements
-  , glVertexAttribParameteriAMD
-  , pattern GL_ALPHA
-  , pattern GL_BLUE
-  , pattern GL_GREEN
-  , pattern GL_RED
-  , pattern GL_RG16UI
-  , pattern GL_RG8UI
-  , pattern GL_RGBA8UI
-  , pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD
-  , pattern GL_VERTEX_ID_SWIZZLE_AMD
-) 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/AMD/interleaved_elements.txt GL_AMD_interleaved_elements> extension is available.
-
-gl_AMD_interleaved_elements :: Bool
-gl_AMD_interleaved_elements = member "GL_AMD_interleaved_elements" extensions
-{-# NOINLINE gl_AMD_interleaved_elements #-}
-
--- | Usage: @'glVertexAttribParameteriAMD' index pname param@
-
-
-glVertexAttribParameteriAMD :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glVertexAttribParameteriAMD = ffiuintenumintIOV glVertexAttribParameteriAMDFunPtr
-
-glVertexAttribParameteriAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glVertexAttribParameteriAMDFunPtr = unsafePerformIO (getProcAddress "glVertexAttribParameteriAMD")
-
-{-# NOINLINE glVertexAttribParameteriAMDFunPtr #-}
-
-pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4
-
-pattern GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/MultiDrawIndirect.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/MultiDrawIndirect.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/MultiDrawIndirect.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.MultiDrawIndirect (
-  -- * Extension Support
-    gl_AMD_multi_draw_indirect
-
-  -- * GL_AMD_multi_draw_indirect
-  , glMultiDrawArraysIndirectAMD
-  , glMultiDrawElementsIndirectAMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/multi_draw_indirect.txt GL_AMD_multi_draw_indirect> extension is available.
-
-gl_AMD_multi_draw_indirect :: Bool
-gl_AMD_multi_draw_indirect = member "GL_AMD_multi_draw_indirect" extensions
-{-# NOINLINE gl_AMD_multi_draw_indirect #-}
-
--- | Usage: @'glMultiDrawArraysIndirectAMD' mode indirect primcount stride@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawArraysIndirect'.
-
-
-glMultiDrawArraysIndirectAMD :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawArraysIndirectAMD = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectAMDFunPtr
-
-glMultiDrawArraysIndirectAMDFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysIndirectAMDFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectAMD")
-
-{-# NOINLINE glMultiDrawArraysIndirectAMDFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsIndirectAMD' mode type indirect primcount stride@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsIndirect'.
-
-
-glMultiDrawElementsIndirectAMD :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawElementsIndirectAMD = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectAMDFunPtr
-
-glMultiDrawElementsIndirectAMDFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawElementsIndirectAMDFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectAMD")
-
-{-# NOINLINE glMultiDrawElementsIndirectAMDFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/NameGenDelete.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/NameGenDelete.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/NameGenDelete.hs
+++ /dev/null
@@ -1,77 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.NameGenDelete (
-  -- * Extension Support
-    gl_AMD_name_gen_delete
-
-  -- * GL_AMD_name_gen_delete
-  , glDeleteNamesAMD
-  , glGenNamesAMD
-  , glIsNameAMD
-  , pattern GL_DATA_BUFFER_AMD
-  , pattern GL_PERFORMANCE_MONITOR_AMD
-  , pattern GL_QUERY_OBJECT_AMD
-  , pattern GL_SAMPLER_OBJECT_AMD
-  , pattern GL_VERTEX_ARRAY_OBJECT_AMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/name_gen_delete.txt GL_AMD_name_gen_delete> extension is available.
-
-gl_AMD_name_gen_delete :: Bool
-gl_AMD_name_gen_delete = member "GL_AMD_name_gen_delete" extensions
-{-# NOINLINE gl_AMD_name_gen_delete #-}
-
--- | Usage: @'glDeleteNamesAMD' identifier num names@
---
--- The length of @names@ should be @num@.
-
-
-glDeleteNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
-glDeleteNamesAMD = ffienumuintPtruintIOV glDeleteNamesAMDFunPtr
-
-glDeleteNamesAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
-glDeleteNamesAMDFunPtr = unsafePerformIO (getProcAddress "glDeleteNamesAMD")
-
-{-# NOINLINE glDeleteNamesAMDFunPtr #-}
-
--- | Usage: @'glGenNamesAMD' identifier num names@
---
--- The length of @names@ should be @num@.
-
-
-glGenNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
-glGenNamesAMD = ffienumuintPtruintIOV glGenNamesAMDFunPtr
-
-glGenNamesAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
-glGenNamesAMDFunPtr = unsafePerformIO (getProcAddress "glGenNamesAMD")
-
-{-# NOINLINE glGenNamesAMDFunPtr #-}
-
--- | Usage: @'glIsNameAMD' identifier name@
-
-
-glIsNameAMD :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsNameAMD = ffienumuintIOboolean glIsNameAMDFunPtr
-
-glIsNameAMDFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsNameAMDFunPtr = unsafePerformIO (getProcAddress "glIsNameAMD")
-
-{-# NOINLINE glIsNameAMDFunPtr #-}
-
-pattern GL_DATA_BUFFER_AMD = 0x9151
-
-pattern GL_PERFORMANCE_MONITOR_AMD = 0x9152
-
-pattern GL_QUERY_OBJECT_AMD = 0x9153
-
-pattern GL_SAMPLER_OBJECT_AMD = 0x9155
-
-pattern GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.OcclusionQueryEvent (
-  -- * Extension Support
-    gl_AMD_occlusion_query_event
-
-  -- * GL_AMD_occlusion_query_event
-  , glQueryObjectParameteruiAMD
-  , pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD
-  , pattern GL_QUERY_ALL_EVENT_BITS_AMD
-  , pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD
-  , pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD
-  , pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD
-  , pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/occlusion_query_event.txt GL_AMD_occlusion_query_event> extension is available.
-
-gl_AMD_occlusion_query_event :: Bool
-gl_AMD_occlusion_query_event = member "GL_AMD_occlusion_query_event" extensions
-{-# NOINLINE gl_AMD_occlusion_query_event #-}
-
--- | Usage: @'glQueryObjectParameteruiAMD' target id pname param@
---
--- The parameter @param@ is a @OcclusionQueryEventMaskAMD@, one of: 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_ALL_EVENT_BITS_AMD'.
-
-
-glQueryObjectParameteruiAMD :: MonadIO m => GLenum -> GLuint -> GLenum -> GLuint -> m ()
-glQueryObjectParameteruiAMD = ffienumuintenumuintIOV glQueryObjectParameteruiAMDFunPtr
-
-glQueryObjectParameteruiAMDFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ())
-glQueryObjectParameteruiAMDFunPtr = unsafePerformIO (getProcAddress "glQueryObjectParameteruiAMD")
-
-{-# NOINLINE glQueryObjectParameteruiAMDFunPtr #-}
-
-pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F
-
-pattern GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF
-
-pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008
-
-pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002
-
-pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001
-
-pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/PerformanceMonitor.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/PerformanceMonitor.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/PerformanceMonitor.hs
+++ /dev/null
@@ -1,207 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.PerformanceMonitor (
-  -- * Extension Support
-    gl_AMD_performance_monitor
-
-  -- * GL_AMD_performance_monitor
-  , glBeginPerfMonitorAMD
-  , glDeletePerfMonitorsAMD
-  , glEndPerfMonitorAMD
-  , glGenPerfMonitorsAMD
-  , glGetPerfMonitorCounterDataAMD
-  , glGetPerfMonitorCounterInfoAMD
-  , glGetPerfMonitorCounterStringAMD
-  , glGetPerfMonitorCountersAMD
-  , glGetPerfMonitorGroupStringAMD
-  , glGetPerfMonitorGroupsAMD
-  , glSelectPerfMonitorCountersAMD
-  , pattern GL_COUNTER_RANGE_AMD
-  , pattern GL_COUNTER_TYPE_AMD
-  , pattern GL_PERCENTAGE_AMD
-  , pattern GL_PERFMON_RESULT_AMD
-  , pattern GL_PERFMON_RESULT_AVAILABLE_AMD
-  , pattern GL_PERFMON_RESULT_SIZE_AMD
-  , pattern GL_UNSIGNED_INT64_AMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_performance_monitor.txt GL_AMD_performance_monitor> extension is available.
-
-gl_AMD_performance_monitor :: Bool
-gl_AMD_performance_monitor = member "GL_AMD_performance_monitor" extensions
-{-# NOINLINE gl_AMD_performance_monitor #-}
-
--- | Usage: @'glBeginPerfMonitorAMD' monitor@
-
-
-glBeginPerfMonitorAMD :: MonadIO m => GLuint -> m ()
-glBeginPerfMonitorAMD = ffiuintIOV glBeginPerfMonitorAMDFunPtr
-
-glBeginPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
-glBeginPerfMonitorAMDFunPtr = unsafePerformIO (getProcAddress "glBeginPerfMonitorAMD")
-
-{-# NOINLINE glBeginPerfMonitorAMDFunPtr #-}
-
--- | Usage: @'glDeletePerfMonitorsAMD' n monitors@
---
--- The length of @monitors@ should be @n@.
-
-
-glDeletePerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeletePerfMonitorsAMD = ffisizeiPtruintIOV glDeletePerfMonitorsAMDFunPtr
-
-glDeletePerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeletePerfMonitorsAMDFunPtr = unsafePerformIO (getProcAddress "glDeletePerfMonitorsAMD")
-
-{-# NOINLINE glDeletePerfMonitorsAMDFunPtr #-}
-
--- | Usage: @'glEndPerfMonitorAMD' monitor@
-
-
-glEndPerfMonitorAMD :: MonadIO m => GLuint -> m ()
-glEndPerfMonitorAMD = ffiuintIOV glEndPerfMonitorAMDFunPtr
-
-glEndPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
-glEndPerfMonitorAMDFunPtr = unsafePerformIO (getProcAddress "glEndPerfMonitorAMD")
-
-{-# NOINLINE glEndPerfMonitorAMDFunPtr #-}
-
--- | Usage: @'glGenPerfMonitorsAMD' n monitors@
---
--- The length of @monitors@ should be @n@.
-
-
-glGenPerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenPerfMonitorsAMD = ffisizeiPtruintIOV glGenPerfMonitorsAMDFunPtr
-
-glGenPerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenPerfMonitorsAMDFunPtr = unsafePerformIO (getProcAddress "glGenPerfMonitorsAMD")
-
-{-# NOINLINE glGenPerfMonitorsAMDFunPtr #-}
-
--- | Usage: @'glGetPerfMonitorCounterDataAMD' monitor pname dataSize data bytesWritten@
---
--- The length of @data@ should be @dataSize@.
---
--- The length of @bytesWritten@ should be @1@.
-
-
-glGetPerfMonitorCounterDataAMD :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
-glGetPerfMonitorCounterDataAMD = ffiuintenumsizeiPtruintPtrintIOV glGetPerfMonitorCounterDataAMDFunPtr
-
-glGetPerfMonitorCounterDataAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ())
-glGetPerfMonitorCounterDataAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCounterDataAMD")
-
-{-# NOINLINE glGetPerfMonitorCounterDataAMDFunPtr #-}
-
--- | Usage: @'glGetPerfMonitorCounterInfoAMD' group counter pname data@
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetPerfMonitorCounterInfoAMD :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr () -> m ()
-glGetPerfMonitorCounterInfoAMD = ffiuintuintenumPtrVIOV glGetPerfMonitorCounterInfoAMDFunPtr
-
-glGetPerfMonitorCounterInfoAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ())
-glGetPerfMonitorCounterInfoAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCounterInfoAMD")
-
-{-# NOINLINE glGetPerfMonitorCounterInfoAMDFunPtr #-}
-
--- | Usage: @'glGetPerfMonitorCounterStringAMD' group counter bufSize length counterString@
---
--- The length of @length@ should be @1@.
---
--- The length of @counterString@ should be @bufSize@.
-
-
-glGetPerfMonitorCounterStringAMD :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetPerfMonitorCounterStringAMD = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetPerfMonitorCounterStringAMDFunPtr
-
-glGetPerfMonitorCounterStringAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetPerfMonitorCounterStringAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCounterStringAMD")
-
-{-# NOINLINE glGetPerfMonitorCounterStringAMDFunPtr #-}
-
--- | Usage: @'glGetPerfMonitorCountersAMD' group numCounters maxActiveCounters counterSize counters@
---
--- The length of @numCounters@ should be @1@.
---
--- The length of @maxActiveCounters@ should be @1@.
---
--- The length of @counters@ should be @counterSize@.
-
-
-glGetPerfMonitorCountersAMD :: MonadIO m => GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetPerfMonitorCountersAMD = ffiuintPtrintPtrintsizeiPtruintIOV glGetPerfMonitorCountersAMDFunPtr
-
-glGetPerfMonitorCountersAMDFunPtr :: FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetPerfMonitorCountersAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCountersAMD")
-
-{-# NOINLINE glGetPerfMonitorCountersAMDFunPtr #-}
-
--- | Usage: @'glGetPerfMonitorGroupStringAMD' group bufSize length groupString@
---
--- The length of @length@ should be @1@.
---
--- The length of @groupString@ should be @bufSize@.
-
-
-glGetPerfMonitorGroupStringAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetPerfMonitorGroupStringAMD = ffiuintsizeiPtrsizeiPtrcharIOV glGetPerfMonitorGroupStringAMDFunPtr
-
-glGetPerfMonitorGroupStringAMDFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetPerfMonitorGroupStringAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorGroupStringAMD")
-
-{-# NOINLINE glGetPerfMonitorGroupStringAMDFunPtr #-}
-
--- | Usage: @'glGetPerfMonitorGroupsAMD' numGroups groupsSize groups@
---
--- The length of @numGroups@ should be @1@.
---
--- The length of @groups@ should be @groupsSize@.
-
-
-glGetPerfMonitorGroupsAMD :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetPerfMonitorGroupsAMD = ffiPtrintsizeiPtruintIOV glGetPerfMonitorGroupsAMDFunPtr
-
-glGetPerfMonitorGroupsAMDFunPtr :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetPerfMonitorGroupsAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorGroupsAMD")
-
-{-# NOINLINE glGetPerfMonitorGroupsAMDFunPtr #-}
-
--- | Usage: @'glSelectPerfMonitorCountersAMD' monitor enable group numCounters counterList@
---
--- The parameter @enable@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @counterList@ should be @numCounters@.
-
-
-glSelectPerfMonitorCountersAMD :: MonadIO m => GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
-glSelectPerfMonitorCountersAMD = ffiuintbooleanuintintPtruintIOV glSelectPerfMonitorCountersAMDFunPtr
-
-glSelectPerfMonitorCountersAMDFunPtr :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ())
-glSelectPerfMonitorCountersAMDFunPtr = unsafePerformIO (getProcAddress "glSelectPerfMonitorCountersAMD")
-
-{-# NOINLINE glSelectPerfMonitorCountersAMDFunPtr #-}
-
-pattern GL_COUNTER_RANGE_AMD = 0x8BC1
-
-pattern GL_COUNTER_TYPE_AMD = 0x8BC0
-
-pattern GL_PERCENTAGE_AMD = 0x8BC3
-
-pattern GL_PERFMON_RESULT_AMD = 0x8BC6
-
-pattern GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4
-
-pattern GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5
-
-pattern GL_UNSIGNED_INT64_AMD = 0x8BC2
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/PinnedMemory.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/PinnedMemory.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/PinnedMemory.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.PinnedMemory (
-  -- * Extension Support
-    gl_AMD_pinned_memory
-
-  -- * GL_AMD_pinned_memory
-  , pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/pinned_memory.txt GL_AMD_pinned_memory> extension is available.
-
-gl_AMD_pinned_memory :: Bool
-gl_AMD_pinned_memory = member "GL_AMD_pinned_memory" extensions
-{-# NOINLINE gl_AMD_pinned_memory #-}
-
-pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.ProgramBinaryZ400 (
-  -- * Extension Support
-    gl_AMD_program_binary_Z400
-
-  -- * GL_AMD_program_binary_Z400
-  , pattern GL_Z400_BINARY_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_program_binary_Z400.txt GL_AMD_program_binary_Z400> extension is available.
-
-gl_AMD_program_binary_Z400 :: Bool
-gl_AMD_program_binary_Z400 = member "GL_AMD_program_binary_Z400" extensions
-{-# NOINLINE gl_AMD_program_binary_Z400 #-}
-
-pattern GL_Z400_BINARY_AMD = 0x8740
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/QueryBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/QueryBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/QueryBufferObject.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.QueryBufferObject (
-  -- * Extension Support
-    gl_AMD_query_buffer_object
-
-  -- * GL_AMD_query_buffer_object
-  , pattern GL_QUERY_BUFFER_AMD
-  , pattern GL_QUERY_BUFFER_BINDING_AMD
-  , pattern GL_QUERY_RESULT_NO_WAIT_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/query_buffer_object.txt GL_AMD_query_buffer_object> extension is available.
-
-gl_AMD_query_buffer_object :: Bool
-gl_AMD_query_buffer_object = member "GL_AMD_query_buffer_object" extensions
-{-# NOINLINE gl_AMD_query_buffer_object #-}
-
-pattern GL_QUERY_BUFFER_AMD = 0x9192
-
-pattern GL_QUERY_BUFFER_BINDING_AMD = 0x9193
-
-pattern GL_QUERY_RESULT_NO_WAIT_AMD = 0x9194
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/SamplePositions.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/SamplePositions.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/SamplePositions.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.SamplePositions (
-  -- * Extension Support
-    gl_AMD_sample_positions
-
-  -- * GL_AMD_sample_positions
-  , glSetMultisamplefvAMD
-  , pattern GL_SUBSAMPLE_DISTANCE_AMD
-) 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/AMD/sample_positions.txt GL_AMD_sample_positions> extension is available.
-
-gl_AMD_sample_positions :: Bool
-gl_AMD_sample_positions = member "GL_AMD_sample_positions" extensions
-{-# NOINLINE gl_AMD_sample_positions #-}
-
--- | Usage: @'glSetMultisamplefvAMD' pname index val@
---
--- The length of @val@ should be @2@.
-
-
-glSetMultisamplefvAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glSetMultisamplefvAMD = ffienumuintPtrfloatIOV glSetMultisamplefvAMDFunPtr
-
-glSetMultisamplefvAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glSetMultisamplefvAMDFunPtr = unsafePerformIO (getProcAddress "glSetMultisamplefvAMD")
-
-{-# NOINLINE glSetMultisamplefvAMDFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/SeamlessCubemapPerTexture.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/SeamlessCubemapPerTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/SeamlessCubemapPerTexture.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.SeamlessCubemapPerTexture (
-  -- * Extension Support
-    gl_AMD_seamless_cubemap_per_texture
-
-  -- * GL_AMD_seamless_cubemap_per_texture
-  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/seamless_cubemap_per_texture.txt GL_AMD_seamless_cubemap_per_texture> extension is available.
-
-gl_AMD_seamless_cubemap_per_texture :: Bool
-gl_AMD_seamless_cubemap_per_texture = member "GL_AMD_seamless_cubemap_per_texture" extensions
-{-# NOINLINE gl_AMD_seamless_cubemap_per_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderAtomicCounterOps.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderAtomicCounterOps.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderAtomicCounterOps.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.ShaderAtomicCounterOps (
-  -- * Extension Support
-    gl_AMD_shader_atomic_counter_ops
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_atomic_counter_ops.txt GL_AMD_shader_atomic_counter_ops> extension is available.
-
-gl_AMD_shader_atomic_counter_ops :: Bool
-gl_AMD_shader_atomic_counter_ops = member "GL_AMD_shader_atomic_counter_ops" extensions
-{-# NOINLINE gl_AMD_shader_atomic_counter_ops #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderBallot.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderBallot.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderBallot.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.ShaderBallot (
-  -- * Extension Support
-    gl_AMD_shader_ballot
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_ballot.txt GL_AMD_shader_ballot> extension is available.
-
-gl_AMD_shader_ballot :: Bool
-gl_AMD_shader_ballot = member "GL_AMD_shader_ballot" extensions
-{-# NOINLINE gl_AMD_shader_ballot #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderExplicitVertexParameter.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderExplicitVertexParameter.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderExplicitVertexParameter.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.ShaderExplicitVertexParameter (
-  -- * Extension Support
-    gl_AMD_shader_explicit_vertex_parameter
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_explicit_vertex_parameter.txt GL_AMD_shader_explicit_vertex_parameter> extension is available.
-
-gl_AMD_shader_explicit_vertex_parameter :: Bool
-gl_AMD_shader_explicit_vertex_parameter = member "GL_AMD_shader_explicit_vertex_parameter" extensions
-{-# NOINLINE gl_AMD_shader_explicit_vertex_parameter #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderStencilExport.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderStencilExport.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderStencilExport.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.ShaderStencilExport (
-  -- * Extension Support
-    gl_AMD_shader_stencil_export
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_stencil_export.txt GL_AMD_shader_stencil_export> extension is available.
-
-gl_AMD_shader_stencil_export :: Bool
-gl_AMD_shader_stencil_export = member "GL_AMD_shader_stencil_export" extensions
-{-# NOINLINE gl_AMD_shader_stencil_export #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderTrinaryMinmax.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderTrinaryMinmax.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/ShaderTrinaryMinmax.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.ShaderTrinaryMinmax (
-  -- * Extension Support
-    gl_AMD_shader_trinary_minmax
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_trinary_minmax.txt GL_AMD_shader_trinary_minmax> extension is available.
-
-gl_AMD_shader_trinary_minmax :: Bool
-gl_AMD_shader_trinary_minmax = member "GL_AMD_shader_trinary_minmax" extensions
-{-# NOINLINE gl_AMD_shader_trinary_minmax #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/SparseTexture.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/SparseTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/SparseTexture.hs
+++ /dev/null
@@ -1,73 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.SparseTexture (
-  -- * Extension Support
-    gl_AMD_sparse_texture
-
-  -- * GL_AMD_sparse_texture
-  , glTexStorageSparseAMD
-  , glTextureStorageSparseAMD
-  , pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD
-  , pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS
-  , pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD
-  , pattern GL_MIN_LOD_WARNING_AMD
-  , pattern GL_MIN_SPARSE_LEVEL_AMD
-  , pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD
-  , pattern GL_VIRTUAL_PAGE_SIZE_X_AMD
-  , pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD
-  , pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/sparse_texture.txt GL_AMD_sparse_texture> extension is available.
-
-gl_AMD_sparse_texture :: Bool
-gl_AMD_sparse_texture = member "GL_AMD_sparse_texture" extensions
-{-# NOINLINE gl_AMD_sparse_texture #-}
-
--- | Usage: @'glTexStorageSparseAMD' target internalFormat width height depth layers flags@
-
-
-glTexStorageSparseAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
-glTexStorageSparseAMD = ffienumenumsizeisizeisizeisizeibitfieldIOV glTexStorageSparseAMDFunPtr
-
-glTexStorageSparseAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
-glTexStorageSparseAMDFunPtr = unsafePerformIO (getProcAddress "glTexStorageSparseAMD")
-
-{-# NOINLINE glTexStorageSparseAMDFunPtr #-}
-
--- | Usage: @'glTextureStorageSparseAMD' texture target internalFormat width height depth layers flags@
-
-
-glTextureStorageSparseAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
-glTextureStorageSparseAMD = ffiuintenumenumsizeisizeisizeisizeibitfieldIOV glTextureStorageSparseAMDFunPtr
-
-glTextureStorageSparseAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
-glTextureStorageSparseAMDFunPtr = unsafePerformIO (getProcAddress "glTextureStorageSparseAMD")
-
-{-# NOINLINE glTextureStorageSparseAMDFunPtr #-}
-
-pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199
-
-pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A
-
-pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198
-
-pattern GL_MIN_LOD_WARNING_AMD = 0x919C
-
-pattern GL_MIN_SPARSE_LEVEL_AMD = 0x919B
-
-pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001
-
-pattern GL_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195
-
-pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196
-
-pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/StencilOperationExtended.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/StencilOperationExtended.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/StencilOperationExtended.hs
+++ /dev/null
@@ -1,48 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.StencilOperationExtended (
-  -- * Extension Support
-    gl_AMD_stencil_operation_extended
-
-  -- * GL_AMD_stencil_operation_extended
-  , glStencilOpValueAMD
-  , pattern GL_REPLACE_VALUE_AMD
-  , pattern GL_SET_AMD
-  , pattern GL_STENCIL_BACK_OP_VALUE_AMD
-  , pattern GL_STENCIL_OP_VALUE_AMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/stencil_operation_extended.txt GL_AMD_stencil_operation_extended> extension is available.
-
-gl_AMD_stencil_operation_extended :: Bool
-gl_AMD_stencil_operation_extended = member "GL_AMD_stencil_operation_extended" extensions
-{-# NOINLINE gl_AMD_stencil_operation_extended #-}
-
--- | Usage: @'glStencilOpValueAMD' face value@
---
--- The parameter @face@ is a @StencilFaceDirection@.
-
-
-glStencilOpValueAMD :: MonadIO m => GLenum -> GLuint -> m ()
-glStencilOpValueAMD = ffienumuintIOV glStencilOpValueAMDFunPtr
-
-glStencilOpValueAMDFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glStencilOpValueAMDFunPtr = unsafePerformIO (getProcAddress "glStencilOpValueAMD")
-
-{-# NOINLINE glStencilOpValueAMDFunPtr #-}
-
-pattern GL_REPLACE_VALUE_AMD = 0x874B
-
-pattern GL_SET_AMD = 0x874A
-
-pattern GL_STENCIL_BACK_OP_VALUE_AMD = 0x874D
-
-pattern GL_STENCIL_OP_VALUE_AMD = 0x874C
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/TextureTexture4.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/TextureTexture4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/TextureTexture4.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.TextureTexture4 (
-  -- * Extension Support
-    gl_AMD_texture_texture4
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/texture_texture4.txt GL_AMD_texture_texture4> extension is available.
-
-gl_AMD_texture_texture4 :: Bool
-gl_AMD_texture_texture4 = member "GL_AMD_texture_texture4" extensions
-{-# NOINLINE gl_AMD_texture_texture4 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/TransformFeedback3LinesTriangles.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/TransformFeedback3LinesTriangles.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/TransformFeedback3LinesTriangles.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.TransformFeedback3LinesTriangles (
-  -- * Extension Support
-    gl_AMD_transform_feedback3_lines_triangles
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback3_lines_triangles.txt GL_AMD_transform_feedback3_lines_triangles> extension is available.
-
-gl_AMD_transform_feedback3_lines_triangles :: Bool
-gl_AMD_transform_feedback3_lines_triangles = member "GL_AMD_transform_feedback3_lines_triangles" extensions
-{-# NOINLINE gl_AMD_transform_feedback3_lines_triangles #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/TransformFeedback4.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/TransformFeedback4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/TransformFeedback4.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.TransformFeedback4 (
-  -- * Extension Support
-    gl_AMD_transform_feedback4
-
-  -- * GL_AMD_transform_feedback4
-  , pattern GL_STREAM_RASTERIZATION_AMD
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback4.txt GL_AMD_transform_feedback4> extension is available.
-
-gl_AMD_transform_feedback4 :: Bool
-gl_AMD_transform_feedback4 = member "GL_AMD_transform_feedback4" extensions
-{-# NOINLINE gl_AMD_transform_feedback4 #-}
-
-pattern GL_STREAM_RASTERIZATION_AMD = 0x91A0
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderLayer.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderLayer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderLayer.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.VertexShaderLayer (
-  -- * Extension Support
-    gl_AMD_vertex_shader_layer
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_layer.txt GL_AMD_vertex_shader_layer> extension is available.
-
-gl_AMD_vertex_shader_layer :: Bool
-gl_AMD_vertex_shader_layer = member "GL_AMD_vertex_shader_layer" extensions
-{-# NOINLINE gl_AMD_vertex_shader_layer #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs
+++ /dev/null
@@ -1,67 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.VertexShaderTessellator (
-  -- * Extension Support
-    gl_AMD_vertex_shader_tessellator
-
-  -- * GL_AMD_vertex_shader_tessellator
-  , glTessellationFactorAMD
-  , glTessellationModeAMD
-  , pattern GL_CONTINUOUS_AMD
-  , pattern GL_DISCRETE_AMD
-  , pattern GL_INT_SAMPLER_BUFFER_AMD
-  , pattern GL_SAMPLER_BUFFER_AMD
-  , pattern GL_TESSELLATION_FACTOR_AMD
-  , pattern GL_TESSELLATION_MODE_AMD
-  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_tessellator.txt GL_AMD_vertex_shader_tessellator> extension is available.
-
-gl_AMD_vertex_shader_tessellator :: Bool
-gl_AMD_vertex_shader_tessellator = member "GL_AMD_vertex_shader_tessellator" extensions
-{-# NOINLINE gl_AMD_vertex_shader_tessellator #-}
-
--- | Usage: @'glTessellationFactorAMD' factor@
-
-
-glTessellationFactorAMD :: MonadIO m => GLfloat -> m ()
-glTessellationFactorAMD = ffifloatIOV glTessellationFactorAMDFunPtr
-
-glTessellationFactorAMDFunPtr :: FunPtr (GLfloat -> IO ())
-glTessellationFactorAMDFunPtr = unsafePerformIO (getProcAddress "glTessellationFactorAMD")
-
-{-# NOINLINE glTessellationFactorAMDFunPtr #-}
-
--- | Usage: @'glTessellationModeAMD' mode@
-
-
-glTessellationModeAMD :: MonadIO m => GLenum -> m ()
-glTessellationModeAMD = ffienumIOV glTessellationModeAMDFunPtr
-
-glTessellationModeAMDFunPtr :: FunPtr (GLenum -> IO ())
-glTessellationModeAMDFunPtr = unsafePerformIO (getProcAddress "glTessellationModeAMD")
-
-{-# NOINLINE glTessellationModeAMDFunPtr #-}
-
-pattern GL_CONTINUOUS_AMD = 0x9007
-
-pattern GL_DISCRETE_AMD = 0x9006
-
-pattern GL_INT_SAMPLER_BUFFER_AMD = 0x9002
-
-pattern GL_SAMPLER_BUFFER_AMD = 0x9001
-
-pattern GL_TESSELLATION_FACTOR_AMD = 0x9005
-
-pattern GL_TESSELLATION_MODE_AMD = 0x9004
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003
diff --git a/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderViewportIndex.hs b/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderViewportIndex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/AMD/VertexShaderViewportIndex.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.AMD.VertexShaderViewportIndex (
-  -- * Extension Support
-    gl_AMD_vertex_shader_viewport_index
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_viewport_index.txt GL_AMD_vertex_shader_viewport_index> extension is available.
-
-gl_AMD_vertex_shader_viewport_index :: Bool
-gl_AMD_vertex_shader_viewport_index = member "GL_AMD_vertex_shader_viewport_index" extensions
-{-# NOINLINE gl_AMD_vertex_shader_viewport_index #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANDROID.hs b/dist/build/autogen/Graphics/GL/Ext/ANDROID.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANDROID.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANDROID (
-  -- * ANDROID Extensions
-    module Graphics.GL.Ext.ANDROID.ExtensionPackEs31a
-) where
-
-import Graphics.GL.Ext.ANDROID.ExtensionPackEs31a
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANDROID/ExtensionPackEs31a.hs b/dist/build/autogen/Graphics/GL/Ext/ANDROID/ExtensionPackEs31a.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANDROID/ExtensionPackEs31a.hs
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANDROID.ExtensionPackEs31a (
-  -- * Extension Support
-    gl_ANDROID_extension_pack_es31a
-
-  -- * GL_ANDROID_extension_pack_es31a
-  , module Graphics.GL.Ext.KHR.Debug
-  , module Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
-  , module Graphics.GL.Ext.KHR.BlendEquationAdvanced
-  , module Graphics.GL.Ext.OES.SampleShading
-  , module Graphics.GL.Ext.OES.SampleVariables
-  , module Graphics.GL.Ext.OES.ShaderImageAtomic
-  , module Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
-  , module Graphics.GL.Ext.OES.TextureStencil8
-  , module Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
-  , module Graphics.GL.Ext.EXT.CopyImage
-  , module Graphics.GL.Ext.EXT.DrawBuffersIndexed
-  , module Graphics.GL.Ext.EXT.GeometryShader
-  , module Graphics.GL.Ext.EXT.GpuShader5
-  , module Graphics.GL.Ext.EXT.PrimitiveBoundingBox
-  , module Graphics.GL.Ext.EXT.ShaderIoBlocks
-  , module Graphics.GL.Ext.EXT.TessellationShader
-  , module Graphics.GL.Ext.EXT.TextureBorderClamp
-  , module Graphics.GL.Ext.EXT.TextureBuffer
-  , module Graphics.GL.Ext.EXT.TextureCubeMapArray
-  , module Graphics.GL.Ext.EXT.TextureSRGBDecode
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
-import Graphics.GL.Ext.KHR.Debug
-import Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
-import Graphics.GL.Ext.KHR.BlendEquationAdvanced
-import Graphics.GL.Ext.OES.SampleShading
-import Graphics.GL.Ext.OES.SampleVariables
-import Graphics.GL.Ext.OES.ShaderImageAtomic
-import Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
-import Graphics.GL.Ext.OES.TextureStencil8
-import Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
-import Graphics.GL.Ext.EXT.CopyImage
-import Graphics.GL.Ext.EXT.DrawBuffersIndexed
-import Graphics.GL.Ext.EXT.GeometryShader
-import Graphics.GL.Ext.EXT.GpuShader5
-import Graphics.GL.Ext.EXT.PrimitiveBoundingBox
-import Graphics.GL.Ext.EXT.ShaderIoBlocks
-import Graphics.GL.Ext.EXT.TessellationShader
-import Graphics.GL.Ext.EXT.TextureBorderClamp
-import Graphics.GL.Ext.EXT.TextureBuffer
-import Graphics.GL.Ext.EXT.TextureCubeMapArray
-import Graphics.GL.Ext.EXT.TextureSRGBDecode
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt GL_ANDROID_extension_pack_es31a> extension is available.
-
-gl_ANDROID_extension_pack_es31a :: Bool
-gl_ANDROID_extension_pack_es31a = member "GL_ANDROID_extension_pack_es31a" extensions
-{-# NOINLINE gl_ANDROID_extension_pack_es31a #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE (
-  -- * ANGLE Extensions
-    module Graphics.GL.Ext.ANGLE.DepthTexture
-  , module Graphics.GL.Ext.ANGLE.FramebufferBlit
-  , module Graphics.GL.Ext.ANGLE.FramebufferMultisample
-  , module Graphics.GL.Ext.ANGLE.InstancedArrays
-  , module Graphics.GL.Ext.ANGLE.PackReverseRowOrder
-  , module Graphics.GL.Ext.ANGLE.ProgramBinary
-  , module Graphics.GL.Ext.ANGLE.TextureCompressionDxt3
-  , module Graphics.GL.Ext.ANGLE.TextureCompressionDxt5
-  , module Graphics.GL.Ext.ANGLE.TextureUsage
-  , module Graphics.GL.Ext.ANGLE.TranslatedShaderSource
-) where
-
-import Graphics.GL.Ext.ANGLE.DepthTexture
-import Graphics.GL.Ext.ANGLE.FramebufferBlit
-import Graphics.GL.Ext.ANGLE.FramebufferMultisample
-import Graphics.GL.Ext.ANGLE.InstancedArrays
-import Graphics.GL.Ext.ANGLE.PackReverseRowOrder
-import Graphics.GL.Ext.ANGLE.ProgramBinary
-import Graphics.GL.Ext.ANGLE.TextureCompressionDxt3
-import Graphics.GL.Ext.ANGLE.TextureCompressionDxt5
-import Graphics.GL.Ext.ANGLE.TextureUsage
-import Graphics.GL.Ext.ANGLE.TranslatedShaderSource
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/DepthTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/DepthTexture.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.DepthTexture (
-  -- * Extension Support
-    gl_ANGLE_depth_texture
-
-  -- * GL_ANGLE_depth_texture
-  , pattern GL_DEPTH24_STENCIL8_OES
-  , pattern GL_DEPTH_COMPONENT
-  , pattern GL_DEPTH_COMPONENT16
-  , pattern GL_DEPTH_COMPONENT32_OES
-  , pattern GL_DEPTH_STENCIL_OES
-  , pattern GL_UNSIGNED_INT
-  , pattern GL_UNSIGNED_INT_24_8_OES
-  , pattern GL_UNSIGNED_SHORT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_depth_texture.txt GL_ANGLE_depth_texture> extension is available.
-
-gl_ANGLE_depth_texture :: Bool
-gl_ANGLE_depth_texture = member "GL_ANGLE_depth_texture" extensions
-{-# NOINLINE gl_ANGLE_depth_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.FramebufferBlit (
-  -- * Extension Support
-    gl_ANGLE_framebuffer_blit
-
-  -- * GL_ANGLE_framebuffer_blit
-  , glBlitFramebufferANGLE
-  , pattern GL_DRAW_FRAMEBUFFER_ANGLE
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE
-  , pattern GL_READ_FRAMEBUFFER_ANGLE
-  , pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_blit.txt GL_ANGLE_framebuffer_blit> extension is available.
-
-gl_ANGLE_framebuffer_blit :: Bool
-gl_ANGLE_framebuffer_blit = member "GL_ANGLE_framebuffer_blit" extensions
-{-# NOINLINE gl_ANGLE_framebuffer_blit #-}
-
--- | Usage: @'glBlitFramebufferANGLE' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
-
-
-glBlitFramebufferANGLE :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitFramebufferANGLE = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferANGLEFunPtr
-
-glBlitFramebufferANGLEFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitFramebufferANGLEFunPtr = unsafePerformIO (getProcAddress "glBlitFramebufferANGLE")
-
-{-# NOINLINE glBlitFramebufferANGLEFunPtr #-}
-
-pattern GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9
-
-pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6
-
-pattern GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8
-
-pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.FramebufferMultisample (
-  -- * Extension Support
-    gl_ANGLE_framebuffer_multisample
-
-  -- * GL_ANGLE_framebuffer_multisample
-  , glRenderbufferStorageMultisampleANGLE
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE
-  , pattern GL_MAX_SAMPLES_ANGLE
-  , pattern GL_RENDERBUFFER_SAMPLES_ANGLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_multisample.txt GL_ANGLE_framebuffer_multisample> extension is available.
-
-gl_ANGLE_framebuffer_multisample :: Bool
-gl_ANGLE_framebuffer_multisample = member "GL_ANGLE_framebuffer_multisample" extensions
-{-# NOINLINE gl_ANGLE_framebuffer_multisample #-}
-
--- | Usage: @'glRenderbufferStorageMultisampleANGLE' target samples internalformat width height@
-
-
-glRenderbufferStorageMultisampleANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleANGLE = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleANGLEFunPtr
-
-glRenderbufferStorageMultisampleANGLEFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleANGLEFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleANGLE")
-
-{-# NOINLINE glRenderbufferStorageMultisampleANGLEFunPtr #-}
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56
-
-pattern GL_MAX_SAMPLES_ANGLE = 0x8D57
-
-pattern GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/InstancedArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/InstancedArrays.hs
+++ /dev/null
@@ -1,73 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.InstancedArrays (
-  -- * Extension Support
-    gl_ANGLE_instanced_arrays
-
-  -- * GL_ANGLE_instanced_arrays
-  , glDrawArraysInstancedANGLE
-  , glDrawElementsInstancedANGLE
-  , glVertexAttribDivisorANGLE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt GL_ANGLE_instanced_arrays> extension is available.
-
-gl_ANGLE_instanced_arrays :: Bool
-gl_ANGLE_instanced_arrays = member "GL_ANGLE_instanced_arrays" extensions
-{-# NOINLINE gl_ANGLE_instanced_arrays #-}
-
--- | Usage: @'glDrawArraysInstancedANGLE' mode first count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
-
-
-glDrawArraysInstancedANGLE :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstancedANGLE = ffienumintsizeisizeiIOV glDrawArraysInstancedANGLEFunPtr
-
-glDrawArraysInstancedANGLEFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedANGLEFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedANGLE")
-
-{-# NOINLINE glDrawArraysInstancedANGLEFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedANGLE' mode count type indices primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
-
-
-glDrawElementsInstancedANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstancedANGLE = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedANGLEFunPtr
-
-glDrawElementsInstancedANGLEFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedANGLEFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedANGLE")
-
-{-# NOINLINE glDrawElementsInstancedANGLEFunPtr #-}
-
--- | Usage: @'glVertexAttribDivisorANGLE' index divisor@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
-
-
-glVertexAttribDivisorANGLE :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribDivisorANGLE = ffiuintuintIOV glVertexAttribDivisorANGLEFunPtr
-
-glVertexAttribDivisorANGLEFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribDivisorANGLEFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorANGLE")
-
-{-# NOINLINE glVertexAttribDivisorANGLEFunPtr #-}
-
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.PackReverseRowOrder (
-  -- * Extension Support
-    gl_ANGLE_pack_reverse_row_order
-
-  -- * GL_ANGLE_pack_reverse_row_order
-  , pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_pack_reverse_row_order.txt GL_ANGLE_pack_reverse_row_order> extension is available.
-
-gl_ANGLE_pack_reverse_row_order :: Bool
-gl_ANGLE_pack_reverse_row_order = member "GL_ANGLE_pack_reverse_row_order" extensions
-{-# NOINLINE gl_ANGLE_pack_reverse_row_order #-}
-
-pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/ProgramBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/ProgramBinary.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.ProgramBinary (
-  -- * Extension Support
-    gl_ANGLE_program_binary
-
-  -- * GL_ANGLE_program_binary
-  , pattern GL_PROGRAM_BINARY_ANGLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_program_binary.txt GL_ANGLE_program_binary> extension is available.
-
-gl_ANGLE_program_binary :: Bool
-gl_ANGLE_program_binary = member "GL_ANGLE_program_binary" extensions
-{-# NOINLINE gl_ANGLE_program_binary #-}
-
-pattern GL_PROGRAM_BINARY_ANGLE = 0x93A6
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.TextureCompressionDxt3 (
-  -- * Extension Support
-    gl_ANGLE_texture_compression_dxt3
-
-  -- * GL_ANGLE_texture_compression_dxt3
-  , pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_compression_dxt3.txt GL_ANGLE_texture_compression_dxt3> extension is available.
-
-gl_ANGLE_texture_compression_dxt3 :: Bool
-gl_ANGLE_texture_compression_dxt3 = member "GL_ANGLE_texture_compression_dxt3" extensions
-{-# NOINLINE gl_ANGLE_texture_compression_dxt3 #-}
-
-pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.TextureCompressionDxt5 (
-  -- * Extension Support
-    gl_ANGLE_texture_compression_dxt5
-
-  -- * GL_ANGLE_texture_compression_dxt5
-  , pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_compression_dxt5.txt GL_ANGLE_texture_compression_dxt5> extension is available.
-
-gl_ANGLE_texture_compression_dxt5 :: Bool
-gl_ANGLE_texture_compression_dxt5 = member "GL_ANGLE_texture_compression_dxt5" extensions
-{-# NOINLINE gl_ANGLE_texture_compression_dxt5 #-}
-
-pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureUsage.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureUsage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TextureUsage.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.TextureUsage (
-  -- * Extension Support
-    gl_ANGLE_texture_usage
-
-  -- * GL_ANGLE_texture_usage
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE
-  , pattern GL_TEXTURE_USAGE_ANGLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_usage.txt GL_ANGLE_texture_usage> extension is available.
-
-gl_ANGLE_texture_usage :: Bool
-gl_ANGLE_texture_usage = member "GL_ANGLE_texture_usage" extensions
-{-# NOINLINE gl_ANGLE_texture_usage #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3
-
-pattern GL_TEXTURE_USAGE_ANGLE = 0x93A2
diff --git a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs b/dist/build/autogen/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ANGLE.TranslatedShaderSource (
-  -- * Extension Support
-    gl_ANGLE_translated_shader_source
-
-  -- * GL_ANGLE_translated_shader_source
-  , glGetTranslatedShaderSourceANGLE
-  , pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_translated_shader_source.txt GL_ANGLE_translated_shader_source> extension is available.
-
-gl_ANGLE_translated_shader_source :: Bool
-gl_ANGLE_translated_shader_source = member "GL_ANGLE_translated_shader_source" extensions
-{-# NOINLINE gl_ANGLE_translated_shader_source #-}
-
--- | Usage: @'glGetTranslatedShaderSourceANGLE' shader bufsize length source@
---
--- The length of @length@ should be @1@.
-
-
-glGetTranslatedShaderSourceANGLE :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetTranslatedShaderSourceANGLE = ffiuintsizeiPtrsizeiPtrcharIOV glGetTranslatedShaderSourceANGLEFunPtr
-
-glGetTranslatedShaderSourceANGLEFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetTranslatedShaderSourceANGLEFunPtr = unsafePerformIO (getProcAddress "glGetTranslatedShaderSourceANGLE")
-
-{-# NOINLINE glGetTranslatedShaderSourceANGLEFunPtr #-}
-
-pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE.hs
+++ /dev/null
@@ -1,56 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE (
-  -- * APPLE Extensions
-    module Graphics.GL.Ext.APPLE.AuxDepthStencil
-  , module Graphics.GL.Ext.APPLE.ClientStorage
-  , module Graphics.GL.Ext.APPLE.ClipDistance
-  , module Graphics.GL.Ext.APPLE.ColorBufferPackedFloat
-  , module Graphics.GL.Ext.APPLE.CopyTextureLevels
-  , module Graphics.GL.Ext.APPLE.ElementArray
-  , module Graphics.GL.Ext.APPLE.Fence
-  , module Graphics.GL.Ext.APPLE.FloatPixels
-  , module Graphics.GL.Ext.APPLE.FlushBufferRange
-  , module Graphics.GL.Ext.APPLE.FramebufferMultisample
-  , module Graphics.GL.Ext.APPLE.ObjectPurgeable
-  , module Graphics.GL.Ext.APPLE.Rgb422
-  , module Graphics.GL.Ext.APPLE.RowBytes
-  , module Graphics.GL.Ext.APPLE.SpecularVector
-  , module Graphics.GL.Ext.APPLE.Sync
-  , module Graphics.GL.Ext.APPLE.Texture2DLimitedNpot
-  , module Graphics.GL.Ext.APPLE.TextureFormatBGRA8888
-  , module Graphics.GL.Ext.APPLE.TextureMaxLevel
-  , module Graphics.GL.Ext.APPLE.TexturePackedFloat
-  , module Graphics.GL.Ext.APPLE.TextureRange
-  , module Graphics.GL.Ext.APPLE.TransformHint
-  , module Graphics.GL.Ext.APPLE.VertexArrayObject
-  , module Graphics.GL.Ext.APPLE.VertexArrayRange
-  , module Graphics.GL.Ext.APPLE.VertexProgramEvaluators
-  , module Graphics.GL.Ext.APPLE.Ycbcr422
-) where
-
-import Graphics.GL.Ext.APPLE.AuxDepthStencil
-import Graphics.GL.Ext.APPLE.ClientStorage
-import Graphics.GL.Ext.APPLE.ClipDistance
-import Graphics.GL.Ext.APPLE.ColorBufferPackedFloat
-import Graphics.GL.Ext.APPLE.CopyTextureLevels
-import Graphics.GL.Ext.APPLE.ElementArray
-import Graphics.GL.Ext.APPLE.Fence
-import Graphics.GL.Ext.APPLE.FloatPixels
-import Graphics.GL.Ext.APPLE.FlushBufferRange
-import Graphics.GL.Ext.APPLE.FramebufferMultisample
-import Graphics.GL.Ext.APPLE.ObjectPurgeable
-import Graphics.GL.Ext.APPLE.Rgb422
-import Graphics.GL.Ext.APPLE.RowBytes
-import Graphics.GL.Ext.APPLE.SpecularVector
-import Graphics.GL.Ext.APPLE.Sync
-import Graphics.GL.Ext.APPLE.Texture2DLimitedNpot
-import Graphics.GL.Ext.APPLE.TextureFormatBGRA8888
-import Graphics.GL.Ext.APPLE.TextureMaxLevel
-import Graphics.GL.Ext.APPLE.TexturePackedFloat
-import Graphics.GL.Ext.APPLE.TextureRange
-import Graphics.GL.Ext.APPLE.TransformHint
-import Graphics.GL.Ext.APPLE.VertexArrayObject
-import Graphics.GL.Ext.APPLE.VertexArrayRange
-import Graphics.GL.Ext.APPLE.VertexProgramEvaluators
-import Graphics.GL.Ext.APPLE.Ycbcr422
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.AuxDepthStencil (
-  -- * Extension Support
-    gl_APPLE_aux_depth_stencil
-
-  -- * GL_APPLE_aux_depth_stencil
-  , pattern GL_AUX_DEPTH_STENCIL_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/aux_depth_stencil.txt GL_APPLE_aux_depth_stencil> extension is available.
-
-gl_APPLE_aux_depth_stencil :: Bool
-gl_APPLE_aux_depth_stencil = member "GL_APPLE_aux_depth_stencil" extensions
-{-# NOINLINE gl_APPLE_aux_depth_stencil #-}
-
-pattern GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/ClientStorage.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/ClientStorage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/ClientStorage.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.ClientStorage (
-  -- * Extension Support
-    gl_APPLE_client_storage
-
-  -- * GL_APPLE_client_storage
-  , pattern GL_UNPACK_CLIENT_STORAGE_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/client_storage.txt GL_APPLE_client_storage> extension is available.
-
-gl_APPLE_client_storage :: Bool
-gl_APPLE_client_storage = member "GL_APPLE_client_storage" extensions
-{-# NOINLINE gl_APPLE_client_storage #-}
-
-pattern GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/ClipDistance.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/ClipDistance.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/ClipDistance.hs
+++ /dev/null
@@ -1,44 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.ClipDistance (
-  -- * Extension Support
-    gl_APPLE_clip_distance
-
-  -- * GL_APPLE_clip_distance
-  , pattern GL_CLIP_DISTANCE0_APPLE
-  , pattern GL_CLIP_DISTANCE1_APPLE
-  , pattern GL_CLIP_DISTANCE2_APPLE
-  , pattern GL_CLIP_DISTANCE3_APPLE
-  , pattern GL_CLIP_DISTANCE4_APPLE
-  , pattern GL_CLIP_DISTANCE5_APPLE
-  , pattern GL_CLIP_DISTANCE6_APPLE
-  , pattern GL_CLIP_DISTANCE7_APPLE
-  , pattern GL_MAX_CLIP_DISTANCES_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_clip_distance.txt GL_APPLE_clip_distance> extension is available.
-
-gl_APPLE_clip_distance :: Bool
-gl_APPLE_clip_distance = member "GL_APPLE_clip_distance" extensions
-{-# NOINLINE gl_APPLE_clip_distance #-}
-
-pattern GL_CLIP_DISTANCE0_APPLE = 0x3000
-
-pattern GL_CLIP_DISTANCE1_APPLE = 0x3001
-
-pattern GL_CLIP_DISTANCE2_APPLE = 0x3002
-
-pattern GL_CLIP_DISTANCE3_APPLE = 0x3003
-
-pattern GL_CLIP_DISTANCE4_APPLE = 0x3004
-
-pattern GL_CLIP_DISTANCE5_APPLE = 0x3005
-
-pattern GL_CLIP_DISTANCE6_APPLE = 0x3006
-
-pattern GL_CLIP_DISTANCE7_APPLE = 0x3007
-
-pattern GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/ColorBufferPackedFloat.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/ColorBufferPackedFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/ColorBufferPackedFloat.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.ColorBufferPackedFloat (
-  -- * Extension Support
-    gl_APPLE_color_buffer_packed_float
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_color_buffer_packed_float.txt GL_APPLE_color_buffer_packed_float> extension is available.
-
-gl_APPLE_color_buffer_packed_float :: Bool
-gl_APPLE_color_buffer_packed_float = member "GL_APPLE_color_buffer_packed_float" extensions
-{-# NOINLINE gl_APPLE_color_buffer_packed_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/CopyTextureLevels.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/CopyTextureLevels.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/CopyTextureLevels.hs
+++ /dev/null
@@ -1,34 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.CopyTextureLevels (
-  -- * Extension Support
-    gl_APPLE_copy_texture_levels
-
-  -- * GL_APPLE_copy_texture_levels
-  , glCopyTextureLevelsAPPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_copy_texture_levels.txt GL_APPLE_copy_texture_levels> extension is available.
-
-gl_APPLE_copy_texture_levels :: Bool
-gl_APPLE_copy_texture_levels = member "GL_APPLE_copy_texture_levels" extensions
-{-# NOINLINE gl_APPLE_copy_texture_levels #-}
-
--- | Usage: @'glCopyTextureLevelsAPPLE' destinationTexture sourceTexture sourceBaseLevel sourceLevelCount@
-
-
-glCopyTextureLevelsAPPLE :: MonadIO m => GLuint -> GLuint -> GLint -> GLsizei -> m ()
-glCopyTextureLevelsAPPLE = ffiuintuintintsizeiIOV glCopyTextureLevelsAPPLEFunPtr
-
-glCopyTextureLevelsAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ())
-glCopyTextureLevelsAPPLEFunPtr = unsafePerformIO (getProcAddress "glCopyTextureLevelsAPPLE")
-
-{-# NOINLINE glCopyTextureLevelsAPPLEFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/ElementArray.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/ElementArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/ElementArray.hs
+++ /dev/null
@@ -1,111 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.ElementArray (
-  -- * Extension Support
-    gl_APPLE_element_array
-
-  -- * GL_APPLE_element_array
-  , glDrawElementArrayAPPLE
-  , glDrawRangeElementArrayAPPLE
-  , glElementPointerAPPLE
-  , glMultiDrawElementArrayAPPLE
-  , glMultiDrawRangeElementArrayAPPLE
-  , pattern GL_ELEMENT_ARRAY_APPLE
-  , pattern GL_ELEMENT_ARRAY_POINTER_APPLE
-  , pattern GL_ELEMENT_ARRAY_TYPE_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/element_array.txt GL_APPLE_element_array> extension is available.
-
-gl_APPLE_element_array :: Bool
-gl_APPLE_element_array = member "GL_APPLE_element_array" extensions
-{-# NOINLINE gl_APPLE_element_array #-}
-
--- | Usage: @'glDrawElementArrayAPPLE' mode first count@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
-
-
-glDrawElementArrayAPPLE :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
-glDrawElementArrayAPPLE = ffienumintsizeiIOV glDrawElementArrayAPPLEFunPtr
-
-glDrawElementArrayAPPLEFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
-glDrawElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glDrawElementArrayAPPLE")
-
-{-# NOINLINE glDrawElementArrayAPPLEFunPtr #-}
-
--- | Usage: @'glDrawRangeElementArrayAPPLE' mode start end first count@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
-
-
-glDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
-glDrawRangeElementArrayAPPLE = ffienumuintuintintsizeiIOV glDrawRangeElementArrayAPPLEFunPtr
-
-glDrawRangeElementArrayAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ())
-glDrawRangeElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementArrayAPPLE")
-
-{-# NOINLINE glDrawRangeElementArrayAPPLEFunPtr #-}
-
--- | Usage: @'glElementPointerAPPLE' type pointer@
---
--- The parameter @type@ is a @ElementPointerTypeATI@.
---
--- The length of @pointer@ should be @COMPSIZE(type)@.
-
-
-glElementPointerAPPLE :: MonadIO m => GLenum -> Ptr () -> m ()
-glElementPointerAPPLE = ffienumPtrVIOV glElementPointerAPPLEFunPtr
-
-glElementPointerAPPLEFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
-glElementPointerAPPLEFunPtr = unsafePerformIO (getProcAddress "glElementPointerAPPLE")
-
-{-# NOINLINE glElementPointerAPPLEFunPtr #-}
-
--- | Usage: @'glMultiDrawElementArrayAPPLE' mode first count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @first@ should be @primcount@.
---
--- The length of @count@ should be @primcount@.
-
-
-glMultiDrawElementArrayAPPLE :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-glMultiDrawElementArrayAPPLE = ffienumPtrintPtrsizeisizeiIOV glMultiDrawElementArrayAPPLEFunPtr
-
-glMultiDrawElementArrayAPPLEFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
-glMultiDrawElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementArrayAPPLE")
-
-{-# NOINLINE glMultiDrawElementArrayAPPLEFunPtr #-}
-
--- | Usage: @'glMultiDrawRangeElementArrayAPPLE' mode start end first count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @first@ should be @primcount@.
---
--- The length of @count@ should be @primcount@.
-
-
-glMultiDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-glMultiDrawRangeElementArrayAPPLE = ffienumuintuintPtrintPtrsizeisizeiIOV glMultiDrawRangeElementArrayAPPLEFunPtr
-
-glMultiDrawRangeElementArrayAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
-glMultiDrawRangeElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glMultiDrawRangeElementArrayAPPLE")
-
-{-# NOINLINE glMultiDrawRangeElementArrayAPPLEFunPtr #-}
-
-pattern GL_ELEMENT_ARRAY_APPLE = 0x8A0C
-
-pattern GL_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E
-
-pattern GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/Fence.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/Fence.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/Fence.hs
+++ /dev/null
@@ -1,144 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.Fence (
-  -- * Extension Support
-    gl_APPLE_fence
-
-  -- * GL_APPLE_fence
-  , glDeleteFencesAPPLE
-  , glFinishFenceAPPLE
-  , glFinishObjectAPPLE
-  , glGenFencesAPPLE
-  , glIsFenceAPPLE
-  , glSetFenceAPPLE
-  , glTestFenceAPPLE
-  , glTestObjectAPPLE
-  , pattern GL_DRAW_PIXELS_APPLE
-  , pattern GL_FENCE_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/fence.txt GL_APPLE_fence> extension is available.
-
-gl_APPLE_fence :: Bool
-gl_APPLE_fence = member "GL_APPLE_fence" extensions
-{-# NOINLINE gl_APPLE_fence #-}
-
--- | Usage: @'glDeleteFencesAPPLE' n fences@
---
--- The parameter @fences@ is a @FenceNV@.
---
--- The length of @fences@ should be @n@.
-
-
-glDeleteFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteFencesAPPLE = ffisizeiPtruintIOV glDeleteFencesAPPLEFunPtr
-
-glDeleteFencesAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteFencesAPPLEFunPtr = unsafePerformIO (getProcAddress "glDeleteFencesAPPLE")
-
-{-# NOINLINE glDeleteFencesAPPLEFunPtr #-}
-
--- | Usage: @'glFinishFenceAPPLE' fence@
---
--- The parameter @fence@ is a @FenceNV@.
-
-
-glFinishFenceAPPLE :: MonadIO m => GLuint -> m ()
-glFinishFenceAPPLE = ffiuintIOV glFinishFenceAPPLEFunPtr
-
-glFinishFenceAPPLEFunPtr :: FunPtr (GLuint -> IO ())
-glFinishFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glFinishFenceAPPLE")
-
-{-# NOINLINE glFinishFenceAPPLEFunPtr #-}
-
--- | Usage: @'glFinishObjectAPPLE' object name@
---
--- The parameter @object@ is a @ObjectTypeAPPLE@.
-
-
-glFinishObjectAPPLE :: MonadIO m => GLenum -> GLint -> m ()
-glFinishObjectAPPLE = ffienumintIOV glFinishObjectAPPLEFunPtr
-
-glFinishObjectAPPLEFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glFinishObjectAPPLEFunPtr = unsafePerformIO (getProcAddress "glFinishObjectAPPLE")
-
-{-# NOINLINE glFinishObjectAPPLEFunPtr #-}
-
--- | Usage: @'glGenFencesAPPLE' n fences@
---
--- The parameter @fences@ is a @FenceNV@.
---
--- The length of @fences@ should be @n@.
-
-
-glGenFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenFencesAPPLE = ffisizeiPtruintIOV glGenFencesAPPLEFunPtr
-
-glGenFencesAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenFencesAPPLEFunPtr = unsafePerformIO (getProcAddress "glGenFencesAPPLE")
-
-{-# NOINLINE glGenFencesAPPLEFunPtr #-}
-
--- | Usage: @'glIsFenceAPPLE' fence@
---
--- The parameter @fence@ is a @FenceNV@.
-
-
-glIsFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
-glIsFenceAPPLE = ffiuintIOboolean glIsFenceAPPLEFunPtr
-
-glIsFenceAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsFenceAPPLE")
-
-{-# NOINLINE glIsFenceAPPLEFunPtr #-}
-
--- | Usage: @'glSetFenceAPPLE' fence@
---
--- The parameter @fence@ is a @FenceNV@.
-
-
-glSetFenceAPPLE :: MonadIO m => GLuint -> m ()
-glSetFenceAPPLE = ffiuintIOV glSetFenceAPPLEFunPtr
-
-glSetFenceAPPLEFunPtr :: FunPtr (GLuint -> IO ())
-glSetFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glSetFenceAPPLE")
-
-{-# NOINLINE glSetFenceAPPLEFunPtr #-}
-
--- | Usage: @'glTestFenceAPPLE' fence@
---
--- The parameter @fence@ is a @FenceNV@.
-
-
-glTestFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
-glTestFenceAPPLE = ffiuintIOboolean glTestFenceAPPLEFunPtr
-
-glTestFenceAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glTestFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glTestFenceAPPLE")
-
-{-# NOINLINE glTestFenceAPPLEFunPtr #-}
-
--- | Usage: @'glTestObjectAPPLE' object name@
---
--- The parameter @object@ is a @ObjectTypeAPPLE@.
-
-
-glTestObjectAPPLE :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glTestObjectAPPLE = ffienumuintIOboolean glTestObjectAPPLEFunPtr
-
-glTestObjectAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glTestObjectAPPLEFunPtr = unsafePerformIO (getProcAddress "glTestObjectAPPLE")
-
-{-# NOINLINE glTestObjectAPPLEFunPtr #-}
-
-pattern GL_DRAW_PIXELS_APPLE = 0x8A0A
-
-pattern GL_FENCE_APPLE = 0x8A0B
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/FloatPixels.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/FloatPixels.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/FloatPixels.hs
+++ /dev/null
@@ -1,59 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.FloatPixels (
-  -- * Extension Support
-    gl_APPLE_float_pixels
-
-  -- * GL_APPLE_float_pixels
-  , pattern GL_ALPHA_FLOAT16_APPLE
-  , pattern GL_ALPHA_FLOAT32_APPLE
-  , pattern GL_COLOR_FLOAT_APPLE
-  , pattern GL_HALF_APPLE
-  , pattern GL_INTENSITY_FLOAT16_APPLE
-  , pattern GL_INTENSITY_FLOAT32_APPLE
-  , pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE
-  , pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE
-  , pattern GL_LUMINANCE_FLOAT16_APPLE
-  , pattern GL_LUMINANCE_FLOAT32_APPLE
-  , pattern GL_RGBA_FLOAT16_APPLE
-  , pattern GL_RGBA_FLOAT32_APPLE
-  , pattern GL_RGB_FLOAT16_APPLE
-  , pattern GL_RGB_FLOAT32_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/float_pixels.txt GL_APPLE_float_pixels> extension is available.
-
-gl_APPLE_float_pixels :: Bool
-gl_APPLE_float_pixels = member "GL_APPLE_float_pixels" extensions
-{-# NOINLINE gl_APPLE_float_pixels #-}
-
-pattern GL_ALPHA_FLOAT16_APPLE = 0x881C
-
-pattern GL_ALPHA_FLOAT32_APPLE = 0x8816
-
-pattern GL_COLOR_FLOAT_APPLE = 0x8A0F
-
-pattern GL_HALF_APPLE = 0x140B
-
-pattern GL_INTENSITY_FLOAT16_APPLE = 0x881D
-
-pattern GL_INTENSITY_FLOAT32_APPLE = 0x8817
-
-pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F
-
-pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819
-
-pattern GL_LUMINANCE_FLOAT16_APPLE = 0x881E
-
-pattern GL_LUMINANCE_FLOAT32_APPLE = 0x8818
-
-pattern GL_RGBA_FLOAT16_APPLE = 0x881A
-
-pattern GL_RGBA_FLOAT32_APPLE = 0x8814
-
-pattern GL_RGB_FLOAT16_APPLE = 0x881B
-
-pattern GL_RGB_FLOAT32_APPLE = 0x8815
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/FlushBufferRange.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/FlushBufferRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/FlushBufferRange.hs
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.FlushBufferRange (
-  -- * Extension Support
-    gl_APPLE_flush_buffer_range
-
-  -- * GL_APPLE_flush_buffer_range
-  , glBufferParameteriAPPLE
-  , glFlushMappedBufferRangeAPPLE
-  , pattern GL_BUFFER_FLUSHING_UNMAP_APPLE
-  , pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/flush_buffer_range.txt GL_APPLE_flush_buffer_range> extension is available.
-
-gl_APPLE_flush_buffer_range :: Bool
-gl_APPLE_flush_buffer_range = member "GL_APPLE_flush_buffer_range" extensions
-{-# NOINLINE gl_APPLE_flush_buffer_range #-}
-
--- | Usage: @'glBufferParameteriAPPLE' target pname param@
-
-
-glBufferParameteriAPPLE :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glBufferParameteriAPPLE = ffienumenumintIOV glBufferParameteriAPPLEFunPtr
-
-glBufferParameteriAPPLEFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glBufferParameteriAPPLEFunPtr = unsafePerformIO (getProcAddress "glBufferParameteriAPPLE")
-
-{-# NOINLINE glBufferParameteriAPPLEFunPtr #-}
-
--- | Usage: @'glFlushMappedBufferRangeAPPLE' target offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFlushMappedBufferRange'.
-
-
-glFlushMappedBufferRangeAPPLE :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedBufferRangeAPPLE = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeAPPLEFunPtr
-
-glFlushMappedBufferRangeAPPLEFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedBufferRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRangeAPPLE")
-
-{-# NOINLINE glFlushMappedBufferRangeAPPLEFunPtr #-}
-
-pattern GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13
-
-pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs
+++ /dev/null
@@ -1,67 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.FramebufferMultisample (
-  -- * Extension Support
-    gl_APPLE_framebuffer_multisample
-
-  -- * GL_APPLE_framebuffer_multisample
-  , glRenderbufferStorageMultisampleAPPLE
-  , glResolveMultisampleFramebufferAPPLE
-  , pattern GL_DRAW_FRAMEBUFFER_APPLE
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE
-  , pattern GL_MAX_SAMPLES_APPLE
-  , pattern GL_READ_FRAMEBUFFER_APPLE
-  , pattern GL_READ_FRAMEBUFFER_BINDING_APPLE
-  , pattern GL_RENDERBUFFER_SAMPLES_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_framebuffer_multisample.txt GL_APPLE_framebuffer_multisample> extension is available.
-
-gl_APPLE_framebuffer_multisample :: Bool
-gl_APPLE_framebuffer_multisample = member "GL_APPLE_framebuffer_multisample" extensions
-{-# NOINLINE gl_APPLE_framebuffer_multisample #-}
-
--- | Usage: @'glRenderbufferStorageMultisampleAPPLE' target samples internalformat width height@
-
-
-glRenderbufferStorageMultisampleAPPLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleAPPLE = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleAPPLEFunPtr
-
-glRenderbufferStorageMultisampleAPPLEFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleAPPLEFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleAPPLE")
-
-{-# NOINLINE glRenderbufferStorageMultisampleAPPLEFunPtr #-}
-
--- | Usage: @'glResolveMultisampleFramebufferAPPLE'@
-
-
-glResolveMultisampleFramebufferAPPLE :: MonadIO m => m ()
-glResolveMultisampleFramebufferAPPLE = ffiIOV glResolveMultisampleFramebufferAPPLEFunPtr
-
-glResolveMultisampleFramebufferAPPLEFunPtr :: FunPtr (IO ())
-glResolveMultisampleFramebufferAPPLEFunPtr = unsafePerformIO (getProcAddress "glResolveMultisampleFramebufferAPPLE")
-
-{-# NOINLINE glResolveMultisampleFramebufferAPPLEFunPtr #-}
-
-pattern GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9
-
-pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56
-
-pattern GL_MAX_SAMPLES_APPLE = 0x8D57
-
-pattern GL_READ_FRAMEBUFFER_APPLE = 0x8CA8
-
-pattern GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA
-
-pattern GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs
+++ /dev/null
@@ -1,78 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.ObjectPurgeable (
-  -- * Extension Support
-    gl_APPLE_object_purgeable
-
-  -- * GL_APPLE_object_purgeable
-  , glGetObjectParameterivAPPLE
-  , glObjectPurgeableAPPLE
-  , glObjectUnpurgeableAPPLE
-  , pattern GL_BUFFER_OBJECT_APPLE
-  , pattern GL_PURGEABLE_APPLE
-  , pattern GL_RELEASED_APPLE
-  , pattern GL_RETAINED_APPLE
-  , pattern GL_UNDEFINED_APPLE
-  , pattern GL_VOLATILE_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/object_purgeable.txt GL_APPLE_object_purgeable> extension is available.
-
-gl_APPLE_object_purgeable :: Bool
-gl_APPLE_object_purgeable = member "GL_APPLE_object_purgeable" extensions
-{-# NOINLINE gl_APPLE_object_purgeable #-}
-
--- | Usage: @'glGetObjectParameterivAPPLE' objectType name pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetObjectParameterivAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetObjectParameterivAPPLE = ffienumuintenumPtrintIOV glGetObjectParameterivAPPLEFunPtr
-
-glGetObjectParameterivAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetObjectParameterivAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterivAPPLE")
-
-{-# NOINLINE glGetObjectParameterivAPPLEFunPtr #-}
-
--- | Usage: @'glObjectPurgeableAPPLE' objectType name option@
-
-
-glObjectPurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
-glObjectPurgeableAPPLE = ffienumuintenumIOenum glObjectPurgeableAPPLEFunPtr
-
-glObjectPurgeableAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum)
-glObjectPurgeableAPPLEFunPtr = unsafePerformIO (getProcAddress "glObjectPurgeableAPPLE")
-
-{-# NOINLINE glObjectPurgeableAPPLEFunPtr #-}
-
--- | Usage: @'glObjectUnpurgeableAPPLE' objectType name option@
-
-
-glObjectUnpurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
-glObjectUnpurgeableAPPLE = ffienumuintenumIOenum glObjectUnpurgeableAPPLEFunPtr
-
-glObjectUnpurgeableAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum)
-glObjectUnpurgeableAPPLEFunPtr = unsafePerformIO (getProcAddress "glObjectUnpurgeableAPPLE")
-
-{-# NOINLINE glObjectUnpurgeableAPPLEFunPtr #-}
-
-pattern GL_BUFFER_OBJECT_APPLE = 0x85B3
-
-pattern GL_PURGEABLE_APPLE = 0x8A1D
-
-pattern GL_RELEASED_APPLE = 0x8A19
-
-pattern GL_RETAINED_APPLE = 0x8A1B
-
-pattern GL_UNDEFINED_APPLE = 0x8A1C
-
-pattern GL_VOLATILE_APPLE = 0x8A1A
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/Rgb422.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/Rgb422.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/Rgb422.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.Rgb422 (
-  -- * Extension Support
-    gl_APPLE_rgb_422
-
-  -- * GL_APPLE_rgb_422
-  , pattern GL_RGB_422_APPLE
-  , pattern GL_RGB_RAW_422_APPLE
-  , pattern GL_UNSIGNED_SHORT_8_8_APPLE
-  , pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_rgb_422.txt GL_APPLE_rgb_422> extension is available.
-
-gl_APPLE_rgb_422 :: Bool
-gl_APPLE_rgb_422 = member "GL_APPLE_rgb_422" extensions
-{-# NOINLINE gl_APPLE_rgb_422 #-}
-
-pattern GL_RGB_422_APPLE = 0x8A1F
-
-pattern GL_RGB_RAW_422_APPLE = 0x8A51
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/RowBytes.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/RowBytes.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/RowBytes.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.RowBytes (
-  -- * Extension Support
-    gl_APPLE_row_bytes
-
-  -- * GL_APPLE_row_bytes
-  , pattern GL_PACK_ROW_BYTES_APPLE
-  , pattern GL_UNPACK_ROW_BYTES_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/row_bytes.txt GL_APPLE_row_bytes> extension is available.
-
-gl_APPLE_row_bytes :: Bool
-gl_APPLE_row_bytes = member "GL_APPLE_row_bytes" extensions
-{-# NOINLINE gl_APPLE_row_bytes #-}
-
-pattern GL_PACK_ROW_BYTES_APPLE = 0x8A15
-
-pattern GL_UNPACK_ROW_BYTES_APPLE = 0x8A16
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/SpecularVector.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/SpecularVector.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/SpecularVector.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.SpecularVector (
-  -- * Extension Support
-    gl_APPLE_specular_vector
-
-  -- * GL_APPLE_specular_vector
-  , pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/specular_vector.txt GL_APPLE_specular_vector> extension is available.
-
-gl_APPLE_specular_vector :: Bool
-gl_APPLE_specular_vector = member "GL_APPLE_specular_vector" extensions
-{-# NOINLINE gl_APPLE_specular_vector #-}
-
-pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/Sync.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/Sync.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/Sync.hs
+++ /dev/null
@@ -1,170 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.Sync (
-  -- * Extension Support
-    gl_APPLE_sync
-
-  -- * GL_APPLE_sync
-  , glClientWaitSyncAPPLE
-  , glDeleteSyncAPPLE
-  , glFenceSyncAPPLE
-  , glGetInteger64vAPPLE
-  , glGetSyncivAPPLE
-  , glIsSyncAPPLE
-  , glWaitSyncAPPLE
-  , pattern GL_ALREADY_SIGNALED_APPLE
-  , pattern GL_CONDITION_SATISFIED_APPLE
-  , pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE
-  , pattern GL_OBJECT_TYPE_APPLE
-  , pattern GL_SIGNALED_APPLE
-  , pattern GL_SYNC_CONDITION_APPLE
-  , pattern GL_SYNC_FENCE_APPLE
-  , pattern GL_SYNC_FLAGS_APPLE
-  , pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE
-  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE
-  , pattern GL_SYNC_OBJECT_APPLE
-  , pattern GL_SYNC_STATUS_APPLE
-  , pattern GL_TIMEOUT_EXPIRED_APPLE
-  , pattern GL_TIMEOUT_IGNORED_APPLE
-  , pattern GL_UNSIGNALED_APPLE
-  , pattern GL_WAIT_FAILED_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt GL_APPLE_sync> extension is available.
-
-gl_APPLE_sync :: Bool
-gl_APPLE_sync = member "GL_APPLE_sync" extensions
-{-# NOINLINE gl_APPLE_sync #-}
-
--- | Usage: @'glClientWaitSyncAPPLE' sync flags timeout@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glClientWaitSync'.
-
-
-glClientWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
-glClientWaitSyncAPPLE = ffisyncbitfielduint64IOenum glClientWaitSyncAPPLEFunPtr
-
-glClientWaitSyncAPPLEFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
-glClientWaitSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glClientWaitSyncAPPLE")
-
-{-# NOINLINE glClientWaitSyncAPPLEFunPtr #-}
-
--- | Usage: @'glDeleteSyncAPPLE' sync@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteSync'.
-
-
-glDeleteSyncAPPLE :: MonadIO m => GLsync -> m ()
-glDeleteSyncAPPLE = ffisyncIOV glDeleteSyncAPPLEFunPtr
-
-glDeleteSyncAPPLEFunPtr :: FunPtr (GLsync -> IO ())
-glDeleteSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glDeleteSyncAPPLE")
-
-{-# NOINLINE glDeleteSyncAPPLEFunPtr #-}
-
--- | Usage: @'glFenceSyncAPPLE' condition flags@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFenceSync'.
-
-
-glFenceSyncAPPLE :: MonadIO m => GLenum -> GLbitfield -> m GLsync
-glFenceSyncAPPLE = ffienumbitfieldIOsync glFenceSyncAPPLEFunPtr
-
-glFenceSyncAPPLEFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
-glFenceSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glFenceSyncAPPLE")
-
-{-# NOINLINE glFenceSyncAPPLEFunPtr #-}
-
--- | Usage: @'glGetInteger64vAPPLE' pname params@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetInteger64v'.
-
-
-glGetInteger64vAPPLE :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
-glGetInteger64vAPPLE = ffienumPtrint64IOV glGetInteger64vAPPLEFunPtr
-
-glGetInteger64vAPPLEFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
-glGetInteger64vAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetInteger64vAPPLE")
-
-{-# NOINLINE glGetInteger64vAPPLEFunPtr #-}
-
--- | Usage: @'glGetSyncivAPPLE' sync pname bufSize length values@
---
--- The length of @values@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSynciv'.
-
-
-glGetSyncivAPPLE :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glGetSyncivAPPLE = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivAPPLEFunPtr
-
-glGetSyncivAPPLEFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glGetSyncivAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetSyncivAPPLE")
-
-{-# NOINLINE glGetSyncivAPPLEFunPtr #-}
-
--- | Usage: @'glIsSyncAPPLE' sync@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsSync'.
-
-
-glIsSyncAPPLE :: MonadIO m => GLsync -> m GLboolean
-glIsSyncAPPLE = ffisyncIOboolean glIsSyncAPPLEFunPtr
-
-glIsSyncAPPLEFunPtr :: FunPtr (GLsync -> IO GLboolean)
-glIsSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsSyncAPPLE")
-
-{-# NOINLINE glIsSyncAPPLEFunPtr #-}
-
--- | Usage: @'glWaitSyncAPPLE' sync flags timeout@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWaitSync'.
-
-
-glWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
-glWaitSyncAPPLE = ffisyncbitfielduint64IOV glWaitSyncAPPLEFunPtr
-
-glWaitSyncAPPLEFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
-glWaitSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glWaitSyncAPPLE")
-
-{-# NOINLINE glWaitSyncAPPLEFunPtr #-}
-
-pattern GL_ALREADY_SIGNALED_APPLE = 0x911A
-
-pattern GL_CONDITION_SATISFIED_APPLE = 0x911C
-
-pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111
-
-pattern GL_OBJECT_TYPE_APPLE = 0x9112
-
-pattern GL_SIGNALED_APPLE = 0x9119
-
-pattern GL_SYNC_CONDITION_APPLE = 0x9113
-
-pattern GL_SYNC_FENCE_APPLE = 0x9116
-
-pattern GL_SYNC_FLAGS_APPLE = 0x9115
-
-pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001
-
-pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117
-
-pattern GL_SYNC_OBJECT_APPLE = 0x8A53
-
-pattern GL_SYNC_STATUS_APPLE = 0x9114
-
-pattern GL_TIMEOUT_EXPIRED_APPLE = 0x911B
-
-pattern GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF
-
-pattern GL_UNSIGNALED_APPLE = 0x9118
-
-pattern GL_WAIT_FAILED_APPLE = 0x911D
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/Texture2DLimitedNpot.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/Texture2DLimitedNpot.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/Texture2DLimitedNpot.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.Texture2DLimitedNpot (
-  -- * Extension Support
-    gl_APPLE_texture_2D_limited_npot
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_2D_limited_npot.txt GL_APPLE_texture_2D_limited_npot> extension is available.
-
-gl_APPLE_texture_2D_limited_npot :: Bool
-gl_APPLE_texture_2D_limited_npot = member "GL_APPLE_texture_2D_limited_npot" extensions
-{-# NOINLINE gl_APPLE_texture_2D_limited_npot #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureFormatBGRA8888.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureFormatBGRA8888.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureFormatBGRA8888.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.TextureFormatBGRA8888 (
-  -- * Extension Support
-    gl_APPLE_texture_format_BGRA8888
-
-  -- * GL_APPLE_texture_format_BGRA8888
-  , pattern GL_BGRA8_EXT
-  , pattern GL_BGRA_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_format_BGRA8888.txt GL_APPLE_texture_format_BGRA8888> extension is available.
-
-gl_APPLE_texture_format_BGRA8888 :: Bool
-gl_APPLE_texture_format_BGRA8888 = member "GL_APPLE_texture_format_BGRA8888" extensions
-{-# NOINLINE gl_APPLE_texture_format_BGRA8888 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.TextureMaxLevel (
-  -- * Extension Support
-    gl_APPLE_texture_max_level
-
-  -- * GL_APPLE_texture_max_level
-  , pattern GL_TEXTURE_MAX_LEVEL_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_max_level.txt GL_APPLE_texture_max_level> extension is available.
-
-gl_APPLE_texture_max_level :: Bool
-gl_APPLE_texture_max_level = member "GL_APPLE_texture_max_level" extensions
-{-# NOINLINE gl_APPLE_texture_max_level #-}
-
-pattern GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.TexturePackedFloat (
-  -- * Extension Support
-    gl_APPLE_texture_packed_float
-
-  -- * GL_APPLE_texture_packed_float
-  , pattern GL_R11F_G11F_B10F_APPLE
-  , pattern GL_RGB9_E5_APPLE
-  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE
-  , pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_packed_float.txt GL_APPLE_texture_packed_float> extension is available.
-
-gl_APPLE_texture_packed_float :: Bool
-gl_APPLE_texture_packed_float = member "GL_APPLE_texture_packed_float" extensions
-{-# NOINLINE gl_APPLE_texture_packed_float #-}
-
-pattern GL_R11F_G11F_B10F_APPLE = 0x8C3A
-
-pattern GL_RGB9_E5_APPLE = 0x8C3D
-
-pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B
-
-pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureRange.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/TextureRange.hs
+++ /dev/null
@@ -1,65 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.TextureRange (
-  -- * Extension Support
-    gl_APPLE_texture_range
-
-  -- * GL_APPLE_texture_range
-  , glGetTexParameterPointervAPPLE
-  , glTextureRangeAPPLE
-  , pattern GL_STORAGE_CACHED_APPLE
-  , pattern GL_STORAGE_PRIVATE_APPLE
-  , pattern GL_STORAGE_SHARED_APPLE
-  , pattern GL_TEXTURE_RANGE_LENGTH_APPLE
-  , pattern GL_TEXTURE_RANGE_POINTER_APPLE
-  , pattern GL_TEXTURE_STORAGE_HINT_APPLE
-) 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/APPLE/texture_range.txt GL_APPLE_texture_range> extension is available.
-
-gl_APPLE_texture_range :: Bool
-gl_APPLE_texture_range = member "GL_APPLE_texture_range" extensions
-{-# NOINLINE gl_APPLE_texture_range #-}
-
--- | Usage: @'glGetTexParameterPointervAPPLE' target pname params@
---
--- The length of @params@ should be @1@.
-
-
-glGetTexParameterPointervAPPLE :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetTexParameterPointervAPPLE = ffienumenumPtrPtrVIOV glGetTexParameterPointervAPPLEFunPtr
-
-glGetTexParameterPointervAPPLEFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetTexParameterPointervAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterPointervAPPLE")
-
-{-# NOINLINE glGetTexParameterPointervAPPLEFunPtr #-}
-
--- | Usage: @'glTextureRangeAPPLE' target length pointer@
---
--- The length of @pointer@ should be @length@.
-
-
-glTextureRangeAPPLE :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glTextureRangeAPPLE = ffienumsizeiPtrVIOV glTextureRangeAPPLEFunPtr
-
-glTextureRangeAPPLEFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glTextureRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glTextureRangeAPPLE")
-
-{-# NOINLINE glTextureRangeAPPLEFunPtr #-}
-
-pattern GL_STORAGE_PRIVATE_APPLE = 0x85BD
-
-pattern GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7
-
-pattern GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8
-
-pattern GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/TransformHint.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/TransformHint.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/TransformHint.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.TransformHint (
-  -- * Extension Support
-    gl_APPLE_transform_hint
-
-  -- * GL_APPLE_transform_hint
-  , pattern GL_TRANSFORM_HINT_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/transform_hint.txt GL_APPLE_transform_hint> extension is available.
-
-gl_APPLE_transform_hint :: Bool
-gl_APPLE_transform_hint = member "GL_APPLE_transform_hint" extensions
-{-# NOINLINE gl_APPLE_transform_hint #-}
-
-pattern GL_TRANSFORM_HINT_APPLE = 0x85B1
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexArrayObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexArrayObject.hs
+++ /dev/null
@@ -1,83 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.VertexArrayObject (
-  -- * Extension Support
-    gl_APPLE_vertex_array_object
-
-  -- * GL_APPLE_vertex_array_object
-  , glBindVertexArrayAPPLE
-  , glDeleteVertexArraysAPPLE
-  , glGenVertexArraysAPPLE
-  , glIsVertexArrayAPPLE
-  , pattern GL_VERTEX_ARRAY_BINDING_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_array_object.txt GL_APPLE_vertex_array_object> extension is available.
-
-gl_APPLE_vertex_array_object :: Bool
-gl_APPLE_vertex_array_object = member "GL_APPLE_vertex_array_object" extensions
-{-# NOINLINE gl_APPLE_vertex_array_object #-}
-
--- | Usage: @'glBindVertexArrayAPPLE' array@
-
-
-glBindVertexArrayAPPLE :: MonadIO m => GLuint -> m ()
-glBindVertexArrayAPPLE = ffiuintIOV glBindVertexArrayAPPLEFunPtr
-
-glBindVertexArrayAPPLEFunPtr :: FunPtr (GLuint -> IO ())
-glBindVertexArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glBindVertexArrayAPPLE")
-
-{-# NOINLINE glBindVertexArrayAPPLEFunPtr #-}
-
--- | Usage: @'glDeleteVertexArraysAPPLE' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteVertexArrays'.
-
-
-glDeleteVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteVertexArraysAPPLE = ffisizeiPtruintIOV glDeleteVertexArraysAPPLEFunPtr
-
-glDeleteVertexArraysAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteVertexArraysAPPLEFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArraysAPPLE")
-
-{-# NOINLINE glDeleteVertexArraysAPPLEFunPtr #-}
-
--- | Usage: @'glGenVertexArraysAPPLE' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenVertexArrays'.
-
-
-glGenVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenVertexArraysAPPLE = ffisizeiPtruintIOV glGenVertexArraysAPPLEFunPtr
-
-glGenVertexArraysAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenVertexArraysAPPLEFunPtr = unsafePerformIO (getProcAddress "glGenVertexArraysAPPLE")
-
-{-# NOINLINE glGenVertexArraysAPPLEFunPtr #-}
-
--- | Usage: @'glIsVertexArrayAPPLE' array@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsVertexArray'.
-
-
-glIsVertexArrayAPPLE :: MonadIO m => GLuint -> m GLboolean
-glIsVertexArrayAPPLE = ffiuintIOboolean glIsVertexArrayAPPLEFunPtr
-
-glIsVertexArrayAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsVertexArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsVertexArrayAPPLE")
-
-{-# NOINLINE glIsVertexArrayAPPLEFunPtr #-}
-
-pattern GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexArrayRange.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexArrayRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexArrayRange.hs
+++ /dev/null
@@ -1,82 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.VertexArrayRange (
-  -- * Extension Support
-    gl_APPLE_vertex_array_range
-
-  -- * GL_APPLE_vertex_array_range
-  , glFlushVertexArrayRangeAPPLE
-  , glVertexArrayParameteriAPPLE
-  , glVertexArrayRangeAPPLE
-  , pattern GL_STORAGE_CACHED_APPLE
-  , pattern GL_STORAGE_CLIENT_APPLE
-  , pattern GL_STORAGE_SHARED_APPLE
-  , pattern GL_VERTEX_ARRAY_RANGE_APPLE
-  , pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE
-  , pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE
-  , pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE
-) 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/APPLE/vertex_array_range.txt GL_APPLE_vertex_array_range> extension is available.
-
-gl_APPLE_vertex_array_range :: Bool
-gl_APPLE_vertex_array_range = member "GL_APPLE_vertex_array_range" extensions
-{-# NOINLINE gl_APPLE_vertex_array_range #-}
-
--- | Usage: @'glFlushVertexArrayRangeAPPLE' length pointer@
---
--- The length of @pointer@ should be @length@.
-
-
-glFlushVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()
-glFlushVertexArrayRangeAPPLE = ffisizeiPtrVIOV glFlushVertexArrayRangeAPPLEFunPtr
-
-glFlushVertexArrayRangeAPPLEFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
-glFlushVertexArrayRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glFlushVertexArrayRangeAPPLE")
-
-{-# NOINLINE glFlushVertexArrayRangeAPPLEFunPtr #-}
-
--- | Usage: @'glVertexArrayParameteriAPPLE' pname param@
---
--- The parameter @pname@ is a @VertexArrayPNameAPPLE@.
-
-
-glVertexArrayParameteriAPPLE :: MonadIO m => GLenum -> GLint -> m ()
-glVertexArrayParameteriAPPLE = ffienumintIOV glVertexArrayParameteriAPPLEFunPtr
-
-glVertexArrayParameteriAPPLEFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glVertexArrayParameteriAPPLEFunPtr = unsafePerformIO (getProcAddress "glVertexArrayParameteriAPPLE")
-
-{-# NOINLINE glVertexArrayParameteriAPPLEFunPtr #-}
-
--- | Usage: @'glVertexArrayRangeAPPLE' length pointer@
---
--- The length of @pointer@ should be @length@.
-
-
-glVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()
-glVertexArrayRangeAPPLE = ffisizeiPtrVIOV glVertexArrayRangeAPPLEFunPtr
-
-glVertexArrayRangeAPPLEFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
-glVertexArrayRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glVertexArrayRangeAPPLE")
-
-{-# NOINLINE glVertexArrayRangeAPPLEFunPtr #-}
-
-pattern GL_STORAGE_CLIENT_APPLE = 0x85B4
-
-pattern GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D
-
-pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E
-
-pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521
-
-pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs
+++ /dev/null
@@ -1,188 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.VertexProgramEvaluators (
-  -- * Extension Support
-    gl_APPLE_vertex_program_evaluators
-
-  -- * GL_APPLE_vertex_program_evaluators
-  , glDisableVertexAttribAPPLE
-  , glEnableVertexAttribAPPLE
-  , glIsVertexAttribEnabledAPPLE
-  , glMapVertexAttrib1dAPPLE
-  , glMapVertexAttrib1fAPPLE
-  , glMapVertexAttrib2dAPPLE
-  , glMapVertexAttrib2fAPPLE
-  , pattern GL_VERTEX_ATTRIB_MAP1_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP2_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE
-  , pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_program_evaluators.txt GL_APPLE_vertex_program_evaluators> extension is available.
-
-gl_APPLE_vertex_program_evaluators :: Bool
-gl_APPLE_vertex_program_evaluators = member "GL_APPLE_vertex_program_evaluators" extensions
-{-# NOINLINE gl_APPLE_vertex_program_evaluators #-}
-
--- | Usage: @'glDisableVertexAttribAPPLE' index pname@
-
-
-glDisableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
-glDisableVertexAttribAPPLE = ffiuintenumIOV glDisableVertexAttribAPPLEFunPtr
-
-glDisableVertexAttribAPPLEFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glDisableVertexAttribAPPLEFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribAPPLE")
-
-{-# NOINLINE glDisableVertexAttribAPPLEFunPtr #-}
-
--- | Usage: @'glEnableVertexAttribAPPLE' index pname@
-
-
-glEnableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
-glEnableVertexAttribAPPLE = ffiuintenumIOV glEnableVertexAttribAPPLEFunPtr
-
-glEnableVertexAttribAPPLEFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glEnableVertexAttribAPPLEFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribAPPLE")
-
-{-# NOINLINE glEnableVertexAttribAPPLEFunPtr #-}
-
--- | Usage: @'glIsVertexAttribEnabledAPPLE' index pname@
-
-
-glIsVertexAttribEnabledAPPLE :: MonadIO m => GLuint -> GLenum -> m GLboolean
-glIsVertexAttribEnabledAPPLE = ffiuintenumIOboolean glIsVertexAttribEnabledAPPLEFunPtr
-
-glIsVertexAttribEnabledAPPLEFunPtr :: FunPtr (GLuint -> GLenum -> IO GLboolean)
-glIsVertexAttribEnabledAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsVertexAttribEnabledAPPLE")
-
-{-# NOINLINE glIsVertexAttribEnabledAPPLEFunPtr #-}
-
--- | Usage: @'glMapVertexAttrib1dAPPLE' index size u1 u2 stride order points@
---
--- The parameter @u1@ is a @CoordD@.
---
--- The parameter @u2@ is a @CoordD@.
---
--- The parameter @order@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordD@.
---
--- The length of @points@ should be @COMPSIZE(size,stride,order)@.
-
-
-glMapVertexAttrib1dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-glMapVertexAttrib1dAPPLE = ffiuintuintdoubledoubleintintPtrdoubleIOV glMapVertexAttrib1dAPPLEFunPtr
-
-glMapVertexAttrib1dAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-glMapVertexAttrib1dAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib1dAPPLE")
-
-{-# NOINLINE glMapVertexAttrib1dAPPLEFunPtr #-}
-
--- | Usage: @'glMapVertexAttrib1fAPPLE' index size u1 u2 stride order points@
---
--- The parameter @u1@ is a @CoordF@.
---
--- The parameter @u2@ is a @CoordF@.
---
--- The parameter @order@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordF@.
---
--- The length of @points@ should be @COMPSIZE(size,stride,order)@.
-
-
-glMapVertexAttrib1fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-glMapVertexAttrib1fAPPLE = ffiuintuintfloatfloatintintPtrfloatIOV glMapVertexAttrib1fAPPLEFunPtr
-
-glMapVertexAttrib1fAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-glMapVertexAttrib1fAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib1fAPPLE")
-
-{-# NOINLINE glMapVertexAttrib1fAPPLEFunPtr #-}
-
--- | Usage: @'glMapVertexAttrib2dAPPLE' index size u1 u2 ustride uorder v1 v2 vstride vorder points@
---
--- The parameter @u1@ is a @CoordD@.
---
--- The parameter @u2@ is a @CoordD@.
---
--- The parameter @uorder@ is a @CheckedInt32@.
---
--- The parameter @v1@ is a @CoordD@.
---
--- The parameter @v2@ is a @CoordD@.
---
--- The parameter @vorder@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordD@.
---
--- The length of @points@ should be @COMPSIZE(size,ustride,uorder,vstride,vorder)@.
-
-
-glMapVertexAttrib2dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-glMapVertexAttrib2dAPPLE = ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMapVertexAttrib2dAPPLEFunPtr
-
-glMapVertexAttrib2dAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-glMapVertexAttrib2dAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib2dAPPLE")
-
-{-# NOINLINE glMapVertexAttrib2dAPPLEFunPtr #-}
-
--- | Usage: @'glMapVertexAttrib2fAPPLE' index size u1 u2 ustride uorder v1 v2 vstride vorder points@
---
--- The parameter @u1@ is a @CoordF@.
---
--- The parameter @u2@ is a @CoordF@.
---
--- The parameter @uorder@ is a @CheckedInt32@.
---
--- The parameter @v1@ is a @CoordF@.
---
--- The parameter @v2@ is a @CoordF@.
---
--- The parameter @vorder@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordF@.
---
--- The length of @points@ should be @COMPSIZE(size,ustride,uorder,vstride,vorder)@.
-
-
-glMapVertexAttrib2fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-glMapVertexAttrib2fAPPLE = ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV glMapVertexAttrib2fAPPLEFunPtr
-
-glMapVertexAttrib2fAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-glMapVertexAttrib2fAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib2fAPPLE")
-
-{-# NOINLINE glMapVertexAttrib2fAPPLEFunPtr #-}
-
-pattern GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00
-
-pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03
-
-pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05
-
-pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04
-
-pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02
-
-pattern GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01
-
-pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07
-
-pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09
-
-pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08
-
-pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06
diff --git a/dist/build/autogen/Graphics/GL/Ext/APPLE/Ycbcr422.hs b/dist/build/autogen/Graphics/GL/Ext/APPLE/Ycbcr422.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/APPLE/Ycbcr422.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.APPLE.Ycbcr422 (
-  -- * Extension Support
-    gl_APPLE_ycbcr_422
-
-  -- * GL_APPLE_ycbcr_422
-  , pattern GL_UNSIGNED_SHORT_8_8_APPLE
-  , pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE
-  , pattern GL_YCBCR_422_APPLE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/ycbcr_422.txt GL_APPLE_ycbcr_422> extension is available.
-
-gl_APPLE_ycbcr_422 :: Bool
-gl_APPLE_ycbcr_422 = member "GL_APPLE_ycbcr_422" extensions
-{-# NOINLINE gl_APPLE_ycbcr_422 #-}
-
-pattern GL_YCBCR_422_APPLE = 0x85B9
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB.hs b/dist/build/autogen/Graphics/GL/Ext/ARB.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB.hs
+++ /dev/null
@@ -1,340 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB (
-  -- * ARB Extensions
-    module Graphics.GL.Ext.ARB.ArraysOfArrays
-  , module Graphics.GL.Ext.ARB.BaseInstance
-  , module Graphics.GL.Ext.ARB.BindlessTexture
-  , module Graphics.GL.Ext.ARB.BlendFuncExtended
-  , module Graphics.GL.Ext.ARB.BufferStorage
-  , module Graphics.GL.Ext.ARB.ClEvent
-  , module Graphics.GL.Ext.ARB.ClearBufferObject
-  , module Graphics.GL.Ext.ARB.ClearTexture
-  , module Graphics.GL.Ext.ARB.ClipControl
-  , module Graphics.GL.Ext.ARB.ColorBufferFloat
-  , module Graphics.GL.Ext.ARB.Compatibility
-  , module Graphics.GL.Ext.ARB.CompressedTexturePixelStorage
-  , module Graphics.GL.Ext.ARB.ComputeShader
-  , module Graphics.GL.Ext.ARB.ComputeVariableGroupSize
-  , module Graphics.GL.Ext.ARB.ConditionalRenderInverted
-  , module Graphics.GL.Ext.ARB.ConservativeDepth
-  , module Graphics.GL.Ext.ARB.CopyBuffer
-  , module Graphics.GL.Ext.ARB.CopyImage
-  , module Graphics.GL.Ext.ARB.CullDistance
-  , module Graphics.GL.Ext.ARB.DebugOutput
-  , module Graphics.GL.Ext.ARB.DepthBufferFloat
-  , module Graphics.GL.Ext.ARB.DepthClamp
-  , module Graphics.GL.Ext.ARB.DepthTexture
-  , module Graphics.GL.Ext.ARB.DerivativeControl
-  , module Graphics.GL.Ext.ARB.DirectStateAccess
-  , module Graphics.GL.Ext.ARB.DrawBuffers
-  , module Graphics.GL.Ext.ARB.DrawBuffersBlend
-  , module Graphics.GL.Ext.ARB.DrawElementsBaseVertex
-  , module Graphics.GL.Ext.ARB.DrawIndirect
-  , module Graphics.GL.Ext.ARB.DrawInstanced
-  , module Graphics.GL.Ext.ARB.ES2Compatibility
-  , module Graphics.GL.Ext.ARB.ES31Compatibility
-  , module Graphics.GL.Ext.ARB.ES32Compatibility
-  , module Graphics.GL.Ext.ARB.ES3Compatibility
-  , module Graphics.GL.Ext.ARB.EnhancedLayouts
-  , module Graphics.GL.Ext.ARB.ExplicitAttribLocation
-  , module Graphics.GL.Ext.ARB.ExplicitUniformLocation
-  , module Graphics.GL.Ext.ARB.FragmentCoordConventions
-  , module Graphics.GL.Ext.ARB.FragmentLayerViewport
-  , module Graphics.GL.Ext.ARB.FragmentProgram
-  , module Graphics.GL.Ext.ARB.FragmentProgramShadow
-  , module Graphics.GL.Ext.ARB.FragmentShader
-  , module Graphics.GL.Ext.ARB.FragmentShaderInterlock
-  , module Graphics.GL.Ext.ARB.FramebufferNoAttachments
-  , module Graphics.GL.Ext.ARB.FramebufferObject
-  , module Graphics.GL.Ext.ARB.FramebufferSRGB
-  , module Graphics.GL.Ext.ARB.GeometryShader4
-  , module Graphics.GL.Ext.ARB.GetProgramBinary
-  , module Graphics.GL.Ext.ARB.GetTextureSubImage
-  , module Graphics.GL.Ext.ARB.GpuShader5
-  , module Graphics.GL.Ext.ARB.GpuShaderFp64
-  , module Graphics.GL.Ext.ARB.GpuShaderInt64
-  , module Graphics.GL.Ext.ARB.HalfFloatPixel
-  , module Graphics.GL.Ext.ARB.HalfFloatVertex
-  , module Graphics.GL.Ext.ARB.Imaging
-  , module Graphics.GL.Ext.ARB.IndirectParameters
-  , module Graphics.GL.Ext.ARB.InstancedArrays
-  , module Graphics.GL.Ext.ARB.InternalformatQuery
-  , module Graphics.GL.Ext.ARB.InternalformatQuery2
-  , module Graphics.GL.Ext.ARB.InvalidateSubdata
-  , module Graphics.GL.Ext.ARB.MapBufferAlignment
-  , module Graphics.GL.Ext.ARB.MapBufferRange
-  , module Graphics.GL.Ext.ARB.MatrixPalette
-  , module Graphics.GL.Ext.ARB.MultiBind
-  , module Graphics.GL.Ext.ARB.MultiDrawIndirect
-  , module Graphics.GL.Ext.ARB.Multisample
-  , module Graphics.GL.Ext.ARB.Multitexture
-  , module Graphics.GL.Ext.ARB.OcclusionQuery
-  , module Graphics.GL.Ext.ARB.OcclusionQuery2
-  , module Graphics.GL.Ext.ARB.ParallelShaderCompile
-  , module Graphics.GL.Ext.ARB.PipelineStatisticsQuery
-  , module Graphics.GL.Ext.ARB.PixelBufferObject
-  , module Graphics.GL.Ext.ARB.PointParameters
-  , module Graphics.GL.Ext.ARB.PointSprite
-  , module Graphics.GL.Ext.ARB.PostDepthCoverage
-  , module Graphics.GL.Ext.ARB.ProgramInterfaceQuery
-  , module Graphics.GL.Ext.ARB.ProvokingVertex
-  , module Graphics.GL.Ext.ARB.QueryBufferObject
-  , module Graphics.GL.Ext.ARB.RobustBufferAccessBehavior
-  , module Graphics.GL.Ext.ARB.Robustness
-  , module Graphics.GL.Ext.ARB.RobustnessIsolation
-  , module Graphics.GL.Ext.ARB.SampleLocations
-  , module Graphics.GL.Ext.ARB.SampleShading
-  , module Graphics.GL.Ext.ARB.SamplerObjects
-  , module Graphics.GL.Ext.ARB.SeamlessCubeMap
-  , module Graphics.GL.Ext.ARB.SeamlessCubemapPerTexture
-  , module Graphics.GL.Ext.ARB.SeparateShaderObjects
-  , module Graphics.GL.Ext.ARB.ShaderAtomicCounterOps
-  , module Graphics.GL.Ext.ARB.ShaderAtomicCounters
-  , module Graphics.GL.Ext.ARB.ShaderBallot
-  , module Graphics.GL.Ext.ARB.ShaderBitEncoding
-  , module Graphics.GL.Ext.ARB.ShaderClock
-  , module Graphics.GL.Ext.ARB.ShaderDrawParameters
-  , module Graphics.GL.Ext.ARB.ShaderGroupVote
-  , module Graphics.GL.Ext.ARB.ShaderImageLoadStore
-  , module Graphics.GL.Ext.ARB.ShaderImageSize
-  , module Graphics.GL.Ext.ARB.ShaderObjects
-  , module Graphics.GL.Ext.ARB.ShaderPrecision
-  , module Graphics.GL.Ext.ARB.ShaderStencilExport
-  , module Graphics.GL.Ext.ARB.ShaderStorageBufferObject
-  , module Graphics.GL.Ext.ARB.ShaderSubroutine
-  , module Graphics.GL.Ext.ARB.ShaderTextureImageSamples
-  , module Graphics.GL.Ext.ARB.ShaderTextureLod
-  , module Graphics.GL.Ext.ARB.ShaderViewportLayerArray
-  , module Graphics.GL.Ext.ARB.ShadingLanguage100
-  , module Graphics.GL.Ext.ARB.ShadingLanguage420pack
-  , module Graphics.GL.Ext.ARB.ShadingLanguageInclude
-  , module Graphics.GL.Ext.ARB.ShadingLanguagePacking
-  , module Graphics.GL.Ext.ARB.Shadow
-  , module Graphics.GL.Ext.ARB.ShadowAmbient
-  , module Graphics.GL.Ext.ARB.SparseBuffer
-  , module Graphics.GL.Ext.ARB.SparseTexture
-  , module Graphics.GL.Ext.ARB.SparseTexture2
-  , module Graphics.GL.Ext.ARB.SparseTextureClamp
-  , module Graphics.GL.Ext.ARB.StencilTexturing
-  , module Graphics.GL.Ext.ARB.Sync
-  , module Graphics.GL.Ext.ARB.TessellationShader
-  , module Graphics.GL.Ext.ARB.TextureBarrier
-  , module Graphics.GL.Ext.ARB.TextureBorderClamp
-  , module Graphics.GL.Ext.ARB.TextureBufferObject
-  , module Graphics.GL.Ext.ARB.TextureBufferObjectRgb32
-  , module Graphics.GL.Ext.ARB.TextureBufferRange
-  , module Graphics.GL.Ext.ARB.TextureCompression
-  , module Graphics.GL.Ext.ARB.TextureCompressionBptc
-  , module Graphics.GL.Ext.ARB.TextureCompressionRgtc
-  , module Graphics.GL.Ext.ARB.TextureCubeMap
-  , module Graphics.GL.Ext.ARB.TextureCubeMapArray
-  , module Graphics.GL.Ext.ARB.TextureEnvAdd
-  , module Graphics.GL.Ext.ARB.TextureEnvCombine
-  , module Graphics.GL.Ext.ARB.TextureEnvCrossbar
-  , module Graphics.GL.Ext.ARB.TextureEnvDot3
-  , module Graphics.GL.Ext.ARB.TextureFilterMinmax
-  , module Graphics.GL.Ext.ARB.TextureFloat
-  , module Graphics.GL.Ext.ARB.TextureGather
-  , module Graphics.GL.Ext.ARB.TextureMirrorClampToEdge
-  , module Graphics.GL.Ext.ARB.TextureMirroredRepeat
-  , module Graphics.GL.Ext.ARB.TextureMultisample
-  , module Graphics.GL.Ext.ARB.TextureNonPowerOfTwo
-  , module Graphics.GL.Ext.ARB.TextureQueryLevels
-  , module Graphics.GL.Ext.ARB.TextureQueryLod
-  , module Graphics.GL.Ext.ARB.TextureRectangle
-  , module Graphics.GL.Ext.ARB.TextureRg
-  , module Graphics.GL.Ext.ARB.TextureRgb10A2ui
-  , module Graphics.GL.Ext.ARB.TextureStencil8
-  , module Graphics.GL.Ext.ARB.TextureStorage
-  , module Graphics.GL.Ext.ARB.TextureStorageMultisample
-  , module Graphics.GL.Ext.ARB.TextureSwizzle
-  , module Graphics.GL.Ext.ARB.TextureView
-  , module Graphics.GL.Ext.ARB.TimerQuery
-  , module Graphics.GL.Ext.ARB.TransformFeedback2
-  , module Graphics.GL.Ext.ARB.TransformFeedback3
-  , module Graphics.GL.Ext.ARB.TransformFeedbackInstanced
-  , module Graphics.GL.Ext.ARB.TransformFeedbackOverflowQuery
-  , module Graphics.GL.Ext.ARB.TransposeMatrix
-  , module Graphics.GL.Ext.ARB.UniformBufferObject
-  , module Graphics.GL.Ext.ARB.VertexArrayBgra
-  , module Graphics.GL.Ext.ARB.VertexArrayObject
-  , module Graphics.GL.Ext.ARB.VertexAttrib64bit
-  , module Graphics.GL.Ext.ARB.VertexAttribBinding
-  , module Graphics.GL.Ext.ARB.VertexBlend
-  , module Graphics.GL.Ext.ARB.VertexBufferObject
-  , module Graphics.GL.Ext.ARB.VertexProgram
-  , module Graphics.GL.Ext.ARB.VertexShader
-  , module Graphics.GL.Ext.ARB.VertexType10f11f11fRev
-  , module Graphics.GL.Ext.ARB.VertexType2101010Rev
-  , module Graphics.GL.Ext.ARB.ViewportArray
-  , module Graphics.GL.Ext.ARB.WindowPos
-) where
-
-import Graphics.GL.Ext.ARB.ArraysOfArrays
-import Graphics.GL.Ext.ARB.BaseInstance
-import Graphics.GL.Ext.ARB.BindlessTexture
-import Graphics.GL.Ext.ARB.BlendFuncExtended
-import Graphics.GL.Ext.ARB.BufferStorage
-import Graphics.GL.Ext.ARB.ClEvent
-import Graphics.GL.Ext.ARB.ClearBufferObject
-import Graphics.GL.Ext.ARB.ClearTexture
-import Graphics.GL.Ext.ARB.ClipControl
-import Graphics.GL.Ext.ARB.ColorBufferFloat
-import Graphics.GL.Ext.ARB.Compatibility
-import Graphics.GL.Ext.ARB.CompressedTexturePixelStorage
-import Graphics.GL.Ext.ARB.ComputeShader
-import Graphics.GL.Ext.ARB.ComputeVariableGroupSize
-import Graphics.GL.Ext.ARB.ConditionalRenderInverted
-import Graphics.GL.Ext.ARB.ConservativeDepth
-import Graphics.GL.Ext.ARB.CopyBuffer
-import Graphics.GL.Ext.ARB.CopyImage
-import Graphics.GL.Ext.ARB.CullDistance
-import Graphics.GL.Ext.ARB.DebugOutput
-import Graphics.GL.Ext.ARB.DepthBufferFloat
-import Graphics.GL.Ext.ARB.DepthClamp
-import Graphics.GL.Ext.ARB.DepthTexture
-import Graphics.GL.Ext.ARB.DerivativeControl
-import Graphics.GL.Ext.ARB.DirectStateAccess
-import Graphics.GL.Ext.ARB.DrawBuffers
-import Graphics.GL.Ext.ARB.DrawBuffersBlend
-import Graphics.GL.Ext.ARB.DrawElementsBaseVertex
-import Graphics.GL.Ext.ARB.DrawIndirect
-import Graphics.GL.Ext.ARB.DrawInstanced
-import Graphics.GL.Ext.ARB.ES2Compatibility
-import Graphics.GL.Ext.ARB.ES31Compatibility
-import Graphics.GL.Ext.ARB.ES32Compatibility
-import Graphics.GL.Ext.ARB.ES3Compatibility
-import Graphics.GL.Ext.ARB.EnhancedLayouts
-import Graphics.GL.Ext.ARB.ExplicitAttribLocation
-import Graphics.GL.Ext.ARB.ExplicitUniformLocation
-import Graphics.GL.Ext.ARB.FragmentCoordConventions
-import Graphics.GL.Ext.ARB.FragmentLayerViewport
-import Graphics.GL.Ext.ARB.FragmentProgram
-import Graphics.GL.Ext.ARB.FragmentProgramShadow
-import Graphics.GL.Ext.ARB.FragmentShader
-import Graphics.GL.Ext.ARB.FragmentShaderInterlock
-import Graphics.GL.Ext.ARB.FramebufferNoAttachments
-import Graphics.GL.Ext.ARB.FramebufferObject
-import Graphics.GL.Ext.ARB.FramebufferSRGB
-import Graphics.GL.Ext.ARB.GeometryShader4
-import Graphics.GL.Ext.ARB.GetProgramBinary
-import Graphics.GL.Ext.ARB.GetTextureSubImage
-import Graphics.GL.Ext.ARB.GpuShader5
-import Graphics.GL.Ext.ARB.GpuShaderFp64
-import Graphics.GL.Ext.ARB.GpuShaderInt64
-import Graphics.GL.Ext.ARB.HalfFloatPixel
-import Graphics.GL.Ext.ARB.HalfFloatVertex
-import Graphics.GL.Ext.ARB.Imaging
-import Graphics.GL.Ext.ARB.IndirectParameters
-import Graphics.GL.Ext.ARB.InstancedArrays
-import Graphics.GL.Ext.ARB.InternalformatQuery
-import Graphics.GL.Ext.ARB.InternalformatQuery2
-import Graphics.GL.Ext.ARB.InvalidateSubdata
-import Graphics.GL.Ext.ARB.MapBufferAlignment
-import Graphics.GL.Ext.ARB.MapBufferRange
-import Graphics.GL.Ext.ARB.MatrixPalette
-import Graphics.GL.Ext.ARB.MultiBind
-import Graphics.GL.Ext.ARB.MultiDrawIndirect
-import Graphics.GL.Ext.ARB.Multisample
-import Graphics.GL.Ext.ARB.Multitexture
-import Graphics.GL.Ext.ARB.OcclusionQuery
-import Graphics.GL.Ext.ARB.OcclusionQuery2
-import Graphics.GL.Ext.ARB.ParallelShaderCompile
-import Graphics.GL.Ext.ARB.PipelineStatisticsQuery
-import Graphics.GL.Ext.ARB.PixelBufferObject
-import Graphics.GL.Ext.ARB.PointParameters
-import Graphics.GL.Ext.ARB.PointSprite
-import Graphics.GL.Ext.ARB.PostDepthCoverage
-import Graphics.GL.Ext.ARB.ProgramInterfaceQuery
-import Graphics.GL.Ext.ARB.ProvokingVertex
-import Graphics.GL.Ext.ARB.QueryBufferObject
-import Graphics.GL.Ext.ARB.RobustBufferAccessBehavior
-import Graphics.GL.Ext.ARB.Robustness
-import Graphics.GL.Ext.ARB.RobustnessIsolation
-import Graphics.GL.Ext.ARB.SampleLocations
-import Graphics.GL.Ext.ARB.SampleShading
-import Graphics.GL.Ext.ARB.SamplerObjects
-import Graphics.GL.Ext.ARB.SeamlessCubeMap
-import Graphics.GL.Ext.ARB.SeamlessCubemapPerTexture
-import Graphics.GL.Ext.ARB.SeparateShaderObjects
-import Graphics.GL.Ext.ARB.ShaderAtomicCounterOps
-import Graphics.GL.Ext.ARB.ShaderAtomicCounters
-import Graphics.GL.Ext.ARB.ShaderBallot
-import Graphics.GL.Ext.ARB.ShaderBitEncoding
-import Graphics.GL.Ext.ARB.ShaderClock
-import Graphics.GL.Ext.ARB.ShaderDrawParameters
-import Graphics.GL.Ext.ARB.ShaderGroupVote
-import Graphics.GL.Ext.ARB.ShaderImageLoadStore
-import Graphics.GL.Ext.ARB.ShaderImageSize
-import Graphics.GL.Ext.ARB.ShaderObjects
-import Graphics.GL.Ext.ARB.ShaderPrecision
-import Graphics.GL.Ext.ARB.ShaderStencilExport
-import Graphics.GL.Ext.ARB.ShaderStorageBufferObject
-import Graphics.GL.Ext.ARB.ShaderSubroutine
-import Graphics.GL.Ext.ARB.ShaderTextureImageSamples
-import Graphics.GL.Ext.ARB.ShaderTextureLod
-import Graphics.GL.Ext.ARB.ShaderViewportLayerArray
-import Graphics.GL.Ext.ARB.ShadingLanguage100
-import Graphics.GL.Ext.ARB.ShadingLanguage420pack
-import Graphics.GL.Ext.ARB.ShadingLanguageInclude
-import Graphics.GL.Ext.ARB.ShadingLanguagePacking
-import Graphics.GL.Ext.ARB.Shadow
-import Graphics.GL.Ext.ARB.ShadowAmbient
-import Graphics.GL.Ext.ARB.SparseBuffer
-import Graphics.GL.Ext.ARB.SparseTexture
-import Graphics.GL.Ext.ARB.SparseTexture2
-import Graphics.GL.Ext.ARB.SparseTextureClamp
-import Graphics.GL.Ext.ARB.StencilTexturing
-import Graphics.GL.Ext.ARB.Sync
-import Graphics.GL.Ext.ARB.TessellationShader
-import Graphics.GL.Ext.ARB.TextureBarrier
-import Graphics.GL.Ext.ARB.TextureBorderClamp
-import Graphics.GL.Ext.ARB.TextureBufferObject
-import Graphics.GL.Ext.ARB.TextureBufferObjectRgb32
-import Graphics.GL.Ext.ARB.TextureBufferRange
-import Graphics.GL.Ext.ARB.TextureCompression
-import Graphics.GL.Ext.ARB.TextureCompressionBptc
-import Graphics.GL.Ext.ARB.TextureCompressionRgtc
-import Graphics.GL.Ext.ARB.TextureCubeMap
-import Graphics.GL.Ext.ARB.TextureCubeMapArray
-import Graphics.GL.Ext.ARB.TextureEnvAdd
-import Graphics.GL.Ext.ARB.TextureEnvCombine
-import Graphics.GL.Ext.ARB.TextureEnvCrossbar
-import Graphics.GL.Ext.ARB.TextureEnvDot3
-import Graphics.GL.Ext.ARB.TextureFilterMinmax
-import Graphics.GL.Ext.ARB.TextureFloat
-import Graphics.GL.Ext.ARB.TextureGather
-import Graphics.GL.Ext.ARB.TextureMirrorClampToEdge
-import Graphics.GL.Ext.ARB.TextureMirroredRepeat
-import Graphics.GL.Ext.ARB.TextureMultisample
-import Graphics.GL.Ext.ARB.TextureNonPowerOfTwo
-import Graphics.GL.Ext.ARB.TextureQueryLevels
-import Graphics.GL.Ext.ARB.TextureQueryLod
-import Graphics.GL.Ext.ARB.TextureRectangle
-import Graphics.GL.Ext.ARB.TextureRg
-import Graphics.GL.Ext.ARB.TextureRgb10A2ui
-import Graphics.GL.Ext.ARB.TextureStencil8
-import Graphics.GL.Ext.ARB.TextureStorage
-import Graphics.GL.Ext.ARB.TextureStorageMultisample
-import Graphics.GL.Ext.ARB.TextureSwizzle
-import Graphics.GL.Ext.ARB.TextureView
-import Graphics.GL.Ext.ARB.TimerQuery
-import Graphics.GL.Ext.ARB.TransformFeedback2
-import Graphics.GL.Ext.ARB.TransformFeedback3
-import Graphics.GL.Ext.ARB.TransformFeedbackInstanced
-import Graphics.GL.Ext.ARB.TransformFeedbackOverflowQuery
-import Graphics.GL.Ext.ARB.TransposeMatrix
-import Graphics.GL.Ext.ARB.UniformBufferObject
-import Graphics.GL.Ext.ARB.VertexArrayBgra
-import Graphics.GL.Ext.ARB.VertexArrayObject
-import Graphics.GL.Ext.ARB.VertexAttrib64bit
-import Graphics.GL.Ext.ARB.VertexAttribBinding
-import Graphics.GL.Ext.ARB.VertexBlend
-import Graphics.GL.Ext.ARB.VertexBufferObject
-import Graphics.GL.Ext.ARB.VertexProgram
-import Graphics.GL.Ext.ARB.VertexShader
-import Graphics.GL.Ext.ARB.VertexType10f11f11fRev
-import Graphics.GL.Ext.ARB.VertexType2101010Rev
-import Graphics.GL.Ext.ARB.ViewportArray
-import Graphics.GL.Ext.ARB.WindowPos
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ArraysOfArrays.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ArraysOfArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ArraysOfArrays.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ArraysOfArrays (
-  -- * Extension Support
-    gl_ARB_arrays_of_arrays
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/arrays_of_arrays.txt GL_ARB_arrays_of_arrays> extension is available.
-
-gl_ARB_arrays_of_arrays :: Bool
-gl_ARB_arrays_of_arrays = member "GL_ARB_arrays_of_arrays" extensions
-{-# NOINLINE gl_ARB_arrays_of_arrays #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/BaseInstance.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/BaseInstance.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/BaseInstance.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.BaseInstance (
-  -- * Extension Support
-    gl_ARB_base_instance
-
-  -- * GL_ARB_base_instance
-  , glDrawArraysInstancedBaseInstance
-  , glDrawElementsInstancedBaseInstance
-  , glDrawElementsInstancedBaseVertexBaseInstance
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/base_instance.txt GL_ARB_base_instance> extension is available.
-
-gl_ARB_base_instance :: Bool
-gl_ARB_base_instance = member "GL_ARB_base_instance" extensions
-{-# NOINLINE gl_ARB_base_instance #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/BindlessTexture.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/BindlessTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/BindlessTexture.hs
+++ /dev/null
@@ -1,220 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.BindlessTexture (
-  -- * Extension Support
-    gl_ARB_bindless_texture
-
-  -- * GL_ARB_bindless_texture
-  , glGetImageHandleARB
-  , glGetTextureHandleARB
-  , glGetTextureSamplerHandleARB
-  , glGetVertexAttribLui64vARB
-  , glIsImageHandleResidentARB
-  , glIsTextureHandleResidentARB
-  , glMakeImageHandleNonResidentARB
-  , glMakeImageHandleResidentARB
-  , glMakeTextureHandleNonResidentARB
-  , glMakeTextureHandleResidentARB
-  , glProgramUniformHandleui64ARB
-  , glProgramUniformHandleui64vARB
-  , glUniformHandleui64ARB
-  , glUniformHandleui64vARB
-  , glVertexAttribL1ui64ARB
-  , glVertexAttribL1ui64vARB
-  , pattern GL_UNSIGNED_INT64_ARB
-) 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/ARB/bindless_texture.txt GL_ARB_bindless_texture> extension is available.
-
-gl_ARB_bindless_texture :: Bool
-gl_ARB_bindless_texture = member "GL_ARB_bindless_texture" extensions
-{-# NOINLINE gl_ARB_bindless_texture #-}
-
--- | Usage: @'glGetImageHandleARB' texture level layered layer format@
-
-
-glGetImageHandleARB :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
-glGetImageHandleARB = ffiuintintbooleanintenumIOuint64 glGetImageHandleARBFunPtr
-
-glGetImageHandleARBFunPtr :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64)
-glGetImageHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetImageHandleARB")
-
-{-# NOINLINE glGetImageHandleARBFunPtr #-}
-
--- | Usage: @'glGetTextureHandleARB' texture@
-
-
-glGetTextureHandleARB :: MonadIO m => GLuint -> m GLuint64
-glGetTextureHandleARB = ffiuintIOuint64 glGetTextureHandleARBFunPtr
-
-glGetTextureHandleARBFunPtr :: FunPtr (GLuint -> IO GLuint64)
-glGetTextureHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetTextureHandleARB")
-
-{-# NOINLINE glGetTextureHandleARBFunPtr #-}
-
--- | Usage: @'glGetTextureSamplerHandleARB' texture sampler@
-
-
-glGetTextureSamplerHandleARB :: MonadIO m => GLuint -> GLuint -> m GLuint64
-glGetTextureSamplerHandleARB = ffiuintuintIOuint64 glGetTextureSamplerHandleARBFunPtr
-
-glGetTextureSamplerHandleARBFunPtr :: FunPtr (GLuint -> GLuint -> IO GLuint64)
-glGetTextureSamplerHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetTextureSamplerHandleARB")
-
-{-# NOINLINE glGetTextureSamplerHandleARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribLui64vARB' index pname params@
-
-
-glGetVertexAttribLui64vARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
-glGetVertexAttribLui64vARB = ffiuintenumPtruint64EXTIOV glGetVertexAttribLui64vARBFunPtr
-
-glGetVertexAttribLui64vARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
-glGetVertexAttribLui64vARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLui64vARB")
-
-{-# NOINLINE glGetVertexAttribLui64vARBFunPtr #-}
-
--- | Usage: @'glIsImageHandleResidentARB' handle@
-
-
-glIsImageHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
-glIsImageHandleResidentARB = ffiuint64IOboolean glIsImageHandleResidentARBFunPtr
-
-glIsImageHandleResidentARBFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
-glIsImageHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glIsImageHandleResidentARB")
-
-{-# NOINLINE glIsImageHandleResidentARBFunPtr #-}
-
--- | Usage: @'glIsTextureHandleResidentARB' handle@
-
-
-glIsTextureHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
-glIsTextureHandleResidentARB = ffiuint64IOboolean glIsTextureHandleResidentARBFunPtr
-
-glIsTextureHandleResidentARBFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
-glIsTextureHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glIsTextureHandleResidentARB")
-
-{-# NOINLINE glIsTextureHandleResidentARBFunPtr #-}
-
--- | Usage: @'glMakeImageHandleNonResidentARB' handle@
-
-
-glMakeImageHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
-glMakeImageHandleNonResidentARB = ffiuint64IOV glMakeImageHandleNonResidentARBFunPtr
-
-glMakeImageHandleNonResidentARBFunPtr :: FunPtr (GLuint64 -> IO ())
-glMakeImageHandleNonResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleNonResidentARB")
-
-{-# NOINLINE glMakeImageHandleNonResidentARBFunPtr #-}
-
--- | Usage: @'glMakeImageHandleResidentARB' handle access@
-
-
-glMakeImageHandleResidentARB :: MonadIO m => GLuint64 -> GLenum -> m ()
-glMakeImageHandleResidentARB = ffiuint64enumIOV glMakeImageHandleResidentARBFunPtr
-
-glMakeImageHandleResidentARBFunPtr :: FunPtr (GLuint64 -> GLenum -> IO ())
-glMakeImageHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleResidentARB")
-
-{-# NOINLINE glMakeImageHandleResidentARBFunPtr #-}
-
--- | Usage: @'glMakeTextureHandleNonResidentARB' handle@
-
-
-glMakeTextureHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
-glMakeTextureHandleNonResidentARB = ffiuint64IOV glMakeTextureHandleNonResidentARBFunPtr
-
-glMakeTextureHandleNonResidentARBFunPtr :: FunPtr (GLuint64 -> IO ())
-glMakeTextureHandleNonResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleNonResidentARB")
-
-{-# NOINLINE glMakeTextureHandleNonResidentARBFunPtr #-}
-
--- | Usage: @'glMakeTextureHandleResidentARB' handle@
-
-
-glMakeTextureHandleResidentARB :: MonadIO m => GLuint64 -> m ()
-glMakeTextureHandleResidentARB = ffiuint64IOV glMakeTextureHandleResidentARBFunPtr
-
-glMakeTextureHandleResidentARBFunPtr :: FunPtr (GLuint64 -> IO ())
-glMakeTextureHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleResidentARB")
-
-{-# NOINLINE glMakeTextureHandleResidentARBFunPtr #-}
-
--- | Usage: @'glProgramUniformHandleui64ARB' program location value@
-
-
-glProgramUniformHandleui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
-glProgramUniformHandleui64ARB = ffiuintintuint64IOV glProgramUniformHandleui64ARBFunPtr
-
-glProgramUniformHandleui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
-glProgramUniformHandleui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64ARB")
-
-{-# NOINLINE glProgramUniformHandleui64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniformHandleui64vARB' program location count values@
---
--- The length of @values@ should be @count@.
-
-
-glProgramUniformHandleui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glProgramUniformHandleui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vARBFunPtr
-
-glProgramUniformHandleui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glProgramUniformHandleui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64vARB")
-
-{-# NOINLINE glProgramUniformHandleui64vARBFunPtr #-}
-
--- | Usage: @'glUniformHandleui64ARB' location value@
-
-
-glUniformHandleui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
-glUniformHandleui64ARB = ffiintuint64IOV glUniformHandleui64ARBFunPtr
-
-glUniformHandleui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
-glUniformHandleui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64ARB")
-
-{-# NOINLINE glUniformHandleui64ARBFunPtr #-}
-
--- | Usage: @'glUniformHandleui64vARB' location count value@
---
--- The length of @value@ should be @count@.
-
-
-glUniformHandleui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glUniformHandleui64vARB = ffiintsizeiPtruint64IOV glUniformHandleui64vARBFunPtr
-
-glUniformHandleui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glUniformHandleui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64vARB")
-
-{-# NOINLINE glUniformHandleui64vARBFunPtr #-}
-
--- | Usage: @'glVertexAttribL1ui64ARB' index x@
-
-
-glVertexAttribL1ui64ARB :: MonadIO m => GLuint -> GLuint64EXT -> m ()
-glVertexAttribL1ui64ARB = ffiuintuint64EXTIOV glVertexAttribL1ui64ARBFunPtr
-
-glVertexAttribL1ui64ARBFunPtr :: FunPtr (GLuint -> GLuint64EXT -> IO ())
-glVertexAttribL1ui64ARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64ARB")
-
-{-# NOINLINE glVertexAttribL1ui64ARBFunPtr #-}
-
--- | Usage: @'glVertexAttribL1ui64vARB' index v@
-
-
-glVertexAttribL1ui64vARB :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
-glVertexAttribL1ui64vARB = ffiuintPtruint64EXTIOV glVertexAttribL1ui64vARBFunPtr
-
-glVertexAttribL1ui64vARBFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
-glVertexAttribL1ui64vARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64vARB")
-
-{-# NOINLINE glVertexAttribL1ui64vARBFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/BlendFuncExtended.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/BlendFuncExtended.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/BlendFuncExtended.hs
+++ /dev/null
@@ -1,25 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.BlendFuncExtended (
-  -- * Extension Support
-    gl_ARB_blend_func_extended
-
-  -- * GL_ARB_blend_func_extended
-  , glBindFragDataLocationIndexed
-  , glGetFragDataIndex
-  , pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
-  , pattern GL_ONE_MINUS_SRC1_ALPHA
-  , pattern GL_ONE_MINUS_SRC1_COLOR
-  , pattern GL_SRC1_ALPHA
-  , pattern GL_SRC1_COLOR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/blend_func_extended.txt GL_ARB_blend_func_extended> extension is available.
-
-gl_ARB_blend_func_extended :: Bool
-gl_ARB_blend_func_extended = member "GL_ARB_blend_func_extended" extensions
-{-# NOINLINE gl_ARB_blend_func_extended #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/BufferStorage.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/BufferStorage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/BufferStorage.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.BufferStorage (
-  -- * Extension Support
-    gl_ARB_buffer_storage
-
-  -- * GL_ARB_buffer_storage
-  , glBufferStorage
-  , pattern GL_BUFFER_IMMUTABLE_STORAGE
-  , pattern GL_BUFFER_STORAGE_FLAGS
-  , pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
-  , pattern GL_CLIENT_STORAGE_BIT
-  , pattern GL_DYNAMIC_STORAGE_BIT
-  , pattern GL_MAP_COHERENT_BIT
-  , pattern GL_MAP_PERSISTENT_BIT
-  , pattern GL_MAP_READ_BIT
-  , pattern GL_MAP_WRITE_BIT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/buffer_storage.txt GL_ARB_buffer_storage> extension is available.
-
-gl_ARB_buffer_storage :: Bool
-gl_ARB_buffer_storage = member "GL_ARB_buffer_storage" extensions
-{-# NOINLINE gl_ARB_buffer_storage #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ClEvent.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ClEvent.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ClEvent.hs
+++ /dev/null
@@ -1,44 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ClEvent (
-  -- * Extension Support
-    gl_ARB_cl_event
-
-  -- * GL_ARB_cl_event
-  , glCreateSyncFromCLeventARB
-  , pattern GL_SYNC_CL_EVENT_ARB
-  , pattern GL_SYNC_CL_EVENT_COMPLETE_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cl_event.txt GL_ARB_cl_event> extension is available.
-
-gl_ARB_cl_event :: Bool
-gl_ARB_cl_event = member "GL_ARB_cl_event" extensions
-{-# NOINLINE gl_ARB_cl_event #-}
-
--- | Usage: @'glCreateSyncFromCLeventARB' context event flags@
---
--- The parameter @context@ is a @cl_context@.
---
--- The parameter @event@ is a @cl_event@.
-
-
-glCreateSyncFromCLeventARB :: MonadIO m => Ptr () -> Ptr () -> GLbitfield -> m GLsync
-glCreateSyncFromCLeventARB = ffiPtrVPtrVbitfieldIOsync glCreateSyncFromCLeventARBFunPtr
-
-glCreateSyncFromCLeventARBFunPtr :: FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync)
-glCreateSyncFromCLeventARBFunPtr = unsafePerformIO (getProcAddress "glCreateSyncFromCLeventARB")
-
-{-# NOINLINE glCreateSyncFromCLeventARBFunPtr #-}
-
-pattern GL_SYNC_CL_EVENT_ARB = 0x8240
-
-pattern GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ClearBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ClearBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ClearBufferObject.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ClearBufferObject (
-  -- * Extension Support
-    gl_ARB_clear_buffer_object
-
-  -- * GL_ARB_clear_buffer_object
-  , glClearBufferData
-  , glClearBufferSubData
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_buffer_object.txt GL_ARB_clear_buffer_object> extension is available.
-
-gl_ARB_clear_buffer_object :: Bool
-gl_ARB_clear_buffer_object = member "GL_ARB_clear_buffer_object" extensions
-{-# NOINLINE gl_ARB_clear_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ClearTexture.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ClearTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ClearTexture.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ClearTexture (
-  -- * Extension Support
-    gl_ARB_clear_texture
-
-  -- * GL_ARB_clear_texture
-  , glClearTexImage
-  , glClearTexSubImage
-  , pattern GL_CLEAR_TEXTURE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_texture.txt GL_ARB_clear_texture> extension is available.
-
-gl_ARB_clear_texture :: Bool
-gl_ARB_clear_texture = member "GL_ARB_clear_texture" extensions
-{-# NOINLINE gl_ARB_clear_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ClipControl.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ClipControl.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ClipControl.hs
+++ /dev/null
@@ -1,25 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ClipControl (
-  -- * Extension Support
-    gl_ARB_clip_control
-
-  -- * GL_ARB_clip_control
-  , glClipControl
-  , pattern GL_CLIP_DEPTH_MODE
-  , pattern GL_CLIP_ORIGIN
-  , pattern GL_LOWER_LEFT
-  , pattern GL_NEGATIVE_ONE_TO_ONE
-  , pattern GL_UPPER_LEFT
-  , pattern GL_ZERO_TO_ONE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clip_control.txt GL_ARB_clip_control> extension is available.
-
-gl_ARB_clip_control :: Bool
-gl_ARB_clip_control = member "GL_ARB_clip_control" extensions
-{-# NOINLINE gl_ARB_clip_control #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ColorBufferFloat.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ColorBufferFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ColorBufferFloat.hs
+++ /dev/null
@@ -1,55 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ColorBufferFloat (
-  -- * Extension Support
-    gl_ARB_color_buffer_float
-
-  -- * GL_ARB_color_buffer_float
-  , glClampColorARB
-  , pattern GL_CLAMP_FRAGMENT_COLOR_ARB
-  , pattern GL_CLAMP_READ_COLOR_ARB
-  , pattern GL_CLAMP_VERTEX_COLOR_ARB
-  , pattern GL_FIXED_ONLY_ARB
-  , pattern GL_RGBA_FLOAT_MODE_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/color_buffer_float.txt GL_ARB_color_buffer_float> extension is available.
-
-gl_ARB_color_buffer_float :: Bool
-gl_ARB_color_buffer_float = member "GL_ARB_color_buffer_float" extensions
-{-# NOINLINE gl_ARB_color_buffer_float #-}
-
--- | Usage: @'glClampColorARB' target clamp@
---
--- The parameter @target@ is a @ClampColorTargetARB@.
---
--- The parameter @clamp@ is a @ClampColorModeARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glClampColor'.
-
-
-glClampColorARB :: MonadIO m => GLenum -> GLenum -> m ()
-glClampColorARB = ffienumenumIOV glClampColorARBFunPtr
-
-glClampColorARBFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glClampColorARBFunPtr = unsafePerformIO (getProcAddress "glClampColorARB")
-
-{-# NOINLINE glClampColorARBFunPtr #-}
-
-pattern GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B
-
-pattern GL_CLAMP_READ_COLOR_ARB = 0x891C
-
-pattern GL_CLAMP_VERTEX_COLOR_ARB = 0x891A
-
-pattern GL_FIXED_ONLY_ARB = 0x891D
-
-pattern GL_RGBA_FLOAT_MODE_ARB = 0x8820
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/Compatibility.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/Compatibility.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/Compatibility.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.Compatibility (
-  -- * Extension Support
-    gl_ARB_compatibility
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compatibility.txt GL_ARB_compatibility> extension is available.
-
-gl_ARB_compatibility :: Bool
-gl_ARB_compatibility = member "GL_ARB_compatibility" extensions
-{-# NOINLINE gl_ARB_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/CompressedTexturePixelStorage.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/CompressedTexturePixelStorage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/CompressedTexturePixelStorage.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.CompressedTexturePixelStorage (
-  -- * Extension Support
-    gl_ARB_compressed_texture_pixel_storage
-
-  -- * GL_ARB_compressed_texture_pixel_storage
-  , pattern GL_PACK_COMPRESSED_BLOCK_DEPTH
-  , pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT
-  , pattern GL_PACK_COMPRESSED_BLOCK_SIZE
-  , pattern GL_PACK_COMPRESSED_BLOCK_WIDTH
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE
-  , pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compressed_texture_pixel_storage.txt GL_ARB_compressed_texture_pixel_storage> extension is available.
-
-gl_ARB_compressed_texture_pixel_storage :: Bool
-gl_ARB_compressed_texture_pixel_storage = member "GL_ARB_compressed_texture_pixel_storage" extensions
-{-# NOINLINE gl_ARB_compressed_texture_pixel_storage #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ComputeShader.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ComputeShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ComputeShader.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ComputeShader (
-  -- * Extension Support
-    gl_ARB_compute_shader
-
-  -- * GL_ARB_compute_shader
-  , glDispatchCompute
-  , glDispatchComputeIndirect
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER
-  , pattern GL_COMPUTE_SHADER
-  , pattern GL_COMPUTE_SHADER_BIT
-  , pattern GL_COMPUTE_WORK_GROUP_SIZE
-  , pattern GL_DISPATCH_INDIRECT_BUFFER
-  , pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING
-  , pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS
-  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS
-  , pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
-  , pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS
-  , pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
-  , pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_shader.txt GL_ARB_compute_shader> extension is available.
-
-gl_ARB_compute_shader :: Bool
-gl_ARB_compute_shader = member "GL_ARB_compute_shader" extensions
-{-# NOINLINE gl_ARB_compute_shader #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ComputeVariableGroupSize (
-  -- * Extension Support
-    gl_ARB_compute_variable_group_size
-
-  -- * GL_ARB_compute_variable_group_size
-  , glDispatchComputeGroupSizeARB
-  , pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
-  , pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
-  , pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
-  , pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_variable_group_size.txt GL_ARB_compute_variable_group_size> extension is available.
-
-gl_ARB_compute_variable_group_size :: Bool
-gl_ARB_compute_variable_group_size = member "GL_ARB_compute_variable_group_size" extensions
-{-# NOINLINE gl_ARB_compute_variable_group_size #-}
-
--- | Usage: @'glDispatchComputeGroupSizeARB' num_groups_x num_groups_y num_groups_z group_size_x group_size_y group_size_z@
-
-
-glDispatchComputeGroupSizeARB :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glDispatchComputeGroupSizeARB = ffiuintuintuintuintuintuintIOV glDispatchComputeGroupSizeARBFunPtr
-
-glDispatchComputeGroupSizeARBFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glDispatchComputeGroupSizeARBFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeGroupSizeARB")
-
-{-# NOINLINE glDispatchComputeGroupSizeARBFunPtr #-}
-
-pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB
-
-pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF
-
-pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344
-
-pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ConditionalRenderInverted.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ConditionalRenderInverted.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ConditionalRenderInverted.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ConditionalRenderInverted (
-  -- * Extension Support
-    gl_ARB_conditional_render_inverted
-
-  -- * GL_ARB_conditional_render_inverted
-  , pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED
-  , pattern GL_QUERY_BY_REGION_WAIT_INVERTED
-  , pattern GL_QUERY_NO_WAIT_INVERTED
-  , pattern GL_QUERY_WAIT_INVERTED
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conditional_render_inverted.txt GL_ARB_conditional_render_inverted> extension is available.
-
-gl_ARB_conditional_render_inverted :: Bool
-gl_ARB_conditional_render_inverted = member "GL_ARB_conditional_render_inverted" extensions
-{-# NOINLINE gl_ARB_conditional_render_inverted #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ConservativeDepth.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ConservativeDepth.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ConservativeDepth.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ConservativeDepth (
-  -- * Extension Support
-    gl_ARB_conservative_depth
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conservative_depth.txt GL_ARB_conservative_depth> extension is available.
-
-gl_ARB_conservative_depth :: Bool
-gl_ARB_conservative_depth = member "GL_ARB_conservative_depth" extensions
-{-# NOINLINE gl_ARB_conservative_depth #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/CopyBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/CopyBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/CopyBuffer.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.CopyBuffer (
-  -- * Extension Support
-    gl_ARB_copy_buffer
-
-  -- * GL_ARB_copy_buffer
-  , glCopyBufferSubData
-  , pattern GL_COPY_READ_BUFFER
-  , pattern GL_COPY_WRITE_BUFFER
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_buffer.txt GL_ARB_copy_buffer> extension is available.
-
-gl_ARB_copy_buffer :: Bool
-gl_ARB_copy_buffer = member "GL_ARB_copy_buffer" extensions
-{-# NOINLINE gl_ARB_copy_buffer #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/CopyImage.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/CopyImage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/CopyImage.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.CopyImage (
-  -- * Extension Support
-    gl_ARB_copy_image
-
-  -- * GL_ARB_copy_image
-  , glCopyImageSubData
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_image.txt GL_ARB_copy_image> extension is available.
-
-gl_ARB_copy_image :: Bool
-gl_ARB_copy_image = member "GL_ARB_copy_image" extensions
-{-# NOINLINE gl_ARB_copy_image #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/CullDistance.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/CullDistance.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/CullDistance.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.CullDistance (
-  -- * Extension Support
-    gl_ARB_cull_distance
-
-  -- * GL_ARB_cull_distance
-  , pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES
-  , pattern GL_MAX_CULL_DISTANCES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cull_distance.txt GL_ARB_cull_distance> extension is available.
-
-gl_ARB_cull_distance :: Bool
-gl_ARB_cull_distance = member "GL_ARB_cull_distance" extensions
-{-# NOINLINE gl_ARB_cull_distance #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DebugOutput.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DebugOutput.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DebugOutput.hs
+++ /dev/null
@@ -1,164 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DebugOutput (
-  -- * Extension Support
-    gl_ARB_debug_output
-
-  -- * GL_ARB_debug_output
-  , glDebugMessageCallbackARB
-  , glDebugMessageControlARB
-  , glDebugMessageInsertARB
-  , glGetDebugMessageLogARB
-  , pattern GL_DEBUG_CALLBACK_FUNCTION_ARB
-  , pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB
-  , pattern GL_DEBUG_LOGGED_MESSAGES_ARB
-  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB
-  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB
-  , pattern GL_DEBUG_SEVERITY_HIGH_ARB
-  , pattern GL_DEBUG_SEVERITY_LOW_ARB
-  , pattern GL_DEBUG_SEVERITY_MEDIUM_ARB
-  , pattern GL_DEBUG_SOURCE_API_ARB
-  , pattern GL_DEBUG_SOURCE_APPLICATION_ARB
-  , pattern GL_DEBUG_SOURCE_OTHER_ARB
-  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB
-  , pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB
-  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB
-  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB
-  , pattern GL_DEBUG_TYPE_ERROR_ARB
-  , pattern GL_DEBUG_TYPE_OTHER_ARB
-  , pattern GL_DEBUG_TYPE_PERFORMANCE_ARB
-  , pattern GL_DEBUG_TYPE_PORTABILITY_ARB
-  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB
-  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB
-  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/debug_output.txt GL_ARB_debug_output> extension is available.
-
-gl_ARB_debug_output :: Bool
-gl_ARB_debug_output = member "GL_ARB_debug_output" extensions
-{-# NOINLINE gl_ARB_debug_output #-}
-
--- | Usage: @'glDebugMessageCallbackARB' callback userParam@
---
--- The length of @userParam@ should be @COMPSIZE(callback)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageCallback'.
-
-
-glDebugMessageCallbackARB :: MonadIO m => GLDEBUGPROCARB -> Ptr () -> m ()
-glDebugMessageCallbackARB = ffiDEBUGPROCARBPtrVIOV glDebugMessageCallbackARBFunPtr
-
-glDebugMessageCallbackARBFunPtr :: FunPtr (GLDEBUGPROCARB -> Ptr () -> IO ())
-glDebugMessageCallbackARBFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallbackARB")
-
-{-# NOINLINE glDebugMessageCallbackARBFunPtr #-}
-
--- | Usage: @'glDebugMessageControlARB' source type severity count ids enabled@
---
--- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @ids@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageControl'.
-
-
-glDebugMessageControlARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-glDebugMessageControlARB = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlARBFunPtr
-
-glDebugMessageControlARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
-glDebugMessageControlARBFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControlARB")
-
-{-# NOINLINE glDebugMessageControlARBFunPtr #-}
-
--- | Usage: @'glDebugMessageInsertARB' source type id severity length buf@
---
--- The length of @buf@ should be @length@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageInsert'.
-
-
-glDebugMessageInsertARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
-glDebugMessageInsertARB = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertARBFunPtr
-
-glDebugMessageInsertARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-glDebugMessageInsertARBFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertARB")
-
-{-# NOINLINE glDebugMessageInsertARBFunPtr #-}
-
--- | Usage: @'glGetDebugMessageLogARB' count bufSize sources types ids severities lengths messageLog@
---
--- The length of @sources@ should be @count@.
---
--- The length of @types@ should be @count@.
---
--- The length of @ids@ should be @count@.
---
--- The length of @severities@ should be @count@.
---
--- The length of @lengths@ should be @count@.
---
--- The length of @messageLog@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDebugMessageLog'.
-
-
-glGetDebugMessageLogARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-glGetDebugMessageLogARB = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogARBFunPtr
-
-glGetDebugMessageLogARBFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
-glGetDebugMessageLogARBFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLogARB")
-
-{-# NOINLINE glGetDebugMessageLogARBFunPtr #-}
-
-pattern GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244
-
-pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245
-
-pattern GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145
-
-pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243
-
-pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242
-
-pattern GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146
-
-pattern GL_DEBUG_SEVERITY_LOW_ARB = 0x9148
-
-pattern GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147
-
-pattern GL_DEBUG_SOURCE_API_ARB = 0x8246
-
-pattern GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A
-
-pattern GL_DEBUG_SOURCE_OTHER_ARB = 0x824B
-
-pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248
-
-pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249
-
-pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247
-
-pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D
-
-pattern GL_DEBUG_TYPE_ERROR_ARB = 0x824C
-
-pattern GL_DEBUG_TYPE_OTHER_ARB = 0x8251
-
-pattern GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250
-
-pattern GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F
-
-pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E
-
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144
-
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DepthBufferFloat.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DepthBufferFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DepthBufferFloat.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DepthBufferFloat (
-  -- * Extension Support
-    gl_ARB_depth_buffer_float
-
-  -- * GL_ARB_depth_buffer_float
-  , pattern GL_DEPTH32F_STENCIL8
-  , pattern GL_DEPTH_COMPONENT32F
-  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_buffer_float.txt GL_ARB_depth_buffer_float> extension is available.
-
-gl_ARB_depth_buffer_float :: Bool
-gl_ARB_depth_buffer_float = member "GL_ARB_depth_buffer_float" extensions
-{-# NOINLINE gl_ARB_depth_buffer_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DepthClamp.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DepthClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DepthClamp.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DepthClamp (
-  -- * Extension Support
-    gl_ARB_depth_clamp
-
-  -- * GL_ARB_depth_clamp
-  , pattern GL_DEPTH_CLAMP
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_clamp.txt GL_ARB_depth_clamp> extension is available.
-
-gl_ARB_depth_clamp :: Bool
-gl_ARB_depth_clamp = member "GL_ARB_depth_clamp" extensions
-{-# NOINLINE gl_ARB_depth_clamp #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DepthTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DepthTexture.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DepthTexture (
-  -- * Extension Support
-    gl_ARB_depth_texture
-
-  -- * GL_ARB_depth_texture
-  , pattern GL_DEPTH_COMPONENT16_ARB
-  , pattern GL_DEPTH_COMPONENT24_ARB
-  , pattern GL_DEPTH_COMPONENT32_ARB
-  , pattern GL_DEPTH_TEXTURE_MODE_ARB
-  , pattern GL_TEXTURE_DEPTH_SIZE_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_texture.txt GL_ARB_depth_texture> extension is available.
-
-gl_ARB_depth_texture :: Bool
-gl_ARB_depth_texture = member "GL_ARB_depth_texture" extensions
-{-# NOINLINE gl_ARB_depth_texture #-}
-
-pattern GL_DEPTH_COMPONENT16_ARB = 0x81A5
-
-pattern GL_DEPTH_COMPONENT24_ARB = 0x81A6
-
-pattern GL_DEPTH_COMPONENT32_ARB = 0x81A7
-
-pattern GL_DEPTH_TEXTURE_MODE_ARB = 0x884B
-
-pattern GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DerivativeControl.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DerivativeControl.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DerivativeControl.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DerivativeControl (
-  -- * Extension Support
-    gl_ARB_derivative_control
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/derivative_control.txt GL_ARB_derivative_control> extension is available.
-
-gl_ARB_derivative_control :: Bool
-gl_ARB_derivative_control = member "GL_ARB_derivative_control" extensions
-{-# NOINLINE gl_ARB_derivative_control #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DirectStateAccess.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DirectStateAccess.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DirectStateAccess.hs
+++ /dev/null
@@ -1,128 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DirectStateAccess (
-  -- * Extension Support
-    gl_ARB_direct_state_access
-
-  -- * GL_ARB_direct_state_access
-  , glBindTextureUnit
-  , glBlitNamedFramebuffer
-  , glCheckNamedFramebufferStatus
-  , glClearNamedBufferData
-  , glClearNamedBufferSubData
-  , glClearNamedFramebufferfi
-  , glClearNamedFramebufferfv
-  , glClearNamedFramebufferiv
-  , glClearNamedFramebufferuiv
-  , glCompressedTextureSubImage1D
-  , glCompressedTextureSubImage2D
-  , glCompressedTextureSubImage3D
-  , glCopyNamedBufferSubData
-  , glCopyTextureSubImage1D
-  , glCopyTextureSubImage2D
-  , glCopyTextureSubImage3D
-  , glCreateBuffers
-  , glCreateFramebuffers
-  , glCreateProgramPipelines
-  , glCreateQueries
-  , glCreateRenderbuffers
-  , glCreateSamplers
-  , glCreateTextures
-  , glCreateTransformFeedbacks
-  , glCreateVertexArrays
-  , glDisableVertexArrayAttrib
-  , glEnableVertexArrayAttrib
-  , glFlushMappedNamedBufferRange
-  , glGenerateTextureMipmap
-  , glGetCompressedTextureImage
-  , glGetNamedBufferParameteri64v
-  , glGetNamedBufferParameteriv
-  , glGetNamedBufferPointerv
-  , glGetNamedBufferSubData
-  , glGetNamedFramebufferAttachmentParameteriv
-  , glGetNamedFramebufferParameteriv
-  , glGetNamedRenderbufferParameteriv
-  , glGetQueryBufferObjecti64v
-  , glGetQueryBufferObjectiv
-  , glGetQueryBufferObjectui64v
-  , glGetQueryBufferObjectuiv
-  , glGetTextureImage
-  , glGetTextureLevelParameterfv
-  , glGetTextureLevelParameteriv
-  , glGetTextureParameterIiv
-  , glGetTextureParameterIuiv
-  , glGetTextureParameterfv
-  , glGetTextureParameteriv
-  , glGetTransformFeedbacki64_v
-  , glGetTransformFeedbacki_v
-  , glGetTransformFeedbackiv
-  , glGetVertexArrayIndexed64iv
-  , glGetVertexArrayIndexediv
-  , glGetVertexArrayiv
-  , glInvalidateNamedFramebufferData
-  , glInvalidateNamedFramebufferSubData
-  , glMapNamedBuffer
-  , glMapNamedBufferRange
-  , glNamedBufferData
-  , glNamedBufferStorage
-  , glNamedBufferSubData
-  , glNamedFramebufferDrawBuffer
-  , glNamedFramebufferDrawBuffers
-  , glNamedFramebufferParameteri
-  , glNamedFramebufferReadBuffer
-  , glNamedFramebufferRenderbuffer
-  , glNamedFramebufferTexture
-  , glNamedFramebufferTextureLayer
-  , glNamedRenderbufferStorage
-  , glNamedRenderbufferStorageMultisample
-  , glTextureBuffer
-  , glTextureBufferRange
-  , glTextureParameterIiv
-  , glTextureParameterIuiv
-  , glTextureParameterf
-  , glTextureParameterfv
-  , glTextureParameteri
-  , glTextureParameteriv
-  , glTextureStorage1D
-  , glTextureStorage2D
-  , glTextureStorage2DMultisample
-  , glTextureStorage3D
-  , glTextureStorage3DMultisample
-  , glTextureSubImage1D
-  , glTextureSubImage2D
-  , glTextureSubImage3D
-  , glTransformFeedbackBufferBase
-  , glTransformFeedbackBufferRange
-  , glUnmapNamedBuffer
-  , glVertexArrayAttribBinding
-  , glVertexArrayAttribFormat
-  , glVertexArrayAttribIFormat
-  , glVertexArrayAttribLFormat
-  , glVertexArrayBindingDivisor
-  , glVertexArrayElementBuffer
-  , glVertexArrayVertexBuffer
-  , glVertexArrayVertexBuffers
-  , pattern GL_QUERY_TARGET
-  , pattern GL_TEXTURE_BINDING_1D
-  , pattern GL_TEXTURE_BINDING_1D_ARRAY
-  , pattern GL_TEXTURE_BINDING_2D
-  , pattern GL_TEXTURE_BINDING_2D_ARRAY
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_BINDING_3D
-  , pattern GL_TEXTURE_BINDING_BUFFER
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
-  , pattern GL_TEXTURE_BINDING_RECTANGLE
-  , pattern GL_TEXTURE_TARGET
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/direct_state_access.txt GL_ARB_direct_state_access> extension is available.
-
-gl_ARB_direct_state_access :: Bool
-gl_ARB_direct_state_access = member "GL_ARB_direct_state_access" extensions
-{-# NOINLINE gl_ARB_direct_state_access #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DrawBuffers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawBuffers.hs
+++ /dev/null
@@ -1,91 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DrawBuffers (
-  -- * Extension Support
-    gl_ARB_draw_buffers
-
-  -- * GL_ARB_draw_buffers
-  , glDrawBuffersARB
-  , pattern GL_DRAW_BUFFER0_ARB
-  , pattern GL_DRAW_BUFFER10_ARB
-  , pattern GL_DRAW_BUFFER11_ARB
-  , pattern GL_DRAW_BUFFER12_ARB
-  , pattern GL_DRAW_BUFFER13_ARB
-  , pattern GL_DRAW_BUFFER14_ARB
-  , pattern GL_DRAW_BUFFER15_ARB
-  , pattern GL_DRAW_BUFFER1_ARB
-  , pattern GL_DRAW_BUFFER2_ARB
-  , pattern GL_DRAW_BUFFER3_ARB
-  , pattern GL_DRAW_BUFFER4_ARB
-  , pattern GL_DRAW_BUFFER5_ARB
-  , pattern GL_DRAW_BUFFER6_ARB
-  , pattern GL_DRAW_BUFFER7_ARB
-  , pattern GL_DRAW_BUFFER8_ARB
-  , pattern GL_DRAW_BUFFER9_ARB
-  , pattern GL_MAX_DRAW_BUFFERS_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers.txt GL_ARB_draw_buffers> extension is available.
-
-gl_ARB_draw_buffers :: Bool
-gl_ARB_draw_buffers = member "GL_ARB_draw_buffers" extensions
-{-# NOINLINE gl_ARB_draw_buffers #-}
-
--- | Usage: @'glDrawBuffersARB' n bufs@
---
--- The parameter @bufs@ is a @DrawBufferModeATI@.
---
--- The length of @bufs@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawBuffers'.
-
-
-glDrawBuffersARB :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
-glDrawBuffersARB = ffisizeiPtrenumIOV glDrawBuffersARBFunPtr
-
-glDrawBuffersARBFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
-glDrawBuffersARBFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersARB")
-
-{-# NOINLINE glDrawBuffersARBFunPtr #-}
-
-pattern GL_DRAW_BUFFER0_ARB = 0x8825
-
-pattern GL_DRAW_BUFFER10_ARB = 0x882F
-
-pattern GL_DRAW_BUFFER11_ARB = 0x8830
-
-pattern GL_DRAW_BUFFER12_ARB = 0x8831
-
-pattern GL_DRAW_BUFFER13_ARB = 0x8832
-
-pattern GL_DRAW_BUFFER14_ARB = 0x8833
-
-pattern GL_DRAW_BUFFER15_ARB = 0x8834
-
-pattern GL_DRAW_BUFFER1_ARB = 0x8826
-
-pattern GL_DRAW_BUFFER2_ARB = 0x8827
-
-pattern GL_DRAW_BUFFER3_ARB = 0x8828
-
-pattern GL_DRAW_BUFFER4_ARB = 0x8829
-
-pattern GL_DRAW_BUFFER5_ARB = 0x882A
-
-pattern GL_DRAW_BUFFER6_ARB = 0x882B
-
-pattern GL_DRAW_BUFFER7_ARB = 0x882C
-
-pattern GL_DRAW_BUFFER8_ARB = 0x882D
-
-pattern GL_DRAW_BUFFER9_ARB = 0x882E
-
-pattern GL_MAX_DRAW_BUFFERS_ARB = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawBuffersBlend.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DrawBuffersBlend.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawBuffersBlend.hs
+++ /dev/null
@@ -1,78 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DrawBuffersBlend (
-  -- * Extension Support
-    gl_ARB_draw_buffers_blend
-
-  -- * GL_ARB_draw_buffers_blend
-  , glBlendEquationSeparateiARB
-  , glBlendEquationiARB
-  , glBlendFuncSeparateiARB
-  , glBlendFunciARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers_blend.txt GL_ARB_draw_buffers_blend> extension is available.
-
-gl_ARB_draw_buffers_blend :: Bool
-gl_ARB_draw_buffers_blend = member "GL_ARB_draw_buffers_blend" extensions
-{-# NOINLINE gl_ARB_draw_buffers_blend #-}
-
--- | Usage: @'glBlendEquationSeparateiARB' buf modeRGB modeAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
-
-
-glBlendEquationSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendEquationSeparateiARB = ffiuintenumenumIOV glBlendEquationSeparateiARBFunPtr
-
-glBlendEquationSeparateiARBFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendEquationSeparateiARBFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateiARB")
-
-{-# NOINLINE glBlendEquationSeparateiARBFunPtr #-}
-
--- | Usage: @'glBlendEquationiARB' buf mode@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
-
-
-glBlendEquationiARB :: MonadIO m => GLuint -> GLenum -> m ()
-glBlendEquationiARB = ffiuintenumIOV glBlendEquationiARBFunPtr
-
-glBlendEquationiARBFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBlendEquationiARBFunPtr = unsafePerformIO (getProcAddress "glBlendEquationiARB")
-
-{-# NOINLINE glBlendEquationiARBFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparateiARB' buf srcRGB dstRGB srcAlpha dstAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
-
-
-glBlendFuncSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparateiARB = ffiuintenumenumenumenumIOV glBlendFuncSeparateiARBFunPtr
-
-glBlendFuncSeparateiARBFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateiARBFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateiARB")
-
-{-# NOINLINE glBlendFuncSeparateiARBFunPtr #-}
-
--- | Usage: @'glBlendFunciARB' buf src dst@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
-
-
-glBlendFunciARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendFunciARB = ffiuintenumenumIOV glBlendFunciARBFunPtr
-
-glBlendFunciARBFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendFunciARBFunPtr = unsafePerformIO (getProcAddress "glBlendFunciARB")
-
-{-# NOINLINE glBlendFunciARBFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawElementsBaseVertex.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DrawElementsBaseVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawElementsBaseVertex.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DrawElementsBaseVertex (
-  -- * Extension Support
-    gl_ARB_draw_elements_base_vertex
-
-  -- * GL_ARB_draw_elements_base_vertex
-  , glDrawElementsBaseVertex
-  , glDrawElementsInstancedBaseVertex
-  , glDrawRangeElementsBaseVertex
-  , glMultiDrawElementsBaseVertex
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_elements_base_vertex.txt GL_ARB_draw_elements_base_vertex> extension is available.
-
-gl_ARB_draw_elements_base_vertex :: Bool
-gl_ARB_draw_elements_base_vertex = member "GL_ARB_draw_elements_base_vertex" extensions
-{-# NOINLINE gl_ARB_draw_elements_base_vertex #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawIndirect.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DrawIndirect.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawIndirect.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DrawIndirect (
-  -- * Extension Support
-    gl_ARB_draw_indirect
-
-  -- * GL_ARB_draw_indirect
-  , glDrawArraysIndirect
-  , glDrawElementsIndirect
-  , pattern GL_DRAW_INDIRECT_BUFFER
-  , pattern GL_DRAW_INDIRECT_BUFFER_BINDING
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_indirect.txt GL_ARB_draw_indirect> extension is available.
-
-gl_ARB_draw_indirect :: Bool
-gl_ARB_draw_indirect = member "GL_ARB_draw_indirect" extensions
-{-# NOINLINE gl_ARB_draw_indirect #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawInstanced.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/DrawInstanced.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/DrawInstanced.hs
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.DrawInstanced (
-  -- * Extension Support
-    gl_ARB_draw_instanced
-
-  -- * GL_ARB_draw_instanced
-  , glDrawArraysInstancedARB
-  , glDrawElementsInstancedARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_instanced.txt GL_ARB_draw_instanced> extension is available.
-
-gl_ARB_draw_instanced :: Bool
-gl_ARB_draw_instanced = member "GL_ARB_draw_instanced" extensions
-{-# NOINLINE gl_ARB_draw_instanced #-}
-
--- | Usage: @'glDrawArraysInstancedARB' mode first count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
-
-
-glDrawArraysInstancedARB :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstancedARB = ffienumintsizeisizeiIOV glDrawArraysInstancedARBFunPtr
-
-glDrawArraysInstancedARBFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedARBFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedARB")
-
-{-# NOINLINE glDrawArraysInstancedARBFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedARB' mode count type indices primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
-
-
-glDrawElementsInstancedARB :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstancedARB = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedARBFunPtr
-
-glDrawElementsInstancedARBFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedARBFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedARB")
-
-{-# NOINLINE glDrawElementsInstancedARBFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ES2Compatibility.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ES2Compatibility.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ES2Compatibility.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ES2Compatibility (
-  -- * Extension Support
-    gl_ARB_ES2_compatibility
-
-  -- * GL_ARB_ES2_compatibility
-  , glClearDepthf
-  , glDepthRangef
-  , glGetShaderPrecisionFormat
-  , glReleaseShaderCompiler
-  , glShaderBinary
-  , pattern GL_FIXED
-  , pattern GL_HIGH_FLOAT
-  , pattern GL_HIGH_INT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
-  , pattern GL_LOW_FLOAT
-  , pattern GL_LOW_INT
-  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
-  , pattern GL_MAX_VARYING_VECTORS
-  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
-  , pattern GL_MEDIUM_FLOAT
-  , pattern GL_MEDIUM_INT
-  , pattern GL_NUM_SHADER_BINARY_FORMATS
-  , pattern GL_RGB565
-  , pattern GL_SHADER_BINARY_FORMATS
-  , pattern GL_SHADER_COMPILER
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES2_compatibility.txt GL_ARB_ES2_compatibility> extension is available.
-
-gl_ARB_ES2_compatibility :: Bool
-gl_ARB_ES2_compatibility = member "GL_ARB_ES2_compatibility" extensions
-{-# NOINLINE gl_ARB_ES2_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ES31Compatibility.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ES31Compatibility.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ES31Compatibility.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ES31Compatibility (
-  -- * Extension Support
-    gl_ARB_ES3_1_compatibility
-
-  -- * GL_ARB_ES3_1_compatibility
-  , glMemoryBarrierByRegion
-  , pattern GL_BACK
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_1_compatibility.txt GL_ARB_ES3_1_compatibility> extension is available.
-
-gl_ARB_ES3_1_compatibility :: Bool
-gl_ARB_ES3_1_compatibility = member "GL_ARB_ES3_1_compatibility" extensions
-{-# NOINLINE gl_ARB_ES3_1_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ES32Compatibility.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ES32Compatibility.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ES32Compatibility.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ES32Compatibility (
-  -- * Extension Support
-    gl_ARB_ES3_2_compatibility
-
-  -- * GL_ARB_ES3_2_compatibility
-  , glPrimitiveBoundingBoxARB
-  , pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB
-  , pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB
-  , pattern GL_PRIMITIVE_BOUNDING_BOX_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_2_compatibility.txt GL_ARB_ES3_2_compatibility> extension is available.
-
-gl_ARB_ES3_2_compatibility :: Bool
-gl_ARB_ES3_2_compatibility = member "GL_ARB_ES3_2_compatibility" extensions
-{-# NOINLINE gl_ARB_ES3_2_compatibility #-}
-
--- | Usage: @'glPrimitiveBoundingBoxARB' minX minY minZ minW maxX maxY maxZ maxW@
---
--- This command is an alias for 'Graphics.GL.Embedded32.glPrimitiveBoundingBox'.
-
-
-glPrimitiveBoundingBoxARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glPrimitiveBoundingBoxARB = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxARBFunPtr
-
-glPrimitiveBoundingBoxARBFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glPrimitiveBoundingBoxARBFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBoxARB")
-
-{-# NOINLINE glPrimitiveBoundingBoxARBFunPtr #-}
-
-pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB = 0x9382
-
-pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB = 0x9381
-
-pattern GL_PRIMITIVE_BOUNDING_BOX_ARB = 0x92BE
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ES3Compatibility.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ES3Compatibility.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ES3Compatibility.hs
+++ /dev/null
@@ -1,31 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ES3Compatibility (
-  -- * Extension Support
-    gl_ARB_ES3_compatibility
-
-  -- * GL_ARB_ES3_compatibility
-  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE
-  , pattern GL_COMPRESSED_R11_EAC
-  , pattern GL_COMPRESSED_RG11_EAC
-  , pattern GL_COMPRESSED_RGB8_ETC2
-  , pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
-  , pattern GL_COMPRESSED_RGBA8_ETC2_EAC
-  , pattern GL_COMPRESSED_SIGNED_R11_EAC
-  , pattern GL_COMPRESSED_SIGNED_RG11_EAC
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
-  , pattern GL_COMPRESSED_SRGB8_ETC2
-  , pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
-  , pattern GL_MAX_ELEMENT_INDEX
-  , pattern GL_PRIMITIVE_RESTART_FIXED_INDEX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_compatibility.txt GL_ARB_ES3_compatibility> extension is available.
-
-gl_ARB_ES3_compatibility :: Bool
-gl_ARB_ES3_compatibility = member "GL_ARB_ES3_compatibility" extensions
-{-# NOINLINE gl_ARB_ES3_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/EnhancedLayouts.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/EnhancedLayouts.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/EnhancedLayouts.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.EnhancedLayouts (
-  -- * Extension Support
-    gl_ARB_enhanced_layouts
-
-  -- * GL_ARB_enhanced_layouts
-  , pattern GL_LOCATION_COMPONENT
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/enhanced_layouts.txt GL_ARB_enhanced_layouts> extension is available.
-
-gl_ARB_enhanced_layouts :: Bool
-gl_ARB_enhanced_layouts = member "GL_ARB_enhanced_layouts" extensions
-{-# NOINLINE gl_ARB_enhanced_layouts #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ExplicitAttribLocation.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ExplicitAttribLocation.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ExplicitAttribLocation.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ExplicitAttribLocation (
-  -- * Extension Support
-    gl_ARB_explicit_attrib_location
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_attrib_location.txt GL_ARB_explicit_attrib_location> extension is available.
-
-gl_ARB_explicit_attrib_location :: Bool
-gl_ARB_explicit_attrib_location = member "GL_ARB_explicit_attrib_location" extensions
-{-# NOINLINE gl_ARB_explicit_attrib_location #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ExplicitUniformLocation.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ExplicitUniformLocation.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ExplicitUniformLocation.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ExplicitUniformLocation (
-  -- * Extension Support
-    gl_ARB_explicit_uniform_location
-
-  -- * GL_ARB_explicit_uniform_location
-  , pattern GL_MAX_UNIFORM_LOCATIONS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_uniform_location.txt GL_ARB_explicit_uniform_location> extension is available.
-
-gl_ARB_explicit_uniform_location :: Bool
-gl_ARB_explicit_uniform_location = member "GL_ARB_explicit_uniform_location" extensions
-{-# NOINLINE gl_ARB_explicit_uniform_location #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentCoordConventions.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentCoordConventions.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentCoordConventions.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FragmentCoordConventions (
-  -- * Extension Support
-    gl_ARB_fragment_coord_conventions
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_coord_conventions.txt GL_ARB_fragment_coord_conventions> extension is available.
-
-gl_ARB_fragment_coord_conventions :: Bool
-gl_ARB_fragment_coord_conventions = member "GL_ARB_fragment_coord_conventions" extensions
-{-# NOINLINE gl_ARB_fragment_coord_conventions #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentLayerViewport.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentLayerViewport.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentLayerViewport.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FragmentLayerViewport (
-  -- * Extension Support
-    gl_ARB_fragment_layer_viewport
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_layer_viewport.txt GL_ARB_fragment_layer_viewport> extension is available.
-
-gl_ARB_fragment_layer_viewport :: Bool
-gl_ARB_fragment_layer_viewport = member "GL_ARB_fragment_layer_viewport" extensions
-{-# NOINLINE gl_ARB_fragment_layer_viewport #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentProgram.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentProgram.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentProgram.hs
+++ /dev/null
@@ -1,141 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FragmentProgram (
-  -- * Extension Support
-    gl_ARB_fragment_program
-
-  -- * GL_ARB_fragment_program
-  , glBindProgramARB
-  , glDeleteProgramsARB
-  , glGenProgramsARB
-  , glGetProgramEnvParameterdvARB
-  , glGetProgramEnvParameterfvARB
-  , glGetProgramLocalParameterdvARB
-  , glGetProgramLocalParameterfvARB
-  , glGetProgramStringARB
-  , glGetProgramivARB
-  , glIsProgramARB
-  , glProgramEnvParameter4dARB
-  , glProgramEnvParameter4dvARB
-  , glProgramEnvParameter4fARB
-  , glProgramEnvParameter4fvARB
-  , glProgramLocalParameter4dARB
-  , glProgramLocalParameter4dvARB
-  , glProgramLocalParameter4fARB
-  , glProgramLocalParameter4fvARB
-  , glProgramStringARB
-  , pattern GL_CURRENT_MATRIX_ARB
-  , pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB
-  , pattern GL_FRAGMENT_PROGRAM_ARB
-  , pattern GL_MATRIX0_ARB
-  , pattern GL_MATRIX10_ARB
-  , pattern GL_MATRIX11_ARB
-  , pattern GL_MATRIX12_ARB
-  , pattern GL_MATRIX13_ARB
-  , pattern GL_MATRIX14_ARB
-  , pattern GL_MATRIX15_ARB
-  , pattern GL_MATRIX16_ARB
-  , pattern GL_MATRIX17_ARB
-  , pattern GL_MATRIX18_ARB
-  , pattern GL_MATRIX19_ARB
-  , pattern GL_MATRIX1_ARB
-  , pattern GL_MATRIX20_ARB
-  , pattern GL_MATRIX21_ARB
-  , pattern GL_MATRIX22_ARB
-  , pattern GL_MATRIX23_ARB
-  , pattern GL_MATRIX24_ARB
-  , pattern GL_MATRIX25_ARB
-  , pattern GL_MATRIX26_ARB
-  , pattern GL_MATRIX27_ARB
-  , pattern GL_MATRIX28_ARB
-  , pattern GL_MATRIX29_ARB
-  , pattern GL_MATRIX2_ARB
-  , pattern GL_MATRIX30_ARB
-  , pattern GL_MATRIX31_ARB
-  , pattern GL_MATRIX3_ARB
-  , pattern GL_MATRIX4_ARB
-  , pattern GL_MATRIX5_ARB
-  , pattern GL_MATRIX6_ARB
-  , pattern GL_MATRIX7_ARB
-  , pattern GL_MATRIX8_ARB
-  , pattern GL_MATRIX9_ARB
-  , pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
-  , pattern GL_MAX_PROGRAM_ATTRIBS_ARB
-  , pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB
-  , pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_MATRICES_ARB
-  , pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
-  , pattern GL_MAX_PROGRAM_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_TEMPORARIES_ARB
-  , pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
-  , pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
-  , pattern GL_MAX_TEXTURE_COORDS_ARB
-  , pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB
-  , pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_ATTRIBS_ARB
-  , pattern GL_PROGRAM_BINDING_ARB
-  , pattern GL_PROGRAM_ERROR_POSITION_ARB
-  , pattern GL_PROGRAM_ERROR_STRING_ARB
-  , pattern GL_PROGRAM_FORMAT_ARB
-  , pattern GL_PROGRAM_FORMAT_ASCII_ARB
-  , pattern GL_PROGRAM_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_LENGTH_ARB
-  , pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB
-  , pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB
-  , pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB
-  , pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
-  , pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_PARAMETERS_ARB
-  , pattern GL_PROGRAM_STRING_ARB
-  , pattern GL_PROGRAM_TEMPORARIES_ARB
-  , pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB
-  , pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
-  , pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program.txt GL_ARB_fragment_program> extension is available.
-
-gl_ARB_fragment_program :: Bool
-gl_ARB_fragment_program = member "GL_ARB_fragment_program" extensions
-{-# NOINLINE gl_ARB_fragment_program #-}
-
-pattern GL_FRAGMENT_PROGRAM_ARB = 0x8804
-
-pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B
-
-pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E
-
-pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810
-
-pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F
-
-pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D
-
-pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C
-
-pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805
-
-pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808
-
-pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A
-
-pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809
-
-pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807
-
-pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentProgramShadow.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentProgramShadow.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentProgramShadow.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FragmentProgramShadow (
-  -- * Extension Support
-    gl_ARB_fragment_program_shadow
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program_shadow.txt GL_ARB_fragment_program_shadow> extension is available.
-
-gl_ARB_fragment_program_shadow :: Bool
-gl_ARB_fragment_program_shadow = member "GL_ARB_fragment_program_shadow" extensions
-{-# NOINLINE gl_ARB_fragment_program_shadow #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentShader.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentShader.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FragmentShader (
-  -- * Extension Support
-    gl_ARB_fragment_shader
-
-  -- * GL_ARB_fragment_shader
-  , pattern GL_FRAGMENT_SHADER_ARB
-  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
-  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_shader.txt GL_ARB_fragment_shader> extension is available.
-
-gl_ARB_fragment_shader :: Bool
-gl_ARB_fragment_shader = member "GL_ARB_fragment_shader" extensions
-{-# NOINLINE gl_ARB_fragment_shader #-}
-
-pattern GL_FRAGMENT_SHADER_ARB = 0x8B30
-
-pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B
-
-pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentShaderInterlock.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentShaderInterlock.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FragmentShaderInterlock.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FragmentShaderInterlock (
-  -- * Extension Support
-    gl_ARB_fragment_shader_interlock
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_shader_interlock.txt GL_ARB_fragment_shader_interlock> extension is available.
-
-gl_ARB_fragment_shader_interlock :: Bool
-gl_ARB_fragment_shader_interlock = member "GL_ARB_fragment_shader_interlock" extensions
-{-# NOINLINE gl_ARB_fragment_shader_interlock #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferNoAttachments.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferNoAttachments.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferNoAttachments.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FramebufferNoAttachments (
-  -- * Extension Support
-    gl_ARB_framebuffer_no_attachments
-
-  -- * GL_ARB_framebuffer_no_attachments
-  , glFramebufferParameteri
-  , glGetFramebufferParameteriv
-  , pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
-  , pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT
-  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS
-  , pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES
-  , pattern GL_FRAMEBUFFER_DEFAULT_WIDTH
-  , pattern GL_MAX_FRAMEBUFFER_HEIGHT
-  , pattern GL_MAX_FRAMEBUFFER_LAYERS
-  , pattern GL_MAX_FRAMEBUFFER_SAMPLES
-  , pattern GL_MAX_FRAMEBUFFER_WIDTH
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_no_attachments.txt GL_ARB_framebuffer_no_attachments> extension is available.
-
-gl_ARB_framebuffer_no_attachments :: Bool
-gl_ARB_framebuffer_no_attachments = member "GL_ARB_framebuffer_no_attachments" extensions
-{-# NOINLINE gl_ARB_framebuffer_no_attachments #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferObject.hs
+++ /dev/null
@@ -1,111 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FramebufferObject (
-  -- * Extension Support
-    gl_ARB_framebuffer_object
-
-  -- * GL_ARB_framebuffer_object
-  , glBindFramebuffer
-  , glBindRenderbuffer
-  , glBlitFramebuffer
-  , glCheckFramebufferStatus
-  , glDeleteFramebuffers
-  , glDeleteRenderbuffers
-  , glFramebufferRenderbuffer
-  , glFramebufferTexture1D
-  , glFramebufferTexture2D
-  , glFramebufferTexture3D
-  , glFramebufferTextureLayer
-  , glGenFramebuffers
-  , glGenRenderbuffers
-  , glGenerateMipmap
-  , glGetFramebufferAttachmentParameteriv
-  , glGetRenderbufferParameteriv
-  , glIsFramebuffer
-  , glIsRenderbuffer
-  , glRenderbufferStorage
-  , glRenderbufferStorageMultisample
-  , pattern GL_COLOR_ATTACHMENT0
-  , pattern GL_COLOR_ATTACHMENT1
-  , pattern GL_COLOR_ATTACHMENT10
-  , pattern GL_COLOR_ATTACHMENT11
-  , pattern GL_COLOR_ATTACHMENT12
-  , pattern GL_COLOR_ATTACHMENT13
-  , pattern GL_COLOR_ATTACHMENT14
-  , pattern GL_COLOR_ATTACHMENT15
-  , pattern GL_COLOR_ATTACHMENT2
-  , pattern GL_COLOR_ATTACHMENT3
-  , pattern GL_COLOR_ATTACHMENT4
-  , pattern GL_COLOR_ATTACHMENT5
-  , pattern GL_COLOR_ATTACHMENT6
-  , pattern GL_COLOR_ATTACHMENT7
-  , pattern GL_COLOR_ATTACHMENT8
-  , pattern GL_COLOR_ATTACHMENT9
-  , pattern GL_DEPTH24_STENCIL8
-  , pattern GL_DEPTH_ATTACHMENT
-  , pattern GL_DEPTH_STENCIL
-  , pattern GL_DEPTH_STENCIL_ATTACHMENT
-  , pattern GL_DRAW_FRAMEBUFFER
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING
-  , pattern GL_FRAMEBUFFER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
-  , pattern GL_FRAMEBUFFER_BINDING
-  , pattern GL_FRAMEBUFFER_COMPLETE
-  , pattern GL_FRAMEBUFFER_DEFAULT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
-  , pattern GL_FRAMEBUFFER_UNDEFINED
-  , pattern GL_FRAMEBUFFER_UNSUPPORTED
-  , pattern GL_INDEX
-  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
-  , pattern GL_MAX_COLOR_ATTACHMENTS
-  , pattern GL_MAX_RENDERBUFFER_SIZE
-  , pattern GL_MAX_SAMPLES
-  , pattern GL_READ_FRAMEBUFFER
-  , pattern GL_READ_FRAMEBUFFER_BINDING
-  , pattern GL_RENDERBUFFER
-  , pattern GL_RENDERBUFFER_ALPHA_SIZE
-  , pattern GL_RENDERBUFFER_BINDING
-  , pattern GL_RENDERBUFFER_BLUE_SIZE
-  , pattern GL_RENDERBUFFER_DEPTH_SIZE
-  , pattern GL_RENDERBUFFER_GREEN_SIZE
-  , pattern GL_RENDERBUFFER_HEIGHT
-  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
-  , pattern GL_RENDERBUFFER_RED_SIZE
-  , pattern GL_RENDERBUFFER_SAMPLES
-  , pattern GL_RENDERBUFFER_STENCIL_SIZE
-  , pattern GL_RENDERBUFFER_WIDTH
-  , pattern GL_STENCIL_ATTACHMENT
-  , pattern GL_STENCIL_INDEX1
-  , pattern GL_STENCIL_INDEX16
-  , pattern GL_STENCIL_INDEX4
-  , pattern GL_STENCIL_INDEX8
-  , pattern GL_TEXTURE_STENCIL_SIZE
-  , pattern GL_UNSIGNED_INT_24_8
-  , pattern GL_UNSIGNED_NORMALIZED
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_object.txt GL_ARB_framebuffer_object> extension is available.
-
-gl_ARB_framebuffer_object :: Bool
-gl_ARB_framebuffer_object = member "GL_ARB_framebuffer_object" extensions
-{-# NOINLINE gl_ARB_framebuffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferSRGB.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferSRGB.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/FramebufferSRGB.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.FramebufferSRGB (
-  -- * Extension Support
-    gl_ARB_framebuffer_sRGB
-
-  -- * GL_ARB_framebuffer_sRGB
-  , pattern GL_FRAMEBUFFER_SRGB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_sRGB.txt GL_ARB_framebuffer_sRGB> extension is available.
-
-gl_ARB_framebuffer_sRGB :: Bool
-gl_ARB_framebuffer_sRGB = member "GL_ARB_framebuffer_sRGB" extensions
-{-# NOINLINE gl_ARB_framebuffer_sRGB #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/GeometryShader4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/GeometryShader4.hs
+++ /dev/null
@@ -1,163 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.GeometryShader4 (
-  -- * Extension Support
-    gl_ARB_geometry_shader4
-
-  -- * GL_ARB_geometry_shader4
-  , glFramebufferTextureARB
-  , glFramebufferTextureFaceARB
-  , glFramebufferTextureLayerARB
-  , glProgramParameteriARB
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB
-  , pattern GL_GEOMETRY_INPUT_TYPE_ARB
-  , pattern GL_GEOMETRY_OUTPUT_TYPE_ARB
-  , pattern GL_GEOMETRY_SHADER_ARB
-  , pattern GL_GEOMETRY_VERTICES_OUT_ARB
-  , pattern GL_LINES_ADJACENCY_ARB
-  , pattern GL_LINE_STRIP_ADJACENCY_ARB
-  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB
-  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB
-  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB
-  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB
-  , pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB
-  , pattern GL_MAX_VARYING_COMPONENTS
-  , pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB
-  , pattern GL_PROGRAM_POINT_SIZE_ARB
-  , pattern GL_TRIANGLES_ADJACENCY_ARB
-  , pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB
-) 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/ARB/geometry_shader4.txt GL_ARB_geometry_shader4> extension is available.
-
-gl_ARB_geometry_shader4 :: Bool
-gl_ARB_geometry_shader4 = member "GL_ARB_geometry_shader4" extensions
-{-# NOINLINE gl_ARB_geometry_shader4 #-}
-
--- | Usage: @'glFramebufferTextureARB' target attachment texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
-
-
-glFramebufferTextureARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTextureARB = ffienumenumuintintIOV glFramebufferTextureARBFunPtr
-
-glFramebufferTextureARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTextureARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureARB")
-
-{-# NOINLINE glFramebufferTextureARBFunPtr #-}
-
--- | Usage: @'glFramebufferTextureFaceARB' target attachment texture level face@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
-
-
-glFramebufferTextureFaceARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
-glFramebufferTextureFaceARB = ffienumenumuintintenumIOV glFramebufferTextureFaceARBFunPtr
-
-glFramebufferTextureFaceARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
-glFramebufferTextureFaceARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureFaceARB")
-
-{-# NOINLINE glFramebufferTextureFaceARBFunPtr #-}
-
--- | Usage: @'glFramebufferTextureLayerARB' target attachment texture level layer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @layer@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTextureLayer'.
-
-
-glFramebufferTextureLayerARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTextureLayerARB = ffienumenumuintintintIOV glFramebufferTextureLayerARBFunPtr
-
-glFramebufferTextureLayerARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerARB")
-
-{-# NOINLINE glFramebufferTextureLayerARBFunPtr #-}
-
--- | Usage: @'glProgramParameteriARB' program pname value@
---
--- The parameter @pname@ is a @ProgramParameterPName@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramParameteri'.
-
-
-glProgramParameteriARB :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glProgramParameteriARB = ffiuintenumintIOV glProgramParameteriARBFunPtr
-
-glProgramParameteriARBFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glProgramParameteriARBFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriARB")
-
-{-# NOINLINE glProgramParameteriARBFunPtr #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8
-
-pattern GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB
-
-pattern GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC
-
-pattern GL_GEOMETRY_SHADER_ARB = 0x8DD9
-
-pattern GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA
-
-pattern GL_LINES_ADJACENCY_ARB = 0x000A
-
-pattern GL_LINE_STRIP_ADJACENCY_ARB = 0x000B
-
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0
-
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29
-
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1
-
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF
-
-pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD
-
-pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE
-
-pattern GL_PROGRAM_POINT_SIZE_ARB = 0x8642
-
-pattern GL_TRIANGLES_ADJACENCY_ARB = 0x000C
-
-pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/GetProgramBinary.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/GetProgramBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/GetProgramBinary.hs
+++ /dev/null
@@ -1,25 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.GetProgramBinary (
-  -- * Extension Support
-    gl_ARB_get_program_binary
-
-  -- * GL_ARB_get_program_binary
-  , glGetProgramBinary
-  , glProgramBinary
-  , glProgramParameteri
-  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
-  , pattern GL_PROGRAM_BINARY_FORMATS
-  , pattern GL_PROGRAM_BINARY_LENGTH
-  , pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_program_binary.txt GL_ARB_get_program_binary> extension is available.
-
-gl_ARB_get_program_binary :: Bool
-gl_ARB_get_program_binary = member "GL_ARB_get_program_binary" extensions
-{-# NOINLINE gl_ARB_get_program_binary #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/GetTextureSubImage.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/GetTextureSubImage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/GetTextureSubImage.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.GetTextureSubImage (
-  -- * Extension Support
-    gl_ARB_get_texture_sub_image
-
-  -- * GL_ARB_get_texture_sub_image
-  , glGetCompressedTextureSubImage
-  , glGetTextureSubImage
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_texture_sub_image.txt GL_ARB_get_texture_sub_image> extension is available.
-
-gl_ARB_get_texture_sub_image :: Bool
-gl_ARB_get_texture_sub_image = member "GL_ARB_get_texture_sub_image" extensions
-{-# NOINLINE gl_ARB_get_texture_sub_image #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShader5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShader5.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.GpuShader5 (
-  -- * Extension Support
-    gl_ARB_gpu_shader5
-
-  -- * GL_ARB_gpu_shader5
-  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
-  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
-  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
-  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS
-  , pattern GL_MAX_VERTEX_STREAMS
-  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader5.txt GL_ARB_gpu_shader5> extension is available.
-
-gl_ARB_gpu_shader5 :: Bool
-gl_ARB_gpu_shader5 = member "GL_ARB_gpu_shader5" extensions
-{-# NOINLINE gl_ARB_gpu_shader5 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShaderFp64.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShaderFp64.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShaderFp64.hs
+++ /dev/null
@@ -1,49 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.GpuShaderFp64 (
-  -- * Extension Support
-    gl_ARB_gpu_shader_fp64
-
-  -- * GL_ARB_gpu_shader_fp64
-  , glGetUniformdv
-  , glUniform1d
-  , glUniform1dv
-  , glUniform2d
-  , glUniform2dv
-  , glUniform3d
-  , glUniform3dv
-  , glUniform4d
-  , glUniform4dv
-  , glUniformMatrix2dv
-  , glUniformMatrix2x3dv
-  , glUniformMatrix2x4dv
-  , glUniformMatrix3dv
-  , glUniformMatrix3x2dv
-  , glUniformMatrix3x4dv
-  , glUniformMatrix4dv
-  , glUniformMatrix4x2dv
-  , glUniformMatrix4x3dv
-  , pattern GL_DOUBLE
-  , pattern GL_DOUBLE_MAT2
-  , pattern GL_DOUBLE_MAT2x3
-  , pattern GL_DOUBLE_MAT2x4
-  , pattern GL_DOUBLE_MAT3
-  , pattern GL_DOUBLE_MAT3x2
-  , pattern GL_DOUBLE_MAT3x4
-  , pattern GL_DOUBLE_MAT4
-  , pattern GL_DOUBLE_MAT4x2
-  , pattern GL_DOUBLE_MAT4x3
-  , pattern GL_DOUBLE_VEC2
-  , pattern GL_DOUBLE_VEC3
-  , pattern GL_DOUBLE_VEC4
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader_fp64.txt GL_ARB_gpu_shader_fp64> extension is available.
-
-gl_ARB_gpu_shader_fp64 :: Bool
-gl_ARB_gpu_shader_fp64 = member "GL_ARB_gpu_shader_fp64" extensions
-{-# NOINLINE gl_ARB_gpu_shader_fp64 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShaderInt64.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShaderInt64.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/GpuShaderInt64.hs
+++ /dev/null
@@ -1,513 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.GpuShaderInt64 (
-  -- * Extension Support
-    gl_ARB_gpu_shader_int64
-
-  -- * GL_ARB_gpu_shader_int64
-  , glGetUniformi64vARB
-  , glGetUniformui64vARB
-  , glGetnUniformi64vARB
-  , glGetnUniformui64vARB
-  , glProgramUniform1i64ARB
-  , glProgramUniform1i64vARB
-  , glProgramUniform1ui64ARB
-  , glProgramUniform1ui64vARB
-  , glProgramUniform2i64ARB
-  , glProgramUniform2i64vARB
-  , glProgramUniform2ui64ARB
-  , glProgramUniform2ui64vARB
-  , glProgramUniform3i64ARB
-  , glProgramUniform3i64vARB
-  , glProgramUniform3ui64ARB
-  , glProgramUniform3ui64vARB
-  , glProgramUniform4i64ARB
-  , glProgramUniform4i64vARB
-  , glProgramUniform4ui64ARB
-  , glProgramUniform4ui64vARB
-  , glUniform1i64ARB
-  , glUniform1i64vARB
-  , glUniform1ui64ARB
-  , glUniform1ui64vARB
-  , glUniform2i64ARB
-  , glUniform2i64vARB
-  , glUniform2ui64ARB
-  , glUniform2ui64vARB
-  , glUniform3i64ARB
-  , glUniform3i64vARB
-  , glUniform3ui64ARB
-  , glUniform3ui64vARB
-  , glUniform4i64ARB
-  , glUniform4i64vARB
-  , glUniform4ui64ARB
-  , glUniform4ui64vARB
-  , pattern GL_INT64_ARB
-  , pattern GL_INT64_VEC2_ARB
-  , pattern GL_INT64_VEC3_ARB
-  , pattern GL_INT64_VEC4_ARB
-  , pattern GL_UNSIGNED_INT64_ARB
-  , pattern GL_UNSIGNED_INT64_VEC2_ARB
-  , pattern GL_UNSIGNED_INT64_VEC3_ARB
-  , pattern GL_UNSIGNED_INT64_VEC4_ARB
-) 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/ARB/gpu_shader_int64.txt GL_ARB_gpu_shader_int64> extension is available.
-
-gl_ARB_gpu_shader_int64 :: Bool
-gl_ARB_gpu_shader_int64 = member "GL_ARB_gpu_shader_int64" extensions
-{-# NOINLINE gl_ARB_gpu_shader_int64 #-}
-
--- | Usage: @'glGetUniformi64vARB' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformi64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLint64 -> m ()
-glGetUniformi64vARB = ffiuintintPtrint64IOV glGetUniformi64vARBFunPtr
-
-glGetUniformi64vARBFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ())
-glGetUniformi64vARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vARB")
-
-{-# NOINLINE glGetUniformi64vARBFunPtr #-}
-
--- | Usage: @'glGetUniformui64vARB' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformui64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLuint64 -> m ()
-glGetUniformui64vARB = ffiuintintPtruint64IOV glGetUniformui64vARBFunPtr
-
-glGetUniformui64vARBFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ())
-glGetUniformui64vARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vARB")
-
-{-# NOINLINE glGetUniformui64vARBFunPtr #-}
-
--- | Usage: @'glGetnUniformi64vARB' program location bufSize params@
-
-
-glGetnUniformi64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
-glGetnUniformi64vARB = ffiuintintsizeiPtrint64IOV glGetnUniformi64vARBFunPtr
-
-glGetnUniformi64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glGetnUniformi64vARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformi64vARB")
-
-{-# NOINLINE glGetnUniformi64vARBFunPtr #-}
-
--- | Usage: @'glGetnUniformui64vARB' program location bufSize params@
-
-
-glGetnUniformui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glGetnUniformui64vARB = ffiuintintsizeiPtruint64IOV glGetnUniformui64vARBFunPtr
-
-glGetnUniformui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glGetnUniformui64vARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformui64vARB")
-
-{-# NOINLINE glGetnUniformui64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform1i64ARB' program location x@
-
-
-glProgramUniform1i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> m ()
-glProgramUniform1i64ARB = ffiuintintint64IOV glProgramUniform1i64ARBFunPtr
-
-glProgramUniform1i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> IO ())
-glProgramUniform1i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64ARB")
-
-{-# NOINLINE glProgramUniform1i64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform1i64vARB' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
-glProgramUniform1i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform1i64vARBFunPtr
-
-glProgramUniform1i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glProgramUniform1i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vARB")
-
-{-# NOINLINE glProgramUniform1i64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui64ARB' program location x@
-
-
-glProgramUniform1ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
-glProgramUniform1ui64ARB = ffiuintintuint64IOV glProgramUniform1ui64ARBFunPtr
-
-glProgramUniform1ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
-glProgramUniform1ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64ARB")
-
-{-# NOINLINE glProgramUniform1ui64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui64vARB' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glProgramUniform1ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform1ui64vARBFunPtr
-
-glProgramUniform1ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glProgramUniform1ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vARB")
-
-{-# NOINLINE glProgramUniform1ui64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform2i64ARB' program location x y@
-
-
-glProgramUniform2i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> m ()
-glProgramUniform2i64ARB = ffiuintintint64int64IOV glProgramUniform2i64ARBFunPtr
-
-glProgramUniform2i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ())
-glProgramUniform2i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64ARB")
-
-{-# NOINLINE glProgramUniform2i64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform2i64vARB' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
-glProgramUniform2i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform2i64vARBFunPtr
-
-glProgramUniform2i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glProgramUniform2i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vARB")
-
-{-# NOINLINE glProgramUniform2i64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui64ARB' program location x y@
-
-
-glProgramUniform2ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()
-glProgramUniform2ui64ARB = ffiuintintuint64uint64IOV glProgramUniform2ui64ARBFunPtr
-
-glProgramUniform2ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ())
-glProgramUniform2ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64ARB")
-
-{-# NOINLINE glProgramUniform2ui64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui64vARB' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glProgramUniform2ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform2ui64vARBFunPtr
-
-glProgramUniform2ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glProgramUniform2ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vARB")
-
-{-# NOINLINE glProgramUniform2ui64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform3i64ARB' program location x y z@
-
-
-glProgramUniform3i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
-glProgramUniform3i64ARB = ffiuintintint64int64int64IOV glProgramUniform3i64ARBFunPtr
-
-glProgramUniform3i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
-glProgramUniform3i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64ARB")
-
-{-# NOINLINE glProgramUniform3i64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform3i64vARB' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
-glProgramUniform3i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform3i64vARBFunPtr
-
-glProgramUniform3i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glProgramUniform3i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vARB")
-
-{-# NOINLINE glProgramUniform3i64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui64ARB' program location x y z@
-
-
-glProgramUniform3ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-glProgramUniform3ui64ARB = ffiuintintuint64uint64uint64IOV glProgramUniform3ui64ARBFunPtr
-
-glProgramUniform3ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
-glProgramUniform3ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64ARB")
-
-{-# NOINLINE glProgramUniform3ui64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui64vARB' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glProgramUniform3ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform3ui64vARBFunPtr
-
-glProgramUniform3ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glProgramUniform3ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vARB")
-
-{-# NOINLINE glProgramUniform3ui64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform4i64ARB' program location x y z w@
-
-
-glProgramUniform4i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
-glProgramUniform4i64ARB = ffiuintintint64int64int64int64IOV glProgramUniform4i64ARBFunPtr
-
-glProgramUniform4i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
-glProgramUniform4i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64ARB")
-
-{-# NOINLINE glProgramUniform4i64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform4i64vARB' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
-glProgramUniform4i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform4i64vARBFunPtr
-
-glProgramUniform4i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glProgramUniform4i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vARB")
-
-{-# NOINLINE glProgramUniform4i64vARBFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui64ARB' program location x y z w@
-
-
-glProgramUniform4ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-glProgramUniform4ui64ARB = ffiuintintuint64uint64uint64uint64IOV glProgramUniform4ui64ARBFunPtr
-
-glProgramUniform4ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
-glProgramUniform4ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64ARB")
-
-{-# NOINLINE glProgramUniform4ui64ARBFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui64vARB' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glProgramUniform4ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform4ui64vARBFunPtr
-
-glProgramUniform4ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glProgramUniform4ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vARB")
-
-{-# NOINLINE glProgramUniform4ui64vARBFunPtr #-}
-
--- | Usage: @'glUniform1i64ARB' location x@
-
-
-glUniform1i64ARB :: MonadIO m => GLint -> GLint64 -> m ()
-glUniform1i64ARB = ffiintint64IOV glUniform1i64ARBFunPtr
-
-glUniform1i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> IO ())
-glUniform1i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform1i64ARB")
-
-{-# NOINLINE glUniform1i64ARBFunPtr #-}
-
--- | Usage: @'glUniform1i64vARB' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
-glUniform1i64vARB = ffiintsizeiPtrint64IOV glUniform1i64vARBFunPtr
-
-glUniform1i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glUniform1i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vARB")
-
-{-# NOINLINE glUniform1i64vARBFunPtr #-}
-
--- | Usage: @'glUniform1ui64ARB' location x@
-
-
-glUniform1ui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
-glUniform1ui64ARB = ffiintuint64IOV glUniform1ui64ARBFunPtr
-
-glUniform1ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
-glUniform1ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64ARB")
-
-{-# NOINLINE glUniform1ui64ARBFunPtr #-}
-
--- | Usage: @'glUniform1ui64vARB' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glUniform1ui64vARB = ffiintsizeiPtruint64IOV glUniform1ui64vARBFunPtr
-
-glUniform1ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glUniform1ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vARB")
-
-{-# NOINLINE glUniform1ui64vARBFunPtr #-}
-
--- | Usage: @'glUniform2i64ARB' location x y@
-
-
-glUniform2i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> m ()
-glUniform2i64ARB = ffiintint64int64IOV glUniform2i64ARBFunPtr
-
-glUniform2i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> GLint64 -> IO ())
-glUniform2i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform2i64ARB")
-
-{-# NOINLINE glUniform2i64ARBFunPtr #-}
-
--- | Usage: @'glUniform2i64vARB' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
-glUniform2i64vARB = ffiintsizeiPtrint64IOV glUniform2i64vARBFunPtr
-
-glUniform2i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glUniform2i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vARB")
-
-{-# NOINLINE glUniform2i64vARBFunPtr #-}
-
--- | Usage: @'glUniform2ui64ARB' location x y@
-
-
-glUniform2ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> m ()
-glUniform2ui64ARB = ffiintuint64uint64IOV glUniform2ui64ARBFunPtr
-
-glUniform2ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ())
-glUniform2ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64ARB")
-
-{-# NOINLINE glUniform2ui64ARBFunPtr #-}
-
--- | Usage: @'glUniform2ui64vARB' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glUniform2ui64vARB = ffiintsizeiPtruint64IOV glUniform2ui64vARBFunPtr
-
-glUniform2ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glUniform2ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vARB")
-
-{-# NOINLINE glUniform2ui64vARBFunPtr #-}
-
--- | Usage: @'glUniform3i64ARB' location x y z@
-
-
-glUniform3i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
-glUniform3i64ARB = ffiintint64int64int64IOV glUniform3i64ARBFunPtr
-
-glUniform3i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
-glUniform3i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform3i64ARB")
-
-{-# NOINLINE glUniform3i64ARBFunPtr #-}
-
--- | Usage: @'glUniform3i64vARB' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
-glUniform3i64vARB = ffiintsizeiPtrint64IOV glUniform3i64vARBFunPtr
-
-glUniform3i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glUniform3i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vARB")
-
-{-# NOINLINE glUniform3i64vARBFunPtr #-}
-
--- | Usage: @'glUniform3ui64ARB' location x y z@
-
-
-glUniform3ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-glUniform3ui64ARB = ffiintuint64uint64uint64IOV glUniform3ui64ARBFunPtr
-
-glUniform3ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
-glUniform3ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64ARB")
-
-{-# NOINLINE glUniform3ui64ARBFunPtr #-}
-
--- | Usage: @'glUniform3ui64vARB' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glUniform3ui64vARB = ffiintsizeiPtruint64IOV glUniform3ui64vARBFunPtr
-
-glUniform3ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glUniform3ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vARB")
-
-{-# NOINLINE glUniform3ui64vARBFunPtr #-}
-
--- | Usage: @'glUniform4i64ARB' location x y z w@
-
-
-glUniform4i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
-glUniform4i64ARB = ffiintint64int64int64int64IOV glUniform4i64ARBFunPtr
-
-glUniform4i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
-glUniform4i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform4i64ARB")
-
-{-# NOINLINE glUniform4i64ARBFunPtr #-}
-
--- | Usage: @'glUniform4i64vARB' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
-glUniform4i64vARB = ffiintsizeiPtrint64IOV glUniform4i64vARBFunPtr
-
-glUniform4i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
-glUniform4i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vARB")
-
-{-# NOINLINE glUniform4i64vARBFunPtr #-}
-
--- | Usage: @'glUniform4ui64ARB' location x y z w@
-
-
-glUniform4ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-glUniform4ui64ARB = ffiintuint64uint64uint64uint64IOV glUniform4ui64ARBFunPtr
-
-glUniform4ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
-glUniform4ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64ARB")
-
-{-# NOINLINE glUniform4ui64ARBFunPtr #-}
-
--- | Usage: @'glUniform4ui64vARB' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glUniform4ui64vARB = ffiintsizeiPtruint64IOV glUniform4ui64vARBFunPtr
-
-glUniform4ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glUniform4ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vARB")
-
-{-# NOINLINE glUniform4ui64vARBFunPtr #-}
-
-pattern GL_INT64_ARB = 0x140E
-
-pattern GL_INT64_VEC2_ARB = 0x8FE9
-
-pattern GL_INT64_VEC3_ARB = 0x8FEA
-
-pattern GL_INT64_VEC4_ARB = 0x8FEB
-
-pattern GL_UNSIGNED_INT64_VEC2_ARB = 0x8FF5
-
-pattern GL_UNSIGNED_INT64_VEC3_ARB = 0x8FF6
-
-pattern GL_UNSIGNED_INT64_VEC4_ARB = 0x8FF7
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/HalfFloatPixel.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/HalfFloatPixel.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/HalfFloatPixel.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.HalfFloatPixel (
-  -- * Extension Support
-    gl_ARB_half_float_pixel
-
-  -- * GL_ARB_half_float_pixel
-  , pattern GL_HALF_FLOAT_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_pixel.txt GL_ARB_half_float_pixel> extension is available.
-
-gl_ARB_half_float_pixel :: Bool
-gl_ARB_half_float_pixel = member "GL_ARB_half_float_pixel" extensions
-{-# NOINLINE gl_ARB_half_float_pixel #-}
-
-pattern GL_HALF_FLOAT_ARB = 0x140B
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/HalfFloatVertex.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/HalfFloatVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/HalfFloatVertex.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.HalfFloatVertex (
-  -- * Extension Support
-    gl_ARB_half_float_vertex
-
-  -- * GL_ARB_half_float_vertex
-  , pattern GL_HALF_FLOAT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_vertex.txt GL_ARB_half_float_vertex> extension is available.
-
-gl_ARB_half_float_vertex :: Bool
-gl_ARB_half_float_vertex = member "GL_ARB_half_float_vertex" extensions
-{-# NOINLINE gl_ARB_half_float_vertex #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/Imaging.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/Imaging.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/Imaging.hs
+++ /dev/null
@@ -1,848 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.Imaging (
-  -- * Extension Support
-    gl_ARB_imaging
-
-  -- * GL_ARB_imaging
-  , glBlendColor
-  , glBlendEquation
-  , glColorSubTable
-  , glColorTable
-  , glColorTableParameterfv
-  , glColorTableParameteriv
-  , glConvolutionFilter1D
-  , glConvolutionFilter2D
-  , glConvolutionParameterf
-  , glConvolutionParameterfv
-  , glConvolutionParameteri
-  , glConvolutionParameteriv
-  , glCopyColorSubTable
-  , glCopyColorTable
-  , glCopyConvolutionFilter1D
-  , glCopyConvolutionFilter2D
-  , glGetColorTable
-  , glGetColorTableParameterfv
-  , glGetColorTableParameteriv
-  , glGetConvolutionFilter
-  , glGetConvolutionParameterfv
-  , glGetConvolutionParameteriv
-  , glGetHistogram
-  , glGetHistogramParameterfv
-  , glGetHistogramParameteriv
-  , glGetMinmax
-  , glGetMinmaxParameterfv
-  , glGetMinmaxParameteriv
-  , glGetSeparableFilter
-  , glHistogram
-  , glMinmax
-  , glResetHistogram
-  , glResetMinmax
-  , glSeparableFilter2D
-  , pattern GL_BLEND_COLOR
-  , pattern GL_BLEND_EQUATION
-  , pattern GL_COLOR_MATRIX
-  , pattern GL_COLOR_MATRIX_STACK_DEPTH
-  , pattern GL_COLOR_TABLE
-  , pattern GL_COLOR_TABLE_ALPHA_SIZE
-  , pattern GL_COLOR_TABLE_BIAS
-  , pattern GL_COLOR_TABLE_BLUE_SIZE
-  , pattern GL_COLOR_TABLE_FORMAT
-  , pattern GL_COLOR_TABLE_GREEN_SIZE
-  , pattern GL_COLOR_TABLE_INTENSITY_SIZE
-  , pattern GL_COLOR_TABLE_LUMINANCE_SIZE
-  , pattern GL_COLOR_TABLE_RED_SIZE
-  , pattern GL_COLOR_TABLE_SCALE
-  , pattern GL_COLOR_TABLE_WIDTH
-  , pattern GL_CONSTANT_ALPHA
-  , pattern GL_CONSTANT_BORDER
-  , pattern GL_CONSTANT_COLOR
-  , pattern GL_CONVOLUTION_1D
-  , pattern GL_CONVOLUTION_2D
-  , pattern GL_CONVOLUTION_BORDER_COLOR
-  , pattern GL_CONVOLUTION_BORDER_MODE
-  , pattern GL_CONVOLUTION_FILTER_BIAS
-  , pattern GL_CONVOLUTION_FILTER_SCALE
-  , pattern GL_CONVOLUTION_FORMAT
-  , pattern GL_CONVOLUTION_HEIGHT
-  , pattern GL_CONVOLUTION_WIDTH
-  , pattern GL_FUNC_ADD
-  , pattern GL_FUNC_REVERSE_SUBTRACT
-  , pattern GL_FUNC_SUBTRACT
-  , pattern GL_HISTOGRAM
-  , pattern GL_HISTOGRAM_ALPHA_SIZE
-  , pattern GL_HISTOGRAM_BLUE_SIZE
-  , pattern GL_HISTOGRAM_FORMAT
-  , pattern GL_HISTOGRAM_GREEN_SIZE
-  , pattern GL_HISTOGRAM_LUMINANCE_SIZE
-  , pattern GL_HISTOGRAM_RED_SIZE
-  , pattern GL_HISTOGRAM_SINK
-  , pattern GL_HISTOGRAM_WIDTH
-  , pattern GL_MAX
-  , pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH
-  , pattern GL_MAX_CONVOLUTION_HEIGHT
-  , pattern GL_MAX_CONVOLUTION_WIDTH
-  , pattern GL_MIN
-  , pattern GL_MINMAX
-  , pattern GL_MINMAX_FORMAT
-  , pattern GL_MINMAX_SINK
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR
-  , pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS
-  , pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE
-  , pattern GL_POST_COLOR_MATRIX_BLUE_BIAS
-  , pattern GL_POST_COLOR_MATRIX_BLUE_SCALE
-  , pattern GL_POST_COLOR_MATRIX_COLOR_TABLE
-  , pattern GL_POST_COLOR_MATRIX_GREEN_BIAS
-  , pattern GL_POST_COLOR_MATRIX_GREEN_SCALE
-  , pattern GL_POST_COLOR_MATRIX_RED_BIAS
-  , pattern GL_POST_COLOR_MATRIX_RED_SCALE
-  , pattern GL_POST_CONVOLUTION_ALPHA_BIAS
-  , pattern GL_POST_CONVOLUTION_ALPHA_SCALE
-  , pattern GL_POST_CONVOLUTION_BLUE_BIAS
-  , pattern GL_POST_CONVOLUTION_BLUE_SCALE
-  , pattern GL_POST_CONVOLUTION_COLOR_TABLE
-  , pattern GL_POST_CONVOLUTION_GREEN_BIAS
-  , pattern GL_POST_CONVOLUTION_GREEN_SCALE
-  , pattern GL_POST_CONVOLUTION_RED_BIAS
-  , pattern GL_POST_CONVOLUTION_RED_SCALE
-  , pattern GL_PROXY_COLOR_TABLE
-  , pattern GL_PROXY_HISTOGRAM
-  , pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE
-  , pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE
-  , pattern GL_REDUCE
-  , pattern GL_REPLICATE_BORDER
-  , pattern GL_SEPARABLE_2D
-  , pattern GL_TABLE_TOO_LARGE
-) 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 GL_ARB_imaging extension is available.
-
-gl_ARB_imaging :: Bool
-gl_ARB_imaging = member "GL_ARB_imaging" extensions
-{-# NOINLINE gl_ARB_imaging #-}
-
--- | Usage: @'glColorSubTable' target start count format type data@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @data@ should be @COMPSIZE(format,type,count)@.
-
-
-glColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glColorSubTable = ffienumsizeisizeienumenumPtrVIOV glColorSubTableFunPtr
-
-glColorSubTableFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glColorSubTableFunPtr = unsafePerformIO (getProcAddress "glColorSubTable")
-
-{-# NOINLINE glColorSubTableFunPtr #-}
-
--- | Usage: @'glColorTable' target internalformat width format type table@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @table@ should be @COMPSIZE(format,type,width)@.
-
-
-glColorTable :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glColorTable = ffienumenumsizeienumenumPtrVIOV glColorTableFunPtr
-
-glColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glColorTableFunPtr = unsafePerformIO (getProcAddress "glColorTable")
-
-{-# NOINLINE glColorTableFunPtr #-}
-
--- | Usage: @'glColorTableParameterfv' target pname params@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @pname@ is a @ColorTableParameterPName@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glColorTableParameterfv = ffienumenumPtrfloatIOV glColorTableParameterfvFunPtr
-
-glColorTableParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glColorTableParameterfvFunPtr = unsafePerformIO (getProcAddress "glColorTableParameterfv")
-
-{-# NOINLINE glColorTableParameterfvFunPtr #-}
-
--- | Usage: @'glColorTableParameteriv' target pname params@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @pname@ is a @ColorTableParameterPName@.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glColorTableParameteriv = ffienumenumPtrintIOV glColorTableParameterivFunPtr
-
-glColorTableParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glColorTableParameterivFunPtr = unsafePerformIO (getProcAddress "glColorTableParameteriv")
-
-{-# NOINLINE glColorTableParameterivFunPtr #-}
-
--- | Usage: @'glConvolutionFilter1D' target internalformat width format type image@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @image@ should be @COMPSIZE(format,type,width)@.
-
-
-glConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glConvolutionFilter1D = ffienumenumsizeienumenumPtrVIOV glConvolutionFilter1DFunPtr
-
-glConvolutionFilter1DFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glConvolutionFilter1DFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter1D")
-
-{-# NOINLINE glConvolutionFilter1DFunPtr #-}
-
--- | Usage: @'glConvolutionFilter2D' target internalformat width height format type image@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @image@ should be @COMPSIZE(format,type,width,height)@.
-
-
-glConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glConvolutionFilter2D = ffienumenumsizeisizeienumenumPtrVIOV glConvolutionFilter2DFunPtr
-
-glConvolutionFilter2DFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glConvolutionFilter2DFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter2D")
-
-{-# NOINLINE glConvolutionFilter2DFunPtr #-}
-
--- | Usage: @'glConvolutionParameterf' target pname params@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @pname@ is a @ConvolutionParameter@.
---
--- The parameter @params@ is a @CheckedFloat32@.
-
-
-glConvolutionParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glConvolutionParameterf = ffienumenumfloatIOV glConvolutionParameterfFunPtr
-
-glConvolutionParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glConvolutionParameterfFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterf")
-
-{-# NOINLINE glConvolutionParameterfFunPtr #-}
-
--- | Usage: @'glConvolutionParameterfv' target pname params@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @pname@ is a @ConvolutionParameter@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glConvolutionParameterfv = ffienumenumPtrfloatIOV glConvolutionParameterfvFunPtr
-
-glConvolutionParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glConvolutionParameterfvFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterfv")
-
-{-# NOINLINE glConvolutionParameterfvFunPtr #-}
-
--- | Usage: @'glConvolutionParameteri' target pname params@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @pname@ is a @ConvolutionParameter@.
---
--- The parameter @params@ is a @CheckedInt32@.
-
-
-glConvolutionParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glConvolutionParameteri = ffienumenumintIOV glConvolutionParameteriFunPtr
-
-glConvolutionParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glConvolutionParameteriFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameteri")
-
-{-# NOINLINE glConvolutionParameteriFunPtr #-}
-
--- | Usage: @'glConvolutionParameteriv' target pname params@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @pname@ is a @ConvolutionParameter@.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glConvolutionParameteriv = ffienumenumPtrintIOV glConvolutionParameterivFunPtr
-
-glConvolutionParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glConvolutionParameterivFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameteriv")
-
-{-# NOINLINE glConvolutionParameterivFunPtr #-}
-
--- | Usage: @'glCopyColorSubTable' target start x y width@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
-glCopyColorSubTable = ffienumsizeiintintsizeiIOV glCopyColorSubTableFunPtr
-
-glCopyColorSubTableFunPtr :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
-glCopyColorSubTableFunPtr = unsafePerformIO (getProcAddress "glCopyColorSubTable")
-
-{-# NOINLINE glCopyColorSubTableFunPtr #-}
-
--- | Usage: @'glCopyColorTable' target internalformat x y width@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyColorTable :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
-glCopyColorTable = ffienumenumintintsizeiIOV glCopyColorTableFunPtr
-
-glCopyColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
-glCopyColorTableFunPtr = unsafePerformIO (getProcAddress "glCopyColorTable")
-
-{-# NOINLINE glCopyColorTableFunPtr #-}
-
--- | Usage: @'glCopyConvolutionFilter1D' target internalformat x y width@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
-glCopyConvolutionFilter1D = ffienumenumintintsizeiIOV glCopyConvolutionFilter1DFunPtr
-
-glCopyConvolutionFilter1DFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
-glCopyConvolutionFilter1DFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter1D")
-
-{-# NOINLINE glCopyConvolutionFilter1DFunPtr #-}
-
--- | Usage: @'glCopyConvolutionFilter2D' target internalformat x y width height@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyConvolutionFilter2D = ffienumenumintintsizeisizeiIOV glCopyConvolutionFilter2DFunPtr
-
-glCopyConvolutionFilter2DFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyConvolutionFilter2DFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter2D")
-
-{-# NOINLINE glCopyConvolutionFilter2DFunPtr #-}
-
--- | Usage: @'glGetColorTable' target format type table@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @table@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glGetColorTable = ffienumenumenumPtrVIOV glGetColorTableFunPtr
-
-glGetColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetColorTableFunPtr = unsafePerformIO (getProcAddress "glGetColorTable")
-
-{-# NOINLINE glGetColorTableFunPtr #-}
-
--- | Usage: @'glGetColorTableParameterfv' target pname params@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @pname@ is a @GetColorTableParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetColorTableParameterfv = ffienumenumPtrfloatIOV glGetColorTableParameterfvFunPtr
-
-glGetColorTableParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetColorTableParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfv")
-
-{-# NOINLINE glGetColorTableParameterfvFunPtr #-}
-
--- | Usage: @'glGetColorTableParameteriv' target pname params@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @pname@ is a @GetColorTableParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetColorTableParameteriv = ffienumenumPtrintIOV glGetColorTableParameterivFunPtr
-
-glGetColorTableParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetColorTableParameterivFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameteriv")
-
-{-# NOINLINE glGetColorTableParameterivFunPtr #-}
-
--- | Usage: @'glGetConvolutionFilter' target format type image@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @image@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glGetConvolutionFilter = ffienumenumenumPtrVIOV glGetConvolutionFilterFunPtr
-
-glGetConvolutionFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetConvolutionFilterFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionFilter")
-
-{-# NOINLINE glGetConvolutionFilterFunPtr #-}
-
--- | Usage: @'glGetConvolutionParameterfv' target pname params@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @pname@ is a @GetConvolutionParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetConvolutionParameterfv = ffienumenumPtrfloatIOV glGetConvolutionParameterfvFunPtr
-
-glGetConvolutionParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetConvolutionParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterfv")
-
-{-# NOINLINE glGetConvolutionParameterfvFunPtr #-}
-
--- | Usage: @'glGetConvolutionParameteriv' target pname params@
---
--- The parameter @target@ is a @ConvolutionTarget@.
---
--- The parameter @pname@ is a @GetConvolutionParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetConvolutionParameteriv = ffienumenumPtrintIOV glGetConvolutionParameterivFunPtr
-
-glGetConvolutionParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetConvolutionParameterivFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameteriv")
-
-{-# NOINLINE glGetConvolutionParameterivFunPtr #-}
-
--- | Usage: @'glGetHistogram' target reset format type values@
---
--- The parameter @target@ is a @HistogramTarget@.
---
--- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @values@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
-glGetHistogram = ffienumbooleanenumenumPtrVIOV glGetHistogramFunPtr
-
-glGetHistogramFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetHistogramFunPtr = unsafePerformIO (getProcAddress "glGetHistogram")
-
-{-# NOINLINE glGetHistogramFunPtr #-}
-
--- | Usage: @'glGetHistogramParameterfv' target pname params@
---
--- The parameter @target@ is a @HistogramTarget@.
---
--- The parameter @pname@ is a @GetHistogramParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetHistogramParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetHistogramParameterfv = ffienumenumPtrfloatIOV glGetHistogramParameterfvFunPtr
-
-glGetHistogramParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetHistogramParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterfv")
-
-{-# NOINLINE glGetHistogramParameterfvFunPtr #-}
-
--- | Usage: @'glGetHistogramParameteriv' target pname params@
---
--- The parameter @target@ is a @HistogramTarget@.
---
--- The parameter @pname@ is a @GetHistogramParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetHistogramParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetHistogramParameteriv = ffienumenumPtrintIOV glGetHistogramParameterivFunPtr
-
-glGetHistogramParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetHistogramParameterivFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameteriv")
-
-{-# NOINLINE glGetHistogramParameterivFunPtr #-}
-
--- | Usage: @'glGetMinmax' target reset format type values@
---
--- The parameter @target@ is a @MinmaxTarget@.
---
--- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @values@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
-glGetMinmax = ffienumbooleanenumenumPtrVIOV glGetMinmaxFunPtr
-
-glGetMinmaxFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetMinmaxFunPtr = unsafePerformIO (getProcAddress "glGetMinmax")
-
-{-# NOINLINE glGetMinmaxFunPtr #-}
-
--- | Usage: @'glGetMinmaxParameterfv' target pname params@
---
--- The parameter @target@ is a @MinmaxTarget@.
---
--- The parameter @pname@ is a @GetMinmaxParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMinmaxParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMinmaxParameterfv = ffienumenumPtrfloatIOV glGetMinmaxParameterfvFunPtr
-
-glGetMinmaxParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMinmaxParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameterfv")
-
-{-# NOINLINE glGetMinmaxParameterfvFunPtr #-}
-
--- | Usage: @'glGetMinmaxParameteriv' target pname params@
---
--- The parameter @target@ is a @MinmaxTarget@.
---
--- The parameter @pname@ is a @GetMinmaxParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMinmaxParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMinmaxParameteriv = ffienumenumPtrintIOV glGetMinmaxParameterivFunPtr
-
-glGetMinmaxParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMinmaxParameterivFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameteriv")
-
-{-# NOINLINE glGetMinmaxParameterivFunPtr #-}
-
--- | Usage: @'glGetSeparableFilter' target format type row column span@
---
--- The parameter @target@ is a @SeparableTarget@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @row@ should be @COMPSIZE(target,format,type)@.
---
--- The length of @column@ should be @COMPSIZE(target,format,type)@.
---
--- The length of @span@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
-glGetSeparableFilter = ffienumenumenumPtrVPtrVPtrVIOV glGetSeparableFilterFunPtr
-
-glGetSeparableFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ())
-glGetSeparableFilterFunPtr = unsafePerformIO (getProcAddress "glGetSeparableFilter")
-
-{-# NOINLINE glGetSeparableFilterFunPtr #-}
-
--- | Usage: @'glHistogram' target width internalformat sink@
---
--- The parameter @target@ is a @HistogramTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glHistogram :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
-glHistogram = ffienumsizeienumbooleanIOV glHistogramFunPtr
-
-glHistogramFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
-glHistogramFunPtr = unsafePerformIO (getProcAddress "glHistogram")
-
-{-# NOINLINE glHistogramFunPtr #-}
-
--- | Usage: @'glMinmax' target internalformat sink@
---
--- The parameter @target@ is a @MinmaxTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glMinmax :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()
-glMinmax = ffienumenumbooleanIOV glMinmaxFunPtr
-
-glMinmaxFunPtr :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ())
-glMinmaxFunPtr = unsafePerformIO (getProcAddress "glMinmax")
-
-{-# NOINLINE glMinmaxFunPtr #-}
-
--- | Usage: @'glResetHistogram' target@
---
--- The parameter @target@ is a @HistogramTarget@.
-
-
-glResetHistogram :: MonadIO m => GLenum -> m ()
-glResetHistogram = ffienumIOV glResetHistogramFunPtr
-
-glResetHistogramFunPtr :: FunPtr (GLenum -> IO ())
-glResetHistogramFunPtr = unsafePerformIO (getProcAddress "glResetHistogram")
-
-{-# NOINLINE glResetHistogramFunPtr #-}
-
--- | Usage: @'glResetMinmax' target@
---
--- The parameter @target@ is a @MinmaxTarget@.
-
-
-glResetMinmax :: MonadIO m => GLenum -> m ()
-glResetMinmax = ffienumIOV glResetMinmaxFunPtr
-
-glResetMinmaxFunPtr :: FunPtr (GLenum -> IO ())
-glResetMinmaxFunPtr = unsafePerformIO (getProcAddress "glResetMinmax")
-
-{-# NOINLINE glResetMinmaxFunPtr #-}
-
--- | Usage: @'glSeparableFilter2D' target internalformat width height format type row column@
---
--- The parameter @target@ is a @SeparableTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @row@ should be @COMPSIZE(target,format,type,width)@.
---
--- The length of @column@ should be @COMPSIZE(target,format,type,height)@.
-
-
-glSeparableFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
-glSeparableFilter2D = ffienumenumsizeisizeienumenumPtrVPtrVIOV glSeparableFilter2DFunPtr
-
-glSeparableFilter2DFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ())
-glSeparableFilter2DFunPtr = unsafePerformIO (getProcAddress "glSeparableFilter2D")
-
-{-# NOINLINE glSeparableFilter2DFunPtr #-}
-
-pattern GL_COLOR_MATRIX = 0x80B1
-
-pattern GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2
-
-pattern GL_COLOR_TABLE = 0x80D0
-
-pattern GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD
-
-pattern GL_COLOR_TABLE_BIAS = 0x80D7
-
-pattern GL_COLOR_TABLE_BLUE_SIZE = 0x80DC
-
-pattern GL_COLOR_TABLE_FORMAT = 0x80D8
-
-pattern GL_COLOR_TABLE_GREEN_SIZE = 0x80DB
-
-pattern GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF
-
-pattern GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE
-
-pattern GL_COLOR_TABLE_RED_SIZE = 0x80DA
-
-pattern GL_COLOR_TABLE_SCALE = 0x80D6
-
-pattern GL_COLOR_TABLE_WIDTH = 0x80D9
-
-pattern GL_CONSTANT_BORDER = 0x8151
-
-pattern GL_CONVOLUTION_1D = 0x8010
-
-pattern GL_CONVOLUTION_2D = 0x8011
-
-pattern GL_CONVOLUTION_BORDER_COLOR = 0x8154
-
-pattern GL_CONVOLUTION_BORDER_MODE = 0x8013
-
-pattern GL_CONVOLUTION_FILTER_BIAS = 0x8015
-
-pattern GL_CONVOLUTION_FILTER_SCALE = 0x8014
-
-pattern GL_CONVOLUTION_FORMAT = 0x8017
-
-pattern GL_CONVOLUTION_HEIGHT = 0x8019
-
-pattern GL_CONVOLUTION_WIDTH = 0x8018
-
-pattern GL_HISTOGRAM = 0x8024
-
-pattern GL_HISTOGRAM_ALPHA_SIZE = 0x802B
-
-pattern GL_HISTOGRAM_BLUE_SIZE = 0x802A
-
-pattern GL_HISTOGRAM_FORMAT = 0x8027
-
-pattern GL_HISTOGRAM_GREEN_SIZE = 0x8029
-
-pattern GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C
-
-pattern GL_HISTOGRAM_RED_SIZE = 0x8028
-
-pattern GL_HISTOGRAM_SINK = 0x802D
-
-pattern GL_HISTOGRAM_WIDTH = 0x8026
-
-pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3
-
-pattern GL_MAX_CONVOLUTION_HEIGHT = 0x801B
-
-pattern GL_MAX_CONVOLUTION_WIDTH = 0x801A
-
-pattern GL_MINMAX = 0x802E
-
-pattern GL_MINMAX_FORMAT = 0x802F
-
-pattern GL_MINMAX_SINK = 0x8030
-
-pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB
-
-pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7
-
-pattern GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA
-
-pattern GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6
-
-pattern GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2
-
-pattern GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9
-
-pattern GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5
-
-pattern GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8
-
-pattern GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4
-
-pattern GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023
-
-pattern GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F
-
-pattern GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022
-
-pattern GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E
-
-pattern GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1
-
-pattern GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021
-
-pattern GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D
-
-pattern GL_POST_CONVOLUTION_RED_BIAS = 0x8020
-
-pattern GL_POST_CONVOLUTION_RED_SCALE = 0x801C
-
-pattern GL_PROXY_COLOR_TABLE = 0x80D3
-
-pattern GL_PROXY_HISTOGRAM = 0x8025
-
-pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5
-
-pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4
-
-pattern GL_REDUCE = 0x8016
-
-pattern GL_REPLICATE_BORDER = 0x8153
-
-pattern GL_SEPARABLE_2D = 0x8012
-
-pattern GL_TABLE_TOO_LARGE = 0x8031
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/IndirectParameters.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/IndirectParameters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/IndirectParameters.hs
+++ /dev/null
@@ -1,52 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.IndirectParameters (
-  -- * Extension Support
-    gl_ARB_indirect_parameters
-
-  -- * GL_ARB_indirect_parameters
-  , glMultiDrawArraysIndirectCountARB
-  , glMultiDrawElementsIndirectCountARB
-  , pattern GL_PARAMETER_BUFFER_ARB
-  , pattern GL_PARAMETER_BUFFER_BINDING_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/indirect_parameters.txt GL_ARB_indirect_parameters> extension is available.
-
-gl_ARB_indirect_parameters :: Bool
-gl_ARB_indirect_parameters = member "GL_ARB_indirect_parameters" extensions
-{-# NOINLINE gl_ARB_indirect_parameters #-}
-
--- | Usage: @'glMultiDrawArraysIndirectCountARB' mode indirect drawcount maxdrawcount stride@
-
-
-glMultiDrawArraysIndirectCountARB :: MonadIO m => GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
-glMultiDrawArraysIndirectCountARB = ffienumintptrintptrsizeisizeiIOV glMultiDrawArraysIndirectCountARBFunPtr
-
-glMultiDrawArraysIndirectCountARBFunPtr :: FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysIndirectCountARBFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectCountARB")
-
-{-# NOINLINE glMultiDrawArraysIndirectCountARBFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsIndirectCountARB' mode type indirect drawcount maxdrawcount stride@
-
-
-glMultiDrawElementsIndirectCountARB :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
-glMultiDrawElementsIndirectCountARB = ffienumenumintptrintptrsizeisizeiIOV glMultiDrawElementsIndirectCountARBFunPtr
-
-glMultiDrawElementsIndirectCountARBFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ())
-glMultiDrawElementsIndirectCountARBFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectCountARB")
-
-{-# NOINLINE glMultiDrawElementsIndirectCountARBFunPtr #-}
-
-pattern GL_PARAMETER_BUFFER_ARB = 0x80EE
-
-pattern GL_PARAMETER_BUFFER_BINDING_ARB = 0x80EF
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/InstancedArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/InstancedArrays.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.InstancedArrays (
-  -- * Extension Support
-    gl_ARB_instanced_arrays
-
-  -- * GL_ARB_instanced_arrays
-  , glVertexAttribDivisorARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/instanced_arrays.txt GL_ARB_instanced_arrays> extension is available.
-
-gl_ARB_instanced_arrays :: Bool
-gl_ARB_instanced_arrays = member "GL_ARB_instanced_arrays" extensions
-{-# NOINLINE gl_ARB_instanced_arrays #-}
-
--- | Usage: @'glVertexAttribDivisorARB' index divisor@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
-
-
-glVertexAttribDivisorARB :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribDivisorARB = ffiuintuintIOV glVertexAttribDivisorARBFunPtr
-
-glVertexAttribDivisorARBFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribDivisorARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorARB")
-
-{-# NOINLINE glVertexAttribDivisorARBFunPtr #-}
-
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/InternalformatQuery.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/InternalformatQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/InternalformatQuery.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.InternalformatQuery (
-  -- * Extension Support
-    gl_ARB_internalformat_query
-
-  -- * GL_ARB_internalformat_query
-  , glGetInternalformativ
-  , pattern GL_NUM_SAMPLE_COUNTS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query.txt GL_ARB_internalformat_query> extension is available.
-
-gl_ARB_internalformat_query :: Bool
-gl_ARB_internalformat_query = member "GL_ARB_internalformat_query" extensions
-{-# NOINLINE gl_ARB_internalformat_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/InternalformatQuery2.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/InternalformatQuery2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/InternalformatQuery2.hs
+++ /dev/null
@@ -1,136 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.InternalformatQuery2 (
-  -- * Extension Support
-    gl_ARB_internalformat_query2
-
-  -- * GL_ARB_internalformat_query2
-  , glGetInternalformati64v
-  , pattern GL_AUTO_GENERATE_MIPMAP
-  , pattern GL_CAVEAT_SUPPORT
-  , pattern GL_CLEAR_BUFFER
-  , pattern GL_COLOR_COMPONENTS
-  , pattern GL_COLOR_ENCODING
-  , pattern GL_COLOR_RENDERABLE
-  , pattern GL_COMPUTE_TEXTURE
-  , pattern GL_DEPTH_COMPONENTS
-  , pattern GL_DEPTH_RENDERABLE
-  , pattern GL_FILTER
-  , pattern GL_FRAGMENT_TEXTURE
-  , pattern GL_FRAMEBUFFER_BLEND
-  , pattern GL_FRAMEBUFFER_RENDERABLE
-  , pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED
-  , pattern GL_FULL_SUPPORT
-  , pattern GL_GEOMETRY_TEXTURE
-  , pattern GL_GET_TEXTURE_IMAGE_FORMAT
-  , pattern GL_GET_TEXTURE_IMAGE_TYPE
-  , pattern GL_IMAGE_CLASS_10_10_10_2
-  , pattern GL_IMAGE_CLASS_11_11_10
-  , pattern GL_IMAGE_CLASS_1_X_16
-  , pattern GL_IMAGE_CLASS_1_X_32
-  , pattern GL_IMAGE_CLASS_1_X_8
-  , pattern GL_IMAGE_CLASS_2_X_16
-  , pattern GL_IMAGE_CLASS_2_X_32
-  , pattern GL_IMAGE_CLASS_2_X_8
-  , pattern GL_IMAGE_CLASS_4_X_16
-  , pattern GL_IMAGE_CLASS_4_X_32
-  , pattern GL_IMAGE_CLASS_4_X_8
-  , pattern GL_IMAGE_COMPATIBILITY_CLASS
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
-  , pattern GL_IMAGE_PIXEL_FORMAT
-  , pattern GL_IMAGE_PIXEL_TYPE
-  , pattern GL_IMAGE_TEXEL_SIZE
-  , pattern GL_INTERNALFORMAT_ALPHA_SIZE
-  , pattern GL_INTERNALFORMAT_ALPHA_TYPE
-  , pattern GL_INTERNALFORMAT_BLUE_SIZE
-  , pattern GL_INTERNALFORMAT_BLUE_TYPE
-  , pattern GL_INTERNALFORMAT_DEPTH_SIZE
-  , pattern GL_INTERNALFORMAT_DEPTH_TYPE
-  , pattern GL_INTERNALFORMAT_GREEN_SIZE
-  , pattern GL_INTERNALFORMAT_GREEN_TYPE
-  , pattern GL_INTERNALFORMAT_PREFERRED
-  , pattern GL_INTERNALFORMAT_RED_SIZE
-  , pattern GL_INTERNALFORMAT_RED_TYPE
-  , pattern GL_INTERNALFORMAT_SHARED_SIZE
-  , pattern GL_INTERNALFORMAT_STENCIL_SIZE
-  , pattern GL_INTERNALFORMAT_STENCIL_TYPE
-  , pattern GL_INTERNALFORMAT_SUPPORTED
-  , pattern GL_MANUAL_GENERATE_MIPMAP
-  , pattern GL_MAX_COMBINED_DIMENSIONS
-  , pattern GL_MAX_DEPTH
-  , pattern GL_MAX_HEIGHT
-  , pattern GL_MAX_LAYERS
-  , pattern GL_MAX_WIDTH
-  , pattern GL_MIPMAP
-  , pattern GL_NUM_SAMPLE_COUNTS
-  , pattern GL_READ_PIXELS
-  , pattern GL_READ_PIXELS_FORMAT
-  , pattern GL_READ_PIXELS_TYPE
-  , pattern GL_RENDERBUFFER
-  , pattern GL_SAMPLES
-  , pattern GL_SHADER_IMAGE_ATOMIC
-  , pattern GL_SHADER_IMAGE_LOAD
-  , pattern GL_SHADER_IMAGE_STORE
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST
-  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE
-  , pattern GL_SRGB_DECODE_ARB
-  , pattern GL_SRGB_READ
-  , pattern GL_SRGB_WRITE
-  , pattern GL_STENCIL_COMPONENTS
-  , pattern GL_STENCIL_RENDERABLE
-  , pattern GL_TESS_CONTROL_TEXTURE
-  , pattern GL_TESS_EVALUATION_TEXTURE
-  , pattern GL_TEXTURE_1D
-  , pattern GL_TEXTURE_1D_ARRAY
-  , pattern GL_TEXTURE_2D
-  , pattern GL_TEXTURE_2D_ARRAY
-  , pattern GL_TEXTURE_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_3D
-  , pattern GL_TEXTURE_BUFFER
-  , pattern GL_TEXTURE_COMPRESSED
-  , pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT
-  , pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE
-  , pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH
-  , pattern GL_TEXTURE_CUBE_MAP
-  , pattern GL_TEXTURE_CUBE_MAP_ARRAY
-  , pattern GL_TEXTURE_GATHER
-  , pattern GL_TEXTURE_GATHER_SHADOW
-  , pattern GL_TEXTURE_IMAGE_FORMAT
-  , pattern GL_TEXTURE_IMAGE_TYPE
-  , pattern GL_TEXTURE_RECTANGLE
-  , pattern GL_TEXTURE_SHADOW
-  , pattern GL_TEXTURE_VIEW
-  , pattern GL_VERTEX_TEXTURE
-  , pattern GL_VIEW_CLASS_128_BITS
-  , pattern GL_VIEW_CLASS_16_BITS
-  , pattern GL_VIEW_CLASS_24_BITS
-  , pattern GL_VIEW_CLASS_32_BITS
-  , pattern GL_VIEW_CLASS_48_BITS
-  , pattern GL_VIEW_CLASS_64_BITS
-  , pattern GL_VIEW_CLASS_8_BITS
-  , pattern GL_VIEW_CLASS_96_BITS
-  , pattern GL_VIEW_CLASS_BPTC_FLOAT
-  , pattern GL_VIEW_CLASS_BPTC_UNORM
-  , pattern GL_VIEW_CLASS_RGTC1_RED
-  , pattern GL_VIEW_CLASS_RGTC2_RG
-  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGB
-  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA
-  , pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA
-  , pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA
-  , pattern GL_VIEW_COMPATIBILITY_CLASS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query2.txt GL_ARB_internalformat_query2> extension is available.
-
-gl_ARB_internalformat_query2 :: Bool
-gl_ARB_internalformat_query2 = member "GL_ARB_internalformat_query2" extensions
-{-# NOINLINE gl_ARB_internalformat_query2 #-}
-
-pattern GL_SRGB_DECODE_ARB = 0x8299
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/InvalidateSubdata.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/InvalidateSubdata.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/InvalidateSubdata.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.InvalidateSubdata (
-  -- * Extension Support
-    gl_ARB_invalidate_subdata
-
-  -- * GL_ARB_invalidate_subdata
-  , glInvalidateBufferData
-  , glInvalidateBufferSubData
-  , glInvalidateFramebuffer
-  , glInvalidateSubFramebuffer
-  , glInvalidateTexImage
-  , glInvalidateTexSubImage
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/invalidate_subdata.txt GL_ARB_invalidate_subdata> extension is available.
-
-gl_ARB_invalidate_subdata :: Bool
-gl_ARB_invalidate_subdata = member "GL_ARB_invalidate_subdata" extensions
-{-# NOINLINE gl_ARB_invalidate_subdata #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/MapBufferAlignment.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/MapBufferAlignment.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/MapBufferAlignment.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.MapBufferAlignment (
-  -- * Extension Support
-    gl_ARB_map_buffer_alignment
-
-  -- * GL_ARB_map_buffer_alignment
-  , pattern GL_MIN_MAP_BUFFER_ALIGNMENT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_alignment.txt GL_ARB_map_buffer_alignment> extension is available.
-
-gl_ARB_map_buffer_alignment :: Bool
-gl_ARB_map_buffer_alignment = member "GL_ARB_map_buffer_alignment" extensions
-{-# NOINLINE gl_ARB_map_buffer_alignment #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/MapBufferRange.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/MapBufferRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/MapBufferRange.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.MapBufferRange (
-  -- * Extension Support
-    gl_ARB_map_buffer_range
-
-  -- * GL_ARB_map_buffer_range
-  , glFlushMappedBufferRange
-  , glMapBufferRange
-  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
-  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
-  , pattern GL_MAP_INVALIDATE_RANGE_BIT
-  , pattern GL_MAP_READ_BIT
-  , pattern GL_MAP_UNSYNCHRONIZED_BIT
-  , pattern GL_MAP_WRITE_BIT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_range.txt GL_ARB_map_buffer_range> extension is available.
-
-gl_ARB_map_buffer_range :: Bool
-gl_ARB_map_buffer_range = member "GL_ARB_map_buffer_range" extensions
-{-# NOINLINE gl_ARB_map_buffer_range #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/MatrixPalette.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/MatrixPalette.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/MatrixPalette.hs
+++ /dev/null
@@ -1,122 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.MatrixPalette (
-  -- * Extension Support
-    gl_ARB_matrix_palette
-
-  -- * GL_ARB_matrix_palette
-  , glCurrentPaletteMatrixARB
-  , glMatrixIndexPointerARB
-  , glMatrixIndexubvARB
-  , glMatrixIndexuivARB
-  , glMatrixIndexusvARB
-  , pattern GL_CURRENT_MATRIX_INDEX_ARB
-  , pattern GL_CURRENT_PALETTE_MATRIX_ARB
-  , pattern GL_MATRIX_INDEX_ARRAY_ARB
-  , pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB
-  , pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB
-  , pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB
-  , pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB
-  , pattern GL_MATRIX_PALETTE_ARB
-  , pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB
-  , pattern GL_MAX_PALETTE_MATRICES_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/matrix_palette.txt GL_ARB_matrix_palette> extension is available.
-
-gl_ARB_matrix_palette :: Bool
-gl_ARB_matrix_palette = member "GL_ARB_matrix_palette" extensions
-{-# NOINLINE gl_ARB_matrix_palette #-}
-
--- | Usage: @'glCurrentPaletteMatrixARB' index@
-
-
-glCurrentPaletteMatrixARB :: MonadIO m => GLint -> m ()
-glCurrentPaletteMatrixARB = ffiintIOV glCurrentPaletteMatrixARBFunPtr
-
-glCurrentPaletteMatrixARBFunPtr :: FunPtr (GLint -> IO ())
-glCurrentPaletteMatrixARBFunPtr = unsafePerformIO (getProcAddress "glCurrentPaletteMatrixARB")
-
-{-# NOINLINE glCurrentPaletteMatrixARBFunPtr #-}
-
--- | Usage: @'glMatrixIndexPointerARB' size type stride pointer@
---
--- The parameter @type@ is a @MatrixIndexPointerTypeARB@.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glMatrixIndexPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glMatrixIndexPointerARB = ffiintenumsizeiPtrVIOV glMatrixIndexPointerARBFunPtr
-
-glMatrixIndexPointerARBFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glMatrixIndexPointerARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexPointerARB")
-
-{-# NOINLINE glMatrixIndexPointerARBFunPtr #-}
-
--- | Usage: @'glMatrixIndexubvARB' size indices@
---
--- The length of @indices@ should be @size@.
-
-
-glMatrixIndexubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
-glMatrixIndexubvARB = ffiintPtrubyteIOV glMatrixIndexubvARBFunPtr
-
-glMatrixIndexubvARBFunPtr :: FunPtr (GLint -> Ptr GLubyte -> IO ())
-glMatrixIndexubvARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexubvARB")
-
-{-# NOINLINE glMatrixIndexubvARBFunPtr #-}
-
--- | Usage: @'glMatrixIndexuivARB' size indices@
---
--- The length of @indices@ should be @size@.
-
-
-glMatrixIndexuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
-glMatrixIndexuivARB = ffiintPtruintIOV glMatrixIndexuivARBFunPtr
-
-glMatrixIndexuivARBFunPtr :: FunPtr (GLint -> Ptr GLuint -> IO ())
-glMatrixIndexuivARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexuivARB")
-
-{-# NOINLINE glMatrixIndexuivARBFunPtr #-}
-
--- | Usage: @'glMatrixIndexusvARB' size indices@
---
--- The length of @indices@ should be @size@.
-
-
-glMatrixIndexusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
-glMatrixIndexusvARB = ffiintPtrushortIOV glMatrixIndexusvARBFunPtr
-
-glMatrixIndexusvARBFunPtr :: FunPtr (GLint -> Ptr GLushort -> IO ())
-glMatrixIndexusvARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexusvARB")
-
-{-# NOINLINE glMatrixIndexusvARBFunPtr #-}
-
-pattern GL_CURRENT_MATRIX_INDEX_ARB = 0x8845
-
-pattern GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843
-
-pattern GL_MATRIX_INDEX_ARRAY_ARB = 0x8844
-
-pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849
-
-pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846
-
-pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848
-
-pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847
-
-pattern GL_MATRIX_PALETTE_ARB = 0x8840
-
-pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841
-
-pattern GL_MAX_PALETTE_MATRICES_ARB = 0x8842
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/MultiBind.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/MultiBind.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/MultiBind.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.MultiBind (
-  -- * Extension Support
-    gl_ARB_multi_bind
-
-  -- * GL_ARB_multi_bind
-  , glBindBuffersBase
-  , glBindBuffersRange
-  , glBindImageTextures
-  , glBindSamplers
-  , glBindTextures
-  , glBindVertexBuffers
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_bind.txt GL_ARB_multi_bind> extension is available.
-
-gl_ARB_multi_bind :: Bool
-gl_ARB_multi_bind = member "GL_ARB_multi_bind" extensions
-{-# NOINLINE gl_ARB_multi_bind #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/MultiDrawIndirect.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/MultiDrawIndirect.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/MultiDrawIndirect.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.MultiDrawIndirect (
-  -- * Extension Support
-    gl_ARB_multi_draw_indirect
-
-  -- * GL_ARB_multi_draw_indirect
-  , glMultiDrawArraysIndirect
-  , glMultiDrawElementsIndirect
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_draw_indirect.txt GL_ARB_multi_draw_indirect> extension is available.
-
-gl_ARB_multi_draw_indirect :: Bool
-gl_ARB_multi_draw_indirect = member "GL_ARB_multi_draw_indirect" extensions
-{-# NOINLINE gl_ARB_multi_draw_indirect #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/Multisample.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/Multisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/Multisample.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.Multisample (
-  -- * Extension Support
-    gl_ARB_multisample
-
-  -- * GL_ARB_multisample
-  , glSampleCoverageARB
-  , pattern GL_MULTISAMPLE_ARB
-  , pattern GL_MULTISAMPLE_BIT_ARB
-  , pattern GL_SAMPLES_ARB
-  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
-  , pattern GL_SAMPLE_ALPHA_TO_ONE_ARB
-  , pattern GL_SAMPLE_BUFFERS_ARB
-  , pattern GL_SAMPLE_COVERAGE_ARB
-  , pattern GL_SAMPLE_COVERAGE_INVERT_ARB
-  , pattern GL_SAMPLE_COVERAGE_VALUE_ARB
-) 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/ARB/multisample.txt GL_ARB_multisample> extension is available.
-
-gl_ARB_multisample :: Bool
-gl_ARB_multisample = member "GL_ARB_multisample" extensions
-{-# NOINLINE gl_ARB_multisample #-}
-
--- | Usage: @'glSampleCoverageARB' value invert@
---
--- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSampleCoverage'.
-
-
-glSampleCoverageARB :: MonadIO m => GLfloat -> GLboolean -> m ()
-glSampleCoverageARB = ffifloatbooleanIOV glSampleCoverageARBFunPtr
-
-glSampleCoverageARBFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
-glSampleCoverageARBFunPtr = unsafePerformIO (getProcAddress "glSampleCoverageARB")
-
-{-# NOINLINE glSampleCoverageARBFunPtr #-}
-
-pattern GL_MULTISAMPLE_ARB = 0x809D
-
-pattern GL_MULTISAMPLE_BIT_ARB = 0x20000000
-
-pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E
-
-pattern GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F
-
-pattern GL_SAMPLE_BUFFERS_ARB = 0x80A8
-
-pattern GL_SAMPLE_COVERAGE_ARB = 0x80A0
-
-pattern GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB
-
-pattern GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/Multitexture.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/Multitexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/Multitexture.hs
+++ /dev/null
@@ -1,844 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.Multitexture (
-  -- * Extension Support
-    gl_ARB_multitexture
-
-  -- * GL_ARB_multitexture
-  , glActiveTextureARB
-  , glClientActiveTextureARB
-  , glMultiTexCoord1dARB
-  , glMultiTexCoord1dvARB
-  , glMultiTexCoord1fARB
-  , glMultiTexCoord1fvARB
-  , glMultiTexCoord1iARB
-  , glMultiTexCoord1ivARB
-  , glMultiTexCoord1sARB
-  , glMultiTexCoord1svARB
-  , glMultiTexCoord2dARB
-  , glMultiTexCoord2dvARB
-  , glMultiTexCoord2fARB
-  , glMultiTexCoord2fvARB
-  , glMultiTexCoord2iARB
-  , glMultiTexCoord2ivARB
-  , glMultiTexCoord2sARB
-  , glMultiTexCoord2svARB
-  , glMultiTexCoord3dARB
-  , glMultiTexCoord3dvARB
-  , glMultiTexCoord3fARB
-  , glMultiTexCoord3fvARB
-  , glMultiTexCoord3iARB
-  , glMultiTexCoord3ivARB
-  , glMultiTexCoord3sARB
-  , glMultiTexCoord3svARB
-  , glMultiTexCoord4dARB
-  , glMultiTexCoord4dvARB
-  , glMultiTexCoord4fARB
-  , glMultiTexCoord4fvARB
-  , glMultiTexCoord4iARB
-  , glMultiTexCoord4ivARB
-  , glMultiTexCoord4sARB
-  , glMultiTexCoord4svARB
-  , pattern GL_ACTIVE_TEXTURE_ARB
-  , pattern GL_CLIENT_ACTIVE_TEXTURE_ARB
-  , pattern GL_MAX_TEXTURE_UNITS_ARB
-  , pattern GL_TEXTURE0_ARB
-  , pattern GL_TEXTURE10_ARB
-  , pattern GL_TEXTURE11_ARB
-  , pattern GL_TEXTURE12_ARB
-  , pattern GL_TEXTURE13_ARB
-  , pattern GL_TEXTURE14_ARB
-  , pattern GL_TEXTURE15_ARB
-  , pattern GL_TEXTURE16_ARB
-  , pattern GL_TEXTURE17_ARB
-  , pattern GL_TEXTURE18_ARB
-  , pattern GL_TEXTURE19_ARB
-  , pattern GL_TEXTURE1_ARB
-  , pattern GL_TEXTURE20_ARB
-  , pattern GL_TEXTURE21_ARB
-  , pattern GL_TEXTURE22_ARB
-  , pattern GL_TEXTURE23_ARB
-  , pattern GL_TEXTURE24_ARB
-  , pattern GL_TEXTURE25_ARB
-  , pattern GL_TEXTURE26_ARB
-  , pattern GL_TEXTURE27_ARB
-  , pattern GL_TEXTURE28_ARB
-  , pattern GL_TEXTURE29_ARB
-  , pattern GL_TEXTURE2_ARB
-  , pattern GL_TEXTURE30_ARB
-  , pattern GL_TEXTURE31_ARB
-  , pattern GL_TEXTURE3_ARB
-  , pattern GL_TEXTURE4_ARB
-  , pattern GL_TEXTURE5_ARB
-  , pattern GL_TEXTURE6_ARB
-  , pattern GL_TEXTURE7_ARB
-  , pattern GL_TEXTURE8_ARB
-  , pattern GL_TEXTURE9_ARB
-) 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/ARB/multitexture.txt GL_ARB_multitexture> extension is available.
-
-gl_ARB_multitexture :: Bool
-gl_ARB_multitexture = member "GL_ARB_multitexture" extensions
-{-# NOINLINE gl_ARB_multitexture #-}
-
--- | Usage: @'glActiveTextureARB' texture@
---
--- The parameter @texture@ is a @TextureUnit@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glActiveTexture'.
-
-
-glActiveTextureARB :: MonadIO m => GLenum -> m ()
-glActiveTextureARB = ffienumIOV glActiveTextureARBFunPtr
-
-glActiveTextureARBFunPtr :: FunPtr (GLenum -> IO ())
-glActiveTextureARBFunPtr = unsafePerformIO (getProcAddress "glActiveTextureARB")
-
-{-# NOINLINE glActiveTextureARBFunPtr #-}
-
--- | Usage: @'glClientActiveTextureARB' texture@
---
--- The parameter @texture@ is a @TextureUnit@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glClientActiveTexture'.
-
-
-glClientActiveTextureARB :: MonadIO m => GLenum -> m ()
-glClientActiveTextureARB = ffienumIOV glClientActiveTextureARBFunPtr
-
-glClientActiveTextureARBFunPtr :: FunPtr (GLenum -> IO ())
-glClientActiveTextureARBFunPtr = unsafePerformIO (getProcAddress "glClientActiveTextureARB")
-
-{-# NOINLINE glClientActiveTextureARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1dARB' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1dv'.
-
-
-glMultiTexCoord1dARB :: MonadIO m => GLenum -> GLdouble -> m ()
-glMultiTexCoord1dARB = ffienumdoubleIOV glMultiTexCoord1dARBFunPtr
-
-glMultiTexCoord1dARBFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
-glMultiTexCoord1dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dARB")
-
-{-# NOINLINE glMultiTexCoord1dARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1dvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1dv'.
-
-
-glMultiTexCoord1dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord1dvARB = ffienumPtrdoubleIOV glMultiTexCoord1dvARBFunPtr
-
-glMultiTexCoord1dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord1dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dvARB")
-
-{-# NOINLINE glMultiTexCoord1dvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1fARB' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1fv'.
-
-
-glMultiTexCoord1fARB :: MonadIO m => GLenum -> GLfloat -> m ()
-glMultiTexCoord1fARB = ffienumfloatIOV glMultiTexCoord1fARBFunPtr
-
-glMultiTexCoord1fARBFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glMultiTexCoord1fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fARB")
-
-{-# NOINLINE glMultiTexCoord1fARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1fvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1fv'.
-
-
-glMultiTexCoord1fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord1fvARB = ffienumPtrfloatIOV glMultiTexCoord1fvARBFunPtr
-
-glMultiTexCoord1fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord1fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fvARB")
-
-{-# NOINLINE glMultiTexCoord1fvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1iARB' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1iv'.
-
-
-glMultiTexCoord1iARB :: MonadIO m => GLenum -> GLint -> m ()
-glMultiTexCoord1iARB = ffienumintIOV glMultiTexCoord1iARBFunPtr
-
-glMultiTexCoord1iARBFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glMultiTexCoord1iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1iARB")
-
-{-# NOINLINE glMultiTexCoord1iARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1ivARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1iv'.
-
-
-glMultiTexCoord1ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord1ivARB = ffienumPtrintIOV glMultiTexCoord1ivARBFunPtr
-
-glMultiTexCoord1ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord1ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1ivARB")
-
-{-# NOINLINE glMultiTexCoord1ivARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1sARB' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1sv'.
-
-
-glMultiTexCoord1sARB :: MonadIO m => GLenum -> GLshort -> m ()
-glMultiTexCoord1sARB = ffienumshortIOV glMultiTexCoord1sARBFunPtr
-
-glMultiTexCoord1sARBFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
-glMultiTexCoord1sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1sARB")
-
-{-# NOINLINE glMultiTexCoord1sARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1svARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1sv'.
-
-
-glMultiTexCoord1svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord1svARB = ffienumPtrshortIOV glMultiTexCoord1svARBFunPtr
-
-glMultiTexCoord1svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord1svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1svARB")
-
-{-# NOINLINE glMultiTexCoord1svARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2dARB' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2dv'.
-
-
-glMultiTexCoord2dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord2dARB = ffienumdoubledoubleIOV glMultiTexCoord2dARBFunPtr
-
-glMultiTexCoord2dARBFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord2dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dARB")
-
-{-# NOINLINE glMultiTexCoord2dARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2dvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2dv'.
-
-
-glMultiTexCoord2dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord2dvARB = ffienumPtrdoubleIOV glMultiTexCoord2dvARBFunPtr
-
-glMultiTexCoord2dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord2dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dvARB")
-
-{-# NOINLINE glMultiTexCoord2dvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2fARB' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2fv'.
-
-
-glMultiTexCoord2fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord2fARB = ffienumfloatfloatIOV glMultiTexCoord2fARBFunPtr
-
-glMultiTexCoord2fARBFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord2fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fARB")
-
-{-# NOINLINE glMultiTexCoord2fARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2fvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2fv'.
-
-
-glMultiTexCoord2fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord2fvARB = ffienumPtrfloatIOV glMultiTexCoord2fvARBFunPtr
-
-glMultiTexCoord2fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord2fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fvARB")
-
-{-# NOINLINE glMultiTexCoord2fvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2iARB' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2iv'.
-
-
-glMultiTexCoord2iARB :: MonadIO m => GLenum -> GLint -> GLint -> m ()
-glMultiTexCoord2iARB = ffienumintintIOV glMultiTexCoord2iARBFunPtr
-
-glMultiTexCoord2iARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
-glMultiTexCoord2iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2iARB")
-
-{-# NOINLINE glMultiTexCoord2iARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2ivARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2iv'.
-
-
-glMultiTexCoord2ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord2ivARB = ffienumPtrintIOV glMultiTexCoord2ivARBFunPtr
-
-glMultiTexCoord2ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord2ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2ivARB")
-
-{-# NOINLINE glMultiTexCoord2ivARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2sARB' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2sv'.
-
-
-glMultiTexCoord2sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
-glMultiTexCoord2sARB = ffienumshortshortIOV glMultiTexCoord2sARBFunPtr
-
-glMultiTexCoord2sARBFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
-glMultiTexCoord2sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2sARB")
-
-{-# NOINLINE glMultiTexCoord2sARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2svARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2sv'.
-
-
-glMultiTexCoord2svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord2svARB = ffienumPtrshortIOV glMultiTexCoord2svARBFunPtr
-
-glMultiTexCoord2svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord2svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2svARB")
-
-{-# NOINLINE glMultiTexCoord2svARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3dARB' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The parameter @r@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3dv'.
-
-
-glMultiTexCoord3dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord3dARB = ffienumdoubledoubledoubleIOV glMultiTexCoord3dARBFunPtr
-
-glMultiTexCoord3dARBFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord3dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dARB")
-
-{-# NOINLINE glMultiTexCoord3dARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3dvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3dv'.
-
-
-glMultiTexCoord3dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord3dvARB = ffienumPtrdoubleIOV glMultiTexCoord3dvARBFunPtr
-
-glMultiTexCoord3dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord3dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dvARB")
-
-{-# NOINLINE glMultiTexCoord3dvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3fARB' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The parameter @r@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3fv'.
-
-
-glMultiTexCoord3fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord3fARB = ffienumfloatfloatfloatIOV glMultiTexCoord3fARBFunPtr
-
-glMultiTexCoord3fARBFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord3fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fARB")
-
-{-# NOINLINE glMultiTexCoord3fARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3fvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3fv'.
-
-
-glMultiTexCoord3fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord3fvARB = ffienumPtrfloatIOV glMultiTexCoord3fvARBFunPtr
-
-glMultiTexCoord3fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord3fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fvARB")
-
-{-# NOINLINE glMultiTexCoord3fvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3iARB' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The parameter @r@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3iv'.
-
-
-glMultiTexCoord3iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
-glMultiTexCoord3iARB = ffienumintintintIOV glMultiTexCoord3iARBFunPtr
-
-glMultiTexCoord3iARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
-glMultiTexCoord3iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3iARB")
-
-{-# NOINLINE glMultiTexCoord3iARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3ivARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3iv'.
-
-
-glMultiTexCoord3ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord3ivARB = ffienumPtrintIOV glMultiTexCoord3ivARBFunPtr
-
-glMultiTexCoord3ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord3ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3ivARB")
-
-{-# NOINLINE glMultiTexCoord3ivARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3sARB' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The parameter @r@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3sv'.
-
-
-glMultiTexCoord3sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
-glMultiTexCoord3sARB = ffienumshortshortshortIOV glMultiTexCoord3sARBFunPtr
-
-glMultiTexCoord3sARBFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-glMultiTexCoord3sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3sARB")
-
-{-# NOINLINE glMultiTexCoord3sARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3svARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3sv'.
-
-
-glMultiTexCoord3svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord3svARB = ffienumPtrshortIOV glMultiTexCoord3svARBFunPtr
-
-glMultiTexCoord3svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord3svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3svARB")
-
-{-# NOINLINE glMultiTexCoord3svARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4dARB' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The parameter @r@ is a @CoordD@.
---
--- The parameter @q@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4dv'.
-
-
-glMultiTexCoord4dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord4dARB = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dARBFunPtr
-
-glMultiTexCoord4dARBFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord4dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dARB")
-
-{-# NOINLINE glMultiTexCoord4dARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4dvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4dv'.
-
-
-glMultiTexCoord4dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord4dvARB = ffienumPtrdoubleIOV glMultiTexCoord4dvARBFunPtr
-
-glMultiTexCoord4dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord4dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dvARB")
-
-{-# NOINLINE glMultiTexCoord4dvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4fARB' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The parameter @r@ is a @CoordF@.
---
--- The parameter @q@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4fv'.
-
-
-glMultiTexCoord4fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord4fARB = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fARBFunPtr
-
-glMultiTexCoord4fARBFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord4fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fARB")
-
-{-# NOINLINE glMultiTexCoord4fARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4fvARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4fv'.
-
-
-glMultiTexCoord4fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord4fvARB = ffienumPtrfloatIOV glMultiTexCoord4fvARBFunPtr
-
-glMultiTexCoord4fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord4fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fvARB")
-
-{-# NOINLINE glMultiTexCoord4fvARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4iARB' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The parameter @r@ is a @CoordI@.
---
--- The parameter @q@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4iv'.
-
-
-glMultiTexCoord4iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
-glMultiTexCoord4iARB = ffienumintintintintIOV glMultiTexCoord4iARBFunPtr
-
-glMultiTexCoord4iARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-glMultiTexCoord4iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4iARB")
-
-{-# NOINLINE glMultiTexCoord4iARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4ivARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4iv'.
-
-
-glMultiTexCoord4ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord4ivARB = ffienumPtrintIOV glMultiTexCoord4ivARBFunPtr
-
-glMultiTexCoord4ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord4ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4ivARB")
-
-{-# NOINLINE glMultiTexCoord4ivARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4sARB' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The parameter @r@ is a @CoordS@.
---
--- The parameter @q@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4sv'.
-
-
-glMultiTexCoord4sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glMultiTexCoord4sARB = ffienumshortshortshortshortIOV glMultiTexCoord4sARBFunPtr
-
-glMultiTexCoord4sARBFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glMultiTexCoord4sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sARB")
-
-{-# NOINLINE glMultiTexCoord4sARBFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4svARB' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4sv'.
-
-
-glMultiTexCoord4svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord4svARB = ffienumPtrshortIOV glMultiTexCoord4svARBFunPtr
-
-glMultiTexCoord4svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord4svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4svARB")
-
-{-# NOINLINE glMultiTexCoord4svARBFunPtr #-}
-
-pattern GL_ACTIVE_TEXTURE_ARB = 0x84E0
-
-pattern GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1
-
-pattern GL_MAX_TEXTURE_UNITS_ARB = 0x84E2
-
-pattern GL_TEXTURE10_ARB = 0x84CA
-
-pattern GL_TEXTURE11_ARB = 0x84CB
-
-pattern GL_TEXTURE12_ARB = 0x84CC
-
-pattern GL_TEXTURE13_ARB = 0x84CD
-
-pattern GL_TEXTURE14_ARB = 0x84CE
-
-pattern GL_TEXTURE15_ARB = 0x84CF
-
-pattern GL_TEXTURE16_ARB = 0x84D0
-
-pattern GL_TEXTURE17_ARB = 0x84D1
-
-pattern GL_TEXTURE18_ARB = 0x84D2
-
-pattern GL_TEXTURE19_ARB = 0x84D3
-
-pattern GL_TEXTURE20_ARB = 0x84D4
-
-pattern GL_TEXTURE21_ARB = 0x84D5
-
-pattern GL_TEXTURE22_ARB = 0x84D6
-
-pattern GL_TEXTURE23_ARB = 0x84D7
-
-pattern GL_TEXTURE24_ARB = 0x84D8
-
-pattern GL_TEXTURE25_ARB = 0x84D9
-
-pattern GL_TEXTURE26_ARB = 0x84DA
-
-pattern GL_TEXTURE27_ARB = 0x84DB
-
-pattern GL_TEXTURE28_ARB = 0x84DC
-
-pattern GL_TEXTURE29_ARB = 0x84DD
-
-pattern GL_TEXTURE2_ARB = 0x84C2
-
-pattern GL_TEXTURE30_ARB = 0x84DE
-
-pattern GL_TEXTURE31_ARB = 0x84DF
-
-pattern GL_TEXTURE3_ARB = 0x84C3
-
-pattern GL_TEXTURE4_ARB = 0x84C4
-
-pattern GL_TEXTURE5_ARB = 0x84C5
-
-pattern GL_TEXTURE6_ARB = 0x84C6
-
-pattern GL_TEXTURE7_ARB = 0x84C7
-
-pattern GL_TEXTURE8_ARB = 0x84C8
-
-pattern GL_TEXTURE9_ARB = 0x84C9
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/OcclusionQuery.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/OcclusionQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/OcclusionQuery.hs
+++ /dev/null
@@ -1,159 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.OcclusionQuery (
-  -- * Extension Support
-    gl_ARB_occlusion_query
-
-  -- * GL_ARB_occlusion_query
-  , glBeginQueryARB
-  , glDeleteQueriesARB
-  , glEndQueryARB
-  , glGenQueriesARB
-  , glGetQueryObjectivARB
-  , glGetQueryObjectuivARB
-  , glGetQueryivARB
-  , glIsQueryARB
-  , pattern GL_CURRENT_QUERY_ARB
-  , pattern GL_QUERY_COUNTER_BITS_ARB
-  , pattern GL_QUERY_RESULT_ARB
-  , pattern GL_QUERY_RESULT_AVAILABLE_ARB
-  , pattern GL_SAMPLES_PASSED_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query.txt GL_ARB_occlusion_query> extension is available.
-
-gl_ARB_occlusion_query :: Bool
-gl_ARB_occlusion_query = member "GL_ARB_occlusion_query" extensions
-{-# NOINLINE gl_ARB_occlusion_query #-}
-
--- | Usage: @'glBeginQueryARB' target id@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginQuery'.
-
-
-glBeginQueryARB :: MonadIO m => GLenum -> GLuint -> m ()
-glBeginQueryARB = ffienumuintIOV glBeginQueryARBFunPtr
-
-glBeginQueryARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBeginQueryARBFunPtr = unsafePerformIO (getProcAddress "glBeginQueryARB")
-
-{-# NOINLINE glBeginQueryARBFunPtr #-}
-
--- | Usage: @'glDeleteQueriesARB' n ids@
---
--- The length of @ids@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteQueries'.
-
-
-glDeleteQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteQueriesARB = ffisizeiPtruintIOV glDeleteQueriesARBFunPtr
-
-glDeleteQueriesARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteQueriesARBFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesARB")
-
-{-# NOINLINE glDeleteQueriesARBFunPtr #-}
-
--- | Usage: @'glEndQueryARB' target@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEndQuery'.
-
-
-glEndQueryARB :: MonadIO m => GLenum -> m ()
-glEndQueryARB = ffienumIOV glEndQueryARBFunPtr
-
-glEndQueryARBFunPtr :: FunPtr (GLenum -> IO ())
-glEndQueryARBFunPtr = unsafePerformIO (getProcAddress "glEndQueryARB")
-
-{-# NOINLINE glEndQueryARBFunPtr #-}
-
--- | Usage: @'glGenQueriesARB' n ids@
---
--- The length of @ids@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenQueries'.
-
-
-glGenQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenQueriesARB = ffisizeiPtruintIOV glGenQueriesARBFunPtr
-
-glGenQueriesARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenQueriesARBFunPtr = unsafePerformIO (getProcAddress "glGenQueriesARB")
-
-{-# NOINLINE glGenQueriesARBFunPtr #-}
-
--- | Usage: @'glGetQueryObjectivARB' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectiv'.
-
-
-glGetQueryObjectivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryObjectivARB = ffiuintenumPtrintIOV glGetQueryObjectivARBFunPtr
-
-glGetQueryObjectivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryObjectivARBFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectivARB")
-
-{-# NOINLINE glGetQueryObjectivARBFunPtr #-}
-
--- | Usage: @'glGetQueryObjectuivARB' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectuiv'.
-
-
-glGetQueryObjectuivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetQueryObjectuivARB = ffiuintenumPtruintIOV glGetQueryObjectuivARBFunPtr
-
-glGetQueryObjectuivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetQueryObjectuivARBFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivARB")
-
-{-# NOINLINE glGetQueryObjectuivARBFunPtr #-}
-
--- | Usage: @'glGetQueryivARB' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryiv'.
-
-
-glGetQueryivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetQueryivARB = ffienumenumPtrintIOV glGetQueryivARBFunPtr
-
-glGetQueryivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetQueryivARBFunPtr = unsafePerformIO (getProcAddress "glGetQueryivARB")
-
-{-# NOINLINE glGetQueryivARBFunPtr #-}
-
--- | Usage: @'glIsQueryARB' id@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsQuery'.
-
-
-glIsQueryARB :: MonadIO m => GLuint -> m GLboolean
-glIsQueryARB = ffiuintIOboolean glIsQueryARBFunPtr
-
-glIsQueryARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsQueryARBFunPtr = unsafePerformIO (getProcAddress "glIsQueryARB")
-
-{-# NOINLINE glIsQueryARBFunPtr #-}
-
-pattern GL_CURRENT_QUERY_ARB = 0x8865
-
-pattern GL_QUERY_COUNTER_BITS_ARB = 0x8864
-
-pattern GL_QUERY_RESULT_ARB = 0x8866
-
-pattern GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867
-
-pattern GL_SAMPLES_PASSED_ARB = 0x8914
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/OcclusionQuery2.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/OcclusionQuery2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/OcclusionQuery2.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.OcclusionQuery2 (
-  -- * Extension Support
-    gl_ARB_occlusion_query2
-
-  -- * GL_ARB_occlusion_query2
-  , pattern GL_ANY_SAMPLES_PASSED
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query2.txt GL_ARB_occlusion_query2> extension is available.
-
-gl_ARB_occlusion_query2 :: Bool
-gl_ARB_occlusion_query2 = member "GL_ARB_occlusion_query2" extensions
-{-# NOINLINE gl_ARB_occlusion_query2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ParallelShaderCompile (
-  -- * Extension Support
-    gl_ARB_parallel_shader_compile
-
-  -- * GL_ARB_parallel_shader_compile
-  , glMaxShaderCompilerThreadsARB
-  , pattern GL_COMPLETION_STATUS_ARB
-  , pattern GL_MAX_SHADER_COMPILER_THREADS_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/parallel_shader_compile.txt GL_ARB_parallel_shader_compile> extension is available.
-
-gl_ARB_parallel_shader_compile :: Bool
-gl_ARB_parallel_shader_compile = member "GL_ARB_parallel_shader_compile" extensions
-{-# NOINLINE gl_ARB_parallel_shader_compile #-}
-
--- | Usage: @'glMaxShaderCompilerThreadsARB' count@
-
-
-glMaxShaderCompilerThreadsARB :: MonadIO m => GLuint -> m ()
-glMaxShaderCompilerThreadsARB = ffiuintIOV glMaxShaderCompilerThreadsARBFunPtr
-
-glMaxShaderCompilerThreadsARBFunPtr :: FunPtr (GLuint -> IO ())
-glMaxShaderCompilerThreadsARBFunPtr = unsafePerformIO (getProcAddress "glMaxShaderCompilerThreadsARB")
-
-{-# NOINLINE glMaxShaderCompilerThreadsARBFunPtr #-}
-
-pattern GL_COMPLETION_STATUS_ARB = 0x91B1
-
-pattern GL_MAX_SHADER_COMPILER_THREADS_ARB = 0x91B0
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs
+++ /dev/null
@@ -1,49 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.PipelineStatisticsQuery (
-  -- * Extension Support
-    gl_ARB_pipeline_statistics_query
-
-  -- * GL_ARB_pipeline_statistics_query
-  , pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB
-  , pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB
-  , pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB
-  , pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB
-  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
-  , pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB
-  , pattern GL_PRIMITIVES_SUBMITTED_ARB
-  , pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB
-  , pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB
-  , pattern GL_VERTEX_SHADER_INVOCATIONS_ARB
-  , pattern GL_VERTICES_SUBMITTED_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pipeline_statistics_query.txt GL_ARB_pipeline_statistics_query> extension is available.
-
-gl_ARB_pipeline_statistics_query :: Bool
-gl_ARB_pipeline_statistics_query = member "GL_ARB_pipeline_statistics_query" extensions
-{-# NOINLINE gl_ARB_pipeline_statistics_query #-}
-
-pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6
-
-pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7
-
-pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5
-
-pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4
-
-pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3
-
-pattern GL_PRIMITIVES_SUBMITTED_ARB = 0x82EF
-
-pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1
-
-pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2
-
-pattern GL_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0
-
-pattern GL_VERTICES_SUBMITTED_ARB = 0x82EE
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/PixelBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/PixelBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/PixelBufferObject.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.PixelBufferObject (
-  -- * Extension Support
-    gl_ARB_pixel_buffer_object
-
-  -- * GL_ARB_pixel_buffer_object
-  , pattern GL_PIXEL_PACK_BUFFER_ARB
-  , pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB
-  , pattern GL_PIXEL_UNPACK_BUFFER_ARB
-  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pixel_buffer_object.txt GL_ARB_pixel_buffer_object> extension is available.
-
-gl_ARB_pixel_buffer_object :: Bool
-gl_ARB_pixel_buffer_object = member "GL_ARB_pixel_buffer_object" extensions
-{-# NOINLINE gl_ARB_pixel_buffer_object #-}
-
-pattern GL_PIXEL_PACK_BUFFER_ARB = 0x88EB
-
-pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED
-
-pattern GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC
-
-pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/PointParameters.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/PointParameters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/PointParameters.hs
+++ /dev/null
@@ -1,72 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.PointParameters (
-  -- * Extension Support
-    gl_ARB_point_parameters
-
-  -- * GL_ARB_point_parameters
-  , glPointParameterfARB
-  , glPointParameterfvARB
-  , pattern GL_POINT_DISTANCE_ATTENUATION_ARB
-  , pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB
-  , pattern GL_POINT_SIZE_MAX_ARB
-  , pattern GL_POINT_SIZE_MIN_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_parameters.txt GL_ARB_point_parameters> extension is available.
-
-gl_ARB_point_parameters :: Bool
-gl_ARB_point_parameters = member "GL_ARB_point_parameters" extensions
-{-# NOINLINE gl_ARB_point_parameters #-}
-
--- | Usage: @'glPointParameterfARB' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @param@ is a @CheckedFloat32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterf'.
-
-
-glPointParameterfARB :: MonadIO m => GLenum -> GLfloat -> m ()
-glPointParameterfARB = ffienumfloatIOV glPointParameterfARBFunPtr
-
-glPointParameterfARBFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPointParameterfARBFunPtr = unsafePerformIO (getProcAddress "glPointParameterfARB")
-
-{-# NOINLINE glPointParameterfARBFunPtr #-}
-
--- | Usage: @'glPointParameterfvARB' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterfv'.
-
-
-glPointParameterfvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPointParameterfvARB = ffienumPtrfloatIOV glPointParameterfvARBFunPtr
-
-glPointParameterfvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPointParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glPointParameterfvARB")
-
-{-# NOINLINE glPointParameterfvARBFunPtr #-}
-
-pattern GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129
-
-pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128
-
-pattern GL_POINT_SIZE_MAX_ARB = 0x8127
-
-pattern GL_POINT_SIZE_MIN_ARB = 0x8126
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/PointSprite.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/PointSprite.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/PointSprite.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.PointSprite (
-  -- * Extension Support
-    gl_ARB_point_sprite
-
-  -- * GL_ARB_point_sprite
-  , pattern GL_COORD_REPLACE_ARB
-  , pattern GL_POINT_SPRITE_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_sprite.txt GL_ARB_point_sprite> extension is available.
-
-gl_ARB_point_sprite :: Bool
-gl_ARB_point_sprite = member "GL_ARB_point_sprite" extensions
-{-# NOINLINE gl_ARB_point_sprite #-}
-
-pattern GL_COORD_REPLACE_ARB = 0x8862
-
-pattern GL_POINT_SPRITE_ARB = 0x8861
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/PostDepthCoverage.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/PostDepthCoverage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/PostDepthCoverage.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.PostDepthCoverage (
-  -- * Extension Support
-    gl_ARB_post_depth_coverage
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/post_depth_coverage.txt GL_ARB_post_depth_coverage> extension is available.
-
-gl_ARB_post_depth_coverage :: Bool
-gl_ARB_post_depth_coverage = member "GL_ARB_post_depth_coverage" extensions
-{-# NOINLINE gl_ARB_post_depth_coverage #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ProgramInterfaceQuery.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ProgramInterfaceQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ProgramInterfaceQuery.hs
+++ /dev/null
@@ -1,74 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ProgramInterfaceQuery (
-  -- * Extension Support
-    gl_ARB_program_interface_query
-
-  -- * GL_ARB_program_interface_query
-  , glGetProgramInterfaceiv
-  , glGetProgramResourceIndex
-  , glGetProgramResourceLocation
-  , glGetProgramResourceLocationIndex
-  , glGetProgramResourceName
-  , glGetProgramResourceiv
-  , pattern GL_ACTIVE_RESOURCES
-  , pattern GL_ACTIVE_VARIABLES
-  , pattern GL_ARRAY_SIZE
-  , pattern GL_ARRAY_STRIDE
-  , pattern GL_ATOMIC_COUNTER_BUFFER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_INDEX
-  , pattern GL_BLOCK_INDEX
-  , pattern GL_BUFFER_BINDING
-  , pattern GL_BUFFER_DATA_SIZE
-  , pattern GL_BUFFER_VARIABLE
-  , pattern GL_COMPATIBLE_SUBROUTINES
-  , pattern GL_COMPUTE_SUBROUTINE
-  , pattern GL_COMPUTE_SUBROUTINE_UNIFORM
-  , pattern GL_FRAGMENT_SUBROUTINE
-  , pattern GL_FRAGMENT_SUBROUTINE_UNIFORM
-  , pattern GL_GEOMETRY_SUBROUTINE
-  , pattern GL_GEOMETRY_SUBROUTINE_UNIFORM
-  , pattern GL_IS_PER_PATCH
-  , pattern GL_IS_ROW_MAJOR
-  , pattern GL_LOCATION
-  , pattern GL_LOCATION_INDEX
-  , pattern GL_MATRIX_STRIDE
-  , pattern GL_MAX_NAME_LENGTH
-  , pattern GL_MAX_NUM_ACTIVE_VARIABLES
-  , pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES
-  , pattern GL_NAME_LENGTH
-  , pattern GL_NUM_ACTIVE_VARIABLES
-  , pattern GL_NUM_COMPATIBLE_SUBROUTINES
-  , pattern GL_OFFSET
-  , pattern GL_PROGRAM_INPUT
-  , pattern GL_PROGRAM_OUTPUT
-  , pattern GL_REFERENCED_BY_COMPUTE_SHADER
-  , pattern GL_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER
-  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER
-  , pattern GL_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_SHADER_STORAGE_BLOCK
-  , pattern GL_TESS_CONTROL_SUBROUTINE
-  , pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM
-  , pattern GL_TESS_EVALUATION_SUBROUTINE
-  , pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
-  , pattern GL_TOP_LEVEL_ARRAY_SIZE
-  , pattern GL_TOP_LEVEL_ARRAY_STRIDE
-  , pattern GL_TRANSFORM_FEEDBACK_VARYING
-  , pattern GL_TYPE
-  , pattern GL_UNIFORM
-  , pattern GL_UNIFORM_BLOCK
-  , pattern GL_VERTEX_SUBROUTINE
-  , pattern GL_VERTEX_SUBROUTINE_UNIFORM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/program_interface_query.txt GL_ARB_program_interface_query> extension is available.
-
-gl_ARB_program_interface_query :: Bool
-gl_ARB_program_interface_query = member "GL_ARB_program_interface_query" extensions
-{-# NOINLINE gl_ARB_program_interface_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ProvokingVertex.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ProvokingVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ProvokingVertex.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ProvokingVertex (
-  -- * Extension Support
-    gl_ARB_provoking_vertex
-
-  -- * GL_ARB_provoking_vertex
-  , glProvokingVertex
-  , pattern GL_FIRST_VERTEX_CONVENTION
-  , pattern GL_LAST_VERTEX_CONVENTION
-  , pattern GL_PROVOKING_VERTEX
-  , pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/provoking_vertex.txt GL_ARB_provoking_vertex> extension is available.
-
-gl_ARB_provoking_vertex :: Bool
-gl_ARB_provoking_vertex = member "GL_ARB_provoking_vertex" extensions
-{-# NOINLINE gl_ARB_provoking_vertex #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/QueryBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/QueryBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/QueryBufferObject.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.QueryBufferObject (
-  -- * Extension Support
-    gl_ARB_query_buffer_object
-
-  -- * GL_ARB_query_buffer_object
-  , pattern GL_QUERY_BUFFER
-  , pattern GL_QUERY_BUFFER_BARRIER_BIT
-  , pattern GL_QUERY_BUFFER_BINDING
-  , pattern GL_QUERY_RESULT_NO_WAIT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/query_buffer_object.txt GL_ARB_query_buffer_object> extension is available.
-
-gl_ARB_query_buffer_object :: Bool
-gl_ARB_query_buffer_object = member "GL_ARB_query_buffer_object" extensions
-{-# NOINLINE gl_ARB_query_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/RobustBufferAccessBehavior.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/RobustBufferAccessBehavior.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/RobustBufferAccessBehavior.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.RobustBufferAccessBehavior (
-  -- * Extension Support
-    gl_ARB_robust_buffer_access_behavior
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robust_buffer_access_behavior.txt GL_ARB_robust_buffer_access_behavior> extension is available.
-
-gl_ARB_robust_buffer_access_behavior :: Bool
-gl_ARB_robust_buffer_access_behavior = member "GL_ARB_robust_buffer_access_behavior" extensions
-{-# NOINLINE gl_ARB_robust_buffer_access_behavior #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/Robustness.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/Robustness.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/Robustness.hs
+++ /dev/null
@@ -1,333 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.Robustness (
-  -- * Extension Support
-    gl_ARB_robustness
-
-  -- * GL_ARB_robustness
-  , glGetGraphicsResetStatusARB
-  , glGetnColorTableARB
-  , glGetnCompressedTexImageARB
-  , glGetnConvolutionFilterARB
-  , glGetnHistogramARB
-  , glGetnMapdvARB
-  , glGetnMapfvARB
-  , glGetnMapivARB
-  , glGetnMinmaxARB
-  , glGetnPixelMapfvARB
-  , glGetnPixelMapuivARB
-  , glGetnPixelMapusvARB
-  , glGetnPolygonStippleARB
-  , glGetnSeparableFilterARB
-  , glGetnTexImageARB
-  , glGetnUniformdvARB
-  , glGetnUniformfvARB
-  , glGetnUniformivARB
-  , glGetnUniformuivARB
-  , glReadnPixelsARB
-  , pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
-  , pattern GL_GUILTY_CONTEXT_RESET_ARB
-  , pattern GL_INNOCENT_CONTEXT_RESET_ARB
-  , pattern GL_LOSE_CONTEXT_ON_RESET_ARB
-  , pattern GL_NO_ERROR
-  , pattern GL_NO_RESET_NOTIFICATION_ARB
-  , pattern GL_RESET_NOTIFICATION_STRATEGY_ARB
-  , pattern GL_UNKNOWN_CONTEXT_RESET_ARB
-) 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/ARB/robustness.txt GL_ARB_robustness> extension is available.
-
-gl_ARB_robustness :: Bool
-gl_ARB_robustness = member "GL_ARB_robustness" extensions
-{-# NOINLINE gl_ARB_robustness #-}
-
--- | Usage: @'glGetGraphicsResetStatusARB'@
-
-
-glGetGraphicsResetStatusARB :: MonadIO m => m GLenum
-glGetGraphicsResetStatusARB = ffiIOenum glGetGraphicsResetStatusARBFunPtr
-
-glGetGraphicsResetStatusARBFunPtr :: FunPtr (IO GLenum)
-glGetGraphicsResetStatusARBFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusARB")
-
-{-# NOINLINE glGetGraphicsResetStatusARBFunPtr #-}
-
--- | Usage: @'glGetnColorTableARB' target format type bufSize table@
---
--- The length of @table@ should be @bufSize@.
-
-
-glGetnColorTableARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnColorTableARB = ffienumenumenumsizeiPtrVIOV glGetnColorTableARBFunPtr
-
-glGetnColorTableARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnColorTableARBFunPtr = unsafePerformIO (getProcAddress "glGetnColorTableARB")
-
-{-# NOINLINE glGetnColorTableARBFunPtr #-}
-
--- | Usage: @'glGetnCompressedTexImageARB' target lod bufSize img@
---
--- The length of @img@ should be @bufSize@.
-
-
-glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()
-glGetnCompressedTexImageARB = ffienumintsizeiPtrVIOV glGetnCompressedTexImageARBFunPtr
-
-glGetnCompressedTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ())
-glGetnCompressedTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetnCompressedTexImageARB")
-
-{-# NOINLINE glGetnCompressedTexImageARBFunPtr #-}
-
--- | Usage: @'glGetnConvolutionFilterARB' target format type bufSize image@
---
--- The length of @image@ should be @bufSize@.
-
-
-glGetnConvolutionFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnConvolutionFilterARB = ffienumenumenumsizeiPtrVIOV glGetnConvolutionFilterARBFunPtr
-
-glGetnConvolutionFilterARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnConvolutionFilterARBFunPtr = unsafePerformIO (getProcAddress "glGetnConvolutionFilterARB")
-
-{-# NOINLINE glGetnConvolutionFilterARBFunPtr #-}
-
--- | Usage: @'glGetnHistogramARB' target reset format type bufSize values@
---
--- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @values@ should be @bufSize@.
-
-
-glGetnHistogramARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnHistogramARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnHistogramARBFunPtr
-
-glGetnHistogramARBFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnHistogramARBFunPtr = unsafePerformIO (getProcAddress "glGetnHistogramARB")
-
-{-# NOINLINE glGetnHistogramARBFunPtr #-}
-
--- | Usage: @'glGetnMapdvARB' target query bufSize v@
---
--- The length of @v@ should be @bufSize@.
-
-
-glGetnMapdvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
-glGetnMapdvARB = ffienumenumsizeiPtrdoubleIOV glGetnMapdvARBFunPtr
-
-glGetnMapdvARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
-glGetnMapdvARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapdvARB")
-
-{-# NOINLINE glGetnMapdvARBFunPtr #-}
-
--- | Usage: @'glGetnMapfvARB' target query bufSize v@
---
--- The length of @v@ should be @bufSize@.
-
-
-glGetnMapfvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glGetnMapfvARB = ffienumenumsizeiPtrfloatIOV glGetnMapfvARBFunPtr
-
-glGetnMapfvARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnMapfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapfvARB")
-
-{-# NOINLINE glGetnMapfvARBFunPtr #-}
-
--- | Usage: @'glGetnMapivARB' target query bufSize v@
---
--- The length of @v@ should be @bufSize@.
-
-
-glGetnMapivARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
-glGetnMapivARB = ffienumenumsizeiPtrintIOV glGetnMapivARBFunPtr
-
-glGetnMapivARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
-glGetnMapivARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapivARB")
-
-{-# NOINLINE glGetnMapivARBFunPtr #-}
-
--- | Usage: @'glGetnMinmaxARB' target reset format type bufSize values@
---
--- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @values@ should be @bufSize@.
-
-
-glGetnMinmaxARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnMinmaxARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnMinmaxARBFunPtr
-
-glGetnMinmaxARBFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnMinmaxARBFunPtr = unsafePerformIO (getProcAddress "glGetnMinmaxARB")
-
-{-# NOINLINE glGetnMinmaxARBFunPtr #-}
-
--- | Usage: @'glGetnPixelMapfvARB' map bufSize values@
---
--- The length of @values@ should be @bufSize@.
-
-
-glGetnPixelMapfvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glGetnPixelMapfvARB = ffienumsizeiPtrfloatIOV glGetnPixelMapfvARBFunPtr
-
-glGetnPixelMapfvARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnPixelMapfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapfvARB")
-
-{-# NOINLINE glGetnPixelMapfvARBFunPtr #-}
-
--- | Usage: @'glGetnPixelMapuivARB' map bufSize values@
---
--- The length of @values@ should be @bufSize@.
-
-
-glGetnPixelMapuivARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glGetnPixelMapuivARB = ffienumsizeiPtruintIOV glGetnPixelMapuivARBFunPtr
-
-glGetnPixelMapuivARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glGetnPixelMapuivARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapuivARB")
-
-{-# NOINLINE glGetnPixelMapuivARBFunPtr #-}
-
--- | Usage: @'glGetnPixelMapusvARB' map bufSize values@
---
--- The length of @values@ should be @bufSize@.
-
-
-glGetnPixelMapusvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
-glGetnPixelMapusvARB = ffienumsizeiPtrushortIOV glGetnPixelMapusvARBFunPtr
-
-glGetnPixelMapusvARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
-glGetnPixelMapusvARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapusvARB")
-
-{-# NOINLINE glGetnPixelMapusvARBFunPtr #-}
-
--- | Usage: @'glGetnPolygonStippleARB' bufSize pattern@
---
--- The length of @pattern@ should be @bufSize@.
-
-
-glGetnPolygonStippleARB :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
-glGetnPolygonStippleARB = ffisizeiPtrubyteIOV glGetnPolygonStippleARBFunPtr
-
-glGetnPolygonStippleARBFunPtr :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
-glGetnPolygonStippleARBFunPtr = unsafePerformIO (getProcAddress "glGetnPolygonStippleARB")
-
-{-# NOINLINE glGetnPolygonStippleARBFunPtr #-}
-
--- | Usage: @'glGetnSeparableFilterARB' target format type rowBufSize row columnBufSize column span@
---
--- The length of @row@ should be @rowBufSize@.
---
--- The length of @column@ should be @columnBufSize@.
---
--- The length of @span@ should be @0@.
-
-
-glGetnSeparableFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
-glGetnSeparableFilterARB = ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV glGetnSeparableFilterARBFunPtr
-
-glGetnSeparableFilterARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ())
-glGetnSeparableFilterARBFunPtr = unsafePerformIO (getProcAddress "glGetnSeparableFilterARB")
-
-{-# NOINLINE glGetnSeparableFilterARBFunPtr #-}
-
--- | Usage: @'glGetnTexImageARB' target level format type bufSize img@
---
--- The length of @img@ should be @bufSize@.
-
-
-glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetnTexImageARB = ffienumintenumenumsizeiPtrVIOV glGetnTexImageARBFunPtr
-
-glGetnTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetnTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetnTexImageARB")
-
-{-# NOINLINE glGetnTexImageARBFunPtr #-}
-
--- | Usage: @'glGetnUniformdvARB' program location bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glGetnUniformdvARB = ffiuintintsizeiPtrdoubleIOV glGetnUniformdvARBFunPtr
-
-glGetnUniformdvARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glGetnUniformdvARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformdvARB")
-
-{-# NOINLINE glGetnUniformdvARBFunPtr #-}
-
--- | Usage: @'glGetnUniformfvARB' program location bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glGetnUniformfvARB = ffiuintintsizeiPtrfloatIOV glGetnUniformfvARBFunPtr
-
-glGetnUniformfvARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnUniformfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfvARB")
-
-{-# NOINLINE glGetnUniformfvARBFunPtr #-}
-
--- | Usage: @'glGetnUniformivARB' program location bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glGetnUniformivARB = ffiuintintsizeiPtrintIOV glGetnUniformivARBFunPtr
-
-glGetnUniformivARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glGetnUniformivARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivARB")
-
-{-# NOINLINE glGetnUniformivARBFunPtr #-}
-
--- | Usage: @'glGetnUniformuivARB' program location bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetnUniformuivARB = ffiuintintsizeiPtruintIOV glGetnUniformuivARBFunPtr
-
-glGetnUniformuivARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetnUniformuivARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivARB")
-
-{-# NOINLINE glGetnUniformuivARBFunPtr #-}
-
--- | Usage: @'glReadnPixelsARB' x y width height format type bufSize data@
---
--- The length of @data@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glReadnPixels'.
-
-
-glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glReadnPixelsARB = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsARBFunPtr
-
-glReadnPixelsARBFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glReadnPixelsARBFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsARB")
-
-{-# NOINLINE glReadnPixelsARBFunPtr #-}
-
-pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004
-
-pattern GL_GUILTY_CONTEXT_RESET_ARB = 0x8253
-
-pattern GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254
-
-pattern GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252
-
-pattern GL_NO_RESET_NOTIFICATION_ARB = 0x8261
-
-pattern GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256
-
-pattern GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/RobustnessIsolation.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/RobustnessIsolation.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/RobustnessIsolation.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.RobustnessIsolation (
-  -- * Extension Support
-    gl_ARB_robustness_isolation
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robustness_isolation.txt GL_ARB_robustness_isolation> extension is available.
-
-gl_ARB_robustness_isolation :: Bool
-gl_ARB_robustness_isolation = member "GL_ARB_robustness_isolation" extensions
-{-# NOINLINE gl_ARB_robustness_isolation #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SampleLocations.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SampleLocations.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SampleLocations.hs
+++ /dev/null
@@ -1,82 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SampleLocations (
-  -- * Extension Support
-    gl_ARB_sample_locations
-
-  -- * GL_ARB_sample_locations
-  , glEvaluateDepthValuesARB
-  , glFramebufferSampleLocationsfvARB
-  , glNamedFramebufferSampleLocationsfvARB
-  , pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB
-  , pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB
-  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB
-  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB
-  , pattern GL_SAMPLE_LOCATION_ARB
-  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB
-  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB
-  , pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sample_locations.txt GL_ARB_sample_locations> extension is available.
-
-gl_ARB_sample_locations :: Bool
-gl_ARB_sample_locations = member "GL_ARB_sample_locations" extensions
-{-# NOINLINE gl_ARB_sample_locations #-}
-
--- | Usage: @'glEvaluateDepthValuesARB'@
-
-
-glEvaluateDepthValuesARB :: MonadIO m => m ()
-glEvaluateDepthValuesARB = ffiIOV glEvaluateDepthValuesARBFunPtr
-
-glEvaluateDepthValuesARBFunPtr :: FunPtr (IO ())
-glEvaluateDepthValuesARBFunPtr = unsafePerformIO (getProcAddress "glEvaluateDepthValuesARB")
-
-{-# NOINLINE glEvaluateDepthValuesARBFunPtr #-}
-
--- | Usage: @'glFramebufferSampleLocationsfvARB' target start count v@
-
-
-glFramebufferSampleLocationsfvARB :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glFramebufferSampleLocationsfvARB = ffienumuintsizeiPtrfloatIOV glFramebufferSampleLocationsfvARBFunPtr
-
-glFramebufferSampleLocationsfvARBFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glFramebufferSampleLocationsfvARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferSampleLocationsfvARB")
-
-{-# NOINLINE glFramebufferSampleLocationsfvARBFunPtr #-}
-
--- | Usage: @'glNamedFramebufferSampleLocationsfvARB' framebuffer start count v@
-
-
-glNamedFramebufferSampleLocationsfvARB :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glNamedFramebufferSampleLocationsfvARB = ffiuintuintsizeiPtrfloatIOV glNamedFramebufferSampleLocationsfvARBFunPtr
-
-glNamedFramebufferSampleLocationsfvARBFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glNamedFramebufferSampleLocationsfvARBFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferSampleLocationsfvARB")
-
-{-# NOINLINE glNamedFramebufferSampleLocationsfvARBFunPtr #-}
-
-pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB = 0x9342
-
-pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB = 0x9343
-
-pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB = 0x9341
-
-pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB = 0x9340
-
-pattern GL_SAMPLE_LOCATION_ARB = 0x8E50
-
-pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB = 0x933F
-
-pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB = 0x933E
-
-pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB = 0x933D
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SampleShading.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SampleShading.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SampleShading.hs
+++ /dev/null
@@ -1,44 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SampleShading (
-  -- * Extension Support
-    gl_ARB_sample_shading
-
-  -- * GL_ARB_sample_shading
-  , glMinSampleShadingARB
-  , pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB
-  , pattern GL_SAMPLE_SHADING_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sample_shading.txt GL_ARB_sample_shading> extension is available.
-
-gl_ARB_sample_shading :: Bool
-gl_ARB_sample_shading = member "GL_ARB_sample_shading" extensions
-{-# NOINLINE gl_ARB_sample_shading #-}
-
--- | Usage: @'glMinSampleShadingARB' value@
---
--- The parameter @value@ is a @ColorF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMinSampleShading'.
-
-
-glMinSampleShadingARB :: MonadIO m => GLfloat -> m ()
-glMinSampleShadingARB = ffifloatIOV glMinSampleShadingARBFunPtr
-
-glMinSampleShadingARBFunPtr :: FunPtr (GLfloat -> IO ())
-glMinSampleShadingARBFunPtr = unsafePerformIO (getProcAddress "glMinSampleShadingARB")
-
-{-# NOINLINE glMinSampleShadingARBFunPtr #-}
-
-pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37
-
-pattern GL_SAMPLE_SHADING_ARB = 0x8C36
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SamplerObjects.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SamplerObjects.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SamplerObjects.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SamplerObjects (
-  -- * Extension Support
-    gl_ARB_sampler_objects
-
-  -- * GL_ARB_sampler_objects
-  , glBindSampler
-  , glDeleteSamplers
-  , glGenSamplers
-  , glGetSamplerParameterIiv
-  , glGetSamplerParameterIuiv
-  , glGetSamplerParameterfv
-  , glGetSamplerParameteriv
-  , glIsSampler
-  , glSamplerParameterIiv
-  , glSamplerParameterIuiv
-  , glSamplerParameterf
-  , glSamplerParameterfv
-  , glSamplerParameteri
-  , glSamplerParameteriv
-  , pattern GL_SAMPLER_BINDING
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sampler_objects.txt GL_ARB_sampler_objects> extension is available.
-
-gl_ARB_sampler_objects :: Bool
-gl_ARB_sampler_objects = member "GL_ARB_sampler_objects" extensions
-{-# NOINLINE gl_ARB_sampler_objects #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SeamlessCubeMap.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SeamlessCubeMap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SeamlessCubeMap.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SeamlessCubeMap (
-  -- * Extension Support
-    gl_ARB_seamless_cube_map
-
-  -- * GL_ARB_seamless_cube_map
-  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cube_map.txt GL_ARB_seamless_cube_map> extension is available.
-
-gl_ARB_seamless_cube_map :: Bool
-gl_ARB_seamless_cube_map = member "GL_ARB_seamless_cube_map" extensions
-{-# NOINLINE gl_ARB_seamless_cube_map #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SeamlessCubemapPerTexture.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SeamlessCubemapPerTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SeamlessCubemapPerTexture.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SeamlessCubemapPerTexture (
-  -- * Extension Support
-    gl_ARB_seamless_cubemap_per_texture
-
-  -- * GL_ARB_seamless_cubemap_per_texture
-  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cubemap_per_texture.txt GL_ARB_seamless_cubemap_per_texture> extension is available.
-
-gl_ARB_seamless_cubemap_per_texture :: Bool
-gl_ARB_seamless_cubemap_per_texture = member "GL_ARB_seamless_cubemap_per_texture" extensions
-{-# NOINLINE gl_ARB_seamless_cubemap_per_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SeparateShaderObjects.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SeparateShaderObjects.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SeparateShaderObjects.hs
+++ /dev/null
@@ -1,87 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SeparateShaderObjects (
-  -- * Extension Support
-    gl_ARB_separate_shader_objects
-
-  -- * GL_ARB_separate_shader_objects
-  , glActiveShaderProgram
-  , glBindProgramPipeline
-  , glCreateShaderProgramv
-  , glDeleteProgramPipelines
-  , glGenProgramPipelines
-  , glGetProgramPipelineInfoLog
-  , glGetProgramPipelineiv
-  , glIsProgramPipeline
-  , glProgramUniform1d
-  , glProgramUniform1dv
-  , glProgramUniform1f
-  , glProgramUniform1fv
-  , glProgramUniform1i
-  , glProgramUniform1iv
-  , glProgramUniform1ui
-  , glProgramUniform1uiv
-  , glProgramUniform2d
-  , glProgramUniform2dv
-  , glProgramUniform2f
-  , glProgramUniform2fv
-  , glProgramUniform2i
-  , glProgramUniform2iv
-  , glProgramUniform2ui
-  , glProgramUniform2uiv
-  , glProgramUniform3d
-  , glProgramUniform3dv
-  , glProgramUniform3f
-  , glProgramUniform3fv
-  , glProgramUniform3i
-  , glProgramUniform3iv
-  , glProgramUniform3ui
-  , glProgramUniform3uiv
-  , glProgramUniform4d
-  , glProgramUniform4dv
-  , glProgramUniform4f
-  , glProgramUniform4fv
-  , glProgramUniform4i
-  , glProgramUniform4iv
-  , glProgramUniform4ui
-  , glProgramUniform4uiv
-  , glProgramUniformMatrix2dv
-  , glProgramUniformMatrix2fv
-  , glProgramUniformMatrix2x3dv
-  , glProgramUniformMatrix2x3fv
-  , glProgramUniformMatrix2x4dv
-  , glProgramUniformMatrix2x4fv
-  , glProgramUniformMatrix3dv
-  , glProgramUniformMatrix3fv
-  , glProgramUniformMatrix3x2dv
-  , glProgramUniformMatrix3x2fv
-  , glProgramUniformMatrix3x4dv
-  , glProgramUniformMatrix3x4fv
-  , glProgramUniformMatrix4dv
-  , glProgramUniformMatrix4fv
-  , glProgramUniformMatrix4x2dv
-  , glProgramUniformMatrix4x2fv
-  , glProgramUniformMatrix4x3dv
-  , glProgramUniformMatrix4x3fv
-  , glUseProgramStages
-  , glValidateProgramPipeline
-  , pattern GL_ACTIVE_PROGRAM
-  , pattern GL_ALL_SHADER_BITS
-  , pattern GL_FRAGMENT_SHADER_BIT
-  , pattern GL_GEOMETRY_SHADER_BIT
-  , pattern GL_PROGRAM_PIPELINE_BINDING
-  , pattern GL_PROGRAM_SEPARABLE
-  , pattern GL_TESS_CONTROL_SHADER_BIT
-  , pattern GL_TESS_EVALUATION_SHADER_BIT
-  , pattern GL_VERTEX_SHADER_BIT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/separate_shader_objects.txt GL_ARB_separate_shader_objects> extension is available.
-
-gl_ARB_separate_shader_objects :: Bool
-gl_ARB_separate_shader_objects = member "GL_ARB_separate_shader_objects" extensions
-{-# NOINLINE gl_ARB_separate_shader_objects #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderAtomicCounterOps.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderAtomicCounterOps.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderAtomicCounterOps.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderAtomicCounterOps (
-  -- * Extension Support
-    gl_ARB_shader_atomic_counter_ops
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_atomic_counter_ops.txt GL_ARB_shader_atomic_counter_ops> extension is available.
-
-gl_ARB_shader_atomic_counter_ops :: Bool
-gl_ARB_shader_atomic_counter_ops = member "GL_ARB_shader_atomic_counter_ops" extensions
-{-# NOINLINE gl_ARB_shader_atomic_counter_ops #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderAtomicCounters.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderAtomicCounters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderAtomicCounters.hs
+++ /dev/null
@@ -1,48 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderAtomicCounters (
-  -- * Extension Support
-    gl_ARB_shader_atomic_counters
-
-  -- * GL_ARB_shader_atomic_counters
-  , glGetActiveAtomicCounterBufferiv
-  , pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_ATOMIC_COUNTER_BUFFER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
-  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
-  , pattern GL_ATOMIC_COUNTER_BUFFER_BINDING
-  , pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_ATOMIC_COUNTER_BUFFER_SIZE
-  , pattern GL_ATOMIC_COUNTER_BUFFER_START
-  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
-  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
-  , pattern GL_MAX_COMBINED_ATOMIC_COUNTERS
-  , pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS
-  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_MAX_VERTEX_ATOMIC_COUNTERS
-  , pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
-  , pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
-  , pattern GL_UNSIGNED_INT_ATOMIC_COUNTER
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_atomic_counters.txt GL_ARB_shader_atomic_counters> extension is available.
-
-gl_ARB_shader_atomic_counters :: Bool
-gl_ARB_shader_atomic_counters = member "GL_ARB_shader_atomic_counters" extensions
-{-# NOINLINE gl_ARB_shader_atomic_counters #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderBallot.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderBallot.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderBallot.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderBallot (
-  -- * Extension Support
-    gl_ARB_shader_ballot
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_ballot.txt GL_ARB_shader_ballot> extension is available.
-
-gl_ARB_shader_ballot :: Bool
-gl_ARB_shader_ballot = member "GL_ARB_shader_ballot" extensions
-{-# NOINLINE gl_ARB_shader_ballot #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderBitEncoding.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderBitEncoding.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderBitEncoding.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderBitEncoding (
-  -- * Extension Support
-    gl_ARB_shader_bit_encoding
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_bit_encoding.txt GL_ARB_shader_bit_encoding> extension is available.
-
-gl_ARB_shader_bit_encoding :: Bool
-gl_ARB_shader_bit_encoding = member "GL_ARB_shader_bit_encoding" extensions
-{-# NOINLINE gl_ARB_shader_bit_encoding #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderClock.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderClock.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderClock.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderClock (
-  -- * Extension Support
-    gl_ARB_shader_clock
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_clock.txt GL_ARB_shader_clock> extension is available.
-
-gl_ARB_shader_clock :: Bool
-gl_ARB_shader_clock = member "GL_ARB_shader_clock" extensions
-{-# NOINLINE gl_ARB_shader_clock #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderDrawParameters.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderDrawParameters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderDrawParameters.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderDrawParameters (
-  -- * Extension Support
-    gl_ARB_shader_draw_parameters
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_draw_parameters.txt GL_ARB_shader_draw_parameters> extension is available.
-
-gl_ARB_shader_draw_parameters :: Bool
-gl_ARB_shader_draw_parameters = member "GL_ARB_shader_draw_parameters" extensions
-{-# NOINLINE gl_ARB_shader_draw_parameters #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderGroupVote.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderGroupVote.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderGroupVote.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderGroupVote (
-  -- * Extension Support
-    gl_ARB_shader_group_vote
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_group_vote.txt GL_ARB_shader_group_vote> extension is available.
-
-gl_ARB_shader_group_vote :: Bool
-gl_ARB_shader_group_vote = member "GL_ARB_shader_group_vote" extensions
-{-# NOINLINE gl_ARB_shader_group_vote #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderImageLoadStore.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderImageLoadStore.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderImageLoadStore.hs
+++ /dev/null
@@ -1,84 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderImageLoadStore (
-  -- * Extension Support
-    gl_ARB_shader_image_load_store
-
-  -- * GL_ARB_shader_image_load_store
-  , glBindImageTexture
-  , glMemoryBarrier
-  , pattern GL_ALL_BARRIER_BITS
-  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT
-  , pattern GL_BUFFER_UPDATE_BARRIER_BIT
-  , pattern GL_COMMAND_BARRIER_BIT
-  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT
-  , pattern GL_FRAMEBUFFER_BARRIER_BIT
-  , pattern GL_IMAGE_1D
-  , pattern GL_IMAGE_1D_ARRAY
-  , pattern GL_IMAGE_2D
-  , pattern GL_IMAGE_2D_ARRAY
-  , pattern GL_IMAGE_2D_MULTISAMPLE
-  , pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_IMAGE_2D_RECT
-  , pattern GL_IMAGE_3D
-  , pattern GL_IMAGE_BINDING_ACCESS
-  , pattern GL_IMAGE_BINDING_FORMAT
-  , pattern GL_IMAGE_BINDING_LAYER
-  , pattern GL_IMAGE_BINDING_LAYERED
-  , pattern GL_IMAGE_BINDING_LEVEL
-  , pattern GL_IMAGE_BINDING_NAME
-  , pattern GL_IMAGE_BUFFER
-  , pattern GL_IMAGE_CUBE
-  , pattern GL_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
-  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
-  , pattern GL_INT_IMAGE_1D
-  , pattern GL_INT_IMAGE_1D_ARRAY
-  , pattern GL_INT_IMAGE_2D
-  , pattern GL_INT_IMAGE_2D_ARRAY
-  , pattern GL_INT_IMAGE_2D_MULTISAMPLE
-  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_INT_IMAGE_2D_RECT
-  , pattern GL_INT_IMAGE_3D
-  , pattern GL_INT_IMAGE_BUFFER
-  , pattern GL_INT_IMAGE_CUBE
-  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_MAX_COMBINED_IMAGE_UNIFORMS
-  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
-  , pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS
-  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS
-  , pattern GL_MAX_IMAGE_SAMPLES
-  , pattern GL_MAX_IMAGE_UNITS
-  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
-  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
-  , pattern GL_MAX_VERTEX_IMAGE_UNIFORMS
-  , pattern GL_PIXEL_BUFFER_BARRIER_BIT
-  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
-  , pattern GL_TEXTURE_FETCH_BARRIER_BIT
-  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT
-  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT
-  , pattern GL_UNIFORM_BARRIER_BIT
-  , pattern GL_UNSIGNED_INT_IMAGE_1D
-  , pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY
-  , pattern GL_UNSIGNED_INT_IMAGE_2D
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_RECT
-  , pattern GL_UNSIGNED_INT_IMAGE_3D
-  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_load_store.txt GL_ARB_shader_image_load_store> extension is available.
-
-gl_ARB_shader_image_load_store :: Bool
-gl_ARB_shader_image_load_store = member "GL_ARB_shader_image_load_store" extensions
-{-# NOINLINE gl_ARB_shader_image_load_store #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderImageSize.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderImageSize.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderImageSize.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderImageSize (
-  -- * Extension Support
-    gl_ARB_shader_image_size
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_size.txt GL_ARB_shader_image_size> extension is available.
-
-gl_ARB_shader_image_size :: Bool
-gl_ARB_shader_image_size = member "GL_ARB_shader_image_size" extensions
-{-# NOINLINE gl_ARB_shader_image_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderObjects.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderObjects.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderObjects.hs
+++ /dev/null
@@ -1,747 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderObjects (
-  -- * Extension Support
-    gl_ARB_shader_objects
-
-  -- * GL_ARB_shader_objects
-  , glAttachObjectARB
-  , glCompileShaderARB
-  , glCreateProgramObjectARB
-  , glCreateShaderObjectARB
-  , glDeleteObjectARB
-  , glDetachObjectARB
-  , glGetActiveUniformARB
-  , glGetAttachedObjectsARB
-  , glGetHandleARB
-  , glGetInfoLogARB
-  , glGetObjectParameterfvARB
-  , glGetObjectParameterivARB
-  , glGetShaderSourceARB
-  , glGetUniformLocationARB
-  , glGetUniformfvARB
-  , glGetUniformivARB
-  , glLinkProgramARB
-  , glShaderSourceARB
-  , glUniform1fARB
-  , glUniform1fvARB
-  , glUniform1iARB
-  , glUniform1ivARB
-  , glUniform2fARB
-  , glUniform2fvARB
-  , glUniform2iARB
-  , glUniform2ivARB
-  , glUniform3fARB
-  , glUniform3fvARB
-  , glUniform3iARB
-  , glUniform3ivARB
-  , glUniform4fARB
-  , glUniform4fvARB
-  , glUniform4iARB
-  , glUniform4ivARB
-  , glUniformMatrix2fvARB
-  , glUniformMatrix3fvARB
-  , glUniformMatrix4fvARB
-  , glUseProgramObjectARB
-  , glValidateProgramARB
-  , pattern GL_BOOL_ARB
-  , pattern GL_BOOL_VEC2_ARB
-  , pattern GL_BOOL_VEC3_ARB
-  , pattern GL_BOOL_VEC4_ARB
-  , pattern GL_FLOAT_MAT2_ARB
-  , pattern GL_FLOAT_MAT3_ARB
-  , pattern GL_FLOAT_MAT4_ARB
-  , pattern GL_FLOAT_VEC2_ARB
-  , pattern GL_FLOAT_VEC3_ARB
-  , pattern GL_FLOAT_VEC4_ARB
-  , pattern GL_INT_VEC2_ARB
-  , pattern GL_INT_VEC3_ARB
-  , pattern GL_INT_VEC4_ARB
-  , pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB
-  , pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
-  , pattern GL_OBJECT_ATTACHED_OBJECTS_ARB
-  , pattern GL_OBJECT_COMPILE_STATUS_ARB
-  , pattern GL_OBJECT_DELETE_STATUS_ARB
-  , pattern GL_OBJECT_INFO_LOG_LENGTH_ARB
-  , pattern GL_OBJECT_LINK_STATUS_ARB
-  , pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB
-  , pattern GL_OBJECT_SUBTYPE_ARB
-  , pattern GL_OBJECT_TYPE_ARB
-  , pattern GL_OBJECT_VALIDATE_STATUS_ARB
-  , pattern GL_PROGRAM_OBJECT_ARB
-  , pattern GL_SAMPLER_1D_ARB
-  , pattern GL_SAMPLER_1D_SHADOW_ARB
-  , pattern GL_SAMPLER_2D_ARB
-  , pattern GL_SAMPLER_2D_RECT_ARB
-  , pattern GL_SAMPLER_2D_RECT_SHADOW_ARB
-  , pattern GL_SAMPLER_2D_SHADOW_ARB
-  , pattern GL_SAMPLER_3D_ARB
-  , pattern GL_SAMPLER_CUBE_ARB
-  , pattern GL_SHADER_OBJECT_ARB
-) 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/ARB/shader_objects.txt GL_ARB_shader_objects> extension is available.
-
-gl_ARB_shader_objects :: Bool
-gl_ARB_shader_objects = member "GL_ARB_shader_objects" extensions
-{-# NOINLINE gl_ARB_shader_objects #-}
-
--- | Usage: @'glAttachObjectARB' containerObj obj@
---
--- The parameter @containerObj@ is a @handleARB@.
---
--- The parameter @obj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glAttachShader'.
-
-
-glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
-glAttachObjectARB = ffihandleARBhandleARBIOV glAttachObjectARBFunPtr
-
-glAttachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
-glAttachObjectARBFunPtr = unsafePerformIO (getProcAddress "glAttachObjectARB")
-
-{-# NOINLINE glAttachObjectARBFunPtr #-}
-
--- | Usage: @'glCompileShaderARB' shaderObj@
---
--- The parameter @shaderObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompileShader'.
-
-
-glCompileShaderARB :: MonadIO m => GLhandleARB -> m ()
-glCompileShaderARB = ffihandleARBIOV glCompileShaderARBFunPtr
-
-glCompileShaderARBFunPtr :: FunPtr (GLhandleARB -> IO ())
-glCompileShaderARBFunPtr = unsafePerformIO (getProcAddress "glCompileShaderARB")
-
-{-# NOINLINE glCompileShaderARBFunPtr #-}
-
--- | Usage: @'glCreateProgramObjectARB'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCreateProgram'.
-
-
-glCreateProgramObjectARB :: MonadIO m => m GLhandleARB
-glCreateProgramObjectARB = ffiIOhandleARB glCreateProgramObjectARBFunPtr
-
-glCreateProgramObjectARBFunPtr :: FunPtr (IO GLhandleARB)
-glCreateProgramObjectARBFunPtr = unsafePerformIO (getProcAddress "glCreateProgramObjectARB")
-
-{-# NOINLINE glCreateProgramObjectARBFunPtr #-}
-
--- | Usage: @'glCreateShaderObjectARB' shaderType@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCreateShader'.
-
-
-glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB
-glCreateShaderObjectARB = ffienumIOhandleARB glCreateShaderObjectARBFunPtr
-
-glCreateShaderObjectARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB)
-glCreateShaderObjectARBFunPtr = unsafePerformIO (getProcAddress "glCreateShaderObjectARB")
-
-{-# NOINLINE glCreateShaderObjectARBFunPtr #-}
-
--- | Usage: @'glDeleteObjectARB' obj@
---
--- The parameter @obj@ is a @handleARB@.
-
-
-glDeleteObjectARB :: MonadIO m => GLhandleARB -> m ()
-glDeleteObjectARB = ffihandleARBIOV glDeleteObjectARBFunPtr
-
-glDeleteObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
-glDeleteObjectARBFunPtr = unsafePerformIO (getProcAddress "glDeleteObjectARB")
-
-{-# NOINLINE glDeleteObjectARBFunPtr #-}
-
--- | Usage: @'glDetachObjectARB' containerObj attachedObj@
---
--- The parameter @containerObj@ is a @handleARB@.
---
--- The parameter @attachedObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDetachShader'.
-
-
-glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
-glDetachObjectARB = ffihandleARBhandleARBIOV glDetachObjectARBFunPtr
-
-glDetachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
-glDetachObjectARBFunPtr = unsafePerformIO (getProcAddress "glDetachObjectARB")
-
-{-# NOINLINE glDetachObjectARBFunPtr #-}
-
--- | Usage: @'glGetActiveUniformARB' programObj index maxLength length size type name@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @maxLength@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetActiveUniform'.
-
-
-glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
-glGetActiveUniformARB = ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV glGetActiveUniformARBFunPtr
-
-glGetActiveUniformARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
-glGetActiveUniformARBFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformARB")
-
-{-# NOINLINE glGetActiveUniformARBFunPtr #-}
-
--- | Usage: @'glGetAttachedObjectsARB' containerObj maxCount count obj@
---
--- The parameter @containerObj@ is a @handleARB@.
---
--- The parameter @obj@ is a @handleARB@.
---
--- The length of @count@ should be @1@.
---
--- The length of @obj@ should be @maxCount@.
-
-
-glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
-glGetAttachedObjectsARB = ffihandleARBsizeiPtrsizeiPtrhandleARBIOV glGetAttachedObjectsARBFunPtr
-
-glGetAttachedObjectsARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
-glGetAttachedObjectsARBFunPtr = unsafePerformIO (getProcAddress "glGetAttachedObjectsARB")
-
-{-# NOINLINE glGetAttachedObjectsARBFunPtr #-}
-
--- | Usage: @'glGetHandleARB' pname@
-
-
-glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB
-glGetHandleARB = ffienumIOhandleARB glGetHandleARBFunPtr
-
-glGetHandleARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB)
-glGetHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetHandleARB")
-
-{-# NOINLINE glGetHandleARBFunPtr #-}
-
--- | Usage: @'glGetInfoLogARB' obj maxLength length infoLog@
---
--- The parameter @obj@ is a @handleARB@.
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @maxLength@.
-
-
-glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
-glGetInfoLogARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetInfoLogARBFunPtr
-
-glGetInfoLogARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
-glGetInfoLogARBFunPtr = unsafePerformIO (getProcAddress "glGetInfoLogARB")
-
-{-# NOINLINE glGetInfoLogARBFunPtr #-}
-
--- | Usage: @'glGetObjectParameterfvARB' obj pname params@
---
--- The parameter @obj@ is a @handleARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
-glGetObjectParameterfvARB = ffihandleARBenumPtrfloatIOV glGetObjectParameterfvARBFunPtr
-
-glGetObjectParameterfvARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ())
-glGetObjectParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterfvARB")
-
-{-# NOINLINE glGetObjectParameterfvARBFunPtr #-}
-
--- | Usage: @'glGetObjectParameterivARB' obj pname params@
---
--- The parameter @obj@ is a @handleARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m ()
-glGetObjectParameterivARB = ffihandleARBenumPtrintIOV glGetObjectParameterivARBFunPtr
-
-glGetObjectParameterivARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ())
-glGetObjectParameterivARBFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterivARB")
-
-{-# NOINLINE glGetObjectParameterivARBFunPtr #-}
-
--- | Usage: @'glGetShaderSourceARB' obj maxLength length source@
---
--- The parameter @obj@ is a @handleARB@.
---
--- The length of @length@ should be @1@.
---
--- The length of @source@ should be @maxLength@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetShaderSource'.
-
-
-glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
-glGetShaderSourceARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetShaderSourceARBFunPtr
-
-glGetShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
-glGetShaderSourceARBFunPtr = unsafePerformIO (getProcAddress "glGetShaderSourceARB")
-
-{-# NOINLINE glGetShaderSourceARBFunPtr #-}
-
--- | Usage: @'glGetUniformLocationARB' programObj name@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformLocation'.
-
-
-glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
-glGetUniformLocationARB = ffihandleARBPtrcharARBIOint glGetUniformLocationARBFunPtr
-
-glGetUniformLocationARBFunPtr :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
-glGetUniformLocationARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocationARB")
-
-{-# NOINLINE glGetUniformLocationARBFunPtr #-}
-
--- | Usage: @'glGetUniformfvARB' programObj location params@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- The length of @params@ should be @COMPSIZE(programObj,location)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformfv'.
-
-
-glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m ()
-glGetUniformfvARB = ffihandleARBintPtrfloatIOV glGetUniformfvARBFunPtr
-
-glGetUniformfvARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ())
-glGetUniformfvARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformfvARB")
-
-{-# NOINLINE glGetUniformfvARBFunPtr #-}
-
--- | Usage: @'glGetUniformivARB' programObj location params@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- The length of @params@ should be @COMPSIZE(programObj,location)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformiv'.
-
-
-glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m ()
-glGetUniformivARB = ffihandleARBintPtrintIOV glGetUniformivARBFunPtr
-
-glGetUniformivARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ())
-glGetUniformivARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformivARB")
-
-{-# NOINLINE glGetUniformivARBFunPtr #-}
-
--- | Usage: @'glLinkProgramARB' programObj@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glLinkProgram'.
-
-
-glLinkProgramARB :: MonadIO m => GLhandleARB -> m ()
-glLinkProgramARB = ffihandleARBIOV glLinkProgramARBFunPtr
-
-glLinkProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
-glLinkProgramARBFunPtr = unsafePerformIO (getProcAddress "glLinkProgramARB")
-
-{-# NOINLINE glLinkProgramARBFunPtr #-}
-
--- | Usage: @'glShaderSourceARB' shaderObj count string length@
---
--- The parameter @shaderObj@ is a @handleARB@.
---
--- The length of @string@ should be @count@.
---
--- The length of @length@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glShaderSource'.
-
-
-glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
-glShaderSourceARB = ffihandleARBsizeiPtrPtrcharARBPtrintIOV glShaderSourceARBFunPtr
-
-glShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ())
-glShaderSourceARBFunPtr = unsafePerformIO (getProcAddress "glShaderSourceARB")
-
-{-# NOINLINE glShaderSourceARBFunPtr #-}
-
--- | Usage: @'glUniform1fARB' location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1f'.
-
-
-glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m ()
-glUniform1fARB = ffiintfloatIOV glUniform1fARBFunPtr
-
-glUniform1fARBFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
-glUniform1fARBFunPtr = unsafePerformIO (getProcAddress "glUniform1fARB")
-
-{-# NOINLINE glUniform1fARBFunPtr #-}
-
--- | Usage: @'glUniform1fvARB' location count value@
---
--- The length of @value@ should be @count*1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1fv'.
-
-
-glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform1fvARB = ffiintsizeiPtrfloatIOV glUniform1fvARBFunPtr
-
-glUniform1fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform1fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform1fvARB")
-
-{-# NOINLINE glUniform1fvARBFunPtr #-}
-
--- | Usage: @'glUniform1iARB' location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1i'.
-
-
-glUniform1iARB :: MonadIO m => GLint -> GLint -> m ()
-glUniform1iARB = ffiintintIOV glUniform1iARBFunPtr
-
-glUniform1iARBFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glUniform1iARBFunPtr = unsafePerformIO (getProcAddress "glUniform1iARB")
-
-{-# NOINLINE glUniform1iARBFunPtr #-}
-
--- | Usage: @'glUniform1ivARB' location count value@
---
--- The length of @value@ should be @count*1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1iv'.
-
-
-glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform1ivARB = ffiintsizeiPtrintIOV glUniform1ivARBFunPtr
-
-glUniform1ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform1ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform1ivARB")
-
-{-# NOINLINE glUniform1ivARBFunPtr #-}
-
--- | Usage: @'glUniform2fARB' location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2f'.
-
-
-glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
-glUniform2fARB = ffiintfloatfloatIOV glUniform2fARBFunPtr
-
-glUniform2fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
-glUniform2fARBFunPtr = unsafePerformIO (getProcAddress "glUniform2fARB")
-
-{-# NOINLINE glUniform2fARBFunPtr #-}
-
--- | Usage: @'glUniform2fvARB' location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2fv'.
-
-
-glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform2fvARB = ffiintsizeiPtrfloatIOV glUniform2fvARBFunPtr
-
-glUniform2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform2fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform2fvARB")
-
-{-# NOINLINE glUniform2fvARBFunPtr #-}
-
--- | Usage: @'glUniform2iARB' location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2i'.
-
-
-glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glUniform2iARB = ffiintintintIOV glUniform2iARBFunPtr
-
-glUniform2iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glUniform2iARBFunPtr = unsafePerformIO (getProcAddress "glUniform2iARB")
-
-{-# NOINLINE glUniform2iARBFunPtr #-}
-
--- | Usage: @'glUniform2ivARB' location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2iv'.
-
-
-glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform2ivARB = ffiintsizeiPtrintIOV glUniform2ivARBFunPtr
-
-glUniform2ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform2ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform2ivARB")
-
-{-# NOINLINE glUniform2ivARBFunPtr #-}
-
--- | Usage: @'glUniform3fARB' location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3f'.
-
-
-glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform3fARB = ffiintfloatfloatfloatIOV glUniform3fARBFunPtr
-
-glUniform3fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform3fARBFunPtr = unsafePerformIO (getProcAddress "glUniform3fARB")
-
-{-# NOINLINE glUniform3fARBFunPtr #-}
-
--- | Usage: @'glUniform3fvARB' location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3fv'.
-
-
-glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform3fvARB = ffiintsizeiPtrfloatIOV glUniform3fvARBFunPtr
-
-glUniform3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform3fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform3fvARB")
-
-{-# NOINLINE glUniform3fvARBFunPtr #-}
-
--- | Usage: @'glUniform3iARB' location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3i'.
-
-
-glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glUniform3iARB = ffiintintintintIOV glUniform3iARBFunPtr
-
-glUniform3iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform3iARBFunPtr = unsafePerformIO (getProcAddress "glUniform3iARB")
-
-{-# NOINLINE glUniform3iARBFunPtr #-}
-
--- | Usage: @'glUniform3ivARB' location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3iv'.
-
-
-glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform3ivARB = ffiintsizeiPtrintIOV glUniform3ivARBFunPtr
-
-glUniform3ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform3ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform3ivARB")
-
-{-# NOINLINE glUniform3ivARBFunPtr #-}
-
--- | Usage: @'glUniform4fARB' location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4f'.
-
-
-glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform4fARB = ffiintfloatfloatfloatfloatIOV glUniform4fARBFunPtr
-
-glUniform4fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform4fARBFunPtr = unsafePerformIO (getProcAddress "glUniform4fARB")
-
-{-# NOINLINE glUniform4fARBFunPtr #-}
-
--- | Usage: @'glUniform4fvARB' location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4fv'.
-
-
-glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform4fvARB = ffiintsizeiPtrfloatIOV glUniform4fvARBFunPtr
-
-glUniform4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform4fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform4fvARB")
-
-{-# NOINLINE glUniform4fvARBFunPtr #-}
-
--- | Usage: @'glUniform4iARB' location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4i'.
-
-
-glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glUniform4iARB = ffiintintintintintIOV glUniform4iARBFunPtr
-
-glUniform4iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform4iARBFunPtr = unsafePerformIO (getProcAddress "glUniform4iARB")
-
-{-# NOINLINE glUniform4iARBFunPtr #-}
-
--- | Usage: @'glUniform4ivARB' location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4iv'.
-
-
-glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform4ivARB = ffiintsizeiPtrintIOV glUniform4ivARBFunPtr
-
-glUniform4ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform4ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform4ivARB")
-
-{-# NOINLINE glUniform4ivARBFunPtr #-}
-
--- | Usage: @'glUniformMatrix2fvARB' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix2fv'.
-
-
-glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvARBFunPtr
-
-glUniformMatrix2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fvARB")
-
-{-# NOINLINE glUniformMatrix2fvARBFunPtr #-}
-
--- | Usage: @'glUniformMatrix3fvARB' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix3fv'.
-
-
-glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvARBFunPtr
-
-glUniformMatrix3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fvARB")
-
-{-# NOINLINE glUniformMatrix3fvARBFunPtr #-}
-
--- | Usage: @'glUniformMatrix4fvARB' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix4fv'.
-
-
-glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvARBFunPtr
-
-glUniformMatrix4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fvARB")
-
-{-# NOINLINE glUniformMatrix4fvARBFunPtr #-}
-
--- | Usage: @'glUseProgramObjectARB' programObj@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUseProgram'.
-
-
-glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m ()
-glUseProgramObjectARB = ffihandleARBIOV glUseProgramObjectARBFunPtr
-
-glUseProgramObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
-glUseProgramObjectARBFunPtr = unsafePerformIO (getProcAddress "glUseProgramObjectARB")
-
-{-# NOINLINE glUseProgramObjectARBFunPtr #-}
-
--- | Usage: @'glValidateProgramARB' programObj@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glValidateProgram'.
-
-
-glValidateProgramARB :: MonadIO m => GLhandleARB -> m ()
-glValidateProgramARB = ffihandleARBIOV glValidateProgramARBFunPtr
-
-glValidateProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
-glValidateProgramARBFunPtr = unsafePerformIO (getProcAddress "glValidateProgramARB")
-
-{-# NOINLINE glValidateProgramARBFunPtr #-}
-
-pattern GL_BOOL_ARB = 0x8B56
-
-pattern GL_BOOL_VEC2_ARB = 0x8B57
-
-pattern GL_BOOL_VEC3_ARB = 0x8B58
-
-pattern GL_BOOL_VEC4_ARB = 0x8B59
-
-pattern GL_INT_VEC2_ARB = 0x8B53
-
-pattern GL_INT_VEC3_ARB = 0x8B54
-
-pattern GL_INT_VEC4_ARB = 0x8B55
-
-pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86
-
-pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87
-
-pattern GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85
-
-pattern GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81
-
-pattern GL_OBJECT_DELETE_STATUS_ARB = 0x8B80
-
-pattern GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84
-
-pattern GL_OBJECT_LINK_STATUS_ARB = 0x8B82
-
-pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88
-
-pattern GL_OBJECT_SUBTYPE_ARB = 0x8B4F
-
-pattern GL_OBJECT_TYPE_ARB = 0x8B4E
-
-pattern GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83
-
-pattern GL_PROGRAM_OBJECT_ARB = 0x8B40
-
-pattern GL_SAMPLER_1D_ARB = 0x8B5D
-
-pattern GL_SAMPLER_1D_SHADOW_ARB = 0x8B61
-
-pattern GL_SAMPLER_2D_ARB = 0x8B5E
-
-pattern GL_SAMPLER_2D_RECT_ARB = 0x8B63
-
-pattern GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64
-
-pattern GL_SAMPLER_2D_SHADOW_ARB = 0x8B62
-
-pattern GL_SAMPLER_3D_ARB = 0x8B5F
-
-pattern GL_SAMPLER_CUBE_ARB = 0x8B60
-
-pattern GL_SHADER_OBJECT_ARB = 0x8B48
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderPrecision.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderPrecision.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderPrecision.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderPrecision (
-  -- * Extension Support
-    gl_ARB_shader_precision
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_precision.txt GL_ARB_shader_precision> extension is available.
-
-gl_ARB_shader_precision :: Bool
-gl_ARB_shader_precision = member "GL_ARB_shader_precision" extensions
-{-# NOINLINE gl_ARB_shader_precision #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderStencilExport.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderStencilExport.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderStencilExport.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderStencilExport (
-  -- * Extension Support
-    gl_ARB_shader_stencil_export
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_stencil_export.txt GL_ARB_shader_stencil_export> extension is available.
-
-gl_ARB_shader_stencil_export :: Bool
-gl_ARB_shader_stencil_export = member "GL_ARB_shader_stencil_export" extensions
-{-# NOINLINE gl_ARB_shader_stencil_export #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderStorageBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderStorageBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderStorageBufferObject.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderStorageBufferObject (
-  -- * Extension Support
-    gl_ARB_shader_storage_buffer_object
-
-  -- * GL_ARB_shader_storage_buffer_object
-  , glShaderStorageBlockBinding
-  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
-  , pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
-  , pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE
-  , pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
-  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
-  , pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
-  , pattern GL_SHADER_STORAGE_BARRIER_BIT
-  , pattern GL_SHADER_STORAGE_BUFFER
-  , pattern GL_SHADER_STORAGE_BUFFER_BINDING
-  , pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_SHADER_STORAGE_BUFFER_SIZE
-  , pattern GL_SHADER_STORAGE_BUFFER_START
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_storage_buffer_object.txt GL_ARB_shader_storage_buffer_object> extension is available.
-
-gl_ARB_shader_storage_buffer_object :: Bool
-gl_ARB_shader_storage_buffer_object = member "GL_ARB_shader_storage_buffer_object" extensions
-{-# NOINLINE gl_ARB_shader_storage_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderSubroutine.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderSubroutine.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderSubroutine.hs
+++ /dev/null
@@ -1,37 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderSubroutine (
-  -- * Extension Support
-    gl_ARB_shader_subroutine
-
-  -- * GL_ARB_shader_subroutine
-  , glGetActiveSubroutineName
-  , glGetActiveSubroutineUniformName
-  , glGetActiveSubroutineUniformiv
-  , glGetProgramStageiv
-  , glGetSubroutineIndex
-  , glGetSubroutineUniformLocation
-  , glGetUniformSubroutineuiv
-  , glUniformSubroutinesuiv
-  , pattern GL_ACTIVE_SUBROUTINES
-  , pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH
-  , pattern GL_ACTIVE_SUBROUTINE_UNIFORMS
-  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
-  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
-  , pattern GL_COMPATIBLE_SUBROUTINES
-  , pattern GL_MAX_SUBROUTINES
-  , pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
-  , pattern GL_NUM_COMPATIBLE_SUBROUTINES
-  , pattern GL_UNIFORM_NAME_LENGTH
-  , pattern GL_UNIFORM_SIZE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_subroutine.txt GL_ARB_shader_subroutine> extension is available.
-
-gl_ARB_shader_subroutine :: Bool
-gl_ARB_shader_subroutine = member "GL_ARB_shader_subroutine" extensions
-{-# NOINLINE gl_ARB_shader_subroutine #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderTextureImageSamples.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderTextureImageSamples.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderTextureImageSamples.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderTextureImageSamples (
-  -- * Extension Support
-    gl_ARB_shader_texture_image_samples
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_image_samples.txt GL_ARB_shader_texture_image_samples> extension is available.
-
-gl_ARB_shader_texture_image_samples :: Bool
-gl_ARB_shader_texture_image_samples = member "GL_ARB_shader_texture_image_samples" extensions
-{-# NOINLINE gl_ARB_shader_texture_image_samples #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderTextureLod.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderTextureLod.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderTextureLod.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderTextureLod (
-  -- * Extension Support
-    gl_ARB_shader_texture_lod
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_lod.txt GL_ARB_shader_texture_lod> extension is available.
-
-gl_ARB_shader_texture_lod :: Bool
-gl_ARB_shader_texture_lod = member "GL_ARB_shader_texture_lod" extensions
-{-# NOINLINE gl_ARB_shader_texture_lod #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderViewportLayerArray.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderViewportLayerArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShaderViewportLayerArray.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShaderViewportLayerArray (
-  -- * Extension Support
-    gl_ARB_shader_viewport_layer_array
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_viewport_layer_array.txt GL_ARB_shader_viewport_layer_array> extension is available.
-
-gl_ARB_shader_viewport_layer_array :: Bool
-gl_ARB_shader_viewport_layer_array = member "GL_ARB_shader_viewport_layer_array" extensions
-{-# NOINLINE gl_ARB_shader_viewport_layer_array #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguage100.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguage100.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguage100.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShadingLanguage100 (
-  -- * Extension Support
-    gl_ARB_shading_language_100
-
-  -- * GL_ARB_shading_language_100
-  , pattern GL_SHADING_LANGUAGE_VERSION_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_100.txt GL_ARB_shading_language_100> extension is available.
-
-gl_ARB_shading_language_100 :: Bool
-gl_ARB_shading_language_100 = member "GL_ARB_shading_language_100" extensions
-{-# NOINLINE gl_ARB_shading_language_100 #-}
-
-pattern GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguage420pack.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguage420pack.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguage420pack.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShadingLanguage420pack (
-  -- * Extension Support
-    gl_ARB_shading_language_420pack
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_420pack.txt GL_ARB_shading_language_420pack> extension is available.
-
-gl_ARB_shading_language_420pack :: Bool
-gl_ARB_shading_language_420pack = member "GL_ARB_shading_language_420pack" extensions
-{-# NOINLINE gl_ARB_shading_language_420pack #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs
+++ /dev/null
@@ -1,125 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShadingLanguageInclude (
-  -- * Extension Support
-    gl_ARB_shading_language_include
-
-  -- * GL_ARB_shading_language_include
-  , glCompileShaderIncludeARB
-  , glDeleteNamedStringARB
-  , glGetNamedStringARB
-  , glGetNamedStringivARB
-  , glIsNamedStringARB
-  , glNamedStringARB
-  , pattern GL_NAMED_STRING_LENGTH_ARB
-  , pattern GL_NAMED_STRING_TYPE_ARB
-  , pattern GL_SHADER_INCLUDE_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_include.txt GL_ARB_shading_language_include> extension is available.
-
-gl_ARB_shading_language_include :: Bool
-gl_ARB_shading_language_include = member "GL_ARB_shading_language_include" extensions
-{-# NOINLINE gl_ARB_shading_language_include #-}
-
--- | Usage: @'glCompileShaderIncludeARB' shader count path length@
---
--- The length of @path@ should be @count@.
---
--- The length of @length@ should be @count@.
-
-
-glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
-glCompileShaderIncludeARB = ffiuintsizeiPtrPtrcharPtrintIOV glCompileShaderIncludeARBFunPtr
-
-glCompileShaderIncludeARBFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
-glCompileShaderIncludeARBFunPtr = unsafePerformIO (getProcAddress "glCompileShaderIncludeARB")
-
-{-# NOINLINE glCompileShaderIncludeARBFunPtr #-}
-
--- | Usage: @'glDeleteNamedStringARB' namelen name@
---
--- The length of @name@ should be @namelen@.
-
-
-glDeleteNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m ()
-glDeleteNamedStringARB = ffiintPtrcharIOV glDeleteNamedStringARBFunPtr
-
-glDeleteNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> IO ())
-glDeleteNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glDeleteNamedStringARB")
-
-{-# NOINLINE glDeleteNamedStringARBFunPtr #-}
-
--- | Usage: @'glGetNamedStringARB' namelen name bufSize stringlen string@
---
--- The length of @name@ should be @namelen@.
---
--- The length of @stringlen@ should be @1@.
---
--- The length of @string@ should be @bufSize@.
-
-
-glGetNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
-glGetNamedStringARB = ffiintPtrcharsizeiPtrintPtrcharIOV glGetNamedStringARBFunPtr
-
-glGetNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ())
-glGetNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glGetNamedStringARB")
-
-{-# NOINLINE glGetNamedStringARBFunPtr #-}
-
--- | Usage: @'glGetNamedStringivARB' namelen name pname params@
---
--- The length of @name@ should be @namelen@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetNamedStringivARB :: MonadIO m => GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
-glGetNamedStringivARB = ffiintPtrcharenumPtrintIOV glGetNamedStringivARBFunPtr
-
-glGetNamedStringivARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ())
-glGetNamedStringivARBFunPtr = unsafePerformIO (getProcAddress "glGetNamedStringivARB")
-
-{-# NOINLINE glGetNamedStringivARBFunPtr #-}
-
--- | Usage: @'glIsNamedStringARB' namelen name@
---
--- The length of @name@ should be @namelen@.
-
-
-glIsNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m GLboolean
-glIsNamedStringARB = ffiintPtrcharIOboolean glIsNamedStringARBFunPtr
-
-glIsNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> IO GLboolean)
-glIsNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glIsNamedStringARB")
-
-{-# NOINLINE glIsNamedStringARBFunPtr #-}
-
--- | Usage: @'glNamedStringARB' type namelen name stringlen string@
---
--- The length of @name@ should be @namelen@.
---
--- The length of @string@ should be @stringlen@.
-
-
-glNamedStringARB :: MonadIO m => GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()
-glNamedStringARB = ffienumintPtrcharintPtrcharIOV glNamedStringARBFunPtr
-
-glNamedStringARBFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ())
-glNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glNamedStringARB")
-
-{-# NOINLINE glNamedStringARBFunPtr #-}
-
-pattern GL_NAMED_STRING_LENGTH_ARB = 0x8DE9
-
-pattern GL_NAMED_STRING_TYPE_ARB = 0x8DEA
-
-pattern GL_SHADER_INCLUDE_ARB = 0x8DAE
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguagePacking.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguagePacking.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadingLanguagePacking.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShadingLanguagePacking (
-  -- * Extension Support
-    gl_ARB_shading_language_packing
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_packing.txt GL_ARB_shading_language_packing> extension is available.
-
-gl_ARB_shading_language_packing :: Bool
-gl_ARB_shading_language_packing = member "GL_ARB_shading_language_packing" extensions
-{-# NOINLINE gl_ARB_shading_language_packing #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/Shadow.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/Shadow.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/Shadow.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.Shadow (
-  -- * Extension Support
-    gl_ARB_shadow
-
-  -- * GL_ARB_shadow
-  , pattern GL_COMPARE_R_TO_TEXTURE_ARB
-  , pattern GL_TEXTURE_COMPARE_FUNC_ARB
-  , pattern GL_TEXTURE_COMPARE_MODE_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow.txt GL_ARB_shadow> extension is available.
-
-gl_ARB_shadow :: Bool
-gl_ARB_shadow = member "GL_ARB_shadow" extensions
-{-# NOINLINE gl_ARB_shadow #-}
-
-pattern GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E
-
-pattern GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D
-
-pattern GL_TEXTURE_COMPARE_MODE_ARB = 0x884C
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadowAmbient.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ShadowAmbient.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ShadowAmbient.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ShadowAmbient (
-  -- * Extension Support
-    gl_ARB_shadow_ambient
-
-  -- * GL_ARB_shadow_ambient
-  , pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow_ambient.txt GL_ARB_shadow_ambient> extension is available.
-
-gl_ARB_shadow_ambient :: Bool
-gl_ARB_shadow_ambient = member "GL_ARB_shadow_ambient" extensions
-{-# NOINLINE gl_ARB_shadow_ambient #-}
-
-pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SparseBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseBuffer.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SparseBuffer (
-  -- * Extension Support
-    gl_ARB_sparse_buffer
-
-  -- * GL_ARB_sparse_buffer
-  , glBufferPageCommitmentARB
-  , glNamedBufferPageCommitmentARB
-  , glNamedBufferPageCommitmentEXT
-  , pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB
-  , pattern GL_SPARSE_STORAGE_BIT_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_buffer.txt GL_ARB_sparse_buffer> extension is available.
-
-gl_ARB_sparse_buffer :: Bool
-gl_ARB_sparse_buffer = member "GL_ARB_sparse_buffer" extensions
-{-# NOINLINE gl_ARB_sparse_buffer #-}
-
--- | Usage: @'glBufferPageCommitmentARB' target offset size commit@
-
-
-glBufferPageCommitmentARB :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
-glBufferPageCommitmentARB = ffienumintptrsizeiptrbooleanIOV glBufferPageCommitmentARBFunPtr
-
-glBufferPageCommitmentARBFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
-glBufferPageCommitmentARBFunPtr = unsafePerformIO (getProcAddress "glBufferPageCommitmentARB")
-
-{-# NOINLINE glBufferPageCommitmentARBFunPtr #-}
-
--- | Usage: @'glNamedBufferPageCommitmentARB' buffer offset size commit@
-
-
-glNamedBufferPageCommitmentARB :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
-glNamedBufferPageCommitmentARB = ffiuintintptrsizeiptrbooleanIOV glNamedBufferPageCommitmentARBFunPtr
-
-glNamedBufferPageCommitmentARBFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
-glNamedBufferPageCommitmentARBFunPtr = unsafePerformIO (getProcAddress "glNamedBufferPageCommitmentARB")
-
-{-# NOINLINE glNamedBufferPageCommitmentARBFunPtr #-}
-
--- | Usage: @'glNamedBufferPageCommitmentEXT' buffer offset size commit@
-
-
-glNamedBufferPageCommitmentEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
-glNamedBufferPageCommitmentEXT = ffiuintintptrsizeiptrbooleanIOV glNamedBufferPageCommitmentEXTFunPtr
-
-glNamedBufferPageCommitmentEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
-glNamedBufferPageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferPageCommitmentEXT")
-
-{-# NOINLINE glNamedBufferPageCommitmentEXTFunPtr #-}
-
-pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8
-
-pattern GL_SPARSE_STORAGE_BIT_ARB = 0x0400
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTexture.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTexture.hs
+++ /dev/null
@@ -1,67 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SparseTexture (
-  -- * Extension Support
-    gl_ARB_sparse_texture
-
-  -- * GL_ARB_sparse_texture
-  , glTexPageCommitmentARB
-  , pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB
-  , pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB
-  , pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB
-  , pattern GL_NUM_SPARSE_LEVELS_ARB
-  , pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB
-  , pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB
-  , pattern GL_TEXTURE_SPARSE_ARB
-  , pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB
-  , pattern GL_VIRTUAL_PAGE_SIZE_X_ARB
-  , pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB
-  , pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture.txt GL_ARB_sparse_texture> extension is available.
-
-gl_ARB_sparse_texture :: Bool
-gl_ARB_sparse_texture = member "GL_ARB_sparse_texture" extensions
-{-# NOINLINE gl_ARB_sparse_texture #-}
-
--- | Usage: @'glTexPageCommitmentARB' target level xoffset yoffset zoffset width height depth commit@
-
-
-glTexPageCommitmentARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexPageCommitmentARB = ffienumintintintintsizeisizeisizeibooleanIOV glTexPageCommitmentARBFunPtr
-
-glTexPageCommitmentARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexPageCommitmentARBFunPtr = unsafePerformIO (getProcAddress "glTexPageCommitmentARB")
-
-{-# NOINLINE glTexPageCommitmentARBFunPtr #-}
-
-pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199
-
-pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A
-
-pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198
-
-pattern GL_NUM_SPARSE_LEVELS_ARB = 0x91AA
-
-pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8
-
-pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9
-
-pattern GL_TEXTURE_SPARSE_ARB = 0x91A6
-
-pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7
-
-pattern GL_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195
-
-pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196
-
-pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTexture2.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTexture2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTexture2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SparseTexture2 (
-  -- * Extension Support
-    gl_ARB_sparse_texture2
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture2.txt GL_ARB_sparse_texture2> extension is available.
-
-gl_ARB_sparse_texture2 :: Bool
-gl_ARB_sparse_texture2 = member "GL_ARB_sparse_texture2" extensions
-{-# NOINLINE gl_ARB_sparse_texture2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTextureClamp.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTextureClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/SparseTextureClamp.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.SparseTextureClamp (
-  -- * Extension Support
-    gl_ARB_sparse_texture_clamp
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture_clamp.txt GL_ARB_sparse_texture_clamp> extension is available.
-
-gl_ARB_sparse_texture_clamp :: Bool
-gl_ARB_sparse_texture_clamp = member "GL_ARB_sparse_texture_clamp" extensions
-{-# NOINLINE gl_ARB_sparse_texture_clamp #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/StencilTexturing.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/StencilTexturing.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/StencilTexturing.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.StencilTexturing (
-  -- * Extension Support
-    gl_ARB_stencil_texturing
-
-  -- * GL_ARB_stencil_texturing
-  , pattern GL_DEPTH_STENCIL_TEXTURE_MODE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/stencil_texturing.txt GL_ARB_stencil_texturing> extension is available.
-
-gl_ARB_stencil_texturing :: Bool
-gl_ARB_stencil_texturing = member "GL_ARB_stencil_texturing" extensions
-{-# NOINLINE gl_ARB_stencil_texturing #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/Sync.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/Sync.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/Sync.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.Sync (
-  -- * Extension Support
-    gl_ARB_sync
-
-  -- * GL_ARB_sync
-  , glClientWaitSync
-  , glDeleteSync
-  , glFenceSync
-  , glGetInteger64v
-  , glGetSynciv
-  , glIsSync
-  , glWaitSync
-  , pattern GL_ALREADY_SIGNALED
-  , pattern GL_CONDITION_SATISFIED
-  , pattern GL_MAX_SERVER_WAIT_TIMEOUT
-  , pattern GL_OBJECT_TYPE
-  , pattern GL_SIGNALED
-  , pattern GL_SYNC_CONDITION
-  , pattern GL_SYNC_FENCE
-  , pattern GL_SYNC_FLAGS
-  , pattern GL_SYNC_FLUSH_COMMANDS_BIT
-  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE
-  , pattern GL_SYNC_STATUS
-  , pattern GL_TIMEOUT_EXPIRED
-  , pattern GL_TIMEOUT_IGNORED
-  , pattern GL_UNSIGNALED
-  , pattern GL_WAIT_FAILED
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sync.txt GL_ARB_sync> extension is available.
-
-gl_ARB_sync :: Bool
-gl_ARB_sync = member "GL_ARB_sync" extensions
-{-# NOINLINE gl_ARB_sync #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TessellationShader.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TessellationShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TessellationShader.hs
+++ /dev/null
@@ -1,57 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TessellationShader (
-  -- * Extension Support
-    gl_ARB_tessellation_shader
-
-  -- * GL_ARB_tessellation_shader
-  , glPatchParameterfv
-  , glPatchParameteri
-  , pattern GL_CCW
-  , pattern GL_CW
-  , pattern GL_EQUAL
-  , pattern GL_FRACTIONAL_EVEN
-  , pattern GL_FRACTIONAL_ODD
-  , pattern GL_ISOLINES
-  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
-  , pattern GL_MAX_PATCH_VERTICES
-  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
-  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
-  , pattern GL_MAX_TESS_GEN_LEVEL
-  , pattern GL_MAX_TESS_PATCH_COMPONENTS
-  , pattern GL_PATCHES
-  , pattern GL_PATCH_DEFAULT_INNER_LEVEL
-  , pattern GL_PATCH_DEFAULT_OUTER_LEVEL
-  , pattern GL_PATCH_VERTICES
-  , pattern GL_QUADS
-  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES
-  , pattern GL_TESS_CONTROL_SHADER
-  , pattern GL_TESS_EVALUATION_SHADER
-  , pattern GL_TESS_GEN_MODE
-  , pattern GL_TESS_GEN_POINT_MODE
-  , pattern GL_TESS_GEN_SPACING
-  , pattern GL_TESS_GEN_VERTEX_ORDER
-  , pattern GL_TRIANGLES
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/tessellation_shader.txt GL_ARB_tessellation_shader> extension is available.
-
-gl_ARB_tessellation_shader :: Bool
-gl_ARB_tessellation_shader = member "GL_ARB_tessellation_shader" extensions
-{-# NOINLINE gl_ARB_tessellation_shader #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBarrier.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBarrier.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBarrier.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureBarrier (
-  -- * Extension Support
-    gl_ARB_texture_barrier
-
-  -- * GL_ARB_texture_barrier
-  , glTextureBarrier
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_barrier.txt GL_ARB_texture_barrier> extension is available.
-
-gl_ARB_texture_barrier :: Bool
-gl_ARB_texture_barrier = member "GL_ARB_texture_barrier" extensions
-{-# NOINLINE gl_ARB_texture_barrier #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBorderClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBorderClamp.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureBorderClamp (
-  -- * Extension Support
-    gl_ARB_texture_border_clamp
-
-  -- * GL_ARB_texture_border_clamp
-  , pattern GL_CLAMP_TO_BORDER_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_border_clamp.txt GL_ARB_texture_border_clamp> extension is available.
-
-gl_ARB_texture_border_clamp :: Bool
-gl_ARB_texture_border_clamp = member "GL_ARB_texture_border_clamp" extensions
-{-# NOINLINE gl_ARB_texture_border_clamp #-}
-
-pattern GL_CLAMP_TO_BORDER_ARB = 0x812D
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferObject.hs
+++ /dev/null
@@ -1,53 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureBufferObject (
-  -- * Extension Support
-    gl_ARB_texture_buffer_object
-
-  -- * GL_ARB_texture_buffer_object
-  , glTexBufferARB
-  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB
-  , pattern GL_TEXTURE_BINDING_BUFFER_ARB
-  , pattern GL_TEXTURE_BUFFER_ARB
-  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB
-  , pattern GL_TEXTURE_BUFFER_FORMAT_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object.txt GL_ARB_texture_buffer_object> extension is available.
-
-gl_ARB_texture_buffer_object :: Bool
-gl_ARB_texture_buffer_object = member "GL_ARB_texture_buffer_object" extensions
-{-# NOINLINE gl_ARB_texture_buffer_object #-}
-
--- | Usage: @'glTexBufferARB' target internalformat buffer@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
-
-
-glTexBufferARB :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBufferARB = ffienumenumuintIOV glTexBufferARBFunPtr
-
-glTexBufferARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferARBFunPtr = unsafePerformIO (getProcAddress "glTexBufferARB")
-
-{-# NOINLINE glTexBufferARBFunPtr #-}
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B
-
-pattern GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C
-
-pattern GL_TEXTURE_BUFFER_ARB = 0x8C2A
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D
-
-pattern GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferObjectRgb32.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferObjectRgb32.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferObjectRgb32.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureBufferObjectRgb32 (
-  -- * Extension Support
-    gl_ARB_texture_buffer_object_rgb32
-
-  -- * GL_ARB_texture_buffer_object_rgb32
-  , pattern GL_RGB32F
-  , pattern GL_RGB32I
-  , pattern GL_RGB32UI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object_rgb32.txt GL_ARB_texture_buffer_object_rgb32> extension is available.
-
-gl_ARB_texture_buffer_object_rgb32 :: Bool
-gl_ARB_texture_buffer_object_rgb32 = member "GL_ARB_texture_buffer_object_rgb32" extensions
-{-# NOINLINE gl_ARB_texture_buffer_object_rgb32 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferRange.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureBufferRange.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureBufferRange (
-  -- * Extension Support
-    gl_ARB_texture_buffer_range
-
-  -- * GL_ARB_texture_buffer_range
-  , glTexBufferRange
-  , pattern GL_TEXTURE_BUFFER_OFFSET
-  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_TEXTURE_BUFFER_SIZE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_range.txt GL_ARB_texture_buffer_range> extension is available.
-
-gl_ARB_texture_buffer_range :: Bool
-gl_ARB_texture_buffer_range = member "GL_ARB_texture_buffer_range" extensions
-{-# NOINLINE gl_ARB_texture_buffer_range #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompression.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompression.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompression.hs
+++ /dev/null
@@ -1,239 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureCompression (
-  -- * Extension Support
-    gl_ARB_texture_compression
-
-  -- * GL_ARB_texture_compression
-  , glCompressedTexImage1DARB
-  , glCompressedTexImage2DARB
-  , glCompressedTexImage3DARB
-  , glCompressedTexSubImage1DARB
-  , glCompressedTexSubImage2DARB
-  , glCompressedTexSubImage3DARB
-  , glGetCompressedTexImageARB
-  , pattern GL_COMPRESSED_ALPHA_ARB
-  , pattern GL_COMPRESSED_INTENSITY_ARB
-  , pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB
-  , pattern GL_COMPRESSED_LUMINANCE_ARB
-  , pattern GL_COMPRESSED_RGBA_ARB
-  , pattern GL_COMPRESSED_RGB_ARB
-  , pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB
-  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
-  , pattern GL_TEXTURE_COMPRESSED_ARB
-  , pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB
-  , pattern GL_TEXTURE_COMPRESSION_HINT_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression.txt GL_ARB_texture_compression> extension is available.
-
-gl_ARB_texture_compression :: Bool
-gl_ARB_texture_compression = member "GL_ARB_texture_compression" extensions
-{-# NOINLINE gl_ARB_texture_compression #-}
-
--- | Usage: @'glCompressedTexImage1DARB' target level internalformat width border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage1D'.
-
-
-glCompressedTexImage1DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage1DARB = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DARBFunPtr
-
-glCompressedTexImage1DARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage1DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1DARB")
-
-{-# NOINLINE glCompressedTexImage1DARBFunPtr #-}
-
--- | Usage: @'glCompressedTexImage2DARB' target level internalformat width height border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage2D'.
-
-
-glCompressedTexImage2DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage2DARB = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DARBFunPtr
-
-glCompressedTexImage2DARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage2DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2DARB")
-
-{-# NOINLINE glCompressedTexImage2DARBFunPtr #-}
-
--- | Usage: @'glCompressedTexImage3DARB' target level internalformat width height depth border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage3D'.
-
-
-glCompressedTexImage3DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage3DARB = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DARBFunPtr
-
-glCompressedTexImage3DARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage3DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3DARB")
-
-{-# NOINLINE glCompressedTexImage3DARBFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage1DARB' target level xoffset width format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage1D'.
-
-
-glCompressedTexSubImage1DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage1DARB = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DARBFunPtr
-
-glCompressedTexSubImage1DARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage1DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1DARB")
-
-{-# NOINLINE glCompressedTexSubImage1DARBFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage2DARB' target level xoffset yoffset width height format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage2D'.
-
-
-glCompressedTexSubImage2DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage2DARB = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DARBFunPtr
-
-glCompressedTexSubImage2DARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage2DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2DARB")
-
-{-# NOINLINE glCompressedTexSubImage2DARBFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage3DARB' target level xoffset yoffset zoffset width height depth format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage3D'.
-
-
-glCompressedTexSubImage3DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage3DARB = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DARBFunPtr
-
-glCompressedTexSubImage3DARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage3DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3DARB")
-
-{-# NOINLINE glCompressedTexSubImage3DARBFunPtr #-}
-
--- | Usage: @'glGetCompressedTexImageARB' target level img@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @img@ is a @CompressedTextureARB@.
---
--- The length of @img@ should be @COMPSIZE(target,level)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetCompressedTexImage'.
-
-
-glGetCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedTexImageARB = ffienumintPtrVIOV glGetCompressedTexImageARBFunPtr
-
-glGetCompressedTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImageARB")
-
-{-# NOINLINE glGetCompressedTexImageARBFunPtr #-}
-
-pattern GL_COMPRESSED_ALPHA_ARB = 0x84E9
-
-pattern GL_COMPRESSED_INTENSITY_ARB = 0x84EC
-
-pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB
-
-pattern GL_COMPRESSED_LUMINANCE_ARB = 0x84EA
-
-pattern GL_COMPRESSED_RGBA_ARB = 0x84EE
-
-pattern GL_COMPRESSED_RGB_ARB = 0x84ED
-
-pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3
-
-pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2
-
-pattern GL_TEXTURE_COMPRESSED_ARB = 0x86A1
-
-pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0
-
-pattern GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureCompressionBptc (
-  -- * Extension Support
-    gl_ARB_texture_compression_bptc
-
-  -- * GL_ARB_texture_compression_bptc
-  , pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
-  , pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
-  , pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
-  , pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_bptc.txt GL_ARB_texture_compression_bptc> extension is available.
-
-gl_ARB_texture_compression_bptc :: Bool
-gl_ARB_texture_compression_bptc = member "GL_ARB_texture_compression_bptc" extensions
-{-# NOINLINE gl_ARB_texture_compression_bptc #-}
-
-pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C
-
-pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E
-
-pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F
-
-pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompressionRgtc.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompressionRgtc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCompressionRgtc.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureCompressionRgtc (
-  -- * Extension Support
-    gl_ARB_texture_compression_rgtc
-
-  -- * GL_ARB_texture_compression_rgtc
-  , pattern GL_COMPRESSED_RED_RGTC1
-  , pattern GL_COMPRESSED_RG_RGTC2
-  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1
-  , pattern GL_COMPRESSED_SIGNED_RG_RGTC2
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_rgtc.txt GL_ARB_texture_compression_rgtc> extension is available.
-
-gl_ARB_texture_compression_rgtc :: Bool
-gl_ARB_texture_compression_rgtc = member "GL_ARB_texture_compression_rgtc" extensions
-{-# NOINLINE gl_ARB_texture_compression_rgtc #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCubeMap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCubeMap.hs
+++ /dev/null
@@ -1,53 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureCubeMap (
-  -- * Extension Support
-    gl_ARB_texture_cube_map
-
-  -- * GL_ARB_texture_cube_map
-  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
-  , pattern GL_NORMAL_MAP_ARB
-  , pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB
-  , pattern GL_REFLECTION_MAP_ARB
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map.txt GL_ARB_texture_cube_map> extension is available.
-
-gl_ARB_texture_cube_map :: Bool
-gl_ARB_texture_cube_map = member "GL_ARB_texture_cube_map" extensions
-{-# NOINLINE gl_ARB_texture_cube_map #-}
-
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C
-
-pattern GL_NORMAL_MAP_ARB = 0x8511
-
-pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B
-
-pattern GL_REFLECTION_MAP_ARB = 0x8512
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514
-
-pattern GL_TEXTURE_CUBE_MAP_ARB = 0x8513
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureCubeMapArray (
-  -- * Extension Support
-    gl_ARB_texture_cube_map_array
-
-  -- * GL_ARB_texture_cube_map_array
-  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
-  , pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB
-  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map_array.txt GL_ARB_texture_cube_map_array> extension is available.
-
-gl_ARB_texture_cube_map_array :: Bool
-gl_ARB_texture_cube_map_array = member "GL_ARB_texture_cube_map_array" extensions
-{-# NOINLINE gl_ARB_texture_cube_map_array #-}
-
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
-
-pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A
-
-pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvAdd.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvAdd.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvAdd.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureEnvAdd (
-  -- * Extension Support
-    gl_ARB_texture_env_add
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_add.txt GL_ARB_texture_env_add> extension is available.
-
-gl_ARB_texture_env_add :: Bool
-gl_ARB_texture_env_add = member "GL_ARB_texture_env_add" extensions
-{-# NOINLINE gl_ARB_texture_env_add #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvCombine.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvCombine.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvCombine.hs
+++ /dev/null
@@ -1,83 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureEnvCombine (
-  -- * Extension Support
-    gl_ARB_texture_env_combine
-
-  -- * GL_ARB_texture_env_combine
-  , pattern GL_ADD_SIGNED_ARB
-  , pattern GL_COMBINE_ALPHA_ARB
-  , pattern GL_COMBINE_ARB
-  , pattern GL_COMBINE_RGB_ARB
-  , pattern GL_CONSTANT_ARB
-  , pattern GL_INTERPOLATE_ARB
-  , pattern GL_OPERAND0_ALPHA_ARB
-  , pattern GL_OPERAND0_RGB_ARB
-  , pattern GL_OPERAND1_ALPHA_ARB
-  , pattern GL_OPERAND1_RGB_ARB
-  , pattern GL_OPERAND2_ALPHA_ARB
-  , pattern GL_OPERAND2_RGB_ARB
-  , pattern GL_PREVIOUS_ARB
-  , pattern GL_PRIMARY_COLOR_ARB
-  , pattern GL_RGB_SCALE_ARB
-  , pattern GL_SOURCE0_ALPHA_ARB
-  , pattern GL_SOURCE0_RGB_ARB
-  , pattern GL_SOURCE1_ALPHA_ARB
-  , pattern GL_SOURCE1_RGB_ARB
-  , pattern GL_SOURCE2_ALPHA_ARB
-  , pattern GL_SOURCE2_RGB_ARB
-  , pattern GL_SUBTRACT_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_combine.txt GL_ARB_texture_env_combine> extension is available.
-
-gl_ARB_texture_env_combine :: Bool
-gl_ARB_texture_env_combine = member "GL_ARB_texture_env_combine" extensions
-{-# NOINLINE gl_ARB_texture_env_combine #-}
-
-pattern GL_ADD_SIGNED_ARB = 0x8574
-
-pattern GL_COMBINE_ALPHA_ARB = 0x8572
-
-pattern GL_COMBINE_ARB = 0x8570
-
-pattern GL_COMBINE_RGB_ARB = 0x8571
-
-pattern GL_CONSTANT_ARB = 0x8576
-
-pattern GL_INTERPOLATE_ARB = 0x8575
-
-pattern GL_OPERAND0_ALPHA_ARB = 0x8598
-
-pattern GL_OPERAND0_RGB_ARB = 0x8590
-
-pattern GL_OPERAND1_ALPHA_ARB = 0x8599
-
-pattern GL_OPERAND1_RGB_ARB = 0x8591
-
-pattern GL_OPERAND2_ALPHA_ARB = 0x859A
-
-pattern GL_OPERAND2_RGB_ARB = 0x8592
-
-pattern GL_PREVIOUS_ARB = 0x8578
-
-pattern GL_PRIMARY_COLOR_ARB = 0x8577
-
-pattern GL_RGB_SCALE_ARB = 0x8573
-
-pattern GL_SOURCE0_ALPHA_ARB = 0x8588
-
-pattern GL_SOURCE0_RGB_ARB = 0x8580
-
-pattern GL_SOURCE1_ALPHA_ARB = 0x8589
-
-pattern GL_SOURCE1_RGB_ARB = 0x8581
-
-pattern GL_SOURCE2_ALPHA_ARB = 0x858A
-
-pattern GL_SOURCE2_RGB_ARB = 0x8582
-
-pattern GL_SUBTRACT_ARB = 0x84E7
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvCrossbar.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvCrossbar.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvCrossbar.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureEnvCrossbar (
-  -- * Extension Support
-    gl_ARB_texture_env_crossbar
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_crossbar.txt GL_ARB_texture_env_crossbar> extension is available.
-
-gl_ARB_texture_env_crossbar :: Bool
-gl_ARB_texture_env_crossbar = member "GL_ARB_texture_env_crossbar" extensions
-{-# NOINLINE gl_ARB_texture_env_crossbar #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvDot3.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvDot3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureEnvDot3.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureEnvDot3 (
-  -- * Extension Support
-    gl_ARB_texture_env_dot3
-
-  -- * GL_ARB_texture_env_dot3
-  , pattern GL_DOT3_RGBA_ARB
-  , pattern GL_DOT3_RGB_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_dot3.txt GL_ARB_texture_env_dot3> extension is available.
-
-gl_ARB_texture_env_dot3 :: Bool
-gl_ARB_texture_env_dot3 = member "GL_ARB_texture_env_dot3" extensions
-{-# NOINLINE gl_ARB_texture_env_dot3 #-}
-
-pattern GL_DOT3_RGBA_ARB = 0x86AF
-
-pattern GL_DOT3_RGB_ARB = 0x86AE
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureFilterMinmax (
-  -- * Extension Support
-    gl_ARB_texture_filter_minmax
-
-  -- * GL_ARB_texture_filter_minmax
-  , pattern GL_TEXTURE_REDUCTION_MODE_ARB
-  , pattern GL_WEIGHTED_AVERAGE_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_filter_minmax.txt GL_ARB_texture_filter_minmax> extension is available.
-
-gl_ARB_texture_filter_minmax :: Bool
-gl_ARB_texture_filter_minmax = member "GL_ARB_texture_filter_minmax" extensions
-{-# NOINLINE gl_ARB_texture_filter_minmax #-}
-
-pattern GL_TEXTURE_REDUCTION_MODE_ARB = 0x9366
-
-pattern GL_WEIGHTED_AVERAGE_ARB = 0x9367
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureFloat.hs
+++ /dev/null
@@ -1,77 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureFloat (
-  -- * Extension Support
-    gl_ARB_texture_float
-
-  -- * GL_ARB_texture_float
-  , pattern GL_ALPHA16F_ARB
-  , pattern GL_ALPHA32F_ARB
-  , pattern GL_INTENSITY16F_ARB
-  , pattern GL_INTENSITY32F_ARB
-  , pattern GL_LUMINANCE16F_ARB
-  , pattern GL_LUMINANCE32F_ARB
-  , pattern GL_LUMINANCE_ALPHA16F_ARB
-  , pattern GL_LUMINANCE_ALPHA32F_ARB
-  , pattern GL_RGB16F_ARB
-  , pattern GL_RGB32F_ARB
-  , pattern GL_RGBA16F_ARB
-  , pattern GL_RGBA32F_ARB
-  , pattern GL_TEXTURE_ALPHA_TYPE_ARB
-  , pattern GL_TEXTURE_BLUE_TYPE_ARB
-  , pattern GL_TEXTURE_DEPTH_TYPE_ARB
-  , pattern GL_TEXTURE_GREEN_TYPE_ARB
-  , pattern GL_TEXTURE_INTENSITY_TYPE_ARB
-  , pattern GL_TEXTURE_LUMINANCE_TYPE_ARB
-  , pattern GL_TEXTURE_RED_TYPE_ARB
-  , pattern GL_UNSIGNED_NORMALIZED_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_float.txt GL_ARB_texture_float> extension is available.
-
-gl_ARB_texture_float :: Bool
-gl_ARB_texture_float = member "GL_ARB_texture_float" extensions
-{-# NOINLINE gl_ARB_texture_float #-}
-
-pattern GL_ALPHA16F_ARB = 0x881C
-
-pattern GL_ALPHA32F_ARB = 0x8816
-
-pattern GL_INTENSITY16F_ARB = 0x881D
-
-pattern GL_INTENSITY32F_ARB = 0x8817
-
-pattern GL_LUMINANCE16F_ARB = 0x881E
-
-pattern GL_LUMINANCE32F_ARB = 0x8818
-
-pattern GL_LUMINANCE_ALPHA16F_ARB = 0x881F
-
-pattern GL_LUMINANCE_ALPHA32F_ARB = 0x8819
-
-pattern GL_RGB16F_ARB = 0x881B
-
-pattern GL_RGB32F_ARB = 0x8815
-
-pattern GL_RGBA16F_ARB = 0x881A
-
-pattern GL_RGBA32F_ARB = 0x8814
-
-pattern GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13
-
-pattern GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12
-
-pattern GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16
-
-pattern GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11
-
-pattern GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15
-
-pattern GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14
-
-pattern GL_TEXTURE_RED_TYPE_ARB = 0x8C10
-
-pattern GL_UNSIGNED_NORMALIZED_ARB = 0x8C17
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureGather.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureGather.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureGather.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureGather (
-  -- * Extension Support
-    gl_ARB_texture_gather
-
-  -- * GL_ARB_texture_gather
-  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB
-  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
-  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_gather.txt GL_ARB_texture_gather> extension is available.
-
-gl_ARB_texture_gather :: Bool
-gl_ARB_texture_gather = member "GL_ARB_texture_gather" extensions
-{-# NOINLINE gl_ARB_texture_gather #-}
-
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F
-
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
-
-pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMirrorClampToEdge.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMirrorClampToEdge.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMirrorClampToEdge.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureMirrorClampToEdge (
-  -- * Extension Support
-    gl_ARB_texture_mirror_clamp_to_edge
-
-  -- * GL_ARB_texture_mirror_clamp_to_edge
-  , pattern GL_MIRROR_CLAMP_TO_EDGE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirror_clamp_to_edge.txt GL_ARB_texture_mirror_clamp_to_edge> extension is available.
-
-gl_ARB_texture_mirror_clamp_to_edge :: Bool
-gl_ARB_texture_mirror_clamp_to_edge = member "GL_ARB_texture_mirror_clamp_to_edge" extensions
-{-# NOINLINE gl_ARB_texture_mirror_clamp_to_edge #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureMirroredRepeat (
-  -- * Extension Support
-    gl_ARB_texture_mirrored_repeat
-
-  -- * GL_ARB_texture_mirrored_repeat
-  , pattern GL_MIRRORED_REPEAT_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirrored_repeat.txt GL_ARB_texture_mirrored_repeat> extension is available.
-
-gl_ARB_texture_mirrored_repeat :: Bool
-gl_ARB_texture_mirrored_repeat = member "GL_ARB_texture_mirrored_repeat" extensions
-{-# NOINLINE gl_ARB_texture_mirrored_repeat #-}
-
-pattern GL_MIRRORED_REPEAT_ARB = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureMultisample.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureMultisample (
-  -- * Extension Support
-    gl_ARB_texture_multisample
-
-  -- * GL_ARB_texture_multisample
-  , glGetMultisamplefv
-  , glSampleMaski
-  , glTexImage2DMultisample
-  , glTexImage3DMultisample
-  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_MAX_COLOR_TEXTURE_SAMPLES
-  , pattern GL_MAX_DEPTH_TEXTURE_SAMPLES
-  , pattern GL_MAX_INTEGER_SAMPLES
-  , pattern GL_MAX_SAMPLE_MASK_WORDS
-  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE
-  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY
-  , pattern GL_SAMPLE_MASK
-  , pattern GL_SAMPLE_MASK_VALUE
-  , pattern GL_SAMPLE_POSITION
-  , pattern GL_TEXTURE_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
-  , pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
-  , pattern GL_TEXTURE_SAMPLES
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_multisample.txt GL_ARB_texture_multisample> extension is available.
-
-gl_ARB_texture_multisample :: Bool
-gl_ARB_texture_multisample = member "GL_ARB_texture_multisample" extensions
-{-# NOINLINE gl_ARB_texture_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureNonPowerOfTwo.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureNonPowerOfTwo.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureNonPowerOfTwo.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureNonPowerOfTwo (
-  -- * Extension Support
-    gl_ARB_texture_non_power_of_two
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_non_power_of_two.txt GL_ARB_texture_non_power_of_two> extension is available.
-
-gl_ARB_texture_non_power_of_two :: Bool
-gl_ARB_texture_non_power_of_two = member "GL_ARB_texture_non_power_of_two" extensions
-{-# NOINLINE gl_ARB_texture_non_power_of_two #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureQueryLevels.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureQueryLevels.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureQueryLevels.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureQueryLevels (
-  -- * Extension Support
-    gl_ARB_texture_query_levels
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_levels.txt GL_ARB_texture_query_levels> extension is available.
-
-gl_ARB_texture_query_levels :: Bool
-gl_ARB_texture_query_levels = member "GL_ARB_texture_query_levels" extensions
-{-# NOINLINE gl_ARB_texture_query_levels #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureQueryLod.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureQueryLod.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureQueryLod.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureQueryLod (
-  -- * Extension Support
-    gl_ARB_texture_query_lod
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_lod.txt GL_ARB_texture_query_lod> extension is available.
-
-gl_ARB_texture_query_lod :: Bool
-gl_ARB_texture_query_lod = member "GL_ARB_texture_query_lod" extensions
-{-# NOINLINE gl_ARB_texture_query_lod #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRectangle.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRectangle.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRectangle.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureRectangle (
-  -- * Extension Support
-    gl_ARB_texture_rectangle
-
-  -- * GL_ARB_texture_rectangle
-  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB
-  , pattern GL_PROXY_TEXTURE_RECTANGLE_ARB
-  , pattern GL_TEXTURE_BINDING_RECTANGLE_ARB
-  , pattern GL_TEXTURE_RECTANGLE_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rectangle.txt GL_ARB_texture_rectangle> extension is available.
-
-gl_ARB_texture_rectangle :: Bool
-gl_ARB_texture_rectangle = member "GL_ARB_texture_rectangle" extensions
-{-# NOINLINE gl_ARB_texture_rectangle #-}
-
-pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8
-
-pattern GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7
-
-pattern GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6
-
-pattern GL_TEXTURE_RECTANGLE_ARB = 0x84F5
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRg.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRg.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRg.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureRg (
-  -- * Extension Support
-    gl_ARB_texture_rg
-
-  -- * GL_ARB_texture_rg
-  , pattern GL_R16
-  , pattern GL_R16F
-  , pattern GL_R16I
-  , pattern GL_R16UI
-  , pattern GL_R32F
-  , pattern GL_R32I
-  , pattern GL_R32UI
-  , pattern GL_R8
-  , pattern GL_R8I
-  , pattern GL_R8UI
-  , pattern GL_RG
-  , pattern GL_RG16
-  , pattern GL_RG16F
-  , pattern GL_RG16I
-  , pattern GL_RG16UI
-  , pattern GL_RG32F
-  , pattern GL_RG32I
-  , pattern GL_RG32UI
-  , pattern GL_RG8
-  , pattern GL_RG8I
-  , pattern GL_RG8UI
-  , pattern GL_RG_INTEGER
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rg.txt GL_ARB_texture_rg> extension is available.
-
-gl_ARB_texture_rg :: Bool
-gl_ARB_texture_rg = member "GL_ARB_texture_rg" extensions
-{-# NOINLINE gl_ARB_texture_rg #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRgb10A2ui.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRgb10A2ui.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureRgb10A2ui.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureRgb10A2ui (
-  -- * Extension Support
-    gl_ARB_texture_rgb10_a2ui
-
-  -- * GL_ARB_texture_rgb10_a2ui
-  , pattern GL_RGB10_A2UI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rgb10_a2ui.txt GL_ARB_texture_rgb10_a2ui> extension is available.
-
-gl_ARB_texture_rgb10_a2ui :: Bool
-gl_ARB_texture_rgb10_a2ui = member "GL_ARB_texture_rgb10_a2ui" extensions
-{-# NOINLINE gl_ARB_texture_rgb10_a2ui #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStencil8.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStencil8.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStencil8.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureStencil8 (
-  -- * Extension Support
-    gl_ARB_texture_stencil8
-
-  -- * GL_ARB_texture_stencil8
-  , pattern GL_STENCIL_INDEX
-  , pattern GL_STENCIL_INDEX8
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_stencil8.txt GL_ARB_texture_stencil8> extension is available.
-
-gl_ARB_texture_stencil8 :: Bool
-gl_ARB_texture_stencil8 = member "GL_ARB_texture_stencil8" extensions
-{-# NOINLINE gl_ARB_texture_stencil8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStorage.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStorage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStorage.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureStorage (
-  -- * Extension Support
-    gl_ARB_texture_storage
-
-  -- * GL_ARB_texture_storage
-  , glTexStorage1D
-  , glTexStorage2D
-  , glTexStorage3D
-  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage.txt GL_ARB_texture_storage> extension is available.
-
-gl_ARB_texture_storage :: Bool
-gl_ARB_texture_storage = member "GL_ARB_texture_storage" extensions
-{-# NOINLINE gl_ARB_texture_storage #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStorageMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStorageMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureStorageMultisample.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureStorageMultisample (
-  -- * Extension Support
-    gl_ARB_texture_storage_multisample
-
-  -- * GL_ARB_texture_storage_multisample
-  , glTexStorage2DMultisample
-  , glTexStorage3DMultisample
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage_multisample.txt GL_ARB_texture_storage_multisample> extension is available.
-
-gl_ARB_texture_storage_multisample :: Bool
-gl_ARB_texture_storage_multisample = member "GL_ARB_texture_storage_multisample" extensions
-{-# NOINLINE gl_ARB_texture_storage_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureSwizzle.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureSwizzle.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureSwizzle.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureSwizzle (
-  -- * Extension Support
-    gl_ARB_texture_swizzle
-
-  -- * GL_ARB_texture_swizzle
-  , pattern GL_TEXTURE_SWIZZLE_A
-  , pattern GL_TEXTURE_SWIZZLE_B
-  , pattern GL_TEXTURE_SWIZZLE_G
-  , pattern GL_TEXTURE_SWIZZLE_R
-  , pattern GL_TEXTURE_SWIZZLE_RGBA
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_swizzle.txt GL_ARB_texture_swizzle> extension is available.
-
-gl_ARB_texture_swizzle :: Bool
-gl_ARB_texture_swizzle = member "GL_ARB_texture_swizzle" extensions
-{-# NOINLINE gl_ARB_texture_swizzle #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureView.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TextureView.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TextureView.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TextureView (
-  -- * Extension Support
-    gl_ARB_texture_view
-
-  -- * GL_ARB_texture_view
-  , glTextureView
-  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
-  , pattern GL_TEXTURE_VIEW_MIN_LAYER
-  , pattern GL_TEXTURE_VIEW_MIN_LEVEL
-  , pattern GL_TEXTURE_VIEW_NUM_LAYERS
-  , pattern GL_TEXTURE_VIEW_NUM_LEVELS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_view.txt GL_ARB_texture_view> extension is available.
-
-gl_ARB_texture_view :: Bool
-gl_ARB_texture_view = member "GL_ARB_texture_view" extensions
-{-# NOINLINE gl_ARB_texture_view #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TimerQuery.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TimerQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TimerQuery.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TimerQuery (
-  -- * Extension Support
-    gl_ARB_timer_query
-
-  -- * GL_ARB_timer_query
-  , glGetQueryObjecti64v
-  , glGetQueryObjectui64v
-  , glQueryCounter
-  , pattern GL_TIMESTAMP
-  , pattern GL_TIME_ELAPSED
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/timer_query.txt GL_ARB_timer_query> extension is available.
-
-gl_ARB_timer_query :: Bool
-gl_ARB_timer_query = member "GL_ARB_timer_query" extensions
-{-# NOINLINE gl_ARB_timer_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedback2.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedback2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedback2.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TransformFeedback2 (
-  -- * Extension Support
-    gl_ARB_transform_feedback2
-
-  -- * GL_ARB_transform_feedback2
-  , glBindTransformFeedback
-  , glDeleteTransformFeedbacks
-  , glDrawTransformFeedback
-  , glGenTransformFeedbacks
-  , glIsTransformFeedback
-  , glPauseTransformFeedback
-  , glResumeTransformFeedback
-  , pattern GL_TRANSFORM_FEEDBACK
-  , pattern GL_TRANSFORM_FEEDBACK_BINDING
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback2.txt GL_ARB_transform_feedback2> extension is available.
-
-gl_ARB_transform_feedback2 :: Bool
-gl_ARB_transform_feedback2 = member "GL_ARB_transform_feedback2" extensions
-{-# NOINLINE gl_ARB_transform_feedback2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedback3.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedback3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedback3.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TransformFeedback3 (
-  -- * Extension Support
-    gl_ARB_transform_feedback3
-
-  -- * GL_ARB_transform_feedback3
-  , glBeginQueryIndexed
-  , glDrawTransformFeedbackStream
-  , glEndQueryIndexed
-  , glGetQueryIndexediv
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
-  , pattern GL_MAX_VERTEX_STREAMS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback3.txt GL_ARB_transform_feedback3> extension is available.
-
-gl_ARB_transform_feedback3 :: Bool
-gl_ARB_transform_feedback3 = member "GL_ARB_transform_feedback3" extensions
-{-# NOINLINE gl_ARB_transform_feedback3 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedbackInstanced.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedbackInstanced.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedbackInstanced.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TransformFeedbackInstanced (
-  -- * Extension Support
-    gl_ARB_transform_feedback_instanced
-
-  -- * GL_ARB_transform_feedback_instanced
-  , glDrawTransformFeedbackInstanced
-  , glDrawTransformFeedbackStreamInstanced
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_instanced.txt GL_ARB_transform_feedback_instanced> extension is available.
-
-gl_ARB_transform_feedback_instanced :: Bool
-gl_ARB_transform_feedback_instanced = member "GL_ARB_transform_feedback_instanced" extensions
-{-# NOINLINE gl_ARB_transform_feedback_instanced #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TransformFeedbackOverflowQuery (
-  -- * Extension Support
-    gl_ARB_transform_feedback_overflow_query
-
-  -- * GL_ARB_transform_feedback_overflow_query
-  , pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB
-  , pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_overflow_query.txt GL_ARB_transform_feedback_overflow_query> extension is available.
-
-gl_ARB_transform_feedback_overflow_query :: Bool
-gl_ARB_transform_feedback_overflow_query = member "GL_ARB_transform_feedback_overflow_query" extensions
-{-# NOINLINE gl_ARB_transform_feedback_overflow_query #-}
-
-pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC
-
-pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/TransposeMatrix.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/TransposeMatrix.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/TransposeMatrix.hs
+++ /dev/null
@@ -1,98 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.TransposeMatrix (
-  -- * Extension Support
-    gl_ARB_transpose_matrix
-
-  -- * GL_ARB_transpose_matrix
-  , glLoadTransposeMatrixdARB
-  , glLoadTransposeMatrixfARB
-  , glMultTransposeMatrixdARB
-  , glMultTransposeMatrixfARB
-  , pattern GL_TRANSPOSE_COLOR_MATRIX_ARB
-  , pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
-  , pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB
-  , pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transpose_matrix.txt GL_ARB_transpose_matrix> extension is available.
-
-gl_ARB_transpose_matrix :: Bool
-gl_ARB_transpose_matrix = member "GL_ARB_transpose_matrix" extensions
-{-# NOINLINE gl_ARB_transpose_matrix #-}
-
--- | Usage: @'glLoadTransposeMatrixdARB' m@
---
--- The length of @m@ should be @16@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glLoadTransposeMatrixd'.
-
-
-glLoadTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()
-glLoadTransposeMatrixdARB = ffiPtrdoubleIOV glLoadTransposeMatrixdARBFunPtr
-
-glLoadTransposeMatrixdARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glLoadTransposeMatrixdARBFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixdARB")
-
-{-# NOINLINE glLoadTransposeMatrixdARBFunPtr #-}
-
--- | Usage: @'glLoadTransposeMatrixfARB' m@
---
--- The length of @m@ should be @16@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glLoadTransposeMatrixf'.
-
-
-glLoadTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
-glLoadTransposeMatrixfARB = ffiPtrfloatIOV glLoadTransposeMatrixfARBFunPtr
-
-glLoadTransposeMatrixfARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glLoadTransposeMatrixfARBFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixfARB")
-
-{-# NOINLINE glLoadTransposeMatrixfARBFunPtr #-}
-
--- | Usage: @'glMultTransposeMatrixdARB' m@
---
--- The length of @m@ should be @16@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultTransposeMatrixd'.
-
-
-glMultTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()
-glMultTransposeMatrixdARB = ffiPtrdoubleIOV glMultTransposeMatrixdARBFunPtr
-
-glMultTransposeMatrixdARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glMultTransposeMatrixdARBFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixdARB")
-
-{-# NOINLINE glMultTransposeMatrixdARBFunPtr #-}
-
--- | Usage: @'glMultTransposeMatrixfARB' m@
---
--- The length of @m@ should be @16@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultTransposeMatrixf'.
-
-
-glMultTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
-glMultTransposeMatrixfARB = ffiPtrfloatIOV glMultTransposeMatrixfARBFunPtr
-
-glMultTransposeMatrixfARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glMultTransposeMatrixfARBFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixfARB")
-
-{-# NOINLINE glMultTransposeMatrixfARBFunPtr #-}
-
-pattern GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6
-
-pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3
-
-pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4
-
-pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/UniformBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/UniformBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/UniformBufferObject.hs
+++ /dev/null
@@ -1,61 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.UniformBufferObject (
-  -- * Extension Support
-    gl_ARB_uniform_buffer_object
-
-  -- * GL_ARB_uniform_buffer_object
-  , glBindBufferBase
-  , glBindBufferRange
-  , glGetActiveUniformBlockName
-  , glGetActiveUniformBlockiv
-  , glGetActiveUniformName
-  , glGetActiveUniformsiv
-  , glGetIntegeri_v
-  , glGetUniformBlockIndex
-  , glGetUniformIndices
-  , glUniformBlockBinding
-  , pattern GL_ACTIVE_UNIFORM_BLOCKS
-  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
-  , pattern GL_INVALID_INDEX
-  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
-  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
-  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
-  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
-  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
-  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
-  , pattern GL_UNIFORM_ARRAY_STRIDE
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
-  , pattern GL_UNIFORM_BLOCK_BINDING
-  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
-  , pattern GL_UNIFORM_BLOCK_INDEX
-  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_UNIFORM_BUFFER
-  , pattern GL_UNIFORM_BUFFER_BINDING
-  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_UNIFORM_BUFFER_SIZE
-  , pattern GL_UNIFORM_BUFFER_START
-  , pattern GL_UNIFORM_IS_ROW_MAJOR
-  , pattern GL_UNIFORM_MATRIX_STRIDE
-  , pattern GL_UNIFORM_NAME_LENGTH
-  , pattern GL_UNIFORM_OFFSET
-  , pattern GL_UNIFORM_SIZE
-  , pattern GL_UNIFORM_TYPE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/uniform_buffer_object.txt GL_ARB_uniform_buffer_object> extension is available.
-
-gl_ARB_uniform_buffer_object :: Bool
-gl_ARB_uniform_buffer_object = member "GL_ARB_uniform_buffer_object" extensions
-{-# NOINLINE gl_ARB_uniform_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexArrayBgra.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexArrayBgra.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexArrayBgra.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexArrayBgra (
-  -- * Extension Support
-    gl_ARB_vertex_array_bgra
-
-  -- * GL_ARB_vertex_array_bgra
-  , pattern GL_BGRA
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_bgra.txt GL_ARB_vertex_array_bgra> extension is available.
-
-gl_ARB_vertex_array_bgra :: Bool
-gl_ARB_vertex_array_bgra = member "GL_ARB_vertex_array_bgra" extensions
-{-# NOINLINE gl_ARB_vertex_array_bgra #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexArrayObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexArrayObject.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexArrayObject (
-  -- * Extension Support
-    gl_ARB_vertex_array_object
-
-  -- * GL_ARB_vertex_array_object
-  , glBindVertexArray
-  , glDeleteVertexArrays
-  , glGenVertexArrays
-  , glIsVertexArray
-  , pattern GL_VERTEX_ARRAY_BINDING
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_object.txt GL_ARB_vertex_array_object> extension is available.
-
-gl_ARB_vertex_array_object :: Bool
-gl_ARB_vertex_array_object = member "GL_ARB_vertex_array_object" extensions
-{-# NOINLINE gl_ARB_vertex_array_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexAttrib64bit.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexAttrib64bit.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexAttrib64bit.hs
+++ /dev/null
@@ -1,41 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexAttrib64bit (
-  -- * Extension Support
-    gl_ARB_vertex_attrib_64bit
-
-  -- * GL_ARB_vertex_attrib_64bit
-  , glGetVertexAttribLdv
-  , glVertexAttribL1d
-  , glVertexAttribL1dv
-  , glVertexAttribL2d
-  , glVertexAttribL2dv
-  , glVertexAttribL3d
-  , glVertexAttribL3dv
-  , glVertexAttribL4d
-  , glVertexAttribL4dv
-  , glVertexAttribLPointer
-  , pattern GL_DOUBLE_MAT2
-  , pattern GL_DOUBLE_MAT2x3
-  , pattern GL_DOUBLE_MAT2x4
-  , pattern GL_DOUBLE_MAT3
-  , pattern GL_DOUBLE_MAT3x2
-  , pattern GL_DOUBLE_MAT3x4
-  , pattern GL_DOUBLE_MAT4
-  , pattern GL_DOUBLE_MAT4x2
-  , pattern GL_DOUBLE_MAT4x3
-  , pattern GL_DOUBLE_VEC2
-  , pattern GL_DOUBLE_VEC3
-  , pattern GL_DOUBLE_VEC4
-  , pattern GL_RGB32I
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_64bit.txt GL_ARB_vertex_attrib_64bit> extension is available.
-
-gl_ARB_vertex_attrib_64bit :: Bool
-gl_ARB_vertex_attrib_64bit = member "GL_ARB_vertex_attrib_64bit" extensions
-{-# NOINLINE gl_ARB_vertex_attrib_64bit #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexAttribBinding.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexAttribBinding.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexAttribBinding.hs
+++ /dev/null
@@ -1,31 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexAttribBinding (
-  -- * Extension Support
-    gl_ARB_vertex_attrib_binding
-
-  -- * GL_ARB_vertex_attrib_binding
-  , glBindVertexBuffer
-  , glVertexAttribBinding
-  , glVertexAttribFormat
-  , glVertexAttribIFormat
-  , glVertexAttribLFormat
-  , glVertexBindingDivisor
-  , pattern GL_MAX_VERTEX_ATTRIB_BINDINGS
-  , pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
-  , pattern GL_VERTEX_ATTRIB_BINDING
-  , pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET
-  , pattern GL_VERTEX_BINDING_DIVISOR
-  , pattern GL_VERTEX_BINDING_OFFSET
-  , pattern GL_VERTEX_BINDING_STRIDE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_binding.txt GL_ARB_vertex_attrib_binding> extension is available.
-
-gl_ARB_vertex_attrib_binding :: Bool
-gl_ARB_vertex_attrib_binding = member "GL_ARB_vertex_attrib_binding" extensions
-{-# NOINLINE gl_ARB_vertex_attrib_binding #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexBlend.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexBlend.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexBlend.hs
+++ /dev/null
@@ -1,288 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexBlend (
-  -- * Extension Support
-    gl_ARB_vertex_blend
-
-  -- * GL_ARB_vertex_blend
-  , glVertexBlendARB
-  , glWeightPointerARB
-  , glWeightbvARB
-  , glWeightdvARB
-  , glWeightfvARB
-  , glWeightivARB
-  , glWeightsvARB
-  , glWeightubvARB
-  , glWeightuivARB
-  , glWeightusvARB
-  , pattern GL_ACTIVE_VERTEX_UNITS_ARB
-  , pattern GL_CURRENT_WEIGHT_ARB
-  , pattern GL_MAX_VERTEX_UNITS_ARB
-  , pattern GL_MODELVIEW0_ARB
-  , pattern GL_MODELVIEW10_ARB
-  , pattern GL_MODELVIEW11_ARB
-  , pattern GL_MODELVIEW12_ARB
-  , pattern GL_MODELVIEW13_ARB
-  , pattern GL_MODELVIEW14_ARB
-  , pattern GL_MODELVIEW15_ARB
-  , pattern GL_MODELVIEW16_ARB
-  , pattern GL_MODELVIEW17_ARB
-  , pattern GL_MODELVIEW18_ARB
-  , pattern GL_MODELVIEW19_ARB
-  , pattern GL_MODELVIEW1_ARB
-  , pattern GL_MODELVIEW20_ARB
-  , pattern GL_MODELVIEW21_ARB
-  , pattern GL_MODELVIEW22_ARB
-  , pattern GL_MODELVIEW23_ARB
-  , pattern GL_MODELVIEW24_ARB
-  , pattern GL_MODELVIEW25_ARB
-  , pattern GL_MODELVIEW26_ARB
-  , pattern GL_MODELVIEW27_ARB
-  , pattern GL_MODELVIEW28_ARB
-  , pattern GL_MODELVIEW29_ARB
-  , pattern GL_MODELVIEW2_ARB
-  , pattern GL_MODELVIEW30_ARB
-  , pattern GL_MODELVIEW31_ARB
-  , pattern GL_MODELVIEW3_ARB
-  , pattern GL_MODELVIEW4_ARB
-  , pattern GL_MODELVIEW5_ARB
-  , pattern GL_MODELVIEW6_ARB
-  , pattern GL_MODELVIEW7_ARB
-  , pattern GL_MODELVIEW8_ARB
-  , pattern GL_MODELVIEW9_ARB
-  , pattern GL_VERTEX_BLEND_ARB
-  , pattern GL_WEIGHT_ARRAY_ARB
-  , pattern GL_WEIGHT_ARRAY_POINTER_ARB
-  , pattern GL_WEIGHT_ARRAY_SIZE_ARB
-  , pattern GL_WEIGHT_ARRAY_STRIDE_ARB
-  , pattern GL_WEIGHT_ARRAY_TYPE_ARB
-  , pattern GL_WEIGHT_SUM_UNITY_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_blend.txt GL_ARB_vertex_blend> extension is available.
-
-gl_ARB_vertex_blend :: Bool
-gl_ARB_vertex_blend = member "GL_ARB_vertex_blend" extensions
-{-# NOINLINE gl_ARB_vertex_blend #-}
-
--- | Usage: @'glVertexBlendARB' count@
-
-
-glVertexBlendARB :: MonadIO m => GLint -> m ()
-glVertexBlendARB = ffiintIOV glVertexBlendARBFunPtr
-
-glVertexBlendARBFunPtr :: FunPtr (GLint -> IO ())
-glVertexBlendARBFunPtr = unsafePerformIO (getProcAddress "glVertexBlendARB")
-
-{-# NOINLINE glVertexBlendARBFunPtr #-}
-
--- | Usage: @'glWeightPointerARB' size type stride pointer@
---
--- The parameter @type@ is a @WeightPointerTypeARB@.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glWeightPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glWeightPointerARB = ffiintenumsizeiPtrVIOV glWeightPointerARBFunPtr
-
-glWeightPointerARBFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glWeightPointerARBFunPtr = unsafePerformIO (getProcAddress "glWeightPointerARB")
-
-{-# NOINLINE glWeightPointerARBFunPtr #-}
-
--- | Usage: @'glWeightbvARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightbvARB :: MonadIO m => GLint -> Ptr GLbyte -> m ()
-glWeightbvARB = ffiintPtrbyteIOV glWeightbvARBFunPtr
-
-glWeightbvARBFunPtr :: FunPtr (GLint -> Ptr GLbyte -> IO ())
-glWeightbvARBFunPtr = unsafePerformIO (getProcAddress "glWeightbvARB")
-
-{-# NOINLINE glWeightbvARBFunPtr #-}
-
--- | Usage: @'glWeightdvARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightdvARB :: MonadIO m => GLint -> Ptr GLdouble -> m ()
-glWeightdvARB = ffiintPtrdoubleIOV glWeightdvARBFunPtr
-
-glWeightdvARBFunPtr :: FunPtr (GLint -> Ptr GLdouble -> IO ())
-glWeightdvARBFunPtr = unsafePerformIO (getProcAddress "glWeightdvARB")
-
-{-# NOINLINE glWeightdvARBFunPtr #-}
-
--- | Usage: @'glWeightfvARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightfvARB :: MonadIO m => GLint -> Ptr GLfloat -> m ()
-glWeightfvARB = ffiintPtrfloatIOV glWeightfvARBFunPtr
-
-glWeightfvARBFunPtr :: FunPtr (GLint -> Ptr GLfloat -> IO ())
-glWeightfvARBFunPtr = unsafePerformIO (getProcAddress "glWeightfvARB")
-
-{-# NOINLINE glWeightfvARBFunPtr #-}
-
--- | Usage: @'glWeightivARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightivARB :: MonadIO m => GLint -> Ptr GLint -> m ()
-glWeightivARB = ffiintPtrintIOV glWeightivARBFunPtr
-
-glWeightivARBFunPtr :: FunPtr (GLint -> Ptr GLint -> IO ())
-glWeightivARBFunPtr = unsafePerformIO (getProcAddress "glWeightivARB")
-
-{-# NOINLINE glWeightivARBFunPtr #-}
-
--- | Usage: @'glWeightsvARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightsvARB :: MonadIO m => GLint -> Ptr GLshort -> m ()
-glWeightsvARB = ffiintPtrshortIOV glWeightsvARBFunPtr
-
-glWeightsvARBFunPtr :: FunPtr (GLint -> Ptr GLshort -> IO ())
-glWeightsvARBFunPtr = unsafePerformIO (getProcAddress "glWeightsvARB")
-
-{-# NOINLINE glWeightsvARBFunPtr #-}
-
--- | Usage: @'glWeightubvARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
-glWeightubvARB = ffiintPtrubyteIOV glWeightubvARBFunPtr
-
-glWeightubvARBFunPtr :: FunPtr (GLint -> Ptr GLubyte -> IO ())
-glWeightubvARBFunPtr = unsafePerformIO (getProcAddress "glWeightubvARB")
-
-{-# NOINLINE glWeightubvARBFunPtr #-}
-
--- | Usage: @'glWeightuivARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
-glWeightuivARB = ffiintPtruintIOV glWeightuivARBFunPtr
-
-glWeightuivARBFunPtr :: FunPtr (GLint -> Ptr GLuint -> IO ())
-glWeightuivARBFunPtr = unsafePerformIO (getProcAddress "glWeightuivARB")
-
-{-# NOINLINE glWeightuivARBFunPtr #-}
-
--- | Usage: @'glWeightusvARB' size weights@
---
--- The length of @weights@ should be @size@.
-
-
-glWeightusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
-glWeightusvARB = ffiintPtrushortIOV glWeightusvARBFunPtr
-
-glWeightusvARBFunPtr :: FunPtr (GLint -> Ptr GLushort -> IO ())
-glWeightusvARBFunPtr = unsafePerformIO (getProcAddress "glWeightusvARB")
-
-{-# NOINLINE glWeightusvARBFunPtr #-}
-
-pattern GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5
-
-pattern GL_CURRENT_WEIGHT_ARB = 0x86A8
-
-pattern GL_MAX_VERTEX_UNITS_ARB = 0x86A4
-
-pattern GL_MODELVIEW0_ARB = 0x1700
-
-pattern GL_MODELVIEW10_ARB = 0x872A
-
-pattern GL_MODELVIEW11_ARB = 0x872B
-
-pattern GL_MODELVIEW12_ARB = 0x872C
-
-pattern GL_MODELVIEW13_ARB = 0x872D
-
-pattern GL_MODELVIEW14_ARB = 0x872E
-
-pattern GL_MODELVIEW15_ARB = 0x872F
-
-pattern GL_MODELVIEW16_ARB = 0x8730
-
-pattern GL_MODELVIEW17_ARB = 0x8731
-
-pattern GL_MODELVIEW18_ARB = 0x8732
-
-pattern GL_MODELVIEW19_ARB = 0x8733
-
-pattern GL_MODELVIEW1_ARB = 0x850A
-
-pattern GL_MODELVIEW20_ARB = 0x8734
-
-pattern GL_MODELVIEW21_ARB = 0x8735
-
-pattern GL_MODELVIEW22_ARB = 0x8736
-
-pattern GL_MODELVIEW23_ARB = 0x8737
-
-pattern GL_MODELVIEW24_ARB = 0x8738
-
-pattern GL_MODELVIEW25_ARB = 0x8739
-
-pattern GL_MODELVIEW26_ARB = 0x873A
-
-pattern GL_MODELVIEW27_ARB = 0x873B
-
-pattern GL_MODELVIEW28_ARB = 0x873C
-
-pattern GL_MODELVIEW29_ARB = 0x873D
-
-pattern GL_MODELVIEW2_ARB = 0x8722
-
-pattern GL_MODELVIEW30_ARB = 0x873E
-
-pattern GL_MODELVIEW31_ARB = 0x873F
-
-pattern GL_MODELVIEW3_ARB = 0x8723
-
-pattern GL_MODELVIEW4_ARB = 0x8724
-
-pattern GL_MODELVIEW5_ARB = 0x8725
-
-pattern GL_MODELVIEW6_ARB = 0x8726
-
-pattern GL_MODELVIEW7_ARB = 0x8727
-
-pattern GL_MODELVIEW8_ARB = 0x8728
-
-pattern GL_MODELVIEW9_ARB = 0x8729
-
-pattern GL_VERTEX_BLEND_ARB = 0x86A7
-
-pattern GL_WEIGHT_ARRAY_ARB = 0x86AD
-
-pattern GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC
-
-pattern GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB
-
-pattern GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA
-
-pattern GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9
-
-pattern GL_WEIGHT_SUM_UNITY_ARB = 0x86A6
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexBufferObject.hs
+++ /dev/null
@@ -1,317 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexBufferObject (
-  -- * Extension Support
-    gl_ARB_vertex_buffer_object
-
-  -- * GL_ARB_vertex_buffer_object
-  , glBindBufferARB
-  , glBufferDataARB
-  , glBufferSubDataARB
-  , glDeleteBuffersARB
-  , glGenBuffersARB
-  , glGetBufferParameterivARB
-  , glGetBufferPointervARB
-  , glGetBufferSubDataARB
-  , glIsBufferARB
-  , glMapBufferARB
-  , glUnmapBufferARB
-  , pattern GL_ARRAY_BUFFER_ARB
-  , pattern GL_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_BUFFER_ACCESS_ARB
-  , pattern GL_BUFFER_MAPPED_ARB
-  , pattern GL_BUFFER_MAP_POINTER_ARB
-  , pattern GL_BUFFER_SIZE_ARB
-  , pattern GL_BUFFER_USAGE_ARB
-  , pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_DYNAMIC_COPY_ARB
-  , pattern GL_DYNAMIC_DRAW_ARB
-  , pattern GL_DYNAMIC_READ_ARB
-  , pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_ELEMENT_ARRAY_BUFFER_ARB
-  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_READ_ONLY_ARB
-  , pattern GL_READ_WRITE_ARB
-  , pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_STATIC_COPY_ARB
-  , pattern GL_STATIC_DRAW_ARB
-  , pattern GL_STATIC_READ_ARB
-  , pattern GL_STREAM_COPY_ARB
-  , pattern GL_STREAM_DRAW_ARB
-  , pattern GL_STREAM_READ_ARB
-  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB
-  , pattern GL_WRITE_ONLY_ARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_buffer_object.txt GL_ARB_vertex_buffer_object> extension is available.
-
-gl_ARB_vertex_buffer_object :: Bool
-gl_ARB_vertex_buffer_object = member "GL_ARB_vertex_buffer_object" extensions
-{-# NOINLINE gl_ARB_vertex_buffer_object #-}
-
--- | Usage: @'glBindBufferARB' target buffer@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBuffer'.
-
-
-glBindBufferARB :: MonadIO m => GLenum -> GLuint -> m ()
-glBindBufferARB = ffienumuintIOV glBindBufferARBFunPtr
-
-glBindBufferARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindBufferARBFunPtr = unsafePerformIO (getProcAddress "glBindBufferARB")
-
-{-# NOINLINE glBindBufferARBFunPtr #-}
-
--- | Usage: @'glBufferDataARB' target size data usage@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @size@ is a @BufferSizeARB@.
---
--- The parameter @usage@ is a @BufferUsageARB@.
---
--- The length of @data@ should be @size@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBufferData'.
-
-
-glBufferDataARB :: MonadIO m => GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> m ()
-glBufferDataARB = ffienumsizeiptrARBPtrVenumIOV glBufferDataARBFunPtr
-
-glBufferDataARBFunPtr :: FunPtr (GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ())
-glBufferDataARBFunPtr = unsafePerformIO (getProcAddress "glBufferDataARB")
-
-{-# NOINLINE glBufferDataARBFunPtr #-}
-
--- | Usage: @'glBufferSubDataARB' target offset size data@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffsetARB@.
---
--- The parameter @size@ is a @BufferSizeARB@.
---
--- The length of @data@ should be @size@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBufferSubData'.
-
-
-glBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
-glBufferSubDataARB = ffienumintptrARBsizeiptrARBPtrVIOV glBufferSubDataARBFunPtr
-
-glBufferSubDataARBFunPtr :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ())
-glBufferSubDataARBFunPtr = unsafePerformIO (getProcAddress "glBufferSubDataARB")
-
-{-# NOINLINE glBufferSubDataARBFunPtr #-}
-
--- | Usage: @'glDeleteBuffersARB' n buffers@
---
--- The length of @buffers@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteBuffers'.
-
-
-glDeleteBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteBuffersARB = ffisizeiPtruintIOV glDeleteBuffersARBFunPtr
-
-glDeleteBuffersARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteBuffersARBFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffersARB")
-
-{-# NOINLINE glDeleteBuffersARBFunPtr #-}
-
--- | Usage: @'glGenBuffersARB' n buffers@
---
--- The length of @buffers@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenBuffers'.
-
-
-glGenBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenBuffersARB = ffisizeiPtruintIOV glGenBuffersARBFunPtr
-
-glGenBuffersARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenBuffersARBFunPtr = unsafePerformIO (getProcAddress "glGenBuffersARB")
-
-{-# NOINLINE glGenBuffersARBFunPtr #-}
-
--- | Usage: @'glGetBufferParameterivARB' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferParameteriv'.
-
-
-glGetBufferParameterivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetBufferParameterivARB = ffienumenumPtrintIOV glGetBufferParameterivARBFunPtr
-
-glGetBufferParameterivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetBufferParameterivARBFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameterivARB")
-
-{-# NOINLINE glGetBufferParameterivARBFunPtr #-}
-
--- | Usage: @'glGetBufferPointervARB' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPointerNameARB@.
---
--- The length of @params@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferPointerv'.
-
-
-glGetBufferPointervARB :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetBufferPointervARB = ffienumenumPtrPtrVIOV glGetBufferPointervARBFunPtr
-
-glGetBufferPointervARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetBufferPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointervARB")
-
-{-# NOINLINE glGetBufferPointervARBFunPtr #-}
-
--- | Usage: @'glGetBufferSubDataARB' target offset size data@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffsetARB@.
---
--- The parameter @size@ is a @BufferSizeARB@.
---
--- The length of @data@ should be @size@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferSubData'.
-
-
-glGetBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
-glGetBufferSubDataARB = ffienumintptrARBsizeiptrARBPtrVIOV glGetBufferSubDataARBFunPtr
-
-glGetBufferSubDataARBFunPtr :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ())
-glGetBufferSubDataARBFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubDataARB")
-
-{-# NOINLINE glGetBufferSubDataARBFunPtr #-}
-
--- | Usage: @'glIsBufferARB' buffer@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsBuffer'.
-
-
-glIsBufferARB :: MonadIO m => GLuint -> m GLboolean
-glIsBufferARB = ffiuintIOboolean glIsBufferARBFunPtr
-
-glIsBufferARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsBufferARBFunPtr = unsafePerformIO (getProcAddress "glIsBufferARB")
-
-{-# NOINLINE glIsBufferARBFunPtr #-}
-
--- | Usage: @'glMapBufferARB' target access@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @access@ is a @BufferAccessARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMapBuffer'.
-
-
-glMapBufferARB :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
-glMapBufferARB = ffienumenumIOPtrV glMapBufferARBFunPtr
-
-glMapBufferARBFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
-glMapBufferARBFunPtr = unsafePerformIO (getProcAddress "glMapBufferARB")
-
-{-# NOINLINE glMapBufferARBFunPtr #-}
-
--- | Usage: @'glUnmapBufferARB' target@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUnmapBuffer'.
-
-
-glUnmapBufferARB :: MonadIO m => GLenum -> m GLboolean
-glUnmapBufferARB = ffienumIOboolean glUnmapBufferARBFunPtr
-
-glUnmapBufferARBFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glUnmapBufferARBFunPtr = unsafePerformIO (getProcAddress "glUnmapBufferARB")
-
-{-# NOINLINE glUnmapBufferARBFunPtr #-}
-
-pattern GL_ARRAY_BUFFER_ARB = 0x8892
-
-pattern GL_ARRAY_BUFFER_BINDING_ARB = 0x8894
-
-pattern GL_BUFFER_ACCESS_ARB = 0x88BB
-
-pattern GL_BUFFER_MAPPED_ARB = 0x88BC
-
-pattern GL_BUFFER_MAP_POINTER_ARB = 0x88BD
-
-pattern GL_BUFFER_SIZE_ARB = 0x8764
-
-pattern GL_BUFFER_USAGE_ARB = 0x8765
-
-pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898
-
-pattern GL_DYNAMIC_COPY_ARB = 0x88EA
-
-pattern GL_DYNAMIC_DRAW_ARB = 0x88E8
-
-pattern GL_DYNAMIC_READ_ARB = 0x88E9
-
-pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B
-
-pattern GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893
-
-pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895
-
-pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D
-
-pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899
-
-pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897
-
-pattern GL_READ_ONLY_ARB = 0x88B8
-
-pattern GL_READ_WRITE_ARB = 0x88BA
-
-pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C
-
-pattern GL_STATIC_COPY_ARB = 0x88E6
-
-pattern GL_STATIC_DRAW_ARB = 0x88E4
-
-pattern GL_STATIC_READ_ARB = 0x88E5
-
-pattern GL_STREAM_COPY_ARB = 0x88E2
-
-pattern GL_STREAM_DRAW_ARB = 0x88E0
-
-pattern GL_STREAM_READ_ARB = 0x88E1
-
-pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A
-
-pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F
-
-pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E
-
-pattern GL_WRITE_ONLY_ARB = 0x88B9
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexProgram.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexProgram.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexProgram.hs
+++ /dev/null
@@ -1,171 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexProgram (
-  -- * Extension Support
-    gl_ARB_vertex_program
-
-  -- * GL_ARB_vertex_program
-  , glBindProgramARB
-  , glDeleteProgramsARB
-  , glDisableVertexAttribArrayARB
-  , glEnableVertexAttribArrayARB
-  , glGenProgramsARB
-  , glGetProgramEnvParameterdvARB
-  , glGetProgramEnvParameterfvARB
-  , glGetProgramLocalParameterdvARB
-  , glGetProgramLocalParameterfvARB
-  , glGetProgramStringARB
-  , glGetProgramivARB
-  , glGetVertexAttribPointervARB
-  , glGetVertexAttribdvARB
-  , glGetVertexAttribfvARB
-  , glGetVertexAttribivARB
-  , glIsProgramARB
-  , glProgramEnvParameter4dARB
-  , glProgramEnvParameter4dvARB
-  , glProgramEnvParameter4fARB
-  , glProgramEnvParameter4fvARB
-  , glProgramLocalParameter4dARB
-  , glProgramLocalParameter4dvARB
-  , glProgramLocalParameter4fARB
-  , glProgramLocalParameter4fvARB
-  , glProgramStringARB
-  , glVertexAttrib1dARB
-  , glVertexAttrib1dvARB
-  , glVertexAttrib1fARB
-  , glVertexAttrib1fvARB
-  , glVertexAttrib1sARB
-  , glVertexAttrib1svARB
-  , glVertexAttrib2dARB
-  , glVertexAttrib2dvARB
-  , glVertexAttrib2fARB
-  , glVertexAttrib2fvARB
-  , glVertexAttrib2sARB
-  , glVertexAttrib2svARB
-  , glVertexAttrib3dARB
-  , glVertexAttrib3dvARB
-  , glVertexAttrib3fARB
-  , glVertexAttrib3fvARB
-  , glVertexAttrib3sARB
-  , glVertexAttrib3svARB
-  , glVertexAttrib4NbvARB
-  , glVertexAttrib4NivARB
-  , glVertexAttrib4NsvARB
-  , glVertexAttrib4NubARB
-  , glVertexAttrib4NubvARB
-  , glVertexAttrib4NuivARB
-  , glVertexAttrib4NusvARB
-  , glVertexAttrib4bvARB
-  , glVertexAttrib4dARB
-  , glVertexAttrib4dvARB
-  , glVertexAttrib4fARB
-  , glVertexAttrib4fvARB
-  , glVertexAttrib4ivARB
-  , glVertexAttrib4sARB
-  , glVertexAttrib4svARB
-  , glVertexAttrib4ubvARB
-  , glVertexAttrib4uivARB
-  , glVertexAttrib4usvARB
-  , glVertexAttribPointerARB
-  , pattern GL_COLOR_SUM_ARB
-  , pattern GL_CURRENT_MATRIX_ARB
-  , pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB
-  , pattern GL_CURRENT_VERTEX_ATTRIB_ARB
-  , pattern GL_MATRIX0_ARB
-  , pattern GL_MATRIX10_ARB
-  , pattern GL_MATRIX11_ARB
-  , pattern GL_MATRIX12_ARB
-  , pattern GL_MATRIX13_ARB
-  , pattern GL_MATRIX14_ARB
-  , pattern GL_MATRIX15_ARB
-  , pattern GL_MATRIX16_ARB
-  , pattern GL_MATRIX17_ARB
-  , pattern GL_MATRIX18_ARB
-  , pattern GL_MATRIX19_ARB
-  , pattern GL_MATRIX1_ARB
-  , pattern GL_MATRIX20_ARB
-  , pattern GL_MATRIX21_ARB
-  , pattern GL_MATRIX22_ARB
-  , pattern GL_MATRIX23_ARB
-  , pattern GL_MATRIX24_ARB
-  , pattern GL_MATRIX25_ARB
-  , pattern GL_MATRIX26_ARB
-  , pattern GL_MATRIX27_ARB
-  , pattern GL_MATRIX28_ARB
-  , pattern GL_MATRIX29_ARB
-  , pattern GL_MATRIX2_ARB
-  , pattern GL_MATRIX30_ARB
-  , pattern GL_MATRIX31_ARB
-  , pattern GL_MATRIX3_ARB
-  , pattern GL_MATRIX4_ARB
-  , pattern GL_MATRIX5_ARB
-  , pattern GL_MATRIX6_ARB
-  , pattern GL_MATRIX7_ARB
-  , pattern GL_MATRIX8_ARB
-  , pattern GL_MATRIX9_ARB
-  , pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB
-  , pattern GL_MAX_PROGRAM_ATTRIBS_ARB
-  , pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB
-  , pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_MATRICES_ARB
-  , pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
-  , pattern GL_MAX_PROGRAM_PARAMETERS_ARB
-  , pattern GL_MAX_PROGRAM_TEMPORARIES_ARB
-  , pattern GL_MAX_VERTEX_ATTRIBS_ARB
-  , pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB
-  , pattern GL_PROGRAM_ATTRIBS_ARB
-  , pattern GL_PROGRAM_BINDING_ARB
-  , pattern GL_PROGRAM_ERROR_POSITION_ARB
-  , pattern GL_PROGRAM_ERROR_STRING_ARB
-  , pattern GL_PROGRAM_FORMAT_ARB
-  , pattern GL_PROGRAM_FORMAT_ASCII_ARB
-  , pattern GL_PROGRAM_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_LENGTH_ARB
-  , pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
-  , pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB
-  , pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
-  , pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB
-  , pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB
-  , pattern GL_PROGRAM_PARAMETERS_ARB
-  , pattern GL_PROGRAM_STRING_ARB
-  , pattern GL_PROGRAM_TEMPORARIES_ARB
-  , pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
-  , pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
-  , pattern GL_VERTEX_PROGRAM_ARB
-  , pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB
-  , pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_program.txt GL_ARB_vertex_program> extension is available.
-
-gl_ARB_vertex_program :: Bool
-gl_ARB_vertex_program = member "GL_ARB_vertex_program" extensions
-{-# NOINLINE gl_ARB_vertex_program #-}
-
-pattern GL_COLOR_SUM_ARB = 0x8458
-
-pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1
-
-pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3
-
-pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0
-
-pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2
-
-pattern GL_VERTEX_PROGRAM_ARB = 0x8620
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexShader.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexShader.hs
+++ /dev/null
@@ -1,160 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexShader (
-  -- * Extension Support
-    gl_ARB_vertex_shader
-
-  -- * GL_ARB_vertex_shader
-  , glBindAttribLocationARB
-  , glDisableVertexAttribArrayARB
-  , glEnableVertexAttribArrayARB
-  , glGetActiveAttribARB
-  , glGetAttribLocationARB
-  , glGetVertexAttribPointervARB
-  , glGetVertexAttribdvARB
-  , glGetVertexAttribfvARB
-  , glGetVertexAttribivARB
-  , glVertexAttrib1dARB
-  , glVertexAttrib1dvARB
-  , glVertexAttrib1fARB
-  , glVertexAttrib1fvARB
-  , glVertexAttrib1sARB
-  , glVertexAttrib1svARB
-  , glVertexAttrib2dARB
-  , glVertexAttrib2dvARB
-  , glVertexAttrib2fARB
-  , glVertexAttrib2fvARB
-  , glVertexAttrib2sARB
-  , glVertexAttrib2svARB
-  , glVertexAttrib3dARB
-  , glVertexAttrib3dvARB
-  , glVertexAttrib3fARB
-  , glVertexAttrib3fvARB
-  , glVertexAttrib3sARB
-  , glVertexAttrib3svARB
-  , glVertexAttrib4NbvARB
-  , glVertexAttrib4NivARB
-  , glVertexAttrib4NsvARB
-  , glVertexAttrib4NubARB
-  , glVertexAttrib4NubvARB
-  , glVertexAttrib4NuivARB
-  , glVertexAttrib4NusvARB
-  , glVertexAttrib4bvARB
-  , glVertexAttrib4dARB
-  , glVertexAttrib4dvARB
-  , glVertexAttrib4fARB
-  , glVertexAttrib4fvARB
-  , glVertexAttrib4ivARB
-  , glVertexAttrib4sARB
-  , glVertexAttrib4svARB
-  , glVertexAttrib4ubvARB
-  , glVertexAttrib4uivARB
-  , glVertexAttrib4usvARB
-  , glVertexAttribPointerARB
-  , pattern GL_CURRENT_VERTEX_ATTRIB_ARB
-  , pattern GL_FLOAT
-  , pattern GL_FLOAT_MAT2_ARB
-  , pattern GL_FLOAT_MAT3_ARB
-  , pattern GL_FLOAT_MAT4_ARB
-  , pattern GL_FLOAT_VEC2_ARB
-  , pattern GL_FLOAT_VEC3_ARB
-  , pattern GL_FLOAT_VEC4_ARB
-  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
-  , pattern GL_MAX_TEXTURE_COORDS_ARB
-  , pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB
-  , pattern GL_MAX_VARYING_FLOATS_ARB
-  , pattern GL_MAX_VERTEX_ATTRIBS_ARB
-  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
-  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
-  , pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB
-  , pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
-  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
-  , pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB
-  , pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB
-  , pattern GL_VERTEX_SHADER_ARB
-) 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/ARB/vertex_shader.txt GL_ARB_vertex_shader> extension is available.
-
-gl_ARB_vertex_shader :: Bool
-gl_ARB_vertex_shader = member "GL_ARB_vertex_shader" extensions
-{-# NOINLINE gl_ARB_vertex_shader #-}
-
--- | Usage: @'glBindAttribLocationARB' programObj index name@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindAttribLocation'.
-
-
-glBindAttribLocationARB :: MonadIO m => GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()
-glBindAttribLocationARB = ffihandleARBuintPtrcharARBIOV glBindAttribLocationARBFunPtr
-
-glBindAttribLocationARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ())
-glBindAttribLocationARBFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocationARB")
-
-{-# NOINLINE glBindAttribLocationARBFunPtr #-}
-
--- | Usage: @'glGetActiveAttribARB' programObj index maxLength length size type name@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @maxLength@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetActiveAttrib'.
-
-
-glGetActiveAttribARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
-glGetActiveAttribARB = ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV glGetActiveAttribARBFunPtr
-
-glGetActiveAttribARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
-glGetActiveAttribARBFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttribARB")
-
-{-# NOINLINE glGetActiveAttribARBFunPtr #-}
-
--- | Usage: @'glGetAttribLocationARB' programObj name@
---
--- The parameter @programObj@ is a @handleARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetAttribLocation'.
-
-
-glGetAttribLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
-glGetAttribLocationARB = ffihandleARBPtrcharARBIOint glGetAttribLocationARBFunPtr
-
-glGetAttribLocationARBFunPtr :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
-glGetAttribLocationARBFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocationARB")
-
-{-# NOINLINE glGetAttribLocationARBFunPtr #-}
-
-pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D
-
-pattern GL_MAX_VARYING_FLOATS_ARB = 0x8B4B
-
-pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A
-
-pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89
-
-pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A
-
-pattern GL_VERTEX_SHADER_ARB = 0x8B31
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexType10f11f11fRev.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexType10f11f11fRev.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexType10f11f11fRev.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexType10f11f11fRev (
-  -- * Extension Support
-    gl_ARB_vertex_type_10f_11f_11f_rev
-
-  -- * GL_ARB_vertex_type_10f_11f_11f_rev
-  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_10f_11f_11f_rev.txt GL_ARB_vertex_type_10f_11f_11f_rev> extension is available.
-
-gl_ARB_vertex_type_10f_11f_11f_rev :: Bool
-gl_ARB_vertex_type_10f_11f_11f_rev = member "GL_ARB_vertex_type_10f_11f_11f_rev" extensions
-{-# NOINLINE gl_ARB_vertex_type_10f_11f_11f_rev #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexType2101010Rev.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/VertexType2101010Rev.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/VertexType2101010Rev.hs
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.VertexType2101010Rev (
-  -- * Extension Support
-    gl_ARB_vertex_type_2_10_10_10_rev
-
-  -- * GL_ARB_vertex_type_2_10_10_10_rev
-  , glColorP3ui
-  , glColorP3uiv
-  , glColorP4ui
-  , glColorP4uiv
-  , glMultiTexCoordP1ui
-  , glMultiTexCoordP1uiv
-  , glMultiTexCoordP2ui
-  , glMultiTexCoordP2uiv
-  , glMultiTexCoordP3ui
-  , glMultiTexCoordP3uiv
-  , glMultiTexCoordP4ui
-  , glMultiTexCoordP4uiv
-  , glNormalP3ui
-  , glNormalP3uiv
-  , glSecondaryColorP3ui
-  , glSecondaryColorP3uiv
-  , glTexCoordP1ui
-  , glTexCoordP1uiv
-  , glTexCoordP2ui
-  , glTexCoordP2uiv
-  , glTexCoordP3ui
-  , glTexCoordP3uiv
-  , glTexCoordP4ui
-  , glTexCoordP4uiv
-  , glVertexAttribP1ui
-  , glVertexAttribP1uiv
-  , glVertexAttribP2ui
-  , glVertexAttribP2uiv
-  , glVertexAttribP3ui
-  , glVertexAttribP3uiv
-  , glVertexAttribP4ui
-  , glVertexAttribP4uiv
-  , glVertexP2ui
-  , glVertexP2uiv
-  , glVertexP3ui
-  , glVertexP3uiv
-  , glVertexP4ui
-  , glVertexP4uiv
-  , pattern GL_INT_2_10_10_10_REV
-  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_2_10_10_10_rev.txt GL_ARB_vertex_type_2_10_10_10_rev> extension is available.
-
-gl_ARB_vertex_type_2_10_10_10_rev :: Bool
-gl_ARB_vertex_type_2_10_10_10_rev = member "GL_ARB_vertex_type_2_10_10_10_rev" extensions
-{-# NOINLINE gl_ARB_vertex_type_2_10_10_10_rev #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/ViewportArray.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/ViewportArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/ViewportArray.hs
+++ /dev/null
@@ -1,41 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.ViewportArray (
-  -- * Extension Support
-    gl_ARB_viewport_array
-
-  -- * GL_ARB_viewport_array
-  , glDepthRangeArrayv
-  , glDepthRangeIndexed
-  , glGetDoublei_v
-  , glGetFloati_v
-  , glScissorArrayv
-  , glScissorIndexed
-  , glScissorIndexedv
-  , glViewportArrayv
-  , glViewportIndexedf
-  , glViewportIndexedfv
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_FIRST_VERTEX_CONVENTION
-  , pattern GL_LAST_VERTEX_CONVENTION
-  , pattern GL_LAYER_PROVOKING_VERTEX
-  , pattern GL_MAX_VIEWPORTS
-  , pattern GL_PROVOKING_VERTEX
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_UNDEFINED_VERTEX
-  , pattern GL_VIEWPORT
-  , pattern GL_VIEWPORT_BOUNDS_RANGE
-  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX
-  , pattern GL_VIEWPORT_SUBPIXEL_BITS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/viewport_array.txt GL_ARB_viewport_array> extension is available.
-
-gl_ARB_viewport_array :: Bool
-gl_ARB_viewport_array = member "GL_ARB_viewport_array" extensions
-{-# NOINLINE gl_ARB_viewport_array #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARB/WindowPos.hs b/dist/build/autogen/Graphics/GL/Ext/ARB/WindowPos.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARB/WindowPos.hs
+++ /dev/null
@@ -1,334 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARB.WindowPos (
-  -- * Extension Support
-    gl_ARB_window_pos
-
-  -- * GL_ARB_window_pos
-  , glWindowPos2dARB
-  , glWindowPos2dvARB
-  , glWindowPos2fARB
-  , glWindowPos2fvARB
-  , glWindowPos2iARB
-  , glWindowPos2ivARB
-  , glWindowPos2sARB
-  , glWindowPos2svARB
-  , glWindowPos3dARB
-  , glWindowPos3dvARB
-  , glWindowPos3fARB
-  , glWindowPos3fvARB
-  , glWindowPos3iARB
-  , glWindowPos3ivARB
-  , glWindowPos3sARB
-  , glWindowPos3svARB
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/window_pos.txt GL_ARB_window_pos> extension is available.
-
-gl_ARB_window_pos :: Bool
-gl_ARB_window_pos = member "GL_ARB_window_pos" extensions
-{-# NOINLINE gl_ARB_window_pos #-}
-
--- | Usage: @'glWindowPos2dARB' x y@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2dvARB'.
-
-
-glWindowPos2dARB :: MonadIO m => GLdouble -> GLdouble -> m ()
-glWindowPos2dARB = ffidoubledoubleIOV glWindowPos2dARBFunPtr
-
-glWindowPos2dARBFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glWindowPos2dARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dARB")
-
-{-# NOINLINE glWindowPos2dARBFunPtr #-}
-
--- | Usage: @'glWindowPos2dvARB' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2dv'.
-
-
-glWindowPos2dvARB :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos2dvARB = ffiPtrdoubleIOV glWindowPos2dvARBFunPtr
-
-glWindowPos2dvARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos2dvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dvARB")
-
-{-# NOINLINE glWindowPos2dvARBFunPtr #-}
-
--- | Usage: @'glWindowPos2fARB' x y@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2fvARB'.
-
-
-glWindowPos2fARB :: MonadIO m => GLfloat -> GLfloat -> m ()
-glWindowPos2fARB = ffifloatfloatIOV glWindowPos2fARBFunPtr
-
-glWindowPos2fARBFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glWindowPos2fARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fARB")
-
-{-# NOINLINE glWindowPos2fARBFunPtr #-}
-
--- | Usage: @'glWindowPos2fvARB' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2fv'.
-
-
-glWindowPos2fvARB :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos2fvARB = ffiPtrfloatIOV glWindowPos2fvARBFunPtr
-
-glWindowPos2fvARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos2fvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fvARB")
-
-{-# NOINLINE glWindowPos2fvARBFunPtr #-}
-
--- | Usage: @'glWindowPos2iARB' x y@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2ivARB'.
-
-
-glWindowPos2iARB :: MonadIO m => GLint -> GLint -> m ()
-glWindowPos2iARB = ffiintintIOV glWindowPos2iARBFunPtr
-
-glWindowPos2iARBFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glWindowPos2iARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iARB")
-
-{-# NOINLINE glWindowPos2iARBFunPtr #-}
-
--- | Usage: @'glWindowPos2ivARB' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2iv'.
-
-
-glWindowPos2ivARB :: MonadIO m => Ptr GLint -> m ()
-glWindowPos2ivARB = ffiPtrintIOV glWindowPos2ivARBFunPtr
-
-glWindowPos2ivARBFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos2ivARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2ivARB")
-
-{-# NOINLINE glWindowPos2ivARBFunPtr #-}
-
--- | Usage: @'glWindowPos2sARB' x y@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2svARB'.
-
-
-glWindowPos2sARB :: MonadIO m => GLshort -> GLshort -> m ()
-glWindowPos2sARB = ffishortshortIOV glWindowPos2sARBFunPtr
-
-glWindowPos2sARBFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glWindowPos2sARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sARB")
-
-{-# NOINLINE glWindowPos2sARBFunPtr #-}
-
--- | Usage: @'glWindowPos2svARB' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2sv'.
-
-
-glWindowPos2svARB :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos2svARB = ffiPtrshortIOV glWindowPos2svARBFunPtr
-
-glWindowPos2svARBFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos2svARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2svARB")
-
-{-# NOINLINE glWindowPos2svARBFunPtr #-}
-
--- | Usage: @'glWindowPos3dARB' x y z@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3dvARB'.
-
-
-glWindowPos3dARB :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glWindowPos3dARB = ffidoubledoubledoubleIOV glWindowPos3dARBFunPtr
-
-glWindowPos3dARBFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glWindowPos3dARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dARB")
-
-{-# NOINLINE glWindowPos3dARBFunPtr #-}
-
--- | Usage: @'glWindowPos3dvARB' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3dv'.
-
-
-glWindowPos3dvARB :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos3dvARB = ffiPtrdoubleIOV glWindowPos3dvARBFunPtr
-
-glWindowPos3dvARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos3dvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dvARB")
-
-{-# NOINLINE glWindowPos3dvARBFunPtr #-}
-
--- | Usage: @'glWindowPos3fARB' x y z@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3fvARB'.
-
-
-glWindowPos3fARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glWindowPos3fARB = ffifloatfloatfloatIOV glWindowPos3fARBFunPtr
-
-glWindowPos3fARBFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glWindowPos3fARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fARB")
-
-{-# NOINLINE glWindowPos3fARBFunPtr #-}
-
--- | Usage: @'glWindowPos3fvARB' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3fv'.
-
-
-glWindowPos3fvARB :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos3fvARB = ffiPtrfloatIOV glWindowPos3fvARBFunPtr
-
-glWindowPos3fvARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos3fvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fvARB")
-
-{-# NOINLINE glWindowPos3fvARBFunPtr #-}
-
--- | Usage: @'glWindowPos3iARB' x y z@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3ivARB'.
-
-
-glWindowPos3iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glWindowPos3iARB = ffiintintintIOV glWindowPos3iARBFunPtr
-
-glWindowPos3iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glWindowPos3iARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iARB")
-
-{-# NOINLINE glWindowPos3iARBFunPtr #-}
-
--- | Usage: @'glWindowPos3ivARB' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3iv'.
-
-
-glWindowPos3ivARB :: MonadIO m => Ptr GLint -> m ()
-glWindowPos3ivARB = ffiPtrintIOV glWindowPos3ivARBFunPtr
-
-glWindowPos3ivARBFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos3ivARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3ivARB")
-
-{-# NOINLINE glWindowPos3ivARBFunPtr #-}
-
--- | Usage: @'glWindowPos3sARB' x y z@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3svARB'.
-
-
-glWindowPos3sARB :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glWindowPos3sARB = ffishortshortshortIOV glWindowPos3sARBFunPtr
-
-glWindowPos3sARBFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glWindowPos3sARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sARB")
-
-{-# NOINLINE glWindowPos3sARBFunPtr #-}
-
--- | Usage: @'glWindowPos3svARB' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3sv'.
-
-
-glWindowPos3svARB :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos3svARB = ffiPtrshortIOV glWindowPos3svARBFunPtr
-
-glWindowPos3svARBFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos3svARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3svARB")
-
-{-# NOINLINE glWindowPos3svARBFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARM.hs b/dist/build/autogen/Graphics/GL/Ext/ARM.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARM.hs
+++ /dev/null
@@ -1,16 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARM (
-  -- * ARM Extensions
-    module Graphics.GL.Ext.ARM.MaliProgramBinary
-  , module Graphics.GL.Ext.ARM.MaliShaderBinary
-  , module Graphics.GL.Ext.ARM.Rgba8
-  , module Graphics.GL.Ext.ARM.ShaderFramebufferFetch
-  , module Graphics.GL.Ext.ARM.ShaderFramebufferFetchDepthStencil
-) where
-
-import Graphics.GL.Ext.ARM.MaliProgramBinary
-import Graphics.GL.Ext.ARM.MaliShaderBinary
-import Graphics.GL.Ext.ARM.Rgba8
-import Graphics.GL.Ext.ARM.ShaderFramebufferFetch
-import Graphics.GL.Ext.ARM.ShaderFramebufferFetchDepthStencil
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARM/MaliProgramBinary.hs b/dist/build/autogen/Graphics/GL/Ext/ARM/MaliProgramBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARM/MaliProgramBinary.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARM.MaliProgramBinary (
-  -- * Extension Support
-    gl_ARM_mali_program_binary
-
-  -- * GL_ARM_mali_program_binary
-  , pattern GL_MALI_PROGRAM_BINARY_ARM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_mali_program_binary.txt GL_ARM_mali_program_binary> extension is available.
-
-gl_ARM_mali_program_binary :: Bool
-gl_ARM_mali_program_binary = member "GL_ARM_mali_program_binary" extensions
-{-# NOINLINE gl_ARM_mali_program_binary #-}
-
-pattern GL_MALI_PROGRAM_BINARY_ARM = 0x8F61
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARM/MaliShaderBinary.hs b/dist/build/autogen/Graphics/GL/Ext/ARM/MaliShaderBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARM/MaliShaderBinary.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARM.MaliShaderBinary (
-  -- * Extension Support
-    gl_ARM_mali_shader_binary
-
-  -- * GL_ARM_mali_shader_binary
-  , pattern GL_MALI_SHADER_BINARY_ARM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_mali_shader_binary.txt GL_ARM_mali_shader_binary> extension is available.
-
-gl_ARM_mali_shader_binary :: Bool
-gl_ARM_mali_shader_binary = member "GL_ARM_mali_shader_binary" extensions
-{-# NOINLINE gl_ARM_mali_shader_binary #-}
-
-pattern GL_MALI_SHADER_BINARY_ARM = 0x8F60
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARM/Rgba8.hs b/dist/build/autogen/Graphics/GL/Ext/ARM/Rgba8.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARM/Rgba8.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARM.Rgba8 (
-  -- * Extension Support
-    gl_ARM_rgba8
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_rgba8.txt GL_ARM_rgba8> extension is available.
-
-gl_ARM_rgba8 :: Bool
-gl_ARM_rgba8 = member "GL_ARM_rgba8" extensions
-{-# NOINLINE gl_ARM_rgba8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs b/dist/build/autogen/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARM.ShaderFramebufferFetch (
-  -- * Extension Support
-    gl_ARM_shader_framebuffer_fetch
-
-  -- * GL_ARM_shader_framebuffer_fetch
-  , pattern GL_FETCH_PER_SAMPLE_ARM
-  , pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_shader_framebuffer_fetch.txt GL_ARM_shader_framebuffer_fetch> extension is available.
-
-gl_ARM_shader_framebuffer_fetch :: Bool
-gl_ARM_shader_framebuffer_fetch = member "GL_ARM_shader_framebuffer_fetch" extensions
-{-# NOINLINE gl_ARM_shader_framebuffer_fetch #-}
-
-pattern GL_FETCH_PER_SAMPLE_ARM = 0x8F65
-
-pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66
diff --git a/dist/build/autogen/Graphics/GL/Ext/ARM/ShaderFramebufferFetchDepthStencil.hs b/dist/build/autogen/Graphics/GL/Ext/ARM/ShaderFramebufferFetchDepthStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ARM/ShaderFramebufferFetchDepthStencil.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ARM.ShaderFramebufferFetchDepthStencil (
-  -- * Extension Support
-    gl_ARM_shader_framebuffer_fetch_depth_stencil
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_shader_framebuffer_fetch_depth_stencil.txt GL_ARM_shader_framebuffer_fetch_depth_stencil> extension is available.
-
-gl_ARM_shader_framebuffer_fetch_depth_stencil :: Bool
-gl_ARM_shader_framebuffer_fetch_depth_stencil = member "GL_ARM_shader_framebuffer_fetch_depth_stencil" extensions
-{-# NOINLINE gl_ARM_shader_framebuffer_fetch_depth_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI.hs b/dist/build/autogen/Graphics/GL/Ext/ATI.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI (
-  -- * ATI Extensions
-    module Graphics.GL.Ext.ATI.DrawBuffers
-  , module Graphics.GL.Ext.ATI.ElementArray
-  , module Graphics.GL.Ext.ATI.EnvmapBumpmap
-  , module Graphics.GL.Ext.ATI.FragmentShader
-  , module Graphics.GL.Ext.ATI.MapObjectBuffer
-  , module Graphics.GL.Ext.ATI.Meminfo
-  , module Graphics.GL.Ext.ATI.PixelFormatFloat
-  , module Graphics.GL.Ext.ATI.PnTriangles
-  , module Graphics.GL.Ext.ATI.SeparateStencil
-  , module Graphics.GL.Ext.ATI.TextFragmentShader
-  , module Graphics.GL.Ext.ATI.TextureEnvCombine3
-  , module Graphics.GL.Ext.ATI.TextureFloat
-  , module Graphics.GL.Ext.ATI.TextureMirrorOnce
-  , module Graphics.GL.Ext.ATI.VertexArrayObject
-  , module Graphics.GL.Ext.ATI.VertexAttribArrayObject
-  , module Graphics.GL.Ext.ATI.VertexStreams
-) where
-
-import Graphics.GL.Ext.ATI.DrawBuffers
-import Graphics.GL.Ext.ATI.ElementArray
-import Graphics.GL.Ext.ATI.EnvmapBumpmap
-import Graphics.GL.Ext.ATI.FragmentShader
-import Graphics.GL.Ext.ATI.MapObjectBuffer
-import Graphics.GL.Ext.ATI.Meminfo
-import Graphics.GL.Ext.ATI.PixelFormatFloat
-import Graphics.GL.Ext.ATI.PnTriangles
-import Graphics.GL.Ext.ATI.SeparateStencil
-import Graphics.GL.Ext.ATI.TextFragmentShader
-import Graphics.GL.Ext.ATI.TextureEnvCombine3
-import Graphics.GL.Ext.ATI.TextureFloat
-import Graphics.GL.Ext.ATI.TextureMirrorOnce
-import Graphics.GL.Ext.ATI.VertexArrayObject
-import Graphics.GL.Ext.ATI.VertexAttribArrayObject
-import Graphics.GL.Ext.ATI.VertexStreams
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/DrawBuffers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/DrawBuffers.hs
+++ /dev/null
@@ -1,91 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.DrawBuffers (
-  -- * Extension Support
-    gl_ATI_draw_buffers
-
-  -- * GL_ATI_draw_buffers
-  , glDrawBuffersATI
-  , pattern GL_DRAW_BUFFER0_ATI
-  , pattern GL_DRAW_BUFFER10_ATI
-  , pattern GL_DRAW_BUFFER11_ATI
-  , pattern GL_DRAW_BUFFER12_ATI
-  , pattern GL_DRAW_BUFFER13_ATI
-  , pattern GL_DRAW_BUFFER14_ATI
-  , pattern GL_DRAW_BUFFER15_ATI
-  , pattern GL_DRAW_BUFFER1_ATI
-  , pattern GL_DRAW_BUFFER2_ATI
-  , pattern GL_DRAW_BUFFER3_ATI
-  , pattern GL_DRAW_BUFFER4_ATI
-  , pattern GL_DRAW_BUFFER5_ATI
-  , pattern GL_DRAW_BUFFER6_ATI
-  , pattern GL_DRAW_BUFFER7_ATI
-  , pattern GL_DRAW_BUFFER8_ATI
-  , pattern GL_DRAW_BUFFER9_ATI
-  , pattern GL_MAX_DRAW_BUFFERS_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/draw_buffers.txt GL_ATI_draw_buffers> extension is available.
-
-gl_ATI_draw_buffers :: Bool
-gl_ATI_draw_buffers = member "GL_ATI_draw_buffers" extensions
-{-# NOINLINE gl_ATI_draw_buffers #-}
-
--- | Usage: @'glDrawBuffersATI' n bufs@
---
--- The parameter @bufs@ is a @DrawBufferModeATI@.
---
--- The length of @bufs@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawBuffers'.
-
-
-glDrawBuffersATI :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
-glDrawBuffersATI = ffisizeiPtrenumIOV glDrawBuffersATIFunPtr
-
-glDrawBuffersATIFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
-glDrawBuffersATIFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersATI")
-
-{-# NOINLINE glDrawBuffersATIFunPtr #-}
-
-pattern GL_DRAW_BUFFER0_ATI = 0x8825
-
-pattern GL_DRAW_BUFFER10_ATI = 0x882F
-
-pattern GL_DRAW_BUFFER11_ATI = 0x8830
-
-pattern GL_DRAW_BUFFER12_ATI = 0x8831
-
-pattern GL_DRAW_BUFFER13_ATI = 0x8832
-
-pattern GL_DRAW_BUFFER14_ATI = 0x8833
-
-pattern GL_DRAW_BUFFER15_ATI = 0x8834
-
-pattern GL_DRAW_BUFFER1_ATI = 0x8826
-
-pattern GL_DRAW_BUFFER2_ATI = 0x8827
-
-pattern GL_DRAW_BUFFER3_ATI = 0x8828
-
-pattern GL_DRAW_BUFFER4_ATI = 0x8829
-
-pattern GL_DRAW_BUFFER5_ATI = 0x882A
-
-pattern GL_DRAW_BUFFER6_ATI = 0x882B
-
-pattern GL_DRAW_BUFFER7_ATI = 0x882C
-
-pattern GL_DRAW_BUFFER8_ATI = 0x882D
-
-pattern GL_DRAW_BUFFER9_ATI = 0x882E
-
-pattern GL_MAX_DRAW_BUFFERS_ATI = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/ElementArray.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/ElementArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/ElementArray.hs
+++ /dev/null
@@ -1,75 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.ElementArray (
-  -- * Extension Support
-    gl_ATI_element_array
-
-  -- * GL_ATI_element_array
-  , glDrawElementArrayATI
-  , glDrawRangeElementArrayATI
-  , glElementPointerATI
-  , pattern GL_ELEMENT_ARRAY_ATI
-  , pattern GL_ELEMENT_ARRAY_POINTER_ATI
-  , pattern GL_ELEMENT_ARRAY_TYPE_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/element_array.txt GL_ATI_element_array> extension is available.
-
-gl_ATI_element_array :: Bool
-gl_ATI_element_array = member "GL_ATI_element_array" extensions
-{-# NOINLINE gl_ATI_element_array #-}
-
--- | Usage: @'glDrawElementArrayATI' mode count@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
-
-
-glDrawElementArrayATI :: MonadIO m => GLenum -> GLsizei -> m ()
-glDrawElementArrayATI = ffienumsizeiIOV glDrawElementArrayATIFunPtr
-
-glDrawElementArrayATIFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
-glDrawElementArrayATIFunPtr = unsafePerformIO (getProcAddress "glDrawElementArrayATI")
-
-{-# NOINLINE glDrawElementArrayATIFunPtr #-}
-
--- | Usage: @'glDrawRangeElementArrayATI' mode start end count@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
-
-
-glDrawRangeElementArrayATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
-glDrawRangeElementArrayATI = ffienumuintuintsizeiIOV glDrawRangeElementArrayATIFunPtr
-
-glDrawRangeElementArrayATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
-glDrawRangeElementArrayATIFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementArrayATI")
-
-{-# NOINLINE glDrawRangeElementArrayATIFunPtr #-}
-
--- | Usage: @'glElementPointerATI' type pointer@
---
--- The parameter @type@ is a @ElementPointerTypeATI@.
---
--- The length of @pointer@ should be @COMPSIZE(type)@.
-
-
-glElementPointerATI :: MonadIO m => GLenum -> Ptr () -> m ()
-glElementPointerATI = ffienumPtrVIOV glElementPointerATIFunPtr
-
-glElementPointerATIFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
-glElementPointerATIFunPtr = unsafePerformIO (getProcAddress "glElementPointerATI")
-
-{-# NOINLINE glElementPointerATIFunPtr #-}
-
-pattern GL_ELEMENT_ARRAY_ATI = 0x8768
-
-pattern GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A
-
-pattern GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs
+++ /dev/null
@@ -1,110 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.EnvmapBumpmap (
-  -- * Extension Support
-    gl_ATI_envmap_bumpmap
-
-  -- * GL_ATI_envmap_bumpmap
-  , glGetTexBumpParameterfvATI
-  , glGetTexBumpParameterivATI
-  , glTexBumpParameterfvATI
-  , glTexBumpParameterivATI
-  , pattern GL_BUMP_ENVMAP_ATI
-  , pattern GL_BUMP_NUM_TEX_UNITS_ATI
-  , pattern GL_BUMP_ROT_MATRIX_ATI
-  , pattern GL_BUMP_ROT_MATRIX_SIZE_ATI
-  , pattern GL_BUMP_TARGET_ATI
-  , pattern GL_BUMP_TEX_UNITS_ATI
-  , pattern GL_DU8DV8_ATI
-  , pattern GL_DUDV_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/envmap_bumpmap.txt GL_ATI_envmap_bumpmap> extension is available.
-
-gl_ATI_envmap_bumpmap :: Bool
-gl_ATI_envmap_bumpmap = member "GL_ATI_envmap_bumpmap" extensions
-{-# NOINLINE gl_ATI_envmap_bumpmap #-}
-
--- | Usage: @'glGetTexBumpParameterfvATI' pname param@
---
--- The parameter @pname@ is a @GetTexBumpParameterATI@.
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glGetTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetTexBumpParameterfvATI = ffienumPtrfloatIOV glGetTexBumpParameterfvATIFunPtr
-
-glGetTexBumpParameterfvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetTexBumpParameterfvATIFunPtr = unsafePerformIO (getProcAddress "glGetTexBumpParameterfvATI")
-
-{-# NOINLINE glGetTexBumpParameterfvATIFunPtr #-}
-
--- | Usage: @'glGetTexBumpParameterivATI' pname param@
---
--- The parameter @pname@ is a @GetTexBumpParameterATI@.
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glGetTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glGetTexBumpParameterivATI = ffienumPtrintIOV glGetTexBumpParameterivATIFunPtr
-
-glGetTexBumpParameterivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glGetTexBumpParameterivATIFunPtr = unsafePerformIO (getProcAddress "glGetTexBumpParameterivATI")
-
-{-# NOINLINE glGetTexBumpParameterivATIFunPtr #-}
-
--- | Usage: @'glTexBumpParameterfvATI' pname param@
---
--- The parameter @pname@ is a @TexBumpParameterATI@.
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glTexBumpParameterfvATI = ffienumPtrfloatIOV glTexBumpParameterfvATIFunPtr
-
-glTexBumpParameterfvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glTexBumpParameterfvATIFunPtr = unsafePerformIO (getProcAddress "glTexBumpParameterfvATI")
-
-{-# NOINLINE glTexBumpParameterfvATIFunPtr #-}
-
--- | Usage: @'glTexBumpParameterivATI' pname param@
---
--- The parameter @pname@ is a @TexBumpParameterATI@.
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glTexBumpParameterivATI = ffienumPtrintIOV glTexBumpParameterivATIFunPtr
-
-glTexBumpParameterivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glTexBumpParameterivATIFunPtr = unsafePerformIO (getProcAddress "glTexBumpParameterivATI")
-
-{-# NOINLINE glTexBumpParameterivATIFunPtr #-}
-
-pattern GL_BUMP_ENVMAP_ATI = 0x877B
-
-pattern GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777
-
-pattern GL_BUMP_ROT_MATRIX_ATI = 0x8775
-
-pattern GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776
-
-pattern GL_BUMP_TARGET_ATI = 0x877C
-
-pattern GL_BUMP_TEX_UNITS_ATI = 0x8778
-
-pattern GL_DU8DV8_ATI = 0x877A
-
-pattern GL_DUDV_ATI = 0x8779
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/FragmentShader.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/FragmentShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/FragmentShader.hs
+++ /dev/null
@@ -1,520 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.FragmentShader (
-  -- * Extension Support
-    gl_ATI_fragment_shader
-
-  -- * GL_ATI_fragment_shader
-  , glAlphaFragmentOp1ATI
-  , glAlphaFragmentOp2ATI
-  , glAlphaFragmentOp3ATI
-  , glBeginFragmentShaderATI
-  , glBindFragmentShaderATI
-  , glColorFragmentOp1ATI
-  , glColorFragmentOp2ATI
-  , glColorFragmentOp3ATI
-  , glDeleteFragmentShaderATI
-  , glEndFragmentShaderATI
-  , glGenFragmentShadersATI
-  , glPassTexCoordATI
-  , glSampleMapATI
-  , glSetFragmentShaderConstantATI
-  , pattern GL_2X_BIT_ATI
-  , pattern GL_4X_BIT_ATI
-  , pattern GL_8X_BIT_ATI
-  , pattern GL_ADD_ATI
-  , pattern GL_BIAS_BIT_ATI
-  , pattern GL_BLUE_BIT_ATI
-  , pattern GL_CND0_ATI
-  , pattern GL_CND_ATI
-  , pattern GL_COLOR_ALPHA_PAIRING_ATI
-  , pattern GL_COMP_BIT_ATI
-  , pattern GL_CON_0_ATI
-  , pattern GL_CON_10_ATI
-  , pattern GL_CON_11_ATI
-  , pattern GL_CON_12_ATI
-  , pattern GL_CON_13_ATI
-  , pattern GL_CON_14_ATI
-  , pattern GL_CON_15_ATI
-  , pattern GL_CON_16_ATI
-  , pattern GL_CON_17_ATI
-  , pattern GL_CON_18_ATI
-  , pattern GL_CON_19_ATI
-  , pattern GL_CON_1_ATI
-  , pattern GL_CON_20_ATI
-  , pattern GL_CON_21_ATI
-  , pattern GL_CON_22_ATI
-  , pattern GL_CON_23_ATI
-  , pattern GL_CON_24_ATI
-  , pattern GL_CON_25_ATI
-  , pattern GL_CON_26_ATI
-  , pattern GL_CON_27_ATI
-  , pattern GL_CON_28_ATI
-  , pattern GL_CON_29_ATI
-  , pattern GL_CON_2_ATI
-  , pattern GL_CON_30_ATI
-  , pattern GL_CON_31_ATI
-  , pattern GL_CON_3_ATI
-  , pattern GL_CON_4_ATI
-  , pattern GL_CON_5_ATI
-  , pattern GL_CON_6_ATI
-  , pattern GL_CON_7_ATI
-  , pattern GL_CON_8_ATI
-  , pattern GL_CON_9_ATI
-  , pattern GL_DOT2_ADD_ATI
-  , pattern GL_DOT3_ATI
-  , pattern GL_DOT4_ATI
-  , pattern GL_EIGHTH_BIT_ATI
-  , pattern GL_FRAGMENT_SHADER_ATI
-  , pattern GL_GREEN_BIT_ATI
-  , pattern GL_HALF_BIT_ATI
-  , pattern GL_LERP_ATI
-  , pattern GL_MAD_ATI
-  , pattern GL_MOV_ATI
-  , pattern GL_MUL_ATI
-  , pattern GL_NEGATE_BIT_ATI
-  , pattern GL_NUM_FRAGMENT_CONSTANTS_ATI
-  , pattern GL_NUM_FRAGMENT_REGISTERS_ATI
-  , pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
-  , pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI
-  , pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI
-  , pattern GL_NUM_LOOPBACK_COMPONENTS_ATI
-  , pattern GL_NUM_PASSES_ATI
-  , pattern GL_QUARTER_BIT_ATI
-  , pattern GL_RED_BIT_ATI
-  , pattern GL_REG_0_ATI
-  , pattern GL_REG_10_ATI
-  , pattern GL_REG_11_ATI
-  , pattern GL_REG_12_ATI
-  , pattern GL_REG_13_ATI
-  , pattern GL_REG_14_ATI
-  , pattern GL_REG_15_ATI
-  , pattern GL_REG_16_ATI
-  , pattern GL_REG_17_ATI
-  , pattern GL_REG_18_ATI
-  , pattern GL_REG_19_ATI
-  , pattern GL_REG_1_ATI
-  , pattern GL_REG_20_ATI
-  , pattern GL_REG_21_ATI
-  , pattern GL_REG_22_ATI
-  , pattern GL_REG_23_ATI
-  , pattern GL_REG_24_ATI
-  , pattern GL_REG_25_ATI
-  , pattern GL_REG_26_ATI
-  , pattern GL_REG_27_ATI
-  , pattern GL_REG_28_ATI
-  , pattern GL_REG_29_ATI
-  , pattern GL_REG_2_ATI
-  , pattern GL_REG_30_ATI
-  , pattern GL_REG_31_ATI
-  , pattern GL_REG_3_ATI
-  , pattern GL_REG_4_ATI
-  , pattern GL_REG_5_ATI
-  , pattern GL_REG_6_ATI
-  , pattern GL_REG_7_ATI
-  , pattern GL_REG_8_ATI
-  , pattern GL_REG_9_ATI
-  , pattern GL_SATURATE_BIT_ATI
-  , pattern GL_SECONDARY_INTERPOLATOR_ATI
-  , pattern GL_SUB_ATI
-  , pattern GL_SWIZZLE_STQ_ATI
-  , pattern GL_SWIZZLE_STQ_DQ_ATI
-  , pattern GL_SWIZZLE_STRQ_ATI
-  , pattern GL_SWIZZLE_STRQ_DQ_ATI
-  , pattern GL_SWIZZLE_STR_ATI
-  , pattern GL_SWIZZLE_STR_DR_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/fragment_shader.txt GL_ATI_fragment_shader> extension is available.
-
-gl_ATI_fragment_shader :: Bool
-gl_ATI_fragment_shader = member "GL_ATI_fragment_shader" extensions
-{-# NOINLINE gl_ATI_fragment_shader #-}
-
--- | Usage: @'glAlphaFragmentOp1ATI' op dst dstMod arg1 arg1Rep arg1Mod@
---
--- The parameter @op@ is a @FragmentOpATI@.
-
-
-glAlphaFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glAlphaFragmentOp1ATI = ffienumuintuintuintuintuintIOV glAlphaFragmentOp1ATIFunPtr
-
-glAlphaFragmentOp1ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glAlphaFragmentOp1ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp1ATI")
-
-{-# NOINLINE glAlphaFragmentOp1ATIFunPtr #-}
-
--- | Usage: @'glAlphaFragmentOp2ATI' op dst dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod@
---
--- The parameter @op@ is a @FragmentOpATI@.
-
-
-glAlphaFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glAlphaFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp2ATIFunPtr
-
-glAlphaFragmentOp2ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glAlphaFragmentOp2ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp2ATI")
-
-{-# NOINLINE glAlphaFragmentOp2ATIFunPtr #-}
-
--- | Usage: @'glAlphaFragmentOp3ATI' op dst dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod@
---
--- The parameter @op@ is a @FragmentOpATI@.
-
-
-glAlphaFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glAlphaFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp3ATIFunPtr
-
-glAlphaFragmentOp3ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glAlphaFragmentOp3ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp3ATI")
-
-{-# NOINLINE glAlphaFragmentOp3ATIFunPtr #-}
-
--- | Usage: @'glBeginFragmentShaderATI'@
-
-
-glBeginFragmentShaderATI :: MonadIO m => m ()
-glBeginFragmentShaderATI = ffiIOV glBeginFragmentShaderATIFunPtr
-
-glBeginFragmentShaderATIFunPtr :: FunPtr (IO ())
-glBeginFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glBeginFragmentShaderATI")
-
-{-# NOINLINE glBeginFragmentShaderATIFunPtr #-}
-
--- | Usage: @'glBindFragmentShaderATI' id@
-
-
-glBindFragmentShaderATI :: MonadIO m => GLuint -> m ()
-glBindFragmentShaderATI = ffiuintIOV glBindFragmentShaderATIFunPtr
-
-glBindFragmentShaderATIFunPtr :: FunPtr (GLuint -> IO ())
-glBindFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glBindFragmentShaderATI")
-
-{-# NOINLINE glBindFragmentShaderATIFunPtr #-}
-
--- | Usage: @'glColorFragmentOp1ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod@
---
--- The parameter @op@ is a @FragmentOpATI@.
-
-
-glColorFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glColorFragmentOp1ATI = ffienumuintuintuintuintuintuintIOV glColorFragmentOp1ATIFunPtr
-
-glColorFragmentOp1ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glColorFragmentOp1ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp1ATI")
-
-{-# NOINLINE glColorFragmentOp1ATIFunPtr #-}
-
--- | Usage: @'glColorFragmentOp2ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod@
---
--- The parameter @op@ is a @FragmentOpATI@.
-
-
-glColorFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glColorFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp2ATIFunPtr
-
-glColorFragmentOp2ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glColorFragmentOp2ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp2ATI")
-
-{-# NOINLINE glColorFragmentOp2ATIFunPtr #-}
-
--- | Usage: @'glColorFragmentOp3ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod@
---
--- The parameter @op@ is a @FragmentOpATI@.
-
-
-glColorFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glColorFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp3ATIFunPtr
-
-glColorFragmentOp3ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glColorFragmentOp3ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp3ATI")
-
-{-# NOINLINE glColorFragmentOp3ATIFunPtr #-}
-
--- | Usage: @'glDeleteFragmentShaderATI' id@
-
-
-glDeleteFragmentShaderATI :: MonadIO m => GLuint -> m ()
-glDeleteFragmentShaderATI = ffiuintIOV glDeleteFragmentShaderATIFunPtr
-
-glDeleteFragmentShaderATIFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glDeleteFragmentShaderATI")
-
-{-# NOINLINE glDeleteFragmentShaderATIFunPtr #-}
-
--- | Usage: @'glEndFragmentShaderATI'@
-
-
-glEndFragmentShaderATI :: MonadIO m => m ()
-glEndFragmentShaderATI = ffiIOV glEndFragmentShaderATIFunPtr
-
-glEndFragmentShaderATIFunPtr :: FunPtr (IO ())
-glEndFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glEndFragmentShaderATI")
-
-{-# NOINLINE glEndFragmentShaderATIFunPtr #-}
-
--- | Usage: @'glGenFragmentShadersATI' range@
-
-
-glGenFragmentShadersATI :: MonadIO m => GLuint -> m GLuint
-glGenFragmentShadersATI = ffiuintIOuint glGenFragmentShadersATIFunPtr
-
-glGenFragmentShadersATIFunPtr :: FunPtr (GLuint -> IO GLuint)
-glGenFragmentShadersATIFunPtr = unsafePerformIO (getProcAddress "glGenFragmentShadersATI")
-
-{-# NOINLINE glGenFragmentShadersATIFunPtr #-}
-
--- | Usage: @'glPassTexCoordATI' dst coord swizzle@
---
--- The parameter @swizzle@ is a @SwizzleOpATI@.
-
-
-glPassTexCoordATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
-glPassTexCoordATI = ffiuintuintenumIOV glPassTexCoordATIFunPtr
-
-glPassTexCoordATIFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
-glPassTexCoordATIFunPtr = unsafePerformIO (getProcAddress "glPassTexCoordATI")
-
-{-# NOINLINE glPassTexCoordATIFunPtr #-}
-
--- | Usage: @'glSampleMapATI' dst interp swizzle@
---
--- The parameter @swizzle@ is a @SwizzleOpATI@.
-
-
-glSampleMapATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
-glSampleMapATI = ffiuintuintenumIOV glSampleMapATIFunPtr
-
-glSampleMapATIFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
-glSampleMapATIFunPtr = unsafePerformIO (getProcAddress "glSampleMapATI")
-
-{-# NOINLINE glSampleMapATIFunPtr #-}
-
--- | Usage: @'glSetFragmentShaderConstantATI' dst value@
---
--- The length of @value@ should be @4@.
-
-
-glSetFragmentShaderConstantATI :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glSetFragmentShaderConstantATI = ffiuintPtrfloatIOV glSetFragmentShaderConstantATIFunPtr
-
-glSetFragmentShaderConstantATIFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glSetFragmentShaderConstantATIFunPtr = unsafePerformIO (getProcAddress "glSetFragmentShaderConstantATI")
-
-{-# NOINLINE glSetFragmentShaderConstantATIFunPtr #-}
-
-pattern GL_2X_BIT_ATI = 0x00000001
-
-pattern GL_4X_BIT_ATI = 0x00000002
-
-pattern GL_8X_BIT_ATI = 0x00000004
-
-pattern GL_ADD_ATI = 0x8963
-
-pattern GL_BIAS_BIT_ATI = 0x00000008
-
-pattern GL_BLUE_BIT_ATI = 0x00000004
-
-pattern GL_CND0_ATI = 0x896B
-
-pattern GL_CND_ATI = 0x896A
-
-pattern GL_COLOR_ALPHA_PAIRING_ATI = 0x8975
-
-pattern GL_COMP_BIT_ATI = 0x00000002
-
-pattern GL_CON_0_ATI = 0x8941
-
-pattern GL_CON_10_ATI = 0x894B
-
-pattern GL_CON_11_ATI = 0x894C
-
-pattern GL_CON_12_ATI = 0x894D
-
-pattern GL_CON_13_ATI = 0x894E
-
-pattern GL_CON_14_ATI = 0x894F
-
-pattern GL_CON_15_ATI = 0x8950
-
-pattern GL_CON_16_ATI = 0x8951
-
-pattern GL_CON_17_ATI = 0x8952
-
-pattern GL_CON_18_ATI = 0x8953
-
-pattern GL_CON_19_ATI = 0x8954
-
-pattern GL_CON_1_ATI = 0x8942
-
-pattern GL_CON_20_ATI = 0x8955
-
-pattern GL_CON_21_ATI = 0x8956
-
-pattern GL_CON_22_ATI = 0x8957
-
-pattern GL_CON_23_ATI = 0x8958
-
-pattern GL_CON_24_ATI = 0x8959
-
-pattern GL_CON_25_ATI = 0x895A
-
-pattern GL_CON_26_ATI = 0x895B
-
-pattern GL_CON_27_ATI = 0x895C
-
-pattern GL_CON_28_ATI = 0x895D
-
-pattern GL_CON_29_ATI = 0x895E
-
-pattern GL_CON_2_ATI = 0x8943
-
-pattern GL_CON_30_ATI = 0x895F
-
-pattern GL_CON_31_ATI = 0x8960
-
-pattern GL_CON_3_ATI = 0x8944
-
-pattern GL_CON_4_ATI = 0x8945
-
-pattern GL_CON_5_ATI = 0x8946
-
-pattern GL_CON_6_ATI = 0x8947
-
-pattern GL_CON_7_ATI = 0x8948
-
-pattern GL_CON_8_ATI = 0x8949
-
-pattern GL_CON_9_ATI = 0x894A
-
-pattern GL_DOT2_ADD_ATI = 0x896C
-
-pattern GL_DOT3_ATI = 0x8966
-
-pattern GL_DOT4_ATI = 0x8967
-
-pattern GL_EIGHTH_BIT_ATI = 0x00000020
-
-pattern GL_FRAGMENT_SHADER_ATI = 0x8920
-
-pattern GL_GREEN_BIT_ATI = 0x00000002
-
-pattern GL_HALF_BIT_ATI = 0x00000008
-
-pattern GL_LERP_ATI = 0x8969
-
-pattern GL_MAD_ATI = 0x8968
-
-pattern GL_MOV_ATI = 0x8961
-
-pattern GL_MUL_ATI = 0x8964
-
-pattern GL_NEGATE_BIT_ATI = 0x00000004
-
-pattern GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F
-
-pattern GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E
-
-pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973
-
-pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971
-
-pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972
-
-pattern GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974
-
-pattern GL_NUM_PASSES_ATI = 0x8970
-
-pattern GL_QUARTER_BIT_ATI = 0x00000010
-
-pattern GL_RED_BIT_ATI = 0x00000001
-
-pattern GL_REG_0_ATI = 0x8921
-
-pattern GL_REG_10_ATI = 0x892B
-
-pattern GL_REG_11_ATI = 0x892C
-
-pattern GL_REG_12_ATI = 0x892D
-
-pattern GL_REG_13_ATI = 0x892E
-
-pattern GL_REG_14_ATI = 0x892F
-
-pattern GL_REG_15_ATI = 0x8930
-
-pattern GL_REG_16_ATI = 0x8931
-
-pattern GL_REG_17_ATI = 0x8932
-
-pattern GL_REG_18_ATI = 0x8933
-
-pattern GL_REG_19_ATI = 0x8934
-
-pattern GL_REG_1_ATI = 0x8922
-
-pattern GL_REG_20_ATI = 0x8935
-
-pattern GL_REG_21_ATI = 0x8936
-
-pattern GL_REG_22_ATI = 0x8937
-
-pattern GL_REG_23_ATI = 0x8938
-
-pattern GL_REG_24_ATI = 0x8939
-
-pattern GL_REG_25_ATI = 0x893A
-
-pattern GL_REG_26_ATI = 0x893B
-
-pattern GL_REG_27_ATI = 0x893C
-
-pattern GL_REG_28_ATI = 0x893D
-
-pattern GL_REG_29_ATI = 0x893E
-
-pattern GL_REG_2_ATI = 0x8923
-
-pattern GL_REG_30_ATI = 0x893F
-
-pattern GL_REG_31_ATI = 0x8940
-
-pattern GL_REG_3_ATI = 0x8924
-
-pattern GL_REG_4_ATI = 0x8925
-
-pattern GL_REG_5_ATI = 0x8926
-
-pattern GL_REG_6_ATI = 0x8927
-
-pattern GL_REG_7_ATI = 0x8928
-
-pattern GL_REG_8_ATI = 0x8929
-
-pattern GL_REG_9_ATI = 0x892A
-
-pattern GL_SATURATE_BIT_ATI = 0x00000040
-
-pattern GL_SECONDARY_INTERPOLATOR_ATI = 0x896D
-
-pattern GL_SUB_ATI = 0x8965
-
-pattern GL_SWIZZLE_STQ_ATI = 0x8977
-
-pattern GL_SWIZZLE_STQ_DQ_ATI = 0x8979
-
-pattern GL_SWIZZLE_STRQ_ATI = 0x897A
-
-pattern GL_SWIZZLE_STRQ_DQ_ATI = 0x897B
-
-pattern GL_SWIZZLE_STR_ATI = 0x8976
-
-pattern GL_SWIZZLE_STR_DR_ATI = 0x8978
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/MapObjectBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/MapObjectBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/MapObjectBuffer.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.MapObjectBuffer (
-  -- * Extension Support
-    gl_ATI_map_object_buffer
-
-  -- * GL_ATI_map_object_buffer
-  , glMapObjectBufferATI
-  , glUnmapObjectBufferATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/map_object_buffer.txt GL_ATI_map_object_buffer> extension is available.
-
-gl_ATI_map_object_buffer :: Bool
-gl_ATI_map_object_buffer = member "GL_ATI_map_object_buffer" extensions
-{-# NOINLINE gl_ATI_map_object_buffer #-}
-
--- | Usage: @'glMapObjectBufferATI' buffer@
-
-
-glMapObjectBufferATI :: MonadIO m => GLuint -> m (Ptr ())
-glMapObjectBufferATI = ffiuintIOPtrV glMapObjectBufferATIFunPtr
-
-glMapObjectBufferATIFunPtr :: FunPtr (GLuint -> IO (Ptr ()))
-glMapObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glMapObjectBufferATI")
-
-{-# NOINLINE glMapObjectBufferATIFunPtr #-}
-
--- | Usage: @'glUnmapObjectBufferATI' buffer@
-
-
-glUnmapObjectBufferATI :: MonadIO m => GLuint -> m ()
-glUnmapObjectBufferATI = ffiuintIOV glUnmapObjectBufferATIFunPtr
-
-glUnmapObjectBufferATIFunPtr :: FunPtr (GLuint -> IO ())
-glUnmapObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glUnmapObjectBufferATI")
-
-{-# NOINLINE glUnmapObjectBufferATIFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/Meminfo.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/Meminfo.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/Meminfo.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.Meminfo (
-  -- * Extension Support
-    gl_ATI_meminfo
-
-  -- * GL_ATI_meminfo
-  , pattern GL_RENDERBUFFER_FREE_MEMORY_ATI
-  , pattern GL_TEXTURE_FREE_MEMORY_ATI
-  , pattern GL_VBO_FREE_MEMORY_ATI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/meminfo.txt GL_ATI_meminfo> extension is available.
-
-gl_ATI_meminfo :: Bool
-gl_ATI_meminfo = member "GL_ATI_meminfo" extensions
-{-# NOINLINE gl_ATI_meminfo #-}
-
-pattern GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD
-
-pattern GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC
-
-pattern GL_VBO_FREE_MEMORY_ATI = 0x87FB
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/PixelFormatFloat.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/PixelFormatFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/PixelFormatFloat.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.PixelFormatFloat (
-  -- * Extension Support
-    gl_ATI_pixel_format_float
-
-  -- * GL_ATI_pixel_format_float
-  , pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI
-  , pattern GL_RGBA_FLOAT_MODE_ATI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pixel_format_float.txt GL_ATI_pixel_format_float> extension is available.
-
-gl_ATI_pixel_format_float :: Bool
-gl_ATI_pixel_format_float = member "GL_ATI_pixel_format_float" extensions
-{-# NOINLINE gl_ATI_pixel_format_float #-}
-
-pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835
-
-pattern GL_RGBA_FLOAT_MODE_ATI = 0x8820
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/PnTriangles.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/PnTriangles.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/PnTriangles.hs
+++ /dev/null
@@ -1,77 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.PnTriangles (
-  -- * Extension Support
-    gl_ATI_pn_triangles
-
-  -- * GL_ATI_pn_triangles
-  , glPNTrianglesfATI
-  , glPNTrianglesiATI
-  , pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI
-  , pattern GL_PN_TRIANGLES_ATI
-  , pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI
-  , pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI
-  , pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI
-  , pattern GL_PN_TRIANGLES_POINT_MODE_ATI
-  , pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI
-  , pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI
-  , pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pn_triangles.txt GL_ATI_pn_triangles> extension is available.
-
-gl_ATI_pn_triangles :: Bool
-gl_ATI_pn_triangles = member "GL_ATI_pn_triangles" extensions
-{-# NOINLINE gl_ATI_pn_triangles #-}
-
--- | Usage: @'glPNTrianglesfATI' pname param@
---
--- The parameter @pname@ is a @PNTrianglesPNameATI@.
-
-
-glPNTrianglesfATI :: MonadIO m => GLenum -> GLfloat -> m ()
-glPNTrianglesfATI = ffienumfloatIOV glPNTrianglesfATIFunPtr
-
-glPNTrianglesfATIFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPNTrianglesfATIFunPtr = unsafePerformIO (getProcAddress "glPNTrianglesfATI")
-
-{-# NOINLINE glPNTrianglesfATIFunPtr #-}
-
--- | Usage: @'glPNTrianglesiATI' pname param@
---
--- The parameter @pname@ is a @PNTrianglesPNameATI@.
-
-
-glPNTrianglesiATI :: MonadIO m => GLenum -> GLint -> m ()
-glPNTrianglesiATI = ffienumintIOV glPNTrianglesiATIFunPtr
-
-glPNTrianglesiATIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPNTrianglesiATIFunPtr = unsafePerformIO (getProcAddress "glPNTrianglesiATI")
-
-{-# NOINLINE glPNTrianglesiATIFunPtr #-}
-
-pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1
-
-pattern GL_PN_TRIANGLES_ATI = 0x87F0
-
-pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3
-
-pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7
-
-pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8
-
-pattern GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2
-
-pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6
-
-pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5
-
-pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/SeparateStencil.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/SeparateStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/SeparateStencil.hs
+++ /dev/null
@@ -1,76 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.SeparateStencil (
-  -- * Extension Support
-    gl_ATI_separate_stencil
-
-  -- * GL_ATI_separate_stencil
-  , glStencilFuncSeparateATI
-  , glStencilOpSeparateATI
-  , pattern GL_STENCIL_BACK_FAIL_ATI
-  , pattern GL_STENCIL_BACK_FUNC_ATI
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/separate_stencil.txt GL_ATI_separate_stencil> extension is available.
-
-gl_ATI_separate_stencil :: Bool
-gl_ATI_separate_stencil = member "GL_ATI_separate_stencil" extensions
-{-# NOINLINE gl_ATI_separate_stencil #-}
-
--- | Usage: @'glStencilFuncSeparateATI' frontfunc backfunc ref mask@
---
--- The parameter @frontfunc@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- The parameter @backfunc@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- The parameter @ref@ is a @ClampedStencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
-
-
-glStencilFuncSeparateATI :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
-glStencilFuncSeparateATI = ffienumenumintuintIOV glStencilFuncSeparateATIFunPtr
-
-glStencilFuncSeparateATIFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
-glStencilFuncSeparateATIFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparateATI")
-
-{-# NOINLINE glStencilFuncSeparateATIFunPtr #-}
-
--- | Usage: @'glStencilOpSeparateATI' face sfail dpfail dppass@
---
--- The parameter @face@ is a @StencilFaceDirection@.
---
--- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glStencilOpSeparate'.
-
-
-glStencilOpSeparateATI :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glStencilOpSeparateATI = ffienumenumenumenumIOV glStencilOpSeparateATIFunPtr
-
-glStencilOpSeparateATIFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glStencilOpSeparateATIFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparateATI")
-
-{-# NOINLINE glStencilOpSeparateATIFunPtr #-}
-
-pattern GL_STENCIL_BACK_FAIL_ATI = 0x8801
-
-pattern GL_STENCIL_BACK_FUNC_ATI = 0x8800
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/TextFragmentShader.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/TextFragmentShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/TextFragmentShader.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.TextFragmentShader (
-  -- * Extension Support
-    gl_ATI_text_fragment_shader
-
-  -- * GL_ATI_text_fragment_shader
-  , pattern GL_TEXT_FRAGMENT_SHADER_ATI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/text_fragment_shader.txt GL_ATI_text_fragment_shader> extension is available.
-
-gl_ATI_text_fragment_shader :: Bool
-gl_ATI_text_fragment_shader = member "GL_ATI_text_fragment_shader" extensions
-{-# NOINLINE gl_ATI_text_fragment_shader #-}
-
-pattern GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.TextureEnvCombine3 (
-  -- * Extension Support
-    gl_ATI_texture_env_combine3
-
-  -- * GL_ATI_texture_env_combine3
-  , pattern GL_MODULATE_ADD_ATI
-  , pattern GL_MODULATE_SIGNED_ADD_ATI
-  , pattern GL_MODULATE_SUBTRACT_ATI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_env_combine3.txt GL_ATI_texture_env_combine3> extension is available.
-
-gl_ATI_texture_env_combine3 :: Bool
-gl_ATI_texture_env_combine3 = member "GL_ATI_texture_env_combine3" extensions
-{-# NOINLINE gl_ATI_texture_env_combine3 #-}
-
-pattern GL_MODULATE_ADD_ATI = 0x8744
-
-pattern GL_MODULATE_SIGNED_ADD_ATI = 0x8745
-
-pattern GL_MODULATE_SUBTRACT_ATI = 0x8746
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/TextureFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/TextureFloat.hs
+++ /dev/null
@@ -1,53 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.TextureFloat (
-  -- * Extension Support
-    gl_ATI_texture_float
-
-  -- * GL_ATI_texture_float
-  , pattern GL_ALPHA_FLOAT16_ATI
-  , pattern GL_ALPHA_FLOAT32_ATI
-  , pattern GL_INTENSITY_FLOAT16_ATI
-  , pattern GL_INTENSITY_FLOAT32_ATI
-  , pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI
-  , pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI
-  , pattern GL_LUMINANCE_FLOAT16_ATI
-  , pattern GL_LUMINANCE_FLOAT32_ATI
-  , pattern GL_RGBA_FLOAT16_ATI
-  , pattern GL_RGBA_FLOAT32_ATI
-  , pattern GL_RGB_FLOAT16_ATI
-  , pattern GL_RGB_FLOAT32_ATI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_float.txt GL_ATI_texture_float> extension is available.
-
-gl_ATI_texture_float :: Bool
-gl_ATI_texture_float = member "GL_ATI_texture_float" extensions
-{-# NOINLINE gl_ATI_texture_float #-}
-
-pattern GL_ALPHA_FLOAT16_ATI = 0x881C
-
-pattern GL_ALPHA_FLOAT32_ATI = 0x8816
-
-pattern GL_INTENSITY_FLOAT16_ATI = 0x881D
-
-pattern GL_INTENSITY_FLOAT32_ATI = 0x8817
-
-pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F
-
-pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819
-
-pattern GL_LUMINANCE_FLOAT16_ATI = 0x881E
-
-pattern GL_LUMINANCE_FLOAT32_ATI = 0x8818
-
-pattern GL_RGBA_FLOAT16_ATI = 0x881A
-
-pattern GL_RGBA_FLOAT32_ATI = 0x8814
-
-pattern GL_RGB_FLOAT16_ATI = 0x881B
-
-pattern GL_RGB_FLOAT32_ATI = 0x8815
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.TextureMirrorOnce (
-  -- * Extension Support
-    gl_ATI_texture_mirror_once
-
-  -- * GL_ATI_texture_mirror_once
-  , pattern GL_MIRROR_CLAMP_ATI
-  , pattern GL_MIRROR_CLAMP_TO_EDGE_ATI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_mirror_once.txt GL_ATI_texture_mirror_once> extension is available.
-
-gl_ATI_texture_mirror_once :: Bool
-gl_ATI_texture_mirror_once = member "GL_ATI_texture_mirror_once" extensions
-{-# NOINLINE gl_ATI_texture_mirror_once #-}
-
-pattern GL_MIRROR_CLAMP_ATI = 0x8742
-
-pattern GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/VertexArrayObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/VertexArrayObject.hs
+++ /dev/null
@@ -1,232 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.VertexArrayObject (
-  -- * Extension Support
-    gl_ATI_vertex_array_object
-
-  -- * GL_ATI_vertex_array_object
-  , glArrayObjectATI
-  , glFreeObjectBufferATI
-  , glGetArrayObjectfvATI
-  , glGetArrayObjectivATI
-  , glGetObjectBufferfvATI
-  , glGetObjectBufferivATI
-  , glGetVariantArrayObjectfvATI
-  , glGetVariantArrayObjectivATI
-  , glIsObjectBufferATI
-  , glNewObjectBufferATI
-  , glUpdateObjectBufferATI
-  , glVariantArrayObjectATI
-  , pattern GL_ARRAY_OBJECT_BUFFER_ATI
-  , pattern GL_ARRAY_OBJECT_OFFSET_ATI
-  , pattern GL_DISCARD_ATI
-  , pattern GL_DYNAMIC_ATI
-  , pattern GL_OBJECT_BUFFER_SIZE_ATI
-  , pattern GL_OBJECT_BUFFER_USAGE_ATI
-  , pattern GL_PRESERVE_ATI
-  , pattern GL_STATIC_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_array_object.txt GL_ATI_vertex_array_object> extension is available.
-
-gl_ATI_vertex_array_object :: Bool
-gl_ATI_vertex_array_object = member "GL_ATI_vertex_array_object" extensions
-{-# NOINLINE gl_ATI_vertex_array_object #-}
-
--- | Usage: @'glArrayObjectATI' array size type stride buffer offset@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
---
--- The parameter @type@ is a @ScalarType@.
-
-
-glArrayObjectATI :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
-glArrayObjectATI = ffienumintenumsizeiuintuintIOV glArrayObjectATIFunPtr
-
-glArrayObjectATIFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
-glArrayObjectATIFunPtr = unsafePerformIO (getProcAddress "glArrayObjectATI")
-
-{-# NOINLINE glArrayObjectATIFunPtr #-}
-
--- | Usage: @'glFreeObjectBufferATI' buffer@
-
-
-glFreeObjectBufferATI :: MonadIO m => GLuint -> m ()
-glFreeObjectBufferATI = ffiuintIOV glFreeObjectBufferATIFunPtr
-
-glFreeObjectBufferATIFunPtr :: FunPtr (GLuint -> IO ())
-glFreeObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glFreeObjectBufferATI")
-
-{-# NOINLINE glFreeObjectBufferATIFunPtr #-}
-
--- | Usage: @'glGetArrayObjectfvATI' array pname params@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @1@.
-
-
-glGetArrayObjectfvATI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetArrayObjectfvATI = ffienumenumPtrfloatIOV glGetArrayObjectfvATIFunPtr
-
-glGetArrayObjectfvATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetArrayObjectfvATIFunPtr = unsafePerformIO (getProcAddress "glGetArrayObjectfvATI")
-
-{-# NOINLINE glGetArrayObjectfvATIFunPtr #-}
-
--- | Usage: @'glGetArrayObjectivATI' array pname params@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @1@.
-
-
-glGetArrayObjectivATI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetArrayObjectivATI = ffienumenumPtrintIOV glGetArrayObjectivATIFunPtr
-
-glGetArrayObjectivATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetArrayObjectivATIFunPtr = unsafePerformIO (getProcAddress "glGetArrayObjectivATI")
-
-{-# NOINLINE glGetArrayObjectivATIFunPtr #-}
-
--- | Usage: @'glGetObjectBufferfvATI' buffer pname params@
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @1@.
-
-
-glGetObjectBufferfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetObjectBufferfvATI = ffiuintenumPtrfloatIOV glGetObjectBufferfvATIFunPtr
-
-glGetObjectBufferfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetObjectBufferfvATIFunPtr = unsafePerformIO (getProcAddress "glGetObjectBufferfvATI")
-
-{-# NOINLINE glGetObjectBufferfvATIFunPtr #-}
-
--- | Usage: @'glGetObjectBufferivATI' buffer pname params@
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @1@.
-
-
-glGetObjectBufferivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetObjectBufferivATI = ffiuintenumPtrintIOV glGetObjectBufferivATIFunPtr
-
-glGetObjectBufferivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetObjectBufferivATIFunPtr = unsafePerformIO (getProcAddress "glGetObjectBufferivATI")
-
-{-# NOINLINE glGetObjectBufferivATIFunPtr #-}
-
--- | Usage: @'glGetVariantArrayObjectfvATI' id pname params@
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @1@.
-
-
-glGetVariantArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVariantArrayObjectfvATI = ffiuintenumPtrfloatIOV glGetVariantArrayObjectfvATIFunPtr
-
-glGetVariantArrayObjectfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVariantArrayObjectfvATIFunPtr = unsafePerformIO (getProcAddress "glGetVariantArrayObjectfvATI")
-
-{-# NOINLINE glGetVariantArrayObjectfvATIFunPtr #-}
-
--- | Usage: @'glGetVariantArrayObjectivATI' id pname params@
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @1@.
-
-
-glGetVariantArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVariantArrayObjectivATI = ffiuintenumPtrintIOV glGetVariantArrayObjectivATIFunPtr
-
-glGetVariantArrayObjectivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVariantArrayObjectivATIFunPtr = unsafePerformIO (getProcAddress "glGetVariantArrayObjectivATI")
-
-{-# NOINLINE glGetVariantArrayObjectivATIFunPtr #-}
-
--- | Usage: @'glIsObjectBufferATI' buffer@
-
-
-glIsObjectBufferATI :: MonadIO m => GLuint -> m GLboolean
-glIsObjectBufferATI = ffiuintIOboolean glIsObjectBufferATIFunPtr
-
-glIsObjectBufferATIFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glIsObjectBufferATI")
-
-{-# NOINLINE glIsObjectBufferATIFunPtr #-}
-
--- | Usage: @'glNewObjectBufferATI' size pointer usage@
---
--- The parameter @usage@ is a @ArrayObjectUsageATI@.
---
--- The length of @pointer@ should be @size@.
-
-
-glNewObjectBufferATI :: MonadIO m => GLsizei -> Ptr () -> GLenum -> m GLuint
-glNewObjectBufferATI = ffisizeiPtrVenumIOuint glNewObjectBufferATIFunPtr
-
-glNewObjectBufferATIFunPtr :: FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint)
-glNewObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glNewObjectBufferATI")
-
-{-# NOINLINE glNewObjectBufferATIFunPtr #-}
-
--- | Usage: @'glUpdateObjectBufferATI' buffer offset size pointer preserve@
---
--- The parameter @preserve@ is a @PreserveModeATI@.
---
--- The length of @pointer@ should be @size@.
-
-
-glUpdateObjectBufferATI :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
-glUpdateObjectBufferATI = ffiuintuintsizeiPtrVenumIOV glUpdateObjectBufferATIFunPtr
-
-glUpdateObjectBufferATIFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ())
-glUpdateObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glUpdateObjectBufferATI")
-
-{-# NOINLINE glUpdateObjectBufferATIFunPtr #-}
-
--- | Usage: @'glVariantArrayObjectATI' id type stride buffer offset@
---
--- The parameter @type@ is a @ScalarType@.
-
-
-glVariantArrayObjectATI :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
-glVariantArrayObjectATI = ffiuintenumsizeiuintuintIOV glVariantArrayObjectATIFunPtr
-
-glVariantArrayObjectATIFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
-glVariantArrayObjectATIFunPtr = unsafePerformIO (getProcAddress "glVariantArrayObjectATI")
-
-{-# NOINLINE glVariantArrayObjectATIFunPtr #-}
-
-pattern GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766
-
-pattern GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767
-
-pattern GL_DISCARD_ATI = 0x8763
-
-pattern GL_DYNAMIC_ATI = 0x8761
-
-pattern GL_OBJECT_BUFFER_SIZE_ATI = 0x8764
-
-pattern GL_OBJECT_BUFFER_USAGE_ATI = 0x8765
-
-pattern GL_PRESERVE_ATI = 0x8762
-
-pattern GL_STATIC_ATI = 0x8760
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/VertexAttribArrayObject.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/VertexAttribArrayObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/VertexAttribArrayObject.hs
+++ /dev/null
@@ -1,70 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.VertexAttribArrayObject (
-  -- * Extension Support
-    gl_ATI_vertex_attrib_array_object
-
-  -- * GL_ATI_vertex_attrib_array_object
-  , glGetVertexAttribArrayObjectfvATI
-  , glGetVertexAttribArrayObjectivATI
-  , glVertexAttribArrayObjectATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_attrib_array_object.txt GL_ATI_vertex_attrib_array_object> extension is available.
-
-gl_ATI_vertex_attrib_array_object :: Bool
-gl_ATI_vertex_attrib_array_object = member "GL_ATI_vertex_attrib_array_object" extensions
-{-# NOINLINE gl_ATI_vertex_attrib_array_object #-}
-
--- | Usage: @'glGetVertexAttribArrayObjectfvATI' index pname params@
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVertexAttribArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribArrayObjectfvATI = ffiuintenumPtrfloatIOV glGetVertexAttribArrayObjectfvATIFunPtr
-
-glGetVertexAttribArrayObjectfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribArrayObjectfvATIFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribArrayObjectfvATI")
-
-{-# NOINLINE glGetVertexAttribArrayObjectfvATIFunPtr #-}
-
--- | Usage: @'glGetVertexAttribArrayObjectivATI' index pname params@
---
--- The parameter @pname@ is a @ArrayObjectPNameATI@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVertexAttribArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribArrayObjectivATI = ffiuintenumPtrintIOV glGetVertexAttribArrayObjectivATIFunPtr
-
-glGetVertexAttribArrayObjectivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribArrayObjectivATIFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribArrayObjectivATI")
-
-{-# NOINLINE glGetVertexAttribArrayObjectivATIFunPtr #-}
-
--- | Usage: @'glVertexAttribArrayObjectATI' index size type normalized stride buffer offset@
---
--- The parameter @type@ is a @VertexAttribPointerType@.
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribArrayObjectATI :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()
-glVertexAttribArrayObjectATI = ffiuintintenumbooleansizeiuintuintIOV glVertexAttribArrayObjectATIFunPtr
-
-glVertexAttribArrayObjectATIFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ())
-glVertexAttribArrayObjectATIFunPtr = unsafePerformIO (getProcAddress "glVertexAttribArrayObjectATI")
-
-{-# NOINLINE glVertexAttribArrayObjectATIFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ATI/VertexStreams.hs b/dist/build/autogen/Graphics/GL/Ext/ATI/VertexStreams.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ATI/VertexStreams.hs
+++ /dev/null
@@ -1,724 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ATI.VertexStreams (
-  -- * Extension Support
-    gl_ATI_vertex_streams
-
-  -- * GL_ATI_vertex_streams
-  , glClientActiveVertexStreamATI
-  , glNormalStream3bATI
-  , glNormalStream3bvATI
-  , glNormalStream3dATI
-  , glNormalStream3dvATI
-  , glNormalStream3fATI
-  , glNormalStream3fvATI
-  , glNormalStream3iATI
-  , glNormalStream3ivATI
-  , glNormalStream3sATI
-  , glNormalStream3svATI
-  , glVertexBlendEnvfATI
-  , glVertexBlendEnviATI
-  , glVertexStream1dATI
-  , glVertexStream1dvATI
-  , glVertexStream1fATI
-  , glVertexStream1fvATI
-  , glVertexStream1iATI
-  , glVertexStream1ivATI
-  , glVertexStream1sATI
-  , glVertexStream1svATI
-  , glVertexStream2dATI
-  , glVertexStream2dvATI
-  , glVertexStream2fATI
-  , glVertexStream2fvATI
-  , glVertexStream2iATI
-  , glVertexStream2ivATI
-  , glVertexStream2sATI
-  , glVertexStream2svATI
-  , glVertexStream3dATI
-  , glVertexStream3dvATI
-  , glVertexStream3fATI
-  , glVertexStream3fvATI
-  , glVertexStream3iATI
-  , glVertexStream3ivATI
-  , glVertexStream3sATI
-  , glVertexStream3svATI
-  , glVertexStream4dATI
-  , glVertexStream4dvATI
-  , glVertexStream4fATI
-  , glVertexStream4fvATI
-  , glVertexStream4iATI
-  , glVertexStream4ivATI
-  , glVertexStream4sATI
-  , glVertexStream4svATI
-  , pattern GL_MAX_VERTEX_STREAMS_ATI
-  , pattern GL_VERTEX_SOURCE_ATI
-  , pattern GL_VERTEX_STREAM0_ATI
-  , pattern GL_VERTEX_STREAM1_ATI
-  , pattern GL_VERTEX_STREAM2_ATI
-  , pattern GL_VERTEX_STREAM3_ATI
-  , pattern GL_VERTEX_STREAM4_ATI
-  , pattern GL_VERTEX_STREAM5_ATI
-  , pattern GL_VERTEX_STREAM6_ATI
-  , pattern GL_VERTEX_STREAM7_ATI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_streams.txt GL_ATI_vertex_streams> extension is available.
-
-gl_ATI_vertex_streams :: Bool
-gl_ATI_vertex_streams = member "GL_ATI_vertex_streams" extensions
-{-# NOINLINE gl_ATI_vertex_streams #-}
-
--- | Usage: @'glClientActiveVertexStreamATI' stream@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glClientActiveVertexStreamATI :: MonadIO m => GLenum -> m ()
-glClientActiveVertexStreamATI = ffienumIOV glClientActiveVertexStreamATIFunPtr
-
-glClientActiveVertexStreamATIFunPtr :: FunPtr (GLenum -> IO ())
-glClientActiveVertexStreamATIFunPtr = unsafePerformIO (getProcAddress "glClientActiveVertexStreamATI")
-
-{-# NOINLINE glClientActiveVertexStreamATIFunPtr #-}
-
--- | Usage: @'glNormalStream3bATI' stream nx ny nz@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glNormalStream3bATI :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
-glNormalStream3bATI = ffienumbytebytebyteIOV glNormalStream3bATIFunPtr
-
-glNormalStream3bATIFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
-glNormalStream3bATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3bATI")
-
-{-# NOINLINE glNormalStream3bATIFunPtr #-}
-
--- | Usage: @'glNormalStream3bvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glNormalStream3bvATI :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
-glNormalStream3bvATI = ffienumPtrbyteIOV glNormalStream3bvATIFunPtr
-
-glNormalStream3bvATIFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
-glNormalStream3bvATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3bvATI")
-
-{-# NOINLINE glNormalStream3bvATIFunPtr #-}
-
--- | Usage: @'glNormalStream3dATI' stream nx ny nz@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glNormalStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glNormalStream3dATI = ffienumdoubledoubledoubleIOV glNormalStream3dATIFunPtr
-
-glNormalStream3dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glNormalStream3dATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3dATI")
-
-{-# NOINLINE glNormalStream3dATIFunPtr #-}
-
--- | Usage: @'glNormalStream3dvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glNormalStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glNormalStream3dvATI = ffienumPtrdoubleIOV glNormalStream3dvATIFunPtr
-
-glNormalStream3dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glNormalStream3dvATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3dvATI")
-
-{-# NOINLINE glNormalStream3dvATIFunPtr #-}
-
--- | Usage: @'glNormalStream3fATI' stream nx ny nz@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glNormalStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glNormalStream3fATI = ffienumfloatfloatfloatIOV glNormalStream3fATIFunPtr
-
-glNormalStream3fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glNormalStream3fATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3fATI")
-
-{-# NOINLINE glNormalStream3fATIFunPtr #-}
-
--- | Usage: @'glNormalStream3fvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glNormalStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glNormalStream3fvATI = ffienumPtrfloatIOV glNormalStream3fvATIFunPtr
-
-glNormalStream3fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glNormalStream3fvATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3fvATI")
-
-{-# NOINLINE glNormalStream3fvATIFunPtr #-}
-
--- | Usage: @'glNormalStream3iATI' stream nx ny nz@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glNormalStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
-glNormalStream3iATI = ffienumintintintIOV glNormalStream3iATIFunPtr
-
-glNormalStream3iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
-glNormalStream3iATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3iATI")
-
-{-# NOINLINE glNormalStream3iATIFunPtr #-}
-
--- | Usage: @'glNormalStream3ivATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glNormalStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glNormalStream3ivATI = ffienumPtrintIOV glNormalStream3ivATIFunPtr
-
-glNormalStream3ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glNormalStream3ivATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3ivATI")
-
-{-# NOINLINE glNormalStream3ivATIFunPtr #-}
-
--- | Usage: @'glNormalStream3sATI' stream nx ny nz@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glNormalStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
-glNormalStream3sATI = ffienumshortshortshortIOV glNormalStream3sATIFunPtr
-
-glNormalStream3sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-glNormalStream3sATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3sATI")
-
-{-# NOINLINE glNormalStream3sATIFunPtr #-}
-
--- | Usage: @'glNormalStream3svATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glNormalStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glNormalStream3svATI = ffienumPtrshortIOV glNormalStream3svATIFunPtr
-
-glNormalStream3svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glNormalStream3svATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3svATI")
-
-{-# NOINLINE glNormalStream3svATIFunPtr #-}
-
--- | Usage: @'glVertexBlendEnvfATI' pname param@
---
--- The parameter @pname@ is a @VertexStreamATI@.
-
-
-glVertexBlendEnvfATI :: MonadIO m => GLenum -> GLfloat -> m ()
-glVertexBlendEnvfATI = ffienumfloatIOV glVertexBlendEnvfATIFunPtr
-
-glVertexBlendEnvfATIFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glVertexBlendEnvfATIFunPtr = unsafePerformIO (getProcAddress "glVertexBlendEnvfATI")
-
-{-# NOINLINE glVertexBlendEnvfATIFunPtr #-}
-
--- | Usage: @'glVertexBlendEnviATI' pname param@
---
--- The parameter @pname@ is a @VertexStreamATI@.
-
-
-glVertexBlendEnviATI :: MonadIO m => GLenum -> GLint -> m ()
-glVertexBlendEnviATI = ffienumintIOV glVertexBlendEnviATIFunPtr
-
-glVertexBlendEnviATIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glVertexBlendEnviATIFunPtr = unsafePerformIO (getProcAddress "glVertexBlendEnviATI")
-
-{-# NOINLINE glVertexBlendEnviATIFunPtr #-}
-
--- | Usage: @'glVertexStream1dATI' stream x@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream1dATI :: MonadIO m => GLenum -> GLdouble -> m ()
-glVertexStream1dATI = ffienumdoubleIOV glVertexStream1dATIFunPtr
-
-glVertexStream1dATIFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
-glVertexStream1dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1dATI")
-
-{-# NOINLINE glVertexStream1dATIFunPtr #-}
-
--- | Usage: @'glVertexStream1dvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @1@.
-
-
-glVertexStream1dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glVertexStream1dvATI = ffienumPtrdoubleIOV glVertexStream1dvATIFunPtr
-
-glVertexStream1dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glVertexStream1dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1dvATI")
-
-{-# NOINLINE glVertexStream1dvATIFunPtr #-}
-
--- | Usage: @'glVertexStream1fATI' stream x@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream1fATI :: MonadIO m => GLenum -> GLfloat -> m ()
-glVertexStream1fATI = ffienumfloatIOV glVertexStream1fATIFunPtr
-
-glVertexStream1fATIFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glVertexStream1fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1fATI")
-
-{-# NOINLINE glVertexStream1fATIFunPtr #-}
-
--- | Usage: @'glVertexStream1fvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @1@.
-
-
-glVertexStream1fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glVertexStream1fvATI = ffienumPtrfloatIOV glVertexStream1fvATIFunPtr
-
-glVertexStream1fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glVertexStream1fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1fvATI")
-
-{-# NOINLINE glVertexStream1fvATIFunPtr #-}
-
--- | Usage: @'glVertexStream1iATI' stream x@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream1iATI :: MonadIO m => GLenum -> GLint -> m ()
-glVertexStream1iATI = ffienumintIOV glVertexStream1iATIFunPtr
-
-glVertexStream1iATIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glVertexStream1iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1iATI")
-
-{-# NOINLINE glVertexStream1iATIFunPtr #-}
-
--- | Usage: @'glVertexStream1ivATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @1@.
-
-
-glVertexStream1ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glVertexStream1ivATI = ffienumPtrintIOV glVertexStream1ivATIFunPtr
-
-glVertexStream1ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glVertexStream1ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1ivATI")
-
-{-# NOINLINE glVertexStream1ivATIFunPtr #-}
-
--- | Usage: @'glVertexStream1sATI' stream x@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream1sATI :: MonadIO m => GLenum -> GLshort -> m ()
-glVertexStream1sATI = ffienumshortIOV glVertexStream1sATIFunPtr
-
-glVertexStream1sATIFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
-glVertexStream1sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1sATI")
-
-{-# NOINLINE glVertexStream1sATIFunPtr #-}
-
--- | Usage: @'glVertexStream1svATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @1@.
-
-
-glVertexStream1svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glVertexStream1svATI = ffienumPtrshortIOV glVertexStream1svATIFunPtr
-
-glVertexStream1svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glVertexStream1svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1svATI")
-
-{-# NOINLINE glVertexStream1svATIFunPtr #-}
-
--- | Usage: @'glVertexStream2dATI' stream x y@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream2dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
-glVertexStream2dATI = ffienumdoubledoubleIOV glVertexStream2dATIFunPtr
-
-glVertexStream2dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-glVertexStream2dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2dATI")
-
-{-# NOINLINE glVertexStream2dATIFunPtr #-}
-
--- | Usage: @'glVertexStream2dvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @2@.
-
-
-glVertexStream2dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glVertexStream2dvATI = ffienumPtrdoubleIOV glVertexStream2dvATIFunPtr
-
-glVertexStream2dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glVertexStream2dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2dvATI")
-
-{-# NOINLINE glVertexStream2dvATIFunPtr #-}
-
--- | Usage: @'glVertexStream2fATI' stream x y@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream2fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
-glVertexStream2fATI = ffienumfloatfloatIOV glVertexStream2fATIFunPtr
-
-glVertexStream2fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
-glVertexStream2fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2fATI")
-
-{-# NOINLINE glVertexStream2fATIFunPtr #-}
-
--- | Usage: @'glVertexStream2fvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @2@.
-
-
-glVertexStream2fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glVertexStream2fvATI = ffienumPtrfloatIOV glVertexStream2fvATIFunPtr
-
-glVertexStream2fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glVertexStream2fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2fvATI")
-
-{-# NOINLINE glVertexStream2fvATIFunPtr #-}
-
--- | Usage: @'glVertexStream2iATI' stream x y@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream2iATI :: MonadIO m => GLenum -> GLint -> GLint -> m ()
-glVertexStream2iATI = ffienumintintIOV glVertexStream2iATIFunPtr
-
-glVertexStream2iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
-glVertexStream2iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2iATI")
-
-{-# NOINLINE glVertexStream2iATIFunPtr #-}
-
--- | Usage: @'glVertexStream2ivATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @2@.
-
-
-glVertexStream2ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glVertexStream2ivATI = ffienumPtrintIOV glVertexStream2ivATIFunPtr
-
-glVertexStream2ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glVertexStream2ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2ivATI")
-
-{-# NOINLINE glVertexStream2ivATIFunPtr #-}
-
--- | Usage: @'glVertexStream2sATI' stream x y@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream2sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
-glVertexStream2sATI = ffienumshortshortIOV glVertexStream2sATIFunPtr
-
-glVertexStream2sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
-glVertexStream2sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2sATI")
-
-{-# NOINLINE glVertexStream2sATIFunPtr #-}
-
--- | Usage: @'glVertexStream2svATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @2@.
-
-
-glVertexStream2svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glVertexStream2svATI = ffienumPtrshortIOV glVertexStream2svATIFunPtr
-
-glVertexStream2svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glVertexStream2svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2svATI")
-
-{-# NOINLINE glVertexStream2svATIFunPtr #-}
-
--- | Usage: @'glVertexStream3dATI' stream x y z@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexStream3dATI = ffienumdoubledoubledoubleIOV glVertexStream3dATIFunPtr
-
-glVertexStream3dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexStream3dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3dATI")
-
-{-# NOINLINE glVertexStream3dATIFunPtr #-}
-
--- | Usage: @'glVertexStream3dvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glVertexStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glVertexStream3dvATI = ffienumPtrdoubleIOV glVertexStream3dvATIFunPtr
-
-glVertexStream3dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glVertexStream3dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3dvATI")
-
-{-# NOINLINE glVertexStream3dvATIFunPtr #-}
-
--- | Usage: @'glVertexStream3fATI' stream x y z@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexStream3fATI = ffienumfloatfloatfloatIOV glVertexStream3fATIFunPtr
-
-glVertexStream3fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexStream3fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3fATI")
-
-{-# NOINLINE glVertexStream3fATIFunPtr #-}
-
--- | Usage: @'glVertexStream3fvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glVertexStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glVertexStream3fvATI = ffienumPtrfloatIOV glVertexStream3fvATIFunPtr
-
-glVertexStream3fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glVertexStream3fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3fvATI")
-
-{-# NOINLINE glVertexStream3fvATIFunPtr #-}
-
--- | Usage: @'glVertexStream3iATI' stream x y z@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
-glVertexStream3iATI = ffienumintintintIOV glVertexStream3iATIFunPtr
-
-glVertexStream3iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
-glVertexStream3iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3iATI")
-
-{-# NOINLINE glVertexStream3iATIFunPtr #-}
-
--- | Usage: @'glVertexStream3ivATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glVertexStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glVertexStream3ivATI = ffienumPtrintIOV glVertexStream3ivATIFunPtr
-
-glVertexStream3ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glVertexStream3ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3ivATI")
-
-{-# NOINLINE glVertexStream3ivATIFunPtr #-}
-
--- | Usage: @'glVertexStream3sATI' stream x y z@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
-glVertexStream3sATI = ffienumshortshortshortIOV glVertexStream3sATIFunPtr
-
-glVertexStream3sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexStream3sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3sATI")
-
-{-# NOINLINE glVertexStream3sATIFunPtr #-}
-
--- | Usage: @'glVertexStream3svATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @3@.
-
-
-glVertexStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glVertexStream3svATI = ffienumPtrshortIOV glVertexStream3svATIFunPtr
-
-glVertexStream3svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glVertexStream3svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3svATI")
-
-{-# NOINLINE glVertexStream3svATIFunPtr #-}
-
--- | Usage: @'glVertexStream4dATI' stream x y z w@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream4dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexStream4dATI = ffienumdoubledoubledoubledoubleIOV glVertexStream4dATIFunPtr
-
-glVertexStream4dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexStream4dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4dATI")
-
-{-# NOINLINE glVertexStream4dATIFunPtr #-}
-
--- | Usage: @'glVertexStream4dvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @4@.
-
-
-glVertexStream4dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glVertexStream4dvATI = ffienumPtrdoubleIOV glVertexStream4dvATIFunPtr
-
-glVertexStream4dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glVertexStream4dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4dvATI")
-
-{-# NOINLINE glVertexStream4dvATIFunPtr #-}
-
--- | Usage: @'glVertexStream4fATI' stream x y z w@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream4fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexStream4fATI = ffienumfloatfloatfloatfloatIOV glVertexStream4fATIFunPtr
-
-glVertexStream4fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexStream4fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4fATI")
-
-{-# NOINLINE glVertexStream4fATIFunPtr #-}
-
--- | Usage: @'glVertexStream4fvATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @4@.
-
-
-glVertexStream4fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glVertexStream4fvATI = ffienumPtrfloatIOV glVertexStream4fvATIFunPtr
-
-glVertexStream4fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glVertexStream4fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4fvATI")
-
-{-# NOINLINE glVertexStream4fvATIFunPtr #-}
-
--- | Usage: @'glVertexStream4iATI' stream x y z w@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream4iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
-glVertexStream4iATI = ffienumintintintintIOV glVertexStream4iATIFunPtr
-
-glVertexStream4iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-glVertexStream4iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4iATI")
-
-{-# NOINLINE glVertexStream4iATIFunPtr #-}
-
--- | Usage: @'glVertexStream4ivATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @4@.
-
-
-glVertexStream4ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glVertexStream4ivATI = ffienumPtrintIOV glVertexStream4ivATIFunPtr
-
-glVertexStream4ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glVertexStream4ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4ivATI")
-
-{-# NOINLINE glVertexStream4ivATIFunPtr #-}
-
--- | Usage: @'glVertexStream4sATI' stream x y z w@
---
--- The parameter @stream@ is a @VertexStreamATI@.
-
-
-glVertexStream4sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexStream4sATI = ffienumshortshortshortshortIOV glVertexStream4sATIFunPtr
-
-glVertexStream4sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexStream4sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4sATI")
-
-{-# NOINLINE glVertexStream4sATIFunPtr #-}
-
--- | Usage: @'glVertexStream4svATI' stream coords@
---
--- The parameter @stream@ is a @VertexStreamATI@.
---
--- The length of @coords@ should be @4@.
-
-
-glVertexStream4svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glVertexStream4svATI = ffienumPtrshortIOV glVertexStream4svATIFunPtr
-
-glVertexStream4svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glVertexStream4svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4svATI")
-
-{-# NOINLINE glVertexStream4svATIFunPtr #-}
-
-pattern GL_MAX_VERTEX_STREAMS_ATI = 0x876B
-
-pattern GL_VERTEX_SOURCE_ATI = 0x8774
-
-pattern GL_VERTEX_STREAM0_ATI = 0x876C
-
-pattern GL_VERTEX_STREAM1_ATI = 0x876D
-
-pattern GL_VERTEX_STREAM2_ATI = 0x876E
-
-pattern GL_VERTEX_STREAM3_ATI = 0x876F
-
-pattern GL_VERTEX_STREAM4_ATI = 0x8770
-
-pattern GL_VERTEX_STREAM5_ATI = 0x8771
-
-pattern GL_VERTEX_STREAM6_ATI = 0x8772
-
-pattern GL_VERTEX_STREAM7_ATI = 0x8773
diff --git a/dist/build/autogen/Graphics/GL/Ext/DMP.hs b/dist/build/autogen/Graphics/GL/Ext/DMP.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/DMP.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.DMP (
-  -- * DMP Extensions
-    module Graphics.GL.Ext.DMP.ProgramBinary
-  , module Graphics.GL.Ext.DMP.ShaderBinary
-) where
-
-import Graphics.GL.Ext.DMP.ProgramBinary
-import Graphics.GL.Ext.DMP.ShaderBinary
diff --git a/dist/build/autogen/Graphics/GL/Ext/DMP/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Ext/DMP/ProgramBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/DMP/ProgramBinary.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.DMP.ProgramBinary (
-  -- * Extension Support
-    gl_DMP_program_binary
-
-  -- * GL_DMP_program_binary
-  , pattern GL_DMP_PROGRAM_BINARY_DMP
-  , pattern GL_SMAPHS30_PROGRAM_BINARY_DMP
-  , pattern GL_SMAPHS_PROGRAM_BINARY_DMP
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/DMP/DMP_program_binary.txt GL_DMP_program_binary> extension is available.
-
-gl_DMP_program_binary :: Bool
-gl_DMP_program_binary = member "GL_DMP_program_binary" extensions
-{-# NOINLINE gl_DMP_program_binary #-}
-
-pattern GL_DMP_PROGRAM_BINARY_DMP = 0x9253
-
-pattern GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251
-
-pattern GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252
diff --git a/dist/build/autogen/Graphics/GL/Ext/DMP/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Ext/DMP/ShaderBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/DMP/ShaderBinary.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.DMP.ShaderBinary (
-  -- * Extension Support
-    gl_DMP_shader_binary
-
-  -- * GL_DMP_shader_binary
-  , pattern GL_SHADER_BINARY_DMP
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/DMP/DMP_shader_binary.txt GL_DMP_shader_binary> extension is available.
-
-gl_DMP_shader_binary :: Bool
-gl_DMP_shader_binary = member "GL_DMP_shader_binary" extensions
-{-# NOINLINE gl_DMP_shader_binary #-}
-
-pattern GL_SHADER_BINARY_DMP = 0x9250
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT.hs b/dist/build/autogen/Graphics/GL/Ext/EXT.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT.hs
+++ /dev/null
@@ -1,330 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT (
-  -- * EXT Extensions
-    module Graphics.GL.Ext.EXT.Abgr
-  , module Graphics.GL.Ext.EXT.BaseInstance
-  , module Graphics.GL.Ext.EXT.Bgra
-  , module Graphics.GL.Ext.EXT.BindableUniform
-  , module Graphics.GL.Ext.EXT.BlendColor
-  , module Graphics.GL.Ext.EXT.BlendEquationSeparate
-  , module Graphics.GL.Ext.EXT.BlendFuncExtended
-  , module Graphics.GL.Ext.EXT.BlendFuncSeparate
-  , module Graphics.GL.Ext.EXT.BlendLogicOp
-  , module Graphics.GL.Ext.EXT.BlendMinmax
-  , module Graphics.GL.Ext.EXT.BlendSubtract
-  , module Graphics.GL.Ext.EXT.BufferStorage
-  , module Graphics.GL.Ext.EXT.ClearTexture
-  , module Graphics.GL.Ext.EXT.ClipCullDistance
-  , module Graphics.GL.Ext.EXT.ClipVolumeHint
-  , module Graphics.GL.Ext.EXT.Cmyka
-  , module Graphics.GL.Ext.EXT.ColorBufferFloat
-  , module Graphics.GL.Ext.EXT.ColorBufferHalfFloat
-  , module Graphics.GL.Ext.EXT.ColorSubtable
-  , module Graphics.GL.Ext.EXT.CompiledVertexArray
-  , module Graphics.GL.Ext.EXT.ConservativeDepth
-  , module Graphics.GL.Ext.EXT.Convolution
-  , module Graphics.GL.Ext.EXT.CoordinateFrame
-  , module Graphics.GL.Ext.EXT.CopyImage
-  , module Graphics.GL.Ext.EXT.CopyTexture
-  , module Graphics.GL.Ext.EXT.CullVertex
-  , module Graphics.GL.Ext.EXT.DebugLabel
-  , module Graphics.GL.Ext.EXT.DebugMarker
-  , module Graphics.GL.Ext.EXT.DepthBoundsTest
-  , module Graphics.GL.Ext.EXT.DirectStateAccess
-  , module Graphics.GL.Ext.EXT.DiscardFramebuffer
-  , module Graphics.GL.Ext.EXT.DisjointTimerQuery
-  , module Graphics.GL.Ext.EXT.DrawBuffers
-  , module Graphics.GL.Ext.EXT.DrawBuffers2
-  , module Graphics.GL.Ext.EXT.DrawBuffersIndexed
-  , module Graphics.GL.Ext.EXT.DrawElementsBaseVertex
-  , module Graphics.GL.Ext.EXT.DrawInstanced
-  , module Graphics.GL.Ext.EXT.DrawRangeElements
-  , module Graphics.GL.Ext.EXT.DrawTransformFeedback
-  , module Graphics.GL.Ext.EXT.FloatBlend
-  , module Graphics.GL.Ext.EXT.FogCoord
-  , module Graphics.GL.Ext.EXT.FourTwoTwoPixels
-  , module Graphics.GL.Ext.EXT.FramebufferBlit
-  , module Graphics.GL.Ext.EXT.FramebufferMultisample
-  , module Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled
-  , module Graphics.GL.Ext.EXT.FramebufferObject
-  , module Graphics.GL.Ext.EXT.FramebufferSRGB
-  , module Graphics.GL.Ext.EXT.GeometryPointSize
-  , module Graphics.GL.Ext.EXT.GeometryShader
-  , module Graphics.GL.Ext.EXT.GeometryShader4
-  , module Graphics.GL.Ext.EXT.GpuProgramParameters
-  , module Graphics.GL.Ext.EXT.GpuShader4
-  , module Graphics.GL.Ext.EXT.GpuShader5
-  , module Graphics.GL.Ext.EXT.Histogram
-  , module Graphics.GL.Ext.EXT.IndexArrayFormats
-  , module Graphics.GL.Ext.EXT.IndexFunc
-  , module Graphics.GL.Ext.EXT.IndexMaterial
-  , module Graphics.GL.Ext.EXT.IndexTexture
-  , module Graphics.GL.Ext.EXT.InstancedArrays
-  , module Graphics.GL.Ext.EXT.LightTexture
-  , module Graphics.GL.Ext.EXT.MapBufferRange
-  , module Graphics.GL.Ext.EXT.MiscAttribute
-  , module Graphics.GL.Ext.EXT.MultiDrawArrays
-  , module Graphics.GL.Ext.EXT.MultiDrawIndirect
-  , module Graphics.GL.Ext.EXT.Multisample
-  , module Graphics.GL.Ext.EXT.MultisampleCompatibility
-  , module Graphics.GL.Ext.EXT.MultisampledRenderToTexture
-  , module Graphics.GL.Ext.EXT.MultiviewDrawBuffers
-  , module Graphics.GL.Ext.EXT.OcclusionQueryBoolean
-  , module Graphics.GL.Ext.EXT.PackedDepthStencil
-  , module Graphics.GL.Ext.EXT.PackedFloat
-  , module Graphics.GL.Ext.EXT.PackedPixels
-  , module Graphics.GL.Ext.EXT.PalettedTexture
-  , module Graphics.GL.Ext.EXT.PixelBufferObject
-  , module Graphics.GL.Ext.EXT.PixelTransform
-  , module Graphics.GL.Ext.EXT.PixelTransformColorTable
-  , module Graphics.GL.Ext.EXT.PointParameters
-  , module Graphics.GL.Ext.EXT.PolygonOffset
-  , module Graphics.GL.Ext.EXT.PolygonOffsetClamp
-  , module Graphics.GL.Ext.EXT.PostDepthCoverage
-  , module Graphics.GL.Ext.EXT.PrimitiveBoundingBox
-  , module Graphics.GL.Ext.EXT.ProtectedTextures
-  , module Graphics.GL.Ext.EXT.ProvokingVertex
-  , module Graphics.GL.Ext.EXT.PvrtcSRGB
-  , module Graphics.GL.Ext.EXT.RasterMultisample
-  , module Graphics.GL.Ext.EXT.ReadFormatBgra
-  , module Graphics.GL.Ext.EXT.RenderSnorm
-  , module Graphics.GL.Ext.EXT.RescaleNormal
-  , module Graphics.GL.Ext.EXT.Robustness
-  , module Graphics.GL.Ext.EXT.SRGB
-  , module Graphics.GL.Ext.EXT.SRGBWriteControl
-  , module Graphics.GL.Ext.EXT.SecondaryColor
-  , module Graphics.GL.Ext.EXT.SeparateShaderObjects
-  , module Graphics.GL.Ext.EXT.SeparateSpecularColor
-  , module Graphics.GL.Ext.EXT.ShaderFramebufferFetch
-  , module Graphics.GL.Ext.EXT.ShaderGroupVote
-  , module Graphics.GL.Ext.EXT.ShaderImageLoadFormatted
-  , module Graphics.GL.Ext.EXT.ShaderImageLoadStore
-  , module Graphics.GL.Ext.EXT.ShaderImplicitConversions
-  , module Graphics.GL.Ext.EXT.ShaderIntegerMix
-  , module Graphics.GL.Ext.EXT.ShaderIoBlocks
-  , module Graphics.GL.Ext.EXT.ShaderNonConstantGlobalInitializers
-  , module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage
-  , module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage2
-  , module Graphics.GL.Ext.EXT.ShaderTextureLod
-  , module Graphics.GL.Ext.EXT.ShadowFuncs
-  , module Graphics.GL.Ext.EXT.ShadowSamplers
-  , module Graphics.GL.Ext.EXT.SharedTexturePalette
-  , module Graphics.GL.Ext.EXT.SparseTexture
-  , module Graphics.GL.Ext.EXT.SparseTexture2
-  , module Graphics.GL.Ext.EXT.StencilClearTag
-  , module Graphics.GL.Ext.EXT.StencilTwoSide
-  , module Graphics.GL.Ext.EXT.StencilWrap
-  , module Graphics.GL.Ext.EXT.Subtexture
-  , module Graphics.GL.Ext.EXT.TessellationPointSize
-  , module Graphics.GL.Ext.EXT.TessellationShader
-  , module Graphics.GL.Ext.EXT.Texture
-  , module Graphics.GL.Ext.EXT.Texture3D
-  , module Graphics.GL.Ext.EXT.TextureArray
-  , module Graphics.GL.Ext.EXT.TextureBorderClamp
-  , module Graphics.GL.Ext.EXT.TextureBuffer
-  , module Graphics.GL.Ext.EXT.TextureBufferObject
-  , module Graphics.GL.Ext.EXT.TextureCompressionDxt1
-  , module Graphics.GL.Ext.EXT.TextureCompressionLatc
-  , module Graphics.GL.Ext.EXT.TextureCompressionRgtc
-  , module Graphics.GL.Ext.EXT.TextureCompressionS3tc
-  , module Graphics.GL.Ext.EXT.TextureCubeMap
-  , module Graphics.GL.Ext.EXT.TextureCubeMapArray
-  , module Graphics.GL.Ext.EXT.TextureEnvAdd
-  , module Graphics.GL.Ext.EXT.TextureEnvCombine
-  , module Graphics.GL.Ext.EXT.TextureEnvDot3
-  , module Graphics.GL.Ext.EXT.TextureFilterAnisotropic
-  , module Graphics.GL.Ext.EXT.TextureFilterMinmax
-  , module Graphics.GL.Ext.EXT.TextureFormatBGRA8888
-  , module Graphics.GL.Ext.EXT.TextureInteger
-  , module Graphics.GL.Ext.EXT.TextureLodBias
-  , module Graphics.GL.Ext.EXT.TextureMirrorClamp
-  , module Graphics.GL.Ext.EXT.TextureNorm16
-  , module Graphics.GL.Ext.EXT.TextureObject
-  , module Graphics.GL.Ext.EXT.TexturePerturbNormal
-  , module Graphics.GL.Ext.EXT.TextureRg
-  , module Graphics.GL.Ext.EXT.TextureSRGB
-  , module Graphics.GL.Ext.EXT.TextureSRGBDecode
-  , module Graphics.GL.Ext.EXT.TextureSRGBR8
-  , module Graphics.GL.Ext.EXT.TextureSRGBRG8
-  , module Graphics.GL.Ext.EXT.TextureSharedExponent
-  , module Graphics.GL.Ext.EXT.TextureSnorm
-  , module Graphics.GL.Ext.EXT.TextureStorage
-  , module Graphics.GL.Ext.EXT.TextureSwizzle
-  , module Graphics.GL.Ext.EXT.TextureType2101010REV
-  , module Graphics.GL.Ext.EXT.TextureView
-  , module Graphics.GL.Ext.EXT.TimerQuery
-  , module Graphics.GL.Ext.EXT.TransformFeedback
-  , module Graphics.GL.Ext.EXT.UnpackSubimage
-  , module Graphics.GL.Ext.EXT.VertexArray
-  , module Graphics.GL.Ext.EXT.VertexArrayBgra
-  , module Graphics.GL.Ext.EXT.VertexAttrib64bit
-  , module Graphics.GL.Ext.EXT.VertexShader
-  , module Graphics.GL.Ext.EXT.VertexWeighting
-  , module Graphics.GL.Ext.EXT.WindowRectangles
-  , module Graphics.GL.Ext.EXT.X11SyncObject
-  , module Graphics.GL.Ext.EXT.YUVTarget
-) where
-
-import Graphics.GL.Ext.EXT.Abgr
-import Graphics.GL.Ext.EXT.BaseInstance
-import Graphics.GL.Ext.EXT.Bgra
-import Graphics.GL.Ext.EXT.BindableUniform
-import Graphics.GL.Ext.EXT.BlendColor
-import Graphics.GL.Ext.EXT.BlendEquationSeparate
-import Graphics.GL.Ext.EXT.BlendFuncExtended
-import Graphics.GL.Ext.EXT.BlendFuncSeparate
-import Graphics.GL.Ext.EXT.BlendLogicOp
-import Graphics.GL.Ext.EXT.BlendMinmax
-import Graphics.GL.Ext.EXT.BlendSubtract
-import Graphics.GL.Ext.EXT.BufferStorage
-import Graphics.GL.Ext.EXT.ClearTexture
-import Graphics.GL.Ext.EXT.ClipCullDistance
-import Graphics.GL.Ext.EXT.ClipVolumeHint
-import Graphics.GL.Ext.EXT.Cmyka
-import Graphics.GL.Ext.EXT.ColorBufferFloat
-import Graphics.GL.Ext.EXT.ColorBufferHalfFloat
-import Graphics.GL.Ext.EXT.ColorSubtable
-import Graphics.GL.Ext.EXT.CompiledVertexArray
-import Graphics.GL.Ext.EXT.ConservativeDepth
-import Graphics.GL.Ext.EXT.Convolution
-import Graphics.GL.Ext.EXT.CoordinateFrame
-import Graphics.GL.Ext.EXT.CopyImage
-import Graphics.GL.Ext.EXT.CopyTexture
-import Graphics.GL.Ext.EXT.CullVertex
-import Graphics.GL.Ext.EXT.DebugLabel
-import Graphics.GL.Ext.EXT.DebugMarker
-import Graphics.GL.Ext.EXT.DepthBoundsTest
-import Graphics.GL.Ext.EXT.DirectStateAccess
-import Graphics.GL.Ext.EXT.DiscardFramebuffer
-import Graphics.GL.Ext.EXT.DisjointTimerQuery
-import Graphics.GL.Ext.EXT.DrawBuffers
-import Graphics.GL.Ext.EXT.DrawBuffers2
-import Graphics.GL.Ext.EXT.DrawBuffersIndexed
-import Graphics.GL.Ext.EXT.DrawElementsBaseVertex
-import Graphics.GL.Ext.EXT.DrawInstanced
-import Graphics.GL.Ext.EXT.DrawRangeElements
-import Graphics.GL.Ext.EXT.DrawTransformFeedback
-import Graphics.GL.Ext.EXT.FloatBlend
-import Graphics.GL.Ext.EXT.FogCoord
-import Graphics.GL.Ext.EXT.FourTwoTwoPixels
-import Graphics.GL.Ext.EXT.FramebufferBlit
-import Graphics.GL.Ext.EXT.FramebufferMultisample
-import Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled
-import Graphics.GL.Ext.EXT.FramebufferObject
-import Graphics.GL.Ext.EXT.FramebufferSRGB
-import Graphics.GL.Ext.EXT.GeometryPointSize
-import Graphics.GL.Ext.EXT.GeometryShader
-import Graphics.GL.Ext.EXT.GeometryShader4
-import Graphics.GL.Ext.EXT.GpuProgramParameters
-import Graphics.GL.Ext.EXT.GpuShader4
-import Graphics.GL.Ext.EXT.GpuShader5
-import Graphics.GL.Ext.EXT.Histogram
-import Graphics.GL.Ext.EXT.IndexArrayFormats
-import Graphics.GL.Ext.EXT.IndexFunc
-import Graphics.GL.Ext.EXT.IndexMaterial
-import Graphics.GL.Ext.EXT.IndexTexture
-import Graphics.GL.Ext.EXT.InstancedArrays
-import Graphics.GL.Ext.EXT.LightTexture
-import Graphics.GL.Ext.EXT.MapBufferRange
-import Graphics.GL.Ext.EXT.MiscAttribute
-import Graphics.GL.Ext.EXT.MultiDrawArrays
-import Graphics.GL.Ext.EXT.MultiDrawIndirect
-import Graphics.GL.Ext.EXT.Multisample
-import Graphics.GL.Ext.EXT.MultisampleCompatibility
-import Graphics.GL.Ext.EXT.MultisampledRenderToTexture
-import Graphics.GL.Ext.EXT.MultiviewDrawBuffers
-import Graphics.GL.Ext.EXT.OcclusionQueryBoolean
-import Graphics.GL.Ext.EXT.PackedDepthStencil
-import Graphics.GL.Ext.EXT.PackedFloat
-import Graphics.GL.Ext.EXT.PackedPixels
-import Graphics.GL.Ext.EXT.PalettedTexture
-import Graphics.GL.Ext.EXT.PixelBufferObject
-import Graphics.GL.Ext.EXT.PixelTransform
-import Graphics.GL.Ext.EXT.PixelTransformColorTable
-import Graphics.GL.Ext.EXT.PointParameters
-import Graphics.GL.Ext.EXT.PolygonOffset
-import Graphics.GL.Ext.EXT.PolygonOffsetClamp
-import Graphics.GL.Ext.EXT.PostDepthCoverage
-import Graphics.GL.Ext.EXT.PrimitiveBoundingBox
-import Graphics.GL.Ext.EXT.ProtectedTextures
-import Graphics.GL.Ext.EXT.ProvokingVertex
-import Graphics.GL.Ext.EXT.PvrtcSRGB
-import Graphics.GL.Ext.EXT.RasterMultisample
-import Graphics.GL.Ext.EXT.ReadFormatBgra
-import Graphics.GL.Ext.EXT.RenderSnorm
-import Graphics.GL.Ext.EXT.RescaleNormal
-import Graphics.GL.Ext.EXT.Robustness
-import Graphics.GL.Ext.EXT.SRGB
-import Graphics.GL.Ext.EXT.SRGBWriteControl
-import Graphics.GL.Ext.EXT.SecondaryColor
-import Graphics.GL.Ext.EXT.SeparateShaderObjects
-import Graphics.GL.Ext.EXT.SeparateSpecularColor
-import Graphics.GL.Ext.EXT.ShaderFramebufferFetch
-import Graphics.GL.Ext.EXT.ShaderGroupVote
-import Graphics.GL.Ext.EXT.ShaderImageLoadFormatted
-import Graphics.GL.Ext.EXT.ShaderImageLoadStore
-import Graphics.GL.Ext.EXT.ShaderImplicitConversions
-import Graphics.GL.Ext.EXT.ShaderIntegerMix
-import Graphics.GL.Ext.EXT.ShaderIoBlocks
-import Graphics.GL.Ext.EXT.ShaderNonConstantGlobalInitializers
-import Graphics.GL.Ext.EXT.ShaderPixelLocalStorage
-import Graphics.GL.Ext.EXT.ShaderPixelLocalStorage2
-import Graphics.GL.Ext.EXT.ShaderTextureLod
-import Graphics.GL.Ext.EXT.ShadowFuncs
-import Graphics.GL.Ext.EXT.ShadowSamplers
-import Graphics.GL.Ext.EXT.SharedTexturePalette
-import Graphics.GL.Ext.EXT.SparseTexture
-import Graphics.GL.Ext.EXT.SparseTexture2
-import Graphics.GL.Ext.EXT.StencilClearTag
-import Graphics.GL.Ext.EXT.StencilTwoSide
-import Graphics.GL.Ext.EXT.StencilWrap
-import Graphics.GL.Ext.EXT.Subtexture
-import Graphics.GL.Ext.EXT.TessellationPointSize
-import Graphics.GL.Ext.EXT.TessellationShader
-import Graphics.GL.Ext.EXT.Texture
-import Graphics.GL.Ext.EXT.Texture3D
-import Graphics.GL.Ext.EXT.TextureArray
-import Graphics.GL.Ext.EXT.TextureBorderClamp
-import Graphics.GL.Ext.EXT.TextureBuffer
-import Graphics.GL.Ext.EXT.TextureBufferObject
-import Graphics.GL.Ext.EXT.TextureCompressionDxt1
-import Graphics.GL.Ext.EXT.TextureCompressionLatc
-import Graphics.GL.Ext.EXT.TextureCompressionRgtc
-import Graphics.GL.Ext.EXT.TextureCompressionS3tc
-import Graphics.GL.Ext.EXT.TextureCubeMap
-import Graphics.GL.Ext.EXT.TextureCubeMapArray
-import Graphics.GL.Ext.EXT.TextureEnvAdd
-import Graphics.GL.Ext.EXT.TextureEnvCombine
-import Graphics.GL.Ext.EXT.TextureEnvDot3
-import Graphics.GL.Ext.EXT.TextureFilterAnisotropic
-import Graphics.GL.Ext.EXT.TextureFilterMinmax
-import Graphics.GL.Ext.EXT.TextureFormatBGRA8888
-import Graphics.GL.Ext.EXT.TextureInteger
-import Graphics.GL.Ext.EXT.TextureLodBias
-import Graphics.GL.Ext.EXT.TextureMirrorClamp
-import Graphics.GL.Ext.EXT.TextureNorm16
-import Graphics.GL.Ext.EXT.TextureObject
-import Graphics.GL.Ext.EXT.TexturePerturbNormal
-import Graphics.GL.Ext.EXT.TextureRg
-import Graphics.GL.Ext.EXT.TextureSRGB
-import Graphics.GL.Ext.EXT.TextureSRGBDecode
-import Graphics.GL.Ext.EXT.TextureSRGBR8
-import Graphics.GL.Ext.EXT.TextureSRGBRG8
-import Graphics.GL.Ext.EXT.TextureSharedExponent
-import Graphics.GL.Ext.EXT.TextureSnorm
-import Graphics.GL.Ext.EXT.TextureStorage
-import Graphics.GL.Ext.EXT.TextureSwizzle
-import Graphics.GL.Ext.EXT.TextureType2101010REV
-import Graphics.GL.Ext.EXT.TextureView
-import Graphics.GL.Ext.EXT.TimerQuery
-import Graphics.GL.Ext.EXT.TransformFeedback
-import Graphics.GL.Ext.EXT.UnpackSubimage
-import Graphics.GL.Ext.EXT.VertexArray
-import Graphics.GL.Ext.EXT.VertexArrayBgra
-import Graphics.GL.Ext.EXT.VertexAttrib64bit
-import Graphics.GL.Ext.EXT.VertexShader
-import Graphics.GL.Ext.EXT.VertexWeighting
-import Graphics.GL.Ext.EXT.WindowRectangles
-import Graphics.GL.Ext.EXT.X11SyncObject
-import Graphics.GL.Ext.EXT.YUVTarget
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Abgr.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Abgr.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Abgr.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Abgr (
-  -- * Extension Support
-    gl_EXT_abgr
-
-  -- * GL_EXT_abgr
-  , pattern GL_ABGR_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/abgr.txt GL_EXT_abgr> extension is available.
-
-gl_EXT_abgr :: Bool
-gl_EXT_abgr = member "GL_EXT_abgr" extensions
-{-# NOINLINE gl_EXT_abgr #-}
-
-pattern GL_ABGR_EXT = 0x8000
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BaseInstance.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BaseInstance.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BaseInstance.hs
+++ /dev/null
@@ -1,74 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BaseInstance (
-  -- * Extension Support
-    gl_EXT_base_instance
-
-  -- * GL_EXT_base_instance
-  , glDrawArraysInstancedBaseInstanceEXT
-  , glDrawElementsInstancedBaseInstanceEXT
-  , glDrawElementsInstancedBaseVertexBaseInstanceEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_EXT_base_instance extension is available.
-
-gl_EXT_base_instance :: Bool
-gl_EXT_base_instance = member "GL_EXT_base_instance" extensions
-{-# NOINLINE gl_EXT_base_instance #-}
-
--- | Usage: @'glDrawArraysInstancedBaseInstanceEXT' mode first count instancecount baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstancedBaseInstance'.
-
-
-glDrawArraysInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
-glDrawArraysInstancedBaseInstanceEXT = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceEXTFunPtr
-
-glDrawArraysInstancedBaseInstanceEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
-glDrawArraysInstancedBaseInstanceEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstanceEXT")
-
-{-# NOINLINE glDrawArraysInstancedBaseInstanceEXTFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseInstanceEXT' mode count type indices instancecount baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseInstance'.
-
-
-glDrawElementsInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
-glDrawElementsInstancedBaseInstanceEXT = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceEXTFunPtr
-
-glDrawElementsInstancedBaseInstanceEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
-glDrawElementsInstancedBaseInstanceEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstanceEXT")
-
-{-# NOINLINE glDrawElementsInstancedBaseInstanceEXTFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseVertexBaseInstanceEXT' mode count type indices instancecount basevertex baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseVertexBaseInstance'.
-
-
-glDrawElementsInstancedBaseVertexBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
-glDrawElementsInstancedBaseVertexBaseInstanceEXT = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr
-
-glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
-glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstanceEXT")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Bgra.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Bgra.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Bgra.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Bgra (
-  -- * Extension Support
-    gl_EXT_bgra
-
-  -- * GL_EXT_bgra
-  , pattern GL_BGRA_EXT
-  , pattern GL_BGR_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bgra.txt GL_EXT_bgra> extension is available.
-
-gl_EXT_bgra :: Bool
-gl_EXT_bgra = member "GL_EXT_bgra" extensions
-{-# NOINLINE gl_EXT_bgra #-}
-
-pattern GL_BGR_EXT = 0x80E0
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BindableUniform.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BindableUniform.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BindableUniform.hs
+++ /dev/null
@@ -1,76 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BindableUniform (
-  -- * Extension Support
-    gl_EXT_bindable_uniform
-
-  -- * GL_EXT_bindable_uniform
-  , glGetUniformBufferSizeEXT
-  , glGetUniformOffsetEXT
-  , glUniformBufferEXT
-  , pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT
-  , pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT
-  , pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
-  , pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT
-  , pattern GL_UNIFORM_BUFFER_BINDING_EXT
-  , pattern GL_UNIFORM_BUFFER_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bindable_uniform.txt GL_EXT_bindable_uniform> extension is available.
-
-gl_EXT_bindable_uniform :: Bool
-gl_EXT_bindable_uniform = member "GL_EXT_bindable_uniform" extensions
-{-# NOINLINE gl_EXT_bindable_uniform #-}
-
--- | Usage: @'glGetUniformBufferSizeEXT' program location@
-
-
-glGetUniformBufferSizeEXT :: MonadIO m => GLuint -> GLint -> m GLint
-glGetUniformBufferSizeEXT = ffiuintintIOint glGetUniformBufferSizeEXTFunPtr
-
-glGetUniformBufferSizeEXTFunPtr :: FunPtr (GLuint -> GLint -> IO GLint)
-glGetUniformBufferSizeEXTFunPtr = unsafePerformIO (getProcAddress "glGetUniformBufferSizeEXT")
-
-{-# NOINLINE glGetUniformBufferSizeEXTFunPtr #-}
-
--- | Usage: @'glGetUniformOffsetEXT' program location@
-
-
-glGetUniformOffsetEXT :: MonadIO m => GLuint -> GLint -> m GLintptr
-glGetUniformOffsetEXT = ffiuintintIOintptr glGetUniformOffsetEXTFunPtr
-
-glGetUniformOffsetEXTFunPtr :: FunPtr (GLuint -> GLint -> IO GLintptr)
-glGetUniformOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glGetUniformOffsetEXT")
-
-{-# NOINLINE glGetUniformOffsetEXTFunPtr #-}
-
--- | Usage: @'glUniformBufferEXT' program location buffer@
-
-
-glUniformBufferEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glUniformBufferEXT = ffiuintintuintIOV glUniformBufferEXTFunPtr
-
-glUniformBufferEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glUniformBufferEXTFunPtr = unsafePerformIO (getProcAddress "glUniformBufferEXT")
-
-{-# NOINLINE glUniformBufferEXTFunPtr #-}
-
-pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED
-
-pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3
-
-pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4
-
-pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2
-
-pattern GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF
-
-pattern GL_UNIFORM_BUFFER_EXT = 0x8DEE
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendColor.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BlendColor.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendColor.hs
+++ /dev/null
@@ -1,59 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BlendColor (
-  -- * Extension Support
-    gl_EXT_blend_color
-
-  -- * GL_EXT_blend_color
-  , glBlendColorEXT
-  , pattern GL_BLEND_COLOR_EXT
-  , pattern GL_CONSTANT_ALPHA_EXT
-  , pattern GL_CONSTANT_COLOR_EXT
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_color.txt GL_EXT_blend_color> extension is available.
-
-gl_EXT_blend_color :: Bool
-gl_EXT_blend_color = member "GL_EXT_blend_color" extensions
-{-# NOINLINE gl_EXT_blend_color #-}
-
--- | Usage: @'glBlendColorEXT' red green blue alpha@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The parameter @alpha@ is a @ColorF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendColor'.
-
-
-glBlendColorEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glBlendColorEXT = ffifloatfloatfloatfloatIOV glBlendColorEXTFunPtr
-
-glBlendColorEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glBlendColorEXTFunPtr = unsafePerformIO (getProcAddress "glBlendColorEXT")
-
-{-# NOINLINE glBlendColorEXTFunPtr #-}
-
-pattern GL_BLEND_COLOR_EXT = 0x8005
-
-pattern GL_CONSTANT_ALPHA_EXT = 0x8003
-
-pattern GL_CONSTANT_COLOR_EXT = 0x8001
-
-pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004
-
-pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BlendEquationSeparate (
-  -- * Extension Support
-    gl_EXT_blend_equation_separate
-
-  -- * GL_EXT_blend_equation_separate
-  , glBlendEquationSeparateEXT
-  , pattern GL_BLEND_EQUATION_ALPHA_EXT
-  , pattern GL_BLEND_EQUATION_RGB_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_equation_separate.txt GL_EXT_blend_equation_separate> extension is available.
-
-gl_EXT_blend_equation_separate :: Bool
-gl_EXT_blend_equation_separate = member "GL_EXT_blend_equation_separate" extensions
-{-# NOINLINE gl_EXT_blend_equation_separate #-}
-
--- | Usage: @'glBlendEquationSeparateEXT' modeRGB modeAlpha@
---
--- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
---
--- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparate'.
-
-
-glBlendEquationSeparateEXT :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendEquationSeparateEXT = ffienumenumIOV glBlendEquationSeparateEXTFunPtr
-
-glBlendEquationSeparateEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendEquationSeparateEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateEXT")
-
-{-# NOINLINE glBlendEquationSeparateEXTFunPtr #-}
-
-pattern GL_BLEND_EQUATION_ALPHA_EXT = 0x883D
-
-pattern GL_BLEND_EQUATION_RGB_EXT = 0x8009
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendFuncExtended.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BlendFuncExtended.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendFuncExtended.hs
+++ /dev/null
@@ -1,87 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BlendFuncExtended (
-  -- * Extension Support
-    gl_EXT_blend_func_extended
-
-  -- * GL_EXT_blend_func_extended
-  , glBindFragDataLocationEXT
-  , glBindFragDataLocationIndexedEXT
-  , glGetFragDataIndexEXT
-  , glGetProgramResourceLocationIndexEXT
-  , pattern GL_LOCATION_INDEX_EXT
-  , pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT
-  , pattern GL_ONE_MINUS_SRC1_ALPHA_EXT
-  , pattern GL_ONE_MINUS_SRC1_COLOR_EXT
-  , pattern GL_SRC1_ALPHA_EXT
-  , pattern GL_SRC1_COLOR_EXT
-  , pattern GL_SRC_ALPHA_SATURATE_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 GL_EXT_blend_func_extended extension is available.
-
-gl_EXT_blend_func_extended :: Bool
-gl_EXT_blend_func_extended = member "GL_EXT_blend_func_extended" extensions
-{-# NOINLINE gl_EXT_blend_func_extended #-}
-
--- | Usage: @'glBindFragDataLocationIndexedEXT' program colorNumber index name@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindFragDataLocationIndexed'.
-
-
-glBindFragDataLocationIndexedEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocationIndexedEXT = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedEXTFunPtr
-
-glBindFragDataLocationIndexedEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexedEXT")
-
-{-# NOINLINE glBindFragDataLocationIndexedEXTFunPtr #-}
-
--- | Usage: @'glGetFragDataIndexEXT' program name@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFragDataIndex'.
-
-
-glGetFragDataIndexEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetFragDataIndexEXT = ffiuintPtrcharIOint glGetFragDataIndexEXTFunPtr
-
-glGetFragDataIndexEXTFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataIndexEXTFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndexEXT")
-
-{-# NOINLINE glGetFragDataIndexEXTFunPtr #-}
-
--- | Usage: @'glGetProgramResourceLocationIndexEXT' program programInterface name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
-
-
-glGetProgramResourceLocationIndexEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetProgramResourceLocationIndexEXT = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexEXTFunPtr
-
-glGetProgramResourceLocationIndexEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetProgramResourceLocationIndexEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndexEXT")
-
-{-# NOINLINE glGetProgramResourceLocationIndexEXTFunPtr #-}
-
-pattern GL_LOCATION_INDEX_EXT = 0x930F
-
-pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT = 0x88FC
-
-pattern GL_ONE_MINUS_SRC1_ALPHA_EXT = 0x88FB
-
-pattern GL_ONE_MINUS_SRC1_COLOR_EXT = 0x88FA
-
-pattern GL_SRC1_ALPHA_EXT = 0x8589
-
-pattern GL_SRC1_COLOR_EXT = 0x88F9
-
-pattern GL_SRC_ALPHA_SATURATE_EXT = 0x0308
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs
+++ /dev/null
@@ -1,56 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BlendFuncSeparate (
-  -- * Extension Support
-    gl_EXT_blend_func_separate
-
-  -- * GL_EXT_blend_func_separate
-  , glBlendFuncSeparateEXT
-  , pattern GL_BLEND_DST_ALPHA_EXT
-  , pattern GL_BLEND_DST_RGB_EXT
-  , pattern GL_BLEND_SRC_ALPHA_EXT
-  , pattern GL_BLEND_SRC_RGB_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_func_separate.txt GL_EXT_blend_func_separate> extension is available.
-
-gl_EXT_blend_func_separate :: Bool
-gl_EXT_blend_func_separate = member "GL_EXT_blend_func_separate" extensions
-{-# NOINLINE gl_EXT_blend_func_separate #-}
-
--- | Usage: @'glBlendFuncSeparateEXT' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
---
--- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparate'.
-
-
-glBlendFuncSeparateEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparateEXT = ffienumenumenumenumIOV glBlendFuncSeparateEXTFunPtr
-
-glBlendFuncSeparateEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateEXTFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateEXT")
-
-{-# NOINLINE glBlendFuncSeparateEXTFunPtr #-}
-
-pattern GL_BLEND_DST_ALPHA_EXT = 0x80CA
-
-pattern GL_BLEND_DST_RGB_EXT = 0x80C8
-
-pattern GL_BLEND_SRC_ALPHA_EXT = 0x80CB
-
-pattern GL_BLEND_SRC_RGB_EXT = 0x80C9
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendLogicOp.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BlendLogicOp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendLogicOp.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BlendLogicOp (
-  -- * Extension Support
-    gl_EXT_blend_logic_op
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_logic_op.txt GL_EXT_blend_logic_op> extension is available.
-
-gl_EXT_blend_logic_op :: Bool
-gl_EXT_blend_logic_op = member "GL_EXT_blend_logic_op" extensions
-{-# NOINLINE gl_EXT_blend_logic_op #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendMinmax.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BlendMinmax.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendMinmax.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BlendMinmax (
-  -- * Extension Support
-    gl_EXT_blend_minmax
-
-  -- * GL_EXT_blend_minmax
-  , glBlendEquationEXT
-  , pattern GL_BLEND_EQUATION_EXT
-  , pattern GL_FUNC_ADD_EXT
-  , pattern GL_MAX_EXT
-  , pattern GL_MIN_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_blend_minmax.txt GL_EXT_blend_minmax> extension is available.
-
-gl_EXT_blend_minmax :: Bool
-gl_EXT_blend_minmax = member "GL_EXT_blend_minmax" extensions
-{-# NOINLINE gl_EXT_blend_minmax #-}
-
--- | Usage: @'glBlendEquationEXT' mode@
---
--- The parameter @mode@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquation'.
-
-
-glBlendEquationEXT :: MonadIO m => GLenum -> m ()
-glBlendEquationEXT = ffienumIOV glBlendEquationEXTFunPtr
-
-glBlendEquationEXTFunPtr :: FunPtr (GLenum -> IO ())
-glBlendEquationEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationEXT")
-
-{-# NOINLINE glBlendEquationEXTFunPtr #-}
-
-pattern GL_BLEND_EQUATION_EXT = 0x8009
-
-pattern GL_FUNC_ADD_EXT = 0x8006
-
-pattern GL_MAX_EXT = 0x8008
-
-pattern GL_MIN_EXT = 0x8007
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendSubtract.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BlendSubtract.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BlendSubtract.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BlendSubtract (
-  -- * Extension Support
-    gl_EXT_blend_subtract
-
-  -- * GL_EXT_blend_subtract
-  , pattern GL_FUNC_REVERSE_SUBTRACT_EXT
-  , pattern GL_FUNC_SUBTRACT_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_subtract.txt GL_EXT_blend_subtract> extension is available.
-
-gl_EXT_blend_subtract :: Bool
-gl_EXT_blend_subtract = member "GL_EXT_blend_subtract" extensions
-{-# NOINLINE gl_EXT_blend_subtract #-}
-
-pattern GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B
-
-pattern GL_FUNC_SUBTRACT_EXT = 0x800A
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/BufferStorage.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/BufferStorage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/BufferStorage.hs
+++ /dev/null
@@ -1,62 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.BufferStorage (
-  -- * Extension Support
-    gl_EXT_buffer_storage
-
-  -- * GL_EXT_buffer_storage
-  , glBufferStorageEXT
-  , pattern GL_BUFFER_IMMUTABLE_STORAGE_EXT
-  , pattern GL_BUFFER_STORAGE_FLAGS_EXT
-  , pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT
-  , pattern GL_CLIENT_STORAGE_BIT_EXT
-  , pattern GL_DYNAMIC_STORAGE_BIT_EXT
-  , pattern GL_MAP_COHERENT_BIT_EXT
-  , pattern GL_MAP_PERSISTENT_BIT_EXT
-  , pattern GL_MAP_READ_BIT
-  , pattern GL_MAP_WRITE_BIT
-) 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://www.khronos.org/registry/gles/extensions/EXT/EXT_buffer_storage.txt GL_EXT_buffer_storage> extension is available.
-
-gl_EXT_buffer_storage :: Bool
-gl_EXT_buffer_storage = member "GL_EXT_buffer_storage" extensions
-{-# NOINLINE gl_EXT_buffer_storage #-}
-
--- | Usage: @'glBufferStorageEXT' target size data flags@
---
--- The length of @data@ should be @size@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBufferStorage'.
-
-
-glBufferStorageEXT :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glBufferStorageEXT = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageEXTFunPtr
-
-glBufferStorageEXTFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glBufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glBufferStorageEXT")
-
-{-# NOINLINE glBufferStorageEXTFunPtr #-}
-
-pattern GL_BUFFER_IMMUTABLE_STORAGE_EXT = 0x821F
-
-pattern GL_BUFFER_STORAGE_FLAGS_EXT = 0x8220
-
-pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT = 0x00004000
-
-pattern GL_CLIENT_STORAGE_BIT_EXT = 0x0200
-
-pattern GL_DYNAMIC_STORAGE_BIT_EXT = 0x0100
-
-pattern GL_MAP_COHERENT_BIT_EXT = 0x0080
-
-pattern GL_MAP_PERSISTENT_BIT_EXT = 0x0040
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ClearTexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ClearTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ClearTexture.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ClearTexture (
-  -- * Extension Support
-    gl_EXT_clear_texture
-
-  -- * GL_EXT_clear_texture
-  , glClearTexImageEXT
-  , glClearTexSubImageEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clear_texture.txt GL_EXT_clear_texture> extension is available.
-
-gl_EXT_clear_texture :: Bool
-gl_EXT_clear_texture = member "GL_EXT_clear_texture" extensions
-{-# NOINLINE gl_EXT_clear_texture #-}
-
--- | Usage: @'glClearTexImageEXT' texture level format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glClearTexImage'.
-
-
-glClearTexImageEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexImageEXT = ffiuintintenumenumPtrVIOV glClearTexImageEXTFunPtr
-
-glClearTexImageEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glClearTexImageEXT")
-
-{-# NOINLINE glClearTexImageEXTFunPtr #-}
-
--- | Usage: @'glClearTexSubImageEXT' texture level xoffset yoffset zoffset width height depth format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glClearTexSubImage'.
-
-
-glClearTexSubImageEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexSubImageEXT = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageEXTFunPtr
-
-glClearTexSubImageEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexSubImageEXTFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImageEXT")
-
-{-# NOINLINE glClearTexSubImageEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ClipCullDistance.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ClipCullDistance.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ClipCullDistance.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ClipCullDistance (
-  -- * Extension Support
-    gl_EXT_clip_cull_distance
-
-  -- * GL_EXT_clip_cull_distance
-  , pattern GL_CLIP_DISTANCE0_EXT
-  , pattern GL_CLIP_DISTANCE1_EXT
-  , pattern GL_CLIP_DISTANCE2_EXT
-  , pattern GL_CLIP_DISTANCE3_EXT
-  , pattern GL_CLIP_DISTANCE4_EXT
-  , pattern GL_CLIP_DISTANCE5_EXT
-  , pattern GL_CLIP_DISTANCE6_EXT
-  , pattern GL_CLIP_DISTANCE7_EXT
-  , pattern GL_MAX_CLIP_DISTANCES_EXT
-  , pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT
-  , pattern GL_MAX_CULL_DISTANCES_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_cull_distance.txt GL_EXT_clip_cull_distance> extension is available.
-
-gl_EXT_clip_cull_distance :: Bool
-gl_EXT_clip_cull_distance = member "GL_EXT_clip_cull_distance" extensions
-{-# NOINLINE gl_EXT_clip_cull_distance #-}
-
-pattern GL_CLIP_DISTANCE0_EXT = 0x3000
-
-pattern GL_CLIP_DISTANCE1_EXT = 0x3001
-
-pattern GL_CLIP_DISTANCE2_EXT = 0x3002
-
-pattern GL_CLIP_DISTANCE3_EXT = 0x3003
-
-pattern GL_CLIP_DISTANCE4_EXT = 0x3004
-
-pattern GL_CLIP_DISTANCE5_EXT = 0x3005
-
-pattern GL_CLIP_DISTANCE6_EXT = 0x3006
-
-pattern GL_CLIP_DISTANCE7_EXT = 0x3007
-
-pattern GL_MAX_CLIP_DISTANCES_EXT = 0x0D32
-
-pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT = 0x82FA
-
-pattern GL_MAX_CULL_DISTANCES_EXT = 0x82F9
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ClipVolumeHint.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ClipVolumeHint.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ClipVolumeHint.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ClipVolumeHint (
-  -- * Extension Support
-    gl_EXT_clip_volume_hint
-
-  -- * GL_EXT_clip_volume_hint
-  , pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/clip_volume_hint.txt GL_EXT_clip_volume_hint> extension is available.
-
-gl_EXT_clip_volume_hint :: Bool
-gl_EXT_clip_volume_hint = member "GL_EXT_clip_volume_hint" extensions
-{-# NOINLINE gl_EXT_clip_volume_hint #-}
-
-pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Cmyka.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Cmyka.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Cmyka.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Cmyka (
-  -- * Extension Support
-    gl_EXT_cmyka
-
-  -- * GL_EXT_cmyka
-  , pattern GL_CMYKA_EXT
-  , pattern GL_CMYK_EXT
-  , pattern GL_PACK_CMYK_HINT_EXT
-  , pattern GL_UNPACK_CMYK_HINT_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cmyka.txt GL_EXT_cmyka> extension is available.
-
-gl_EXT_cmyka :: Bool
-gl_EXT_cmyka = member "GL_EXT_cmyka" extensions
-{-# NOINLINE gl_EXT_cmyka #-}
-
-pattern GL_CMYKA_EXT = 0x800D
-
-pattern GL_CMYK_EXT = 0x800C
-
-pattern GL_PACK_CMYK_HINT_EXT = 0x800E
-
-pattern GL_UNPACK_CMYK_HINT_EXT = 0x800F
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ColorBufferFloat.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ColorBufferFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ColorBufferFloat.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ColorBufferFloat (
-  -- * Extension Support
-    gl_EXT_color_buffer_float
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_float.txt GL_EXT_color_buffer_float> extension is available.
-
-gl_EXT_color_buffer_float :: Bool
-gl_EXT_color_buffer_float = member "GL_EXT_color_buffer_float" extensions
-{-# NOINLINE gl_EXT_color_buffer_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ColorBufferHalfFloat (
-  -- * Extension Support
-    gl_EXT_color_buffer_half_float
-
-  -- * GL_EXT_color_buffer_half_float
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT
-  , pattern GL_R16F_EXT
-  , pattern GL_RG16F_EXT
-  , pattern GL_RGB16F_EXT
-  , pattern GL_RGBA16F_EXT
-  , pattern GL_UNSIGNED_NORMALIZED_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_half_float.txt GL_EXT_color_buffer_half_float> extension is available.
-
-gl_EXT_color_buffer_half_float :: Bool
-gl_EXT_color_buffer_half_float = member "GL_EXT_color_buffer_half_float" extensions
-{-# NOINLINE gl_EXT_color_buffer_half_float #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211
-
-pattern GL_UNSIGNED_NORMALIZED_EXT = 0x8C17
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ColorSubtable.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ColorSubtable.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ColorSubtable.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ColorSubtable (
-  -- * Extension Support
-    gl_EXT_color_subtable
-
-  -- * GL_EXT_color_subtable
-  , glColorSubTableEXT
-  , glCopyColorSubTableEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/color_subtable.txt GL_EXT_color_subtable> extension is available.
-
-gl_EXT_color_subtable :: Bool
-gl_EXT_color_subtable = member "GL_EXT_color_subtable" extensions
-{-# NOINLINE gl_EXT_color_subtable #-}
-
--- | Usage: @'glColorSubTableEXT' target start count format type data@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @data@ should be @COMPSIZE(format,type,count)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorSubTable'.
-
-
-glColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glColorSubTableEXT = ffienumsizeisizeienumenumPtrVIOV glColorSubTableEXTFunPtr
-
-glColorSubTableEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glColorSubTableEXTFunPtr = unsafePerformIO (getProcAddress "glColorSubTableEXT")
-
-{-# NOINLINE glColorSubTableEXTFunPtr #-}
-
--- | Usage: @'glCopyColorSubTableEXT' target start x y width@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyColorSubTable'.
-
-
-glCopyColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
-glCopyColorSubTableEXT = ffienumsizeiintintsizeiIOV glCopyColorSubTableEXTFunPtr
-
-glCopyColorSubTableEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
-glCopyColorSubTableEXTFunPtr = unsafePerformIO (getProcAddress "glCopyColorSubTableEXT")
-
-{-# NOINLINE glCopyColorSubTableEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/CompiledVertexArray.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/CompiledVertexArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/CompiledVertexArray.hs
+++ /dev/null
@@ -1,52 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.CompiledVertexArray (
-  -- * Extension Support
-    gl_EXT_compiled_vertex_array
-
-  -- * GL_EXT_compiled_vertex_array
-  , glLockArraysEXT
-  , glUnlockArraysEXT
-  , pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
-  , pattern GL_ARRAY_ELEMENT_LOCK_FIRST_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/compiled_vertex_array.txt GL_EXT_compiled_vertex_array> extension is available.
-
-gl_EXT_compiled_vertex_array :: Bool
-gl_EXT_compiled_vertex_array = member "GL_EXT_compiled_vertex_array" extensions
-{-# NOINLINE gl_EXT_compiled_vertex_array #-}
-
--- | Usage: @'glLockArraysEXT' first count@
-
-
-glLockArraysEXT :: MonadIO m => GLint -> GLsizei -> m ()
-glLockArraysEXT = ffiintsizeiIOV glLockArraysEXTFunPtr
-
-glLockArraysEXTFunPtr :: FunPtr (GLint -> GLsizei -> IO ())
-glLockArraysEXTFunPtr = unsafePerformIO (getProcAddress "glLockArraysEXT")
-
-{-# NOINLINE glLockArraysEXTFunPtr #-}
-
--- | Usage: @'glUnlockArraysEXT'@
-
-
-glUnlockArraysEXT :: MonadIO m => m ()
-glUnlockArraysEXT = ffiIOV glUnlockArraysEXTFunPtr
-
-glUnlockArraysEXTFunPtr :: FunPtr (IO ())
-glUnlockArraysEXTFunPtr = unsafePerformIO (getProcAddress "glUnlockArraysEXT")
-
-{-# NOINLINE glUnlockArraysEXTFunPtr #-}
-
-pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9
-
-pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ConservativeDepth.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ConservativeDepth.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ConservativeDepth.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ConservativeDepth (
-  -- * Extension Support
-    gl_EXT_conservative_depth
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_conservative_depth.txt GL_EXT_conservative_depth> extension is available.
-
-gl_EXT_conservative_depth :: Bool
-gl_EXT_conservative_depth = member "GL_EXT_conservative_depth" extensions
-{-# NOINLINE gl_EXT_conservative_depth #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Convolution.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Convolution.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Convolution.hs
+++ /dev/null
@@ -1,364 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Convolution (
-  -- * Extension Support
-    gl_EXT_convolution
-
-  -- * GL_EXT_convolution
-  , glConvolutionFilter1DEXT
-  , glConvolutionFilter2DEXT
-  , glConvolutionParameterfEXT
-  , glConvolutionParameterfvEXT
-  , glConvolutionParameteriEXT
-  , glConvolutionParameterivEXT
-  , glCopyConvolutionFilter1DEXT
-  , glCopyConvolutionFilter2DEXT
-  , glGetConvolutionFilterEXT
-  , glGetConvolutionParameterfvEXT
-  , glGetConvolutionParameterivEXT
-  , glGetSeparableFilterEXT
-  , glSeparableFilter2DEXT
-  , pattern GL_CONVOLUTION_1D_EXT
-  , pattern GL_CONVOLUTION_2D_EXT
-  , pattern GL_CONVOLUTION_BORDER_MODE_EXT
-  , pattern GL_CONVOLUTION_FILTER_BIAS_EXT
-  , pattern GL_CONVOLUTION_FILTER_SCALE_EXT
-  , pattern GL_CONVOLUTION_FORMAT_EXT
-  , pattern GL_CONVOLUTION_HEIGHT_EXT
-  , pattern GL_CONVOLUTION_WIDTH_EXT
-  , pattern GL_MAX_CONVOLUTION_HEIGHT_EXT
-  , pattern GL_MAX_CONVOLUTION_WIDTH_EXT
-  , pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
-  , pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
-  , pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT
-  , pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT
-  , pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT
-  , pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT
-  , pattern GL_POST_CONVOLUTION_RED_BIAS_EXT
-  , pattern GL_POST_CONVOLUTION_RED_SCALE_EXT
-  , pattern GL_REDUCE_EXT
-  , pattern GL_SEPARABLE_2D_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/convolution.txt GL_EXT_convolution> extension is available.
-
-gl_EXT_convolution :: Bool
-gl_EXT_convolution = member "GL_EXT_convolution" extensions
-{-# NOINLINE gl_EXT_convolution #-}
-
--- | Usage: @'glConvolutionFilter1DEXT' target internalformat width format type image@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @image@ should be @COMPSIZE(format,type,width)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionFilter1D'.
-
-
-glConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glConvolutionFilter1DEXT = ffienumenumsizeienumenumPtrVIOV glConvolutionFilter1DEXTFunPtr
-
-glConvolutionFilter1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glConvolutionFilter1DEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter1DEXT")
-
-{-# NOINLINE glConvolutionFilter1DEXTFunPtr #-}
-
--- | Usage: @'glConvolutionFilter2DEXT' target internalformat width height format type image@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @image@ should be @COMPSIZE(format,type,width,height)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionFilter2D'.
-
-
-glConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glConvolutionFilter2DEXT = ffienumenumsizeisizeienumenumPtrVIOV glConvolutionFilter2DEXTFunPtr
-
-glConvolutionFilter2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glConvolutionFilter2DEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter2DEXT")
-
-{-# NOINLINE glConvolutionFilter2DEXTFunPtr #-}
-
--- | Usage: @'glConvolutionParameterfEXT' target pname params@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameterf'.
-
-
-glConvolutionParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glConvolutionParameterfEXT = ffienumenumfloatIOV glConvolutionParameterfEXTFunPtr
-
-glConvolutionParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glConvolutionParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterfEXT")
-
-{-# NOINLINE glConvolutionParameterfEXTFunPtr #-}
-
--- | Usage: @'glConvolutionParameterfvEXT' target pname params@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameterfv'.
-
-
-glConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glConvolutionParameterfvEXT = ffienumenumPtrfloatIOV glConvolutionParameterfvEXTFunPtr
-
-glConvolutionParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glConvolutionParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterfvEXT")
-
-{-# NOINLINE glConvolutionParameterfvEXTFunPtr #-}
-
--- | Usage: @'glConvolutionParameteriEXT' target pname params@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameteri'.
-
-
-glConvolutionParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glConvolutionParameteriEXT = ffienumenumintIOV glConvolutionParameteriEXTFunPtr
-
-glConvolutionParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glConvolutionParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameteriEXT")
-
-{-# NOINLINE glConvolutionParameteriEXTFunPtr #-}
-
--- | Usage: @'glConvolutionParameterivEXT' target pname params@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameteriv'.
-
-
-glConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glConvolutionParameterivEXT = ffienumenumPtrintIOV glConvolutionParameterivEXTFunPtr
-
-glConvolutionParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glConvolutionParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterivEXT")
-
-{-# NOINLINE glConvolutionParameterivEXTFunPtr #-}
-
--- | Usage: @'glCopyConvolutionFilter1DEXT' target internalformat x y width@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyConvolutionFilter1D'.
-
-
-glCopyConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
-glCopyConvolutionFilter1DEXT = ffienumenumintintsizeiIOV glCopyConvolutionFilter1DEXTFunPtr
-
-glCopyConvolutionFilter1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
-glCopyConvolutionFilter1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter1DEXT")
-
-{-# NOINLINE glCopyConvolutionFilter1DEXTFunPtr #-}
-
--- | Usage: @'glCopyConvolutionFilter2DEXT' target internalformat x y width height@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyConvolutionFilter2D'.
-
-
-glCopyConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyConvolutionFilter2DEXT = ffienumenumintintsizeisizeiIOV glCopyConvolutionFilter2DEXTFunPtr
-
-glCopyConvolutionFilter2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyConvolutionFilter2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter2DEXT")
-
-{-# NOINLINE glCopyConvolutionFilter2DEXTFunPtr #-}
-
--- | Usage: @'glGetConvolutionFilterEXT' target format type image@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @image@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetConvolutionFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glGetConvolutionFilterEXT = ffienumenumenumPtrVIOV glGetConvolutionFilterEXTFunPtr
-
-glGetConvolutionFilterEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetConvolutionFilterEXTFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionFilterEXT")
-
-{-# NOINLINE glGetConvolutionFilterEXTFunPtr #-}
-
--- | Usage: @'glGetConvolutionParameterfvEXT' target pname params@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetConvolutionParameterfvEXT = ffienumenumPtrfloatIOV glGetConvolutionParameterfvEXTFunPtr
-
-glGetConvolutionParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetConvolutionParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterfvEXT")
-
-{-# NOINLINE glGetConvolutionParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetConvolutionParameterivEXT' target pname params@
---
--- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
---
--- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetConvolutionParameterivEXT = ffienumenumPtrintIOV glGetConvolutionParameterivEXTFunPtr
-
-glGetConvolutionParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetConvolutionParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterivEXT")
-
-{-# NOINLINE glGetConvolutionParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetSeparableFilterEXT' target format type row column span@
---
--- The parameter @target@ is a @SeparableTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_SEPARABLE_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT'.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @row@ should be @COMPSIZE(target,format,type)@.
---
--- The length of @column@ should be @COMPSIZE(target,format,type)@.
---
--- The length of @span@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetSeparableFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
-glGetSeparableFilterEXT = ffienumenumenumPtrVPtrVPtrVIOV glGetSeparableFilterEXTFunPtr
-
-glGetSeparableFilterEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ())
-glGetSeparableFilterEXTFunPtr = unsafePerformIO (getProcAddress "glGetSeparableFilterEXT")
-
-{-# NOINLINE glGetSeparableFilterEXTFunPtr #-}
-
--- | Usage: @'glSeparableFilter2DEXT' target internalformat width height format type row column@
---
--- The parameter @target@ is a @SeparableTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_SEPARABLE_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @row@ should be @COMPSIZE(target,format,type,width)@.
---
--- The length of @column@ should be @COMPSIZE(target,format,type,height)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glSeparableFilter2D'.
-
-
-glSeparableFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
-glSeparableFilter2DEXT = ffienumenumsizeisizeienumenumPtrVPtrVIOV glSeparableFilter2DEXTFunPtr
-
-glSeparableFilter2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ())
-glSeparableFilter2DEXTFunPtr = unsafePerformIO (getProcAddress "glSeparableFilter2DEXT")
-
-{-# NOINLINE glSeparableFilter2DEXTFunPtr #-}
-
-pattern GL_CONVOLUTION_1D_EXT = 0x8010
-
-pattern GL_CONVOLUTION_2D_EXT = 0x8011
-
-pattern GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013
-
-pattern GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015
-
-pattern GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014
-
-pattern GL_CONVOLUTION_FORMAT_EXT = 0x8017
-
-pattern GL_CONVOLUTION_HEIGHT_EXT = 0x8019
-
-pattern GL_CONVOLUTION_WIDTH_EXT = 0x8018
-
-pattern GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B
-
-pattern GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A
-
-pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023
-
-pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F
-
-pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022
-
-pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E
-
-pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021
-
-pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D
-
-pattern GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020
-
-pattern GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C
-
-pattern GL_REDUCE_EXT = 0x8016
-
-pattern GL_SEPARABLE_2D_EXT = 0x8012
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/CoordinateFrame.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/CoordinateFrame.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/CoordinateFrame.hs
+++ /dev/null
@@ -1,408 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.CoordinateFrame (
-  -- * Extension Support
-    gl_EXT_coordinate_frame
-
-  -- * GL_EXT_coordinate_frame
-  , glBinormal3bEXT
-  , glBinormal3bvEXT
-  , glBinormal3dEXT
-  , glBinormal3dvEXT
-  , glBinormal3fEXT
-  , glBinormal3fvEXT
-  , glBinormal3iEXT
-  , glBinormal3ivEXT
-  , glBinormal3sEXT
-  , glBinormal3svEXT
-  , glBinormalPointerEXT
-  , glTangent3bEXT
-  , glTangent3bvEXT
-  , glTangent3dEXT
-  , glTangent3dvEXT
-  , glTangent3fEXT
-  , glTangent3fvEXT
-  , glTangent3iEXT
-  , glTangent3ivEXT
-  , glTangent3sEXT
-  , glTangent3svEXT
-  , glTangentPointerEXT
-  , pattern GL_BINORMAL_ARRAY_EXT
-  , pattern GL_BINORMAL_ARRAY_POINTER_EXT
-  , pattern GL_BINORMAL_ARRAY_STRIDE_EXT
-  , pattern GL_BINORMAL_ARRAY_TYPE_EXT
-  , pattern GL_CURRENT_BINORMAL_EXT
-  , pattern GL_CURRENT_TANGENT_EXT
-  , pattern GL_MAP1_BINORMAL_EXT
-  , pattern GL_MAP1_TANGENT_EXT
-  , pattern GL_MAP2_BINORMAL_EXT
-  , pattern GL_MAP2_TANGENT_EXT
-  , pattern GL_TANGENT_ARRAY_EXT
-  , pattern GL_TANGENT_ARRAY_POINTER_EXT
-  , pattern GL_TANGENT_ARRAY_STRIDE_EXT
-  , pattern GL_TANGENT_ARRAY_TYPE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/coordinate_frame.txt GL_EXT_coordinate_frame> extension is available.
-
-gl_EXT_coordinate_frame :: Bool
-gl_EXT_coordinate_frame = member "GL_EXT_coordinate_frame" extensions
-{-# NOINLINE gl_EXT_coordinate_frame #-}
-
--- | Usage: @'glBinormal3bEXT' bx by bz@
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3bvEXT'.
-
-
-glBinormal3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glBinormal3bEXT = ffibytebytebyteIOV glBinormal3bEXTFunPtr
-
-glBinormal3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glBinormal3bEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3bEXT")
-
-{-# NOINLINE glBinormal3bEXTFunPtr #-}
-
--- | Usage: @'glBinormal3bvEXT' v@
---
--- The length of @v@ should be @3@.
-
-
-glBinormal3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
-glBinormal3bvEXT = ffiPtrbyteIOV glBinormal3bvEXTFunPtr
-
-glBinormal3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glBinormal3bvEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3bvEXT")
-
-{-# NOINLINE glBinormal3bvEXTFunPtr #-}
-
--- | Usage: @'glBinormal3dEXT' bx by bz@
---
--- The parameter @bx@ is a @CoordD@.
---
--- The parameter @by@ is a @CoordD@.
---
--- The parameter @bz@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3dvEXT'.
-
-
-glBinormal3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glBinormal3dEXT = ffidoubledoubledoubleIOV glBinormal3dEXTFunPtr
-
-glBinormal3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glBinormal3dEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3dEXT")
-
-{-# NOINLINE glBinormal3dEXTFunPtr #-}
-
--- | Usage: @'glBinormal3dvEXT' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glBinormal3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
-glBinormal3dvEXT = ffiPtrdoubleIOV glBinormal3dvEXTFunPtr
-
-glBinormal3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glBinormal3dvEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3dvEXT")
-
-{-# NOINLINE glBinormal3dvEXTFunPtr #-}
-
--- | Usage: @'glBinormal3fEXT' bx by bz@
---
--- The parameter @bx@ is a @CoordF@.
---
--- The parameter @by@ is a @CoordF@.
---
--- The parameter @bz@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3fvEXT'.
-
-
-glBinormal3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glBinormal3fEXT = ffifloatfloatfloatIOV glBinormal3fEXTFunPtr
-
-glBinormal3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glBinormal3fEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3fEXT")
-
-{-# NOINLINE glBinormal3fEXTFunPtr #-}
-
--- | Usage: @'glBinormal3fvEXT' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glBinormal3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
-glBinormal3fvEXT = ffiPtrfloatIOV glBinormal3fvEXTFunPtr
-
-glBinormal3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glBinormal3fvEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3fvEXT")
-
-{-# NOINLINE glBinormal3fvEXTFunPtr #-}
-
--- | Usage: @'glBinormal3iEXT' bx by bz@
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3ivEXT'.
-
-
-glBinormal3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glBinormal3iEXT = ffiintintintIOV glBinormal3iEXTFunPtr
-
-glBinormal3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glBinormal3iEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3iEXT")
-
-{-# NOINLINE glBinormal3iEXTFunPtr #-}
-
--- | Usage: @'glBinormal3ivEXT' v@
---
--- The length of @v@ should be @3@.
-
-
-glBinormal3ivEXT :: MonadIO m => Ptr GLint -> m ()
-glBinormal3ivEXT = ffiPtrintIOV glBinormal3ivEXTFunPtr
-
-glBinormal3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
-glBinormal3ivEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3ivEXT")
-
-{-# NOINLINE glBinormal3ivEXTFunPtr #-}
-
--- | Usage: @'glBinormal3sEXT' bx by bz@
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3svEXT'.
-
-
-glBinormal3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glBinormal3sEXT = ffishortshortshortIOV glBinormal3sEXTFunPtr
-
-glBinormal3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glBinormal3sEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3sEXT")
-
-{-# NOINLINE glBinormal3sEXTFunPtr #-}
-
--- | Usage: @'glBinormal3svEXT' v@
---
--- The length of @v@ should be @3@.
-
-
-glBinormal3svEXT :: MonadIO m => Ptr GLshort -> m ()
-glBinormal3svEXT = ffiPtrshortIOV glBinormal3svEXTFunPtr
-
-glBinormal3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glBinormal3svEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3svEXT")
-
-{-# NOINLINE glBinormal3svEXTFunPtr #-}
-
--- | Usage: @'glBinormalPointerEXT' type stride pointer@
---
--- The parameter @type@ is a @BinormalPointerTypeEXT@.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glBinormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glBinormalPointerEXT = ffienumsizeiPtrVIOV glBinormalPointerEXTFunPtr
-
-glBinormalPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glBinormalPointerEXTFunPtr = unsafePerformIO (getProcAddress "glBinormalPointerEXT")
-
-{-# NOINLINE glBinormalPointerEXTFunPtr #-}
-
--- | Usage: @'glTangent3bEXT' tx ty tz@
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3bvEXT'.
-
-
-glTangent3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glTangent3bEXT = ffibytebytebyteIOV glTangent3bEXTFunPtr
-
-glTangent3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glTangent3bEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3bEXT")
-
-{-# NOINLINE glTangent3bEXTFunPtr #-}
-
--- | Usage: @'glTangent3bvEXT' v@
---
--- The length of @v@ should be @3@.
-
-
-glTangent3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
-glTangent3bvEXT = ffiPtrbyteIOV glTangent3bvEXTFunPtr
-
-glTangent3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glTangent3bvEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3bvEXT")
-
-{-# NOINLINE glTangent3bvEXTFunPtr #-}
-
--- | Usage: @'glTangent3dEXT' tx ty tz@
---
--- The parameter @tx@ is a @CoordD@.
---
--- The parameter @ty@ is a @CoordD@.
---
--- The parameter @tz@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3dvEXT'.
-
-
-glTangent3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glTangent3dEXT = ffidoubledoubledoubleIOV glTangent3dEXTFunPtr
-
-glTangent3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glTangent3dEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3dEXT")
-
-{-# NOINLINE glTangent3dEXTFunPtr #-}
-
--- | Usage: @'glTangent3dvEXT' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glTangent3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
-glTangent3dvEXT = ffiPtrdoubleIOV glTangent3dvEXTFunPtr
-
-glTangent3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTangent3dvEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3dvEXT")
-
-{-# NOINLINE glTangent3dvEXTFunPtr #-}
-
--- | Usage: @'glTangent3fEXT' tx ty tz@
---
--- The parameter @tx@ is a @CoordF@.
---
--- The parameter @ty@ is a @CoordF@.
---
--- The parameter @tz@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3fvEXT'.
-
-
-glTangent3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glTangent3fEXT = ffifloatfloatfloatIOV glTangent3fEXTFunPtr
-
-glTangent3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glTangent3fEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3fEXT")
-
-{-# NOINLINE glTangent3fEXTFunPtr #-}
-
--- | Usage: @'glTangent3fvEXT' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glTangent3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
-glTangent3fvEXT = ffiPtrfloatIOV glTangent3fvEXTFunPtr
-
-glTangent3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTangent3fvEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3fvEXT")
-
-{-# NOINLINE glTangent3fvEXTFunPtr #-}
-
--- | Usage: @'glTangent3iEXT' tx ty tz@
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3ivEXT'.
-
-
-glTangent3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glTangent3iEXT = ffiintintintIOV glTangent3iEXTFunPtr
-
-glTangent3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glTangent3iEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3iEXT")
-
-{-# NOINLINE glTangent3iEXTFunPtr #-}
-
--- | Usage: @'glTangent3ivEXT' v@
---
--- The length of @v@ should be @3@.
-
-
-glTangent3ivEXT :: MonadIO m => Ptr GLint -> m ()
-glTangent3ivEXT = ffiPtrintIOV glTangent3ivEXTFunPtr
-
-glTangent3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTangent3ivEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3ivEXT")
-
-{-# NOINLINE glTangent3ivEXTFunPtr #-}
-
--- | Usage: @'glTangent3sEXT' tx ty tz@
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3svEXT'.
-
-
-glTangent3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glTangent3sEXT = ffishortshortshortIOV glTangent3sEXTFunPtr
-
-glTangent3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glTangent3sEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3sEXT")
-
-{-# NOINLINE glTangent3sEXTFunPtr #-}
-
--- | Usage: @'glTangent3svEXT' v@
---
--- The length of @v@ should be @3@.
-
-
-glTangent3svEXT :: MonadIO m => Ptr GLshort -> m ()
-glTangent3svEXT = ffiPtrshortIOV glTangent3svEXTFunPtr
-
-glTangent3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTangent3svEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3svEXT")
-
-{-# NOINLINE glTangent3svEXTFunPtr #-}
-
--- | Usage: @'glTangentPointerEXT' type stride pointer@
---
--- The parameter @type@ is a @TangentPointerTypeEXT@.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glTangentPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glTangentPointerEXT = ffienumsizeiPtrVIOV glTangentPointerEXTFunPtr
-
-glTangentPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glTangentPointerEXTFunPtr = unsafePerformIO (getProcAddress "glTangentPointerEXT")
-
-{-# NOINLINE glTangentPointerEXTFunPtr #-}
-
-pattern GL_BINORMAL_ARRAY_EXT = 0x843A
-
-pattern GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443
-
-pattern GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441
-
-pattern GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440
-
-pattern GL_CURRENT_BINORMAL_EXT = 0x843C
-
-pattern GL_CURRENT_TANGENT_EXT = 0x843B
-
-pattern GL_MAP1_BINORMAL_EXT = 0x8446
-
-pattern GL_MAP1_TANGENT_EXT = 0x8444
-
-pattern GL_MAP2_BINORMAL_EXT = 0x8447
-
-pattern GL_MAP2_TANGENT_EXT = 0x8445
-
-pattern GL_TANGENT_ARRAY_EXT = 0x8439
-
-pattern GL_TANGENT_ARRAY_POINTER_EXT = 0x8442
-
-pattern GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F
-
-pattern GL_TANGENT_ARRAY_TYPE_EXT = 0x843E
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/CopyImage.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/CopyImage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/CopyImage.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.CopyImage (
-  -- * Extension Support
-    gl_EXT_copy_image
-
-  -- * GL_EXT_copy_image
-  , glCopyImageSubDataEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_copy_image.txt GL_EXT_copy_image> extension is available.
-
-gl_EXT_copy_image :: Bool
-gl_EXT_copy_image = member "GL_EXT_copy_image" extensions
-{-# NOINLINE gl_EXT_copy_image #-}
-
--- | Usage: @'glCopyImageSubDataEXT' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyImageSubData'.
-
-
-glCopyImageSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glCopyImageSubDataEXT = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataEXTFunPtr
-
-glCopyImageSubDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glCopyImageSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubDataEXT")
-
-{-# NOINLINE glCopyImageSubDataEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/CopyTexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/CopyTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/CopyTexture.hs
+++ /dev/null
@@ -1,152 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.CopyTexture (
-  -- * Extension Support
-    gl_EXT_copy_texture
-
-  -- * GL_EXT_copy_texture
-  , glCopyTexImage1DEXT
-  , glCopyTexImage2DEXT
-  , glCopyTexSubImage1DEXT
-  , glCopyTexSubImage2DEXT
-  , glCopyTexSubImage3DEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/copy_texture.txt GL_EXT_copy_texture> extension is available.
-
-gl_EXT_copy_texture :: Bool
-gl_EXT_copy_texture = member "GL_EXT_copy_texture" extensions
-{-# NOINLINE gl_EXT_copy_texture #-}
-
--- | Usage: @'glCopyTexImage1DEXT' target level internalformat x y width border@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexImage1D'.
-
-
-glCopyTexImage1DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyTexImage1DEXT = ffienumintenumintintsizeiintIOV glCopyTexImage1DEXTFunPtr
-
-glCopyTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1DEXT")
-
-{-# NOINLINE glCopyTexImage1DEXTFunPtr #-}
-
--- | Usage: @'glCopyTexImage2DEXT' target level internalformat x y width height border@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexImage2D'.
-
-
-glCopyTexImage2DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyTexImage2DEXT = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DEXTFunPtr
-
-glCopyTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2DEXT")
-
-{-# NOINLINE glCopyTexImage2DEXTFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage1DEXT' target level xoffset x y width@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage1D'.
-
-
-glCopyTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTexSubImage1DEXT = ffienumintintintintsizeiIOV glCopyTexSubImage1DEXTFunPtr
-
-glCopyTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1DEXT")
-
-{-# NOINLINE glCopyTexSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage2DEXT' target level xoffset yoffset x y width height@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage2D'.
-
-
-glCopyTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage2DEXT = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DEXTFunPtr
-
-glCopyTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2DEXT")
-
-{-# NOINLINE glCopyTexSubImage2DEXTFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage3DEXT' target level xoffset yoffset zoffset x y width height@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage3D'.
-
-
-glCopyTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage3DEXT = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DEXTFunPtr
-
-glCopyTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3DEXT")
-
-{-# NOINLINE glCopyTexSubImage3DEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/CullVertex.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/CullVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/CullVertex.hs
+++ /dev/null
@@ -1,63 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.CullVertex (
-  -- * Extension Support
-    gl_EXT_cull_vertex
-
-  -- * GL_EXT_cull_vertex
-  , glCullParameterdvEXT
-  , glCullParameterfvEXT
-  , pattern GL_CULL_VERTEX_EXT
-  , pattern GL_CULL_VERTEX_EYE_POSITION_EXT
-  , pattern GL_CULL_VERTEX_OBJECT_POSITION_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cull_vertex.txt GL_EXT_cull_vertex> extension is available.
-
-gl_EXT_cull_vertex :: Bool
-gl_EXT_cull_vertex = member "GL_EXT_cull_vertex" extensions
-{-# NOINLINE gl_EXT_cull_vertex #-}
-
--- | Usage: @'glCullParameterdvEXT' pname params@
---
--- The parameter @pname@ is a @CullParameterEXT@.
---
--- The length of @params@ should be @4@.
-
-
-glCullParameterdvEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glCullParameterdvEXT = ffienumPtrdoubleIOV glCullParameterdvEXTFunPtr
-
-glCullParameterdvEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glCullParameterdvEXTFunPtr = unsafePerformIO (getProcAddress "glCullParameterdvEXT")
-
-{-# NOINLINE glCullParameterdvEXTFunPtr #-}
-
--- | Usage: @'glCullParameterfvEXT' pname params@
---
--- The parameter @pname@ is a @CullParameterEXT@.
---
--- The length of @params@ should be @4@.
-
-
-glCullParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glCullParameterfvEXT = ffienumPtrfloatIOV glCullParameterfvEXTFunPtr
-
-glCullParameterfvEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glCullParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glCullParameterfvEXT")
-
-{-# NOINLINE glCullParameterfvEXTFunPtr #-}
-
-pattern GL_CULL_VERTEX_EXT = 0x81AA
-
-pattern GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB
-
-pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DebugLabel.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DebugLabel.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DebugLabel.hs
+++ /dev/null
@@ -1,71 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DebugLabel (
-  -- * Extension Support
-    gl_EXT_debug_label
-
-  -- * GL_EXT_debug_label
-  , glGetObjectLabelEXT
-  , glLabelObjectEXT
-  , pattern GL_BUFFER_OBJECT_EXT
-  , pattern GL_PROGRAM_OBJECT_EXT
-  , pattern GL_PROGRAM_PIPELINE_OBJECT_EXT
-  , pattern GL_QUERY_OBJECT_EXT
-  , pattern GL_SAMPLER
-  , pattern GL_SHADER_OBJECT_EXT
-  , pattern GL_TRANSFORM_FEEDBACK
-  , pattern GL_VERTEX_ARRAY_OBJECT_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://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_label.txt GL_EXT_debug_label> extension is available.
-
-gl_EXT_debug_label :: Bool
-gl_EXT_debug_label = member "GL_EXT_debug_label" extensions
-{-# NOINLINE gl_EXT_debug_label #-}
-
--- | Usage: @'glGetObjectLabelEXT' type object bufSize length label@
---
--- The length of @length@ should be @1@.
---
--- The length of @label@ should be @bufSize@.
-
-
-glGetObjectLabelEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectLabelEXT = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelEXTFunPtr
-
-glGetObjectLabelEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectLabelEXTFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabelEXT")
-
-{-# NOINLINE glGetObjectLabelEXTFunPtr #-}
-
--- | Usage: @'glLabelObjectEXT' type object length label@
-
-
-glLabelObjectEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glLabelObjectEXT = ffienumuintsizeiPtrcharIOV glLabelObjectEXTFunPtr
-
-glLabelObjectEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glLabelObjectEXTFunPtr = unsafePerformIO (getProcAddress "glLabelObjectEXT")
-
-{-# NOINLINE glLabelObjectEXTFunPtr #-}
-
-pattern GL_BUFFER_OBJECT_EXT = 0x9151
-
-pattern GL_PROGRAM_OBJECT_EXT = 0x8B40
-
-pattern GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F
-
-pattern GL_QUERY_OBJECT_EXT = 0x9153
-
-pattern GL_SHADER_OBJECT_EXT = 0x8B48
-
-pattern GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DebugMarker.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DebugMarker.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DebugMarker.hs
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DebugMarker (
-  -- * Extension Support
-    gl_EXT_debug_marker
-
-  -- * GL_EXT_debug_marker
-  , glInsertEventMarkerEXT
-  , glPopGroupMarkerEXT
-  , glPushGroupMarkerEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt GL_EXT_debug_marker> extension is available.
-
-gl_EXT_debug_marker :: Bool
-gl_EXT_debug_marker = member "GL_EXT_debug_marker" extensions
-{-# NOINLINE gl_EXT_debug_marker #-}
-
--- | Usage: @'glInsertEventMarkerEXT' length marker@
-
-
-glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
-glInsertEventMarkerEXT = ffisizeiPtrcharIOV glInsertEventMarkerEXTFunPtr
-
-glInsertEventMarkerEXTFunPtr :: FunPtr (GLsizei -> Ptr GLchar -> IO ())
-glInsertEventMarkerEXTFunPtr = unsafePerformIO (getProcAddress "glInsertEventMarkerEXT")
-
-{-# NOINLINE glInsertEventMarkerEXTFunPtr #-}
-
--- | Usage: @'glPopGroupMarkerEXT'@
-
-
-glPopGroupMarkerEXT :: MonadIO m => m ()
-glPopGroupMarkerEXT = ffiIOV glPopGroupMarkerEXTFunPtr
-
-glPopGroupMarkerEXTFunPtr :: FunPtr (IO ())
-glPopGroupMarkerEXTFunPtr = unsafePerformIO (getProcAddress "glPopGroupMarkerEXT")
-
-{-# NOINLINE glPopGroupMarkerEXTFunPtr #-}
-
--- | Usage: @'glPushGroupMarkerEXT' length marker@
-
-
-glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
-glPushGroupMarkerEXT = ffisizeiPtrcharIOV glPushGroupMarkerEXTFunPtr
-
-glPushGroupMarkerEXTFunPtr :: FunPtr (GLsizei -> Ptr GLchar -> IO ())
-glPushGroupMarkerEXTFunPtr = unsafePerformIO (getProcAddress "glPushGroupMarkerEXT")
-
-{-# NOINLINE glPushGroupMarkerEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DepthBoundsTest.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DepthBoundsTest.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DepthBoundsTest.hs
+++ /dev/null
@@ -1,44 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DepthBoundsTest (
-  -- * Extension Support
-    gl_EXT_depth_bounds_test
-
-  -- * GL_EXT_depth_bounds_test
-  , glDepthBoundsEXT
-  , pattern GL_DEPTH_BOUNDS_EXT
-  , pattern GL_DEPTH_BOUNDS_TEST_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/depth_bounds_test.txt GL_EXT_depth_bounds_test> extension is available.
-
-gl_EXT_depth_bounds_test :: Bool
-gl_EXT_depth_bounds_test = member "GL_EXT_depth_bounds_test" extensions
-{-# NOINLINE gl_EXT_depth_bounds_test #-}
-
--- | Usage: @'glDepthBoundsEXT' zmin zmax@
---
--- The parameter @zmin@ is a @ClampedFloat64@.
---
--- The parameter @zmax@ is a @ClampedFloat64@.
-
-
-glDepthBoundsEXT :: MonadIO m => GLclampd -> GLclampd -> m ()
-glDepthBoundsEXT = fficlampdclampdIOV glDepthBoundsEXTFunPtr
-
-glDepthBoundsEXTFunPtr :: FunPtr (GLclampd -> GLclampd -> IO ())
-glDepthBoundsEXTFunPtr = unsafePerformIO (getProcAddress "glDepthBoundsEXT")
-
-{-# NOINLINE glDepthBoundsEXTFunPtr #-}
-
-pattern GL_DEPTH_BOUNDS_EXT = 0x8891
-
-pattern GL_DEPTH_BOUNDS_TEST_EXT = 0x8890
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DirectStateAccess.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DirectStateAccess.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DirectStateAccess.hs
+++ /dev/null
@@ -1,4011 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DirectStateAccess (
-  -- * Extension Support
-    gl_EXT_direct_state_access
-
-  -- * GL_EXT_direct_state_access
-  , glBindMultiTextureEXT
-  , glCheckNamedFramebufferStatusEXT
-  , glClearNamedBufferDataEXT
-  , glClearNamedBufferSubDataEXT
-  , glClientAttribDefaultEXT
-  , glCompressedMultiTexImage1DEXT
-  , glCompressedMultiTexImage2DEXT
-  , glCompressedMultiTexImage3DEXT
-  , glCompressedMultiTexSubImage1DEXT
-  , glCompressedMultiTexSubImage2DEXT
-  , glCompressedMultiTexSubImage3DEXT
-  , glCompressedTextureImage1DEXT
-  , glCompressedTextureImage2DEXT
-  , glCompressedTextureImage3DEXT
-  , glCompressedTextureSubImage1DEXT
-  , glCompressedTextureSubImage2DEXT
-  , glCompressedTextureSubImage3DEXT
-  , glCopyMultiTexImage1DEXT
-  , glCopyMultiTexImage2DEXT
-  , glCopyMultiTexSubImage1DEXT
-  , glCopyMultiTexSubImage2DEXT
-  , glCopyMultiTexSubImage3DEXT
-  , glCopyTextureImage1DEXT
-  , glCopyTextureImage2DEXT
-  , glCopyTextureSubImage1DEXT
-  , glCopyTextureSubImage2DEXT
-  , glCopyTextureSubImage3DEXT
-  , glDisableClientStateIndexedEXT
-  , glDisableClientStateiEXT
-  , glDisableIndexedEXT
-  , glDisableVertexArrayAttribEXT
-  , glDisableVertexArrayEXT
-  , glEnableClientStateIndexedEXT
-  , glEnableClientStateiEXT
-  , glEnableIndexedEXT
-  , glEnableVertexArrayAttribEXT
-  , glEnableVertexArrayEXT
-  , glFlushMappedNamedBufferRangeEXT
-  , glFramebufferDrawBufferEXT
-  , glFramebufferDrawBuffersEXT
-  , glFramebufferReadBufferEXT
-  , glGenerateMultiTexMipmapEXT
-  , glGenerateTextureMipmapEXT
-  , glGetBooleanIndexedvEXT
-  , glGetCompressedMultiTexImageEXT
-  , glGetCompressedTextureImageEXT
-  , glGetDoubleIndexedvEXT
-  , glGetDoublei_vEXT
-  , glGetFloatIndexedvEXT
-  , glGetFloati_vEXT
-  , glGetFramebufferParameterivEXT
-  , glGetIntegerIndexedvEXT
-  , glGetMultiTexEnvfvEXT
-  , glGetMultiTexEnvivEXT
-  , glGetMultiTexGendvEXT
-  , glGetMultiTexGenfvEXT
-  , glGetMultiTexGenivEXT
-  , glGetMultiTexImageEXT
-  , glGetMultiTexLevelParameterfvEXT
-  , glGetMultiTexLevelParameterivEXT
-  , glGetMultiTexParameterIivEXT
-  , glGetMultiTexParameterIuivEXT
-  , glGetMultiTexParameterfvEXT
-  , glGetMultiTexParameterivEXT
-  , glGetNamedBufferParameterivEXT
-  , glGetNamedBufferPointervEXT
-  , glGetNamedBufferSubDataEXT
-  , glGetNamedFramebufferAttachmentParameterivEXT
-  , glGetNamedFramebufferParameterivEXT
-  , glGetNamedProgramLocalParameterIivEXT
-  , glGetNamedProgramLocalParameterIuivEXT
-  , glGetNamedProgramLocalParameterdvEXT
-  , glGetNamedProgramLocalParameterfvEXT
-  , glGetNamedProgramStringEXT
-  , glGetNamedProgramivEXT
-  , glGetNamedRenderbufferParameterivEXT
-  , glGetPointerIndexedvEXT
-  , glGetPointeri_vEXT
-  , glGetTextureImageEXT
-  , glGetTextureLevelParameterfvEXT
-  , glGetTextureLevelParameterivEXT
-  , glGetTextureParameterIivEXT
-  , glGetTextureParameterIuivEXT
-  , glGetTextureParameterfvEXT
-  , glGetTextureParameterivEXT
-  , glGetVertexArrayIntegeri_vEXT
-  , glGetVertexArrayIntegervEXT
-  , glGetVertexArrayPointeri_vEXT
-  , glGetVertexArrayPointervEXT
-  , glIsEnabledIndexedEXT
-  , glMapNamedBufferEXT
-  , glMapNamedBufferRangeEXT
-  , glMatrixFrustumEXT
-  , glMatrixLoadIdentityEXT
-  , glMatrixLoadTransposedEXT
-  , glMatrixLoadTransposefEXT
-  , glMatrixLoaddEXT
-  , glMatrixLoadfEXT
-  , glMatrixMultTransposedEXT
-  , glMatrixMultTransposefEXT
-  , glMatrixMultdEXT
-  , glMatrixMultfEXT
-  , glMatrixOrthoEXT
-  , glMatrixPopEXT
-  , glMatrixPushEXT
-  , glMatrixRotatedEXT
-  , glMatrixRotatefEXT
-  , glMatrixScaledEXT
-  , glMatrixScalefEXT
-  , glMatrixTranslatedEXT
-  , glMatrixTranslatefEXT
-  , glMultiTexBufferEXT
-  , glMultiTexCoordPointerEXT
-  , glMultiTexEnvfEXT
-  , glMultiTexEnvfvEXT
-  , glMultiTexEnviEXT
-  , glMultiTexEnvivEXT
-  , glMultiTexGendEXT
-  , glMultiTexGendvEXT
-  , glMultiTexGenfEXT
-  , glMultiTexGenfvEXT
-  , glMultiTexGeniEXT
-  , glMultiTexGenivEXT
-  , glMultiTexImage1DEXT
-  , glMultiTexImage2DEXT
-  , glMultiTexImage3DEXT
-  , glMultiTexParameterIivEXT
-  , glMultiTexParameterIuivEXT
-  , glMultiTexParameterfEXT
-  , glMultiTexParameterfvEXT
-  , glMultiTexParameteriEXT
-  , glMultiTexParameterivEXT
-  , glMultiTexRenderbufferEXT
-  , glMultiTexSubImage1DEXT
-  , glMultiTexSubImage2DEXT
-  , glMultiTexSubImage3DEXT
-  , glNamedBufferDataEXT
-  , glNamedBufferStorageEXT
-  , glNamedBufferSubDataEXT
-  , glNamedCopyBufferSubDataEXT
-  , glNamedFramebufferParameteriEXT
-  , glNamedFramebufferRenderbufferEXT
-  , glNamedFramebufferTexture1DEXT
-  , glNamedFramebufferTexture2DEXT
-  , glNamedFramebufferTexture3DEXT
-  , glNamedFramebufferTextureEXT
-  , glNamedFramebufferTextureFaceEXT
-  , glNamedFramebufferTextureLayerEXT
-  , glNamedProgramLocalParameter4dEXT
-  , glNamedProgramLocalParameter4dvEXT
-  , glNamedProgramLocalParameter4fEXT
-  , glNamedProgramLocalParameter4fvEXT
-  , glNamedProgramLocalParameterI4iEXT
-  , glNamedProgramLocalParameterI4ivEXT
-  , glNamedProgramLocalParameterI4uiEXT
-  , glNamedProgramLocalParameterI4uivEXT
-  , glNamedProgramLocalParameters4fvEXT
-  , glNamedProgramLocalParametersI4ivEXT
-  , glNamedProgramLocalParametersI4uivEXT
-  , glNamedProgramStringEXT
-  , glNamedRenderbufferStorageEXT
-  , glNamedRenderbufferStorageMultisampleCoverageEXT
-  , glNamedRenderbufferStorageMultisampleEXT
-  , glProgramUniform1dEXT
-  , glProgramUniform1dvEXT
-  , glProgramUniform1fEXT
-  , glProgramUniform1fvEXT
-  , glProgramUniform1iEXT
-  , glProgramUniform1ivEXT
-  , glProgramUniform1uiEXT
-  , glProgramUniform1uivEXT
-  , glProgramUniform2dEXT
-  , glProgramUniform2dvEXT
-  , glProgramUniform2fEXT
-  , glProgramUniform2fvEXT
-  , glProgramUniform2iEXT
-  , glProgramUniform2ivEXT
-  , glProgramUniform2uiEXT
-  , glProgramUniform2uivEXT
-  , glProgramUniform3dEXT
-  , glProgramUniform3dvEXT
-  , glProgramUniform3fEXT
-  , glProgramUniform3fvEXT
-  , glProgramUniform3iEXT
-  , glProgramUniform3ivEXT
-  , glProgramUniform3uiEXT
-  , glProgramUniform3uivEXT
-  , glProgramUniform4dEXT
-  , glProgramUniform4dvEXT
-  , glProgramUniform4fEXT
-  , glProgramUniform4fvEXT
-  , glProgramUniform4iEXT
-  , glProgramUniform4ivEXT
-  , glProgramUniform4uiEXT
-  , glProgramUniform4uivEXT
-  , glProgramUniformMatrix2dvEXT
-  , glProgramUniformMatrix2fvEXT
-  , glProgramUniformMatrix2x3dvEXT
-  , glProgramUniformMatrix2x3fvEXT
-  , glProgramUniformMatrix2x4dvEXT
-  , glProgramUniformMatrix2x4fvEXT
-  , glProgramUniformMatrix3dvEXT
-  , glProgramUniformMatrix3fvEXT
-  , glProgramUniformMatrix3x2dvEXT
-  , glProgramUniformMatrix3x2fvEXT
-  , glProgramUniformMatrix3x4dvEXT
-  , glProgramUniformMatrix3x4fvEXT
-  , glProgramUniformMatrix4dvEXT
-  , glProgramUniformMatrix4fvEXT
-  , glProgramUniformMatrix4x2dvEXT
-  , glProgramUniformMatrix4x2fvEXT
-  , glProgramUniformMatrix4x3dvEXT
-  , glProgramUniformMatrix4x3fvEXT
-  , glPushClientAttribDefaultEXT
-  , glTextureBufferEXT
-  , glTextureBufferRangeEXT
-  , glTextureImage1DEXT
-  , glTextureImage2DEXT
-  , glTextureImage3DEXT
-  , glTexturePageCommitmentEXT
-  , glTextureParameterIivEXT
-  , glTextureParameterIuivEXT
-  , glTextureParameterfEXT
-  , glTextureParameterfvEXT
-  , glTextureParameteriEXT
-  , glTextureParameterivEXT
-  , glTextureRenderbufferEXT
-  , glTextureStorage1DEXT
-  , glTextureStorage2DEXT
-  , glTextureStorage2DMultisampleEXT
-  , glTextureStorage3DEXT
-  , glTextureStorage3DMultisampleEXT
-  , glTextureSubImage1DEXT
-  , glTextureSubImage2DEXT
-  , glTextureSubImage3DEXT
-  , glUnmapNamedBufferEXT
-  , glVertexArrayBindVertexBufferEXT
-  , glVertexArrayColorOffsetEXT
-  , glVertexArrayEdgeFlagOffsetEXT
-  , glVertexArrayFogCoordOffsetEXT
-  , glVertexArrayIndexOffsetEXT
-  , glVertexArrayMultiTexCoordOffsetEXT
-  , glVertexArrayNormalOffsetEXT
-  , glVertexArraySecondaryColorOffsetEXT
-  , glVertexArrayTexCoordOffsetEXT
-  , glVertexArrayVertexAttribBindingEXT
-  , glVertexArrayVertexAttribDivisorEXT
-  , glVertexArrayVertexAttribFormatEXT
-  , glVertexArrayVertexAttribIFormatEXT
-  , glVertexArrayVertexAttribIOffsetEXT
-  , glVertexArrayVertexAttribLFormatEXT
-  , glVertexArrayVertexAttribLOffsetEXT
-  , glVertexArrayVertexAttribOffsetEXT
-  , glVertexArrayVertexBindingDivisorEXT
-  , glVertexArrayVertexOffsetEXT
-  , pattern GL_PROGRAM_MATRIX_EXT
-  , pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT
-  , pattern GL_TRANSPOSE_PROGRAM_MATRIX_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/direct_state_access.txt GL_EXT_direct_state_access> extension is available.
-
-gl_EXT_direct_state_access :: Bool
-gl_EXT_direct_state_access = member "GL_EXT_direct_state_access" extensions
-{-# NOINLINE gl_EXT_direct_state_access #-}
-
--- | Usage: @'glBindMultiTextureEXT' texunit target texture@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @texture@ is a @Texture@.
-
-
-glBindMultiTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glBindMultiTextureEXT = ffienumenumuintIOV glBindMultiTextureEXTFunPtr
-
-glBindMultiTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glBindMultiTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindMultiTextureEXT")
-
-{-# NOINLINE glBindMultiTextureEXTFunPtr #-}
-
--- | Usage: @'glCheckNamedFramebufferStatusEXT' framebuffer target@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @target@ is a @FramebufferTarget@.
-
-
-glCheckNamedFramebufferStatusEXT :: MonadIO m => GLuint -> GLenum -> m GLenum
-glCheckNamedFramebufferStatusEXT = ffiuintenumIOenum glCheckNamedFramebufferStatusEXTFunPtr
-
-glCheckNamedFramebufferStatusEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
-glCheckNamedFramebufferStatusEXTFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatusEXT")
-
-{-# NOINLINE glCheckNamedFramebufferStatusEXTFunPtr #-}
-
--- | Usage: @'glClearNamedBufferDataEXT' buffer internalformat format type data@
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
-
-
-glClearNamedBufferDataEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferDataEXT = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataEXTFunPtr
-
-glClearNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferDataEXT")
-
-{-# NOINLINE glClearNamedBufferDataEXTFunPtr #-}
-
--- | Usage: @'glClearNamedBufferSubDataEXT' buffer internalformat offset size format type data@
---
--- The parameter @offset@ is a @BufferSize@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
-
-
-glClearNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferSubDataEXT = ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataEXTFunPtr
-
-glClearNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubDataEXT")
-
-{-# NOINLINE glClearNamedBufferSubDataEXTFunPtr #-}
-
--- | Usage: @'glClientAttribDefaultEXT' mask@
---
--- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
-
-
-glClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
-glClientAttribDefaultEXT = ffibitfieldIOV glClientAttribDefaultEXTFunPtr
-
-glClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
-glClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glClientAttribDefaultEXT")
-
-{-# NOINLINE glClientAttribDefaultEXTFunPtr #-}
-
--- | Usage: @'glCompressedMultiTexImage1DEXT' texunit target level internalformat width border imageSize bits@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexImage1DEXT = ffienumenumintenumsizeiintsizeiPtrVIOV glCompressedMultiTexImage1DEXTFunPtr
-
-glCompressedMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage1DEXT")
-
-{-# NOINLINE glCompressedMultiTexImage1DEXTFunPtr #-}
-
--- | Usage: @'glCompressedMultiTexImage2DEXT' texunit target level internalformat width height border imageSize bits@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexImage2DEXT = ffienumenumintenumsizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage2DEXTFunPtr
-
-glCompressedMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage2DEXT")
-
-{-# NOINLINE glCompressedMultiTexImage2DEXTFunPtr #-}
-
--- | Usage: @'glCompressedMultiTexImage3DEXT' texunit target level internalformat width height depth border imageSize bits@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexImage3DEXT = ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage3DEXTFunPtr
-
-glCompressedMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage3DEXT")
-
-{-# NOINLINE glCompressedMultiTexImage3DEXTFunPtr #-}
-
--- | Usage: @'glCompressedMultiTexSubImage1DEXT' texunit target level xoffset width format imageSize bits@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexSubImage1DEXT = ffienumenumintintsizeienumsizeiPtrVIOV glCompressedMultiTexSubImage1DEXTFunPtr
-
-glCompressedMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage1DEXT")
-
-{-# NOINLINE glCompressedMultiTexSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glCompressedMultiTexSubImage2DEXT' texunit target level xoffset yoffset width height format imageSize bits@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage2DEXTFunPtr
-
-glCompressedMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage2DEXT")
-
-{-# NOINLINE glCompressedMultiTexSubImage2DEXTFunPtr #-}
-
--- | Usage: @'glCompressedMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset width height depth format imageSize bits@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage3DEXTFunPtr
-
-glCompressedMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage3DEXT")
-
-{-# NOINLINE glCompressedMultiTexSubImage3DEXTFunPtr #-}
-
--- | Usage: @'glCompressedTextureImage1DEXT' texture target level internalformat width border imageSize bits@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTextureImage1DEXT = ffiuintenumintenumsizeiintsizeiPtrVIOV glCompressedTextureImage1DEXTFunPtr
-
-glCompressedTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage1DEXT")
-
-{-# NOINLINE glCompressedTextureImage1DEXTFunPtr #-}
-
--- | Usage: @'glCompressedTextureImage2DEXT' texture target level internalformat width height border imageSize bits@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTextureImage2DEXT = ffiuintenumintenumsizeisizeiintsizeiPtrVIOV glCompressedTextureImage2DEXTFunPtr
-
-glCompressedTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage2DEXT")
-
-{-# NOINLINE glCompressedTextureImage2DEXTFunPtr #-}
-
--- | Usage: @'glCompressedTextureImage3DEXT' texture target level internalformat width height depth border imageSize bits@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTextureImage3DEXT = ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTextureImage3DEXTFunPtr
-
-glCompressedTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage3DEXT")
-
-{-# NOINLINE glCompressedTextureImage3DEXTFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage1DEXT' texture target level xoffset width format imageSize bits@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage1DEXT = ffiuintenumintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DEXTFunPtr
-
-glCompressedTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1DEXT")
-
-{-# NOINLINE glCompressedTextureSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage2DEXT' texture target level xoffset yoffset width height format imageSize bits@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DEXTFunPtr
-
-glCompressedTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2DEXT")
-
-{-# NOINLINE glCompressedTextureSubImage2DEXTFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage3DEXT' texture target level xoffset yoffset zoffset width height depth format imageSize bits@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The length of @bits@ should be @imageSize@.
-
-
-glCompressedTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DEXTFunPtr
-
-glCompressedTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3DEXT")
-
-{-# NOINLINE glCompressedTextureSubImage3DEXTFunPtr #-}
-
--- | Usage: @'glCopyMultiTexImage1DEXT' texunit target level internalformat x y width border@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
-
-
-glCopyMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyMultiTexImage1DEXT = ffienumenumintenumintintsizeiintIOV glCopyMultiTexImage1DEXTFunPtr
-
-glCopyMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage1DEXT")
-
-{-# NOINLINE glCopyMultiTexImage1DEXTFunPtr #-}
-
--- | Usage: @'glCopyMultiTexImage2DEXT' texunit target level internalformat x y width height border@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
-
-
-glCopyMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyMultiTexImage2DEXT = ffienumenumintenumintintsizeisizeiintIOV glCopyMultiTexImage2DEXTFunPtr
-
-glCopyMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage2DEXT")
-
-{-# NOINLINE glCopyMultiTexImage2DEXTFunPtr #-}
-
--- | Usage: @'glCopyMultiTexSubImage1DEXT' texunit target level xoffset x y width@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyMultiTexSubImage1DEXT = ffienumenumintintintintsizeiIOV glCopyMultiTexSubImage1DEXTFunPtr
-
-glCopyMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage1DEXT")
-
-{-# NOINLINE glCopyMultiTexSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glCopyMultiTexSubImage2DEXT' texunit target level xoffset yoffset x y width height@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyMultiTexSubImage2DEXT = ffienumenumintintintintintsizeisizeiIOV glCopyMultiTexSubImage2DEXTFunPtr
-
-glCopyMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage2DEXT")
-
-{-# NOINLINE glCopyMultiTexSubImage2DEXTFunPtr #-}
-
--- | Usage: @'glCopyMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset x y width height@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyMultiTexSubImage3DEXT = ffienumenumintintintintintintsizeisizeiIOV glCopyMultiTexSubImage3DEXTFunPtr
-
-glCopyMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage3DEXT")
-
-{-# NOINLINE glCopyMultiTexSubImage3DEXTFunPtr #-}
-
--- | Usage: @'glCopyTextureImage1DEXT' texture target level internalformat x y width border@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
-
-
-glCopyTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyTextureImage1DEXT = ffiuintenumintenumintintsizeiintIOV glCopyTextureImage1DEXTFunPtr
-
-glCopyTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage1DEXT")
-
-{-# NOINLINE glCopyTextureImage1DEXTFunPtr #-}
-
--- | Usage: @'glCopyTextureImage2DEXT' texture target level internalformat x y width height border@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
-
-
-glCopyTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyTextureImage2DEXT = ffiuintenumintenumintintsizeisizeiintIOV glCopyTextureImage2DEXTFunPtr
-
-glCopyTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage2DEXT")
-
-{-# NOINLINE glCopyTextureImage2DEXTFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage1DEXT' texture target level xoffset x y width@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTextureSubImage1DEXT = ffiuintenumintintintintsizeiIOV glCopyTextureSubImage1DEXTFunPtr
-
-glCopyTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1DEXT")
-
-{-# NOINLINE glCopyTextureSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage2DEXT' texture target level xoffset yoffset x y width height@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage2DEXT = ffiuintenumintintintintintsizeisizeiIOV glCopyTextureSubImage2DEXTFunPtr
-
-glCopyTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2DEXT")
-
-{-# NOINLINE glCopyTextureSubImage2DEXTFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage3DEXT' texture target level xoffset yoffset zoffset x y width height@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
-
-
-glCopyTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage3DEXT = ffiuintenumintintintintintintsizeisizeiIOV glCopyTextureSubImage3DEXTFunPtr
-
-glCopyTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3DEXT")
-
-{-# NOINLINE glCopyTextureSubImage3DEXTFunPtr #-}
-
--- | Usage: @'glDisableClientStateIndexedEXT' array index@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glDisableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableClientStateIndexedEXT = ffienumuintIOV glDisableClientStateIndexedEXTFunPtr
-
-glDisableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateIndexedEXT")
-
-{-# NOINLINE glDisableClientStateIndexedEXTFunPtr #-}
-
--- | Usage: @'glDisableClientStateiEXT' array index@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glDisableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableClientStateiEXT = ffienumuintIOV glDisableClientStateiEXTFunPtr
-
-glDisableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateiEXT")
-
-{-# NOINLINE glDisableClientStateiEXTFunPtr #-}
-
--- | Usage: @'glDisableVertexArrayAttribEXT' vaobj index@
-
-
-glDisableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
-glDisableVertexArrayAttribEXT = ffiuintuintIOV glDisableVertexArrayAttribEXTFunPtr
-
-glDisableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDisableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttribEXT")
-
-{-# NOINLINE glDisableVertexArrayAttribEXTFunPtr #-}
-
--- | Usage: @'glDisableVertexArrayEXT' vaobj array@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glDisableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glDisableVertexArrayEXT = ffiuintenumIOV glDisableVertexArrayEXTFunPtr
-
-glDisableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glDisableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayEXT")
-
-{-# NOINLINE glDisableVertexArrayEXTFunPtr #-}
-
--- | Usage: @'glEnableClientStateIndexedEXT' array index@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glEnableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableClientStateIndexedEXT = ffienumuintIOV glEnableClientStateIndexedEXTFunPtr
-
-glEnableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateIndexedEXT")
-
-{-# NOINLINE glEnableClientStateIndexedEXTFunPtr #-}
-
--- | Usage: @'glEnableClientStateiEXT' array index@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glEnableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableClientStateiEXT = ffienumuintIOV glEnableClientStateiEXTFunPtr
-
-glEnableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateiEXT")
-
-{-# NOINLINE glEnableClientStateiEXTFunPtr #-}
-
--- | Usage: @'glEnableVertexArrayAttribEXT' vaobj index@
-
-
-glEnableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
-glEnableVertexArrayAttribEXT = ffiuintuintIOV glEnableVertexArrayAttribEXTFunPtr
-
-glEnableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glEnableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttribEXT")
-
-{-# NOINLINE glEnableVertexArrayAttribEXTFunPtr #-}
-
--- | Usage: @'glEnableVertexArrayEXT' vaobj array@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glEnableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glEnableVertexArrayEXT = ffiuintenumIOV glEnableVertexArrayEXTFunPtr
-
-glEnableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glEnableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayEXT")
-
-{-# NOINLINE glEnableVertexArrayEXTFunPtr #-}
-
--- | Usage: @'glFlushMappedNamedBufferRangeEXT' buffer offset length@
-
-
-glFlushMappedNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedNamedBufferRangeEXT = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeEXTFunPtr
-
-glFlushMappedNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRangeEXT")
-
-{-# NOINLINE glFlushMappedNamedBufferRangeEXTFunPtr #-}
-
--- | Usage: @'glFramebufferDrawBufferEXT' framebuffer mode@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @mode@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
-
-
-glFramebufferDrawBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glFramebufferDrawBufferEXT = ffiuintenumIOV glFramebufferDrawBufferEXTFunPtr
-
-glFramebufferDrawBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glFramebufferDrawBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBufferEXT")
-
-{-# NOINLINE glFramebufferDrawBufferEXTFunPtr #-}
-
--- | Usage: @'glFramebufferDrawBuffersEXT' framebuffer n bufs@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @bufs@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
---
--- The length of @bufs@ should be @n@.
-
-
-glFramebufferDrawBuffersEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glFramebufferDrawBuffersEXT = ffiuintsizeiPtrenumIOV glFramebufferDrawBuffersEXTFunPtr
-
-glFramebufferDrawBuffersEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glFramebufferDrawBuffersEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBuffersEXT")
-
-{-# NOINLINE glFramebufferDrawBuffersEXTFunPtr #-}
-
--- | Usage: @'glFramebufferReadBufferEXT' framebuffer mode@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @mode@ is a @ReadBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
-
-
-glFramebufferReadBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glFramebufferReadBufferEXT = ffiuintenumIOV glFramebufferReadBufferEXTFunPtr
-
-glFramebufferReadBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glFramebufferReadBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferReadBufferEXT")
-
-{-# NOINLINE glFramebufferReadBufferEXTFunPtr #-}
-
--- | Usage: @'glGenerateMultiTexMipmapEXT' texunit target@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
-
-
-glGenerateMultiTexMipmapEXT :: MonadIO m => GLenum -> GLenum -> m ()
-glGenerateMultiTexMipmapEXT = ffienumenumIOV glGenerateMultiTexMipmapEXTFunPtr
-
-glGenerateMultiTexMipmapEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glGenerateMultiTexMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateMultiTexMipmapEXT")
-
-{-# NOINLINE glGenerateMultiTexMipmapEXTFunPtr #-}
-
--- | Usage: @'glGenerateTextureMipmapEXT' texture target@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
-
-
-glGenerateTextureMipmapEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glGenerateTextureMipmapEXT = ffiuintenumIOV glGenerateTextureMipmapEXTFunPtr
-
-glGenerateTextureMipmapEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glGenerateTextureMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmapEXT")
-
-{-# NOINLINE glGenerateTextureMipmapEXTFunPtr #-}
-
--- | Usage: @'glGetCompressedMultiTexImageEXT' texunit target lod img@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @lod@ is a @CheckedInt32@.
---
--- The length of @img@ should be @COMPSIZE(target,lod)@.
-
-
-glGetCompressedMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedMultiTexImageEXT = ffienumenumintPtrVIOV glGetCompressedMultiTexImageEXTFunPtr
-
-glGetCompressedMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedMultiTexImageEXT")
-
-{-# NOINLINE glGetCompressedMultiTexImageEXTFunPtr #-}
-
--- | Usage: @'glGetCompressedTextureImageEXT' texture target lod img@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @lod@ is a @CheckedInt32@.
---
--- The length of @img@ should be @COMPSIZE(target,lod)@.
-
-
-glGetCompressedTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedTextureImageEXT = ffiuintenumintPtrVIOV glGetCompressedTextureImageEXTFunPtr
-
-glGetCompressedTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImageEXT")
-
-{-# NOINLINE glGetCompressedTextureImageEXTFunPtr #-}
-
--- | Usage: @'glGetDoubleIndexedvEXT' target index data@
---
--- The parameter @target@ is a @TypeEnum@.
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDoublei_v'.
-
-
-glGetDoubleIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetDoubleIndexedvEXT = ffienumuintPtrdoubleIOV glGetDoubleIndexedvEXTFunPtr
-
-glGetDoubleIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetDoubleIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoubleIndexedvEXT")
-
-{-# NOINLINE glGetDoubleIndexedvEXTFunPtr #-}
-
--- | Usage: @'glGetDoublei_vEXT' pname index params@
---
--- The parameter @pname@ is a @TypeEnum@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDoublei_v'.
-
-
-glGetDoublei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetDoublei_vEXT = ffienumuintPtrdoubleIOV glGetDoublei_vEXTFunPtr
-
-glGetDoublei_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetDoublei_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_vEXT")
-
-{-# NOINLINE glGetDoublei_vEXTFunPtr #-}
-
--- | Usage: @'glGetFloatIndexedvEXT' target index data@
---
--- The parameter @target@ is a @TypeEnum@.
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
-
-
-glGetFloatIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloatIndexedvEXT = ffienumuintPtrfloatIOV glGetFloatIndexedvEXTFunPtr
-
-glGetFloatIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloatIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloatIndexedvEXT")
-
-{-# NOINLINE glGetFloatIndexedvEXTFunPtr #-}
-
--- | Usage: @'glGetFloati_vEXT' pname index params@
---
--- The parameter @pname@ is a @TypeEnum@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
-
-
-glGetFloati_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloati_vEXT = ffienumuintPtrfloatIOV glGetFloati_vEXTFunPtr
-
-glGetFloati_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloati_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vEXT")
-
-{-# NOINLINE glGetFloati_vEXTFunPtr #-}
-
--- | Usage: @'glGetFramebufferParameterivEXT' framebuffer pname params@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @pname@ is a @GetFramebufferParameter@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetFramebufferParameterivEXTFunPtr
-
-glGetFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameterivEXT")
-
-{-# NOINLINE glGetFramebufferParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexEnvfvEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexEnvfvEXTFunPtr
-
-glGetMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvfvEXT")
-
-{-# NOINLINE glGetMultiTexEnvfvEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexEnvivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexEnvivEXT = ffienumenumenumPtrintIOV glGetMultiTexEnvivEXTFunPtr
-
-glGetMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvivEXT")
-
-{-# NOINLINE glGetMultiTexEnvivEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexGendvEXT' texunit coord pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
-glGetMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glGetMultiTexGendvEXTFunPtr
-
-glGetMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glGetMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGendvEXT")
-
-{-# NOINLINE glGetMultiTexGendvEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexGenfvEXT' texunit coord pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexGenfvEXTFunPtr
-
-glGetMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenfvEXT")
-
-{-# NOINLINE glGetMultiTexGenfvEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexGenivEXT' texunit coord pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexGenivEXT = ffienumenumenumPtrintIOV glGetMultiTexGenivEXTFunPtr
-
-glGetMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenivEXT")
-
-{-# NOINLINE glGetMultiTexGenivEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexImageEXT' texunit target level format type pixels@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
-
-
-glGetMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetMultiTexImageEXT = ffienumenumintenumenumPtrVIOV glGetMultiTexImageEXTFunPtr
-
-glGetMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexImageEXT")
-
-{-# NOINLINE glGetMultiTexImageEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexLevelParameterfvEXT' texunit target level pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexLevelParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexLevelParameterfvEXT = ffienumenumintenumPtrfloatIOV glGetMultiTexLevelParameterfvEXTFunPtr
-
-glGetMultiTexLevelParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterfvEXT")
-
-{-# NOINLINE glGetMultiTexLevelParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexLevelParameterivEXT' texunit target level pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexLevelParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexLevelParameterivEXT = ffienumenumintenumPtrintIOV glGetMultiTexLevelParameterivEXTFunPtr
-
-glGetMultiTexLevelParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterivEXT")
-
-{-# NOINLINE glGetMultiTexLevelParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexParameterIivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterIivEXTFunPtr
-
-glGetMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIivEXT")
-
-{-# NOINLINE glGetMultiTexParameterIivEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexParameterIuivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glGetMultiTexParameterIuivEXTFunPtr
-
-glGetMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIuivEXT")
-
-{-# NOINLINE glGetMultiTexParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexParameterfvEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexParameterfvEXTFunPtr
-
-glGetMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterfvEXT")
-
-{-# NOINLINE glGetMultiTexParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetMultiTexParameterivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMultiTexParameterivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterivEXTFunPtr
-
-glGetMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterivEXT")
-
-{-# NOINLINE glGetMultiTexParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetNamedBufferParameterivEXT' buffer pname params@
---
--- The parameter @pname@ is a @VertexBufferObjectParameter@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetNamedBufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedBufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedBufferParameterivEXTFunPtr
-
-glGetNamedBufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedBufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameterivEXT")
-
-{-# NOINLINE glGetNamedBufferParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetNamedBufferPointervEXT' buffer pname params@
---
--- The parameter @pname@ is a @VertexBufferObjectParameter@.
---
--- The length of @params@ should be @1@.
-
-
-glGetNamedBufferPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetNamedBufferPointervEXT = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervEXTFunPtr
-
-glGetNamedBufferPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetNamedBufferPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointervEXT")
-
-{-# NOINLINE glGetNamedBufferPointervEXTFunPtr #-}
-
--- | Usage: @'glGetNamedBufferSubDataEXT' buffer offset size data@
---
--- The length of @data@ should be @COMPSIZE(size)@.
-
-
-glGetNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glGetNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataEXTFunPtr
-
-glGetNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glGetNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubDataEXT")
-
-{-# NOINLINE glGetNamedBufferSubDataEXTFunPtr #-}
-
--- | Usage: @'glGetNamedFramebufferAttachmentParameterivEXT' framebuffer attachment pname params@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @pname@ is a @FramebufferAttachmentParameterName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetNamedFramebufferAttachmentParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferAttachmentParameterivEXT = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivEXTFunPtr
-
-glGetNamedFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferAttachmentParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameterivEXT")
-
-{-# NOINLINE glGetNamedFramebufferAttachmentParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetNamedFramebufferParameterivEXT' framebuffer pname params@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @pname@ is a @GetFramebufferParameter@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetNamedFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivEXTFunPtr
-
-glGetNamedFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameterivEXT")
-
-{-# NOINLINE glGetNamedFramebufferParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetNamedProgramLocalParameterIivEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetNamedProgramLocalParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-glGetNamedProgramLocalParameterIivEXT = ffiuintenumuintPtrintIOV glGetNamedProgramLocalParameterIivEXTFunPtr
-
-glGetNamedProgramLocalParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetNamedProgramLocalParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIivEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterIivEXTFunPtr #-}
-
--- | Usage: @'glGetNamedProgramLocalParameterIuivEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetNamedProgramLocalParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
-glGetNamedProgramLocalParameterIuivEXT = ffiuintenumuintPtruintIOV glGetNamedProgramLocalParameterIuivEXTFunPtr
-
-glGetNamedProgramLocalParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
-glGetNamedProgramLocalParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIuivEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glGetNamedProgramLocalParameterdvEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetNamedProgramLocalParameterdvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetNamedProgramLocalParameterdvEXT = ffiuintenumuintPtrdoubleIOV glGetNamedProgramLocalParameterdvEXTFunPtr
-
-glGetNamedProgramLocalParameterdvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetNamedProgramLocalParameterdvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterdvEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterdvEXTFunPtr #-}
-
--- | Usage: @'glGetNamedProgramLocalParameterfvEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetNamedProgramLocalParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetNamedProgramLocalParameterfvEXT = ffiuintenumuintPtrfloatIOV glGetNamedProgramLocalParameterfvEXTFunPtr
-
-glGetNamedProgramLocalParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetNamedProgramLocalParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterfvEXT")
-
-{-# NOINLINE glGetNamedProgramLocalParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetNamedProgramStringEXT' program target pname string@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The parameter @pname@ is a @ProgramStringProperty@.
---
--- The length of @string@ should be @COMPSIZE(program,pname)@.
-
-
-glGetNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetNamedProgramStringEXT = ffiuintenumenumPtrVIOV glGetNamedProgramStringEXTFunPtr
-
-glGetNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramStringEXT")
-
-{-# NOINLINE glGetNamedProgramStringEXTFunPtr #-}
-
--- | Usage: @'glGetNamedProgramivEXT' program target pname params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The parameter @pname@ is a @ProgramProperty@.
---
--- The length of @params@ should be @1@.
-
-
-glGetNamedProgramivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetNamedProgramivEXT = ffiuintenumenumPtrintIOV glGetNamedProgramivEXTFunPtr
-
-glGetNamedProgramivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetNamedProgramivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramivEXT")
-
-{-# NOINLINE glGetNamedProgramivEXTFunPtr #-}
-
--- | Usage: @'glGetNamedRenderbufferParameterivEXT' renderbuffer pname params@
---
--- The parameter @renderbuffer@ is a @Renderbuffer@.
---
--- The parameter @pname@ is a @RenderbufferParameterName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetNamedRenderbufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedRenderbufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivEXTFunPtr
-
-glGetNamedRenderbufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedRenderbufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameterivEXT")
-
-{-# NOINLINE glGetNamedRenderbufferParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetPointerIndexedvEXT' target index data@
---
--- The parameter @target@ is a @TypeEnum@.
---
--- The length of @data@ should be @1@.
-
-
-glGetPointerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
-glGetPointerIndexedvEXT = ffienumuintPtrPtrVIOV glGetPointerIndexedvEXTFunPtr
-
-glGetPointerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ())
-glGetPointerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointerIndexedvEXT")
-
-{-# NOINLINE glGetPointerIndexedvEXTFunPtr #-}
-
--- | Usage: @'glGetPointeri_vEXT' pname index params@
---
--- The parameter @pname@ is a @TypeEnum@.
---
--- The length of @params@ should be @1@.
-
-
-glGetPointeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
-glGetPointeri_vEXT = ffienumuintPtrPtrVIOV glGetPointeri_vEXTFunPtr
-
-glGetPointeri_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ())
-glGetPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointeri_vEXT")
-
-{-# NOINLINE glGetPointeri_vEXTFunPtr #-}
-
--- | Usage: @'glGetTextureImageEXT' texture target level format type pixels@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
-
-
-glGetTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetTextureImageEXT = ffiuintenumintenumenumPtrVIOV glGetTextureImageEXTFunPtr
-
-glGetTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureImageEXT")
-
-{-# NOINLINE glGetTextureImageEXTFunPtr #-}
-
--- | Usage: @'glGetTextureLevelParameterfvEXT' texture target level pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTextureLevelParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureLevelParameterfvEXT = ffiuintenumintenumPtrfloatIOV glGetTextureLevelParameterfvEXTFunPtr
-
-glGetTextureLevelParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfvEXT")
-
-{-# NOINLINE glGetTextureLevelParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetTextureLevelParameterivEXT' texture target level pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTextureLevelParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTextureLevelParameterivEXT = ffiuintenumintenumPtrintIOV glGetTextureLevelParameterivEXTFunPtr
-
-glGetTextureLevelParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterivEXT")
-
-{-# NOINLINE glGetTextureLevelParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetTextureParameterIivEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameterIivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterIivEXTFunPtr
-
-glGetTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIivEXT")
-
-{-# NOINLINE glGetTextureParameterIivEXTFunPtr #-}
-
--- | Usage: @'glGetTextureParameterIuivEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glGetTextureParameterIuivEXTFunPtr
-
-glGetTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuivEXT")
-
-{-# NOINLINE glGetTextureParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glGetTextureParameterfvEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glGetTextureParameterfvEXTFunPtr
-
-glGetTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfvEXT")
-
-{-# NOINLINE glGetTextureParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetTextureParameterivEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameterivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterivEXTFunPtr
-
-glGetTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterivEXT")
-
-{-# NOINLINE glGetTextureParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetVertexArrayIntegeri_vEXT' vaobj index pname param@
-
-
-glGetVertexArrayIntegeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayIntegeri_vEXT = ffiuintuintenumPtrintIOV glGetVertexArrayIntegeri_vEXTFunPtr
-
-glGetVertexArrayIntegeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayIntegeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegeri_vEXT")
-
-{-# NOINLINE glGetVertexArrayIntegeri_vEXTFunPtr #-}
-
--- | Usage: @'glGetVertexArrayIntegervEXT' vaobj pname param@
-
-
-glGetVertexArrayIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayIntegervEXT = ffiuintenumPtrintIOV glGetVertexArrayIntegervEXTFunPtr
-
-glGetVertexArrayIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegervEXT")
-
-{-# NOINLINE glGetVertexArrayIntegervEXTFunPtr #-}
-
--- | Usage: @'glGetVertexArrayPointeri_vEXT' vaobj index pname param@
-
-
-glGetVertexArrayPointeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVertexArrayPointeri_vEXT = ffiuintuintenumPtrPtrVIOV glGetVertexArrayPointeri_vEXTFunPtr
-
-glGetVertexArrayPointeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVertexArrayPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointeri_vEXT")
-
-{-# NOINLINE glGetVertexArrayPointeri_vEXTFunPtr #-}
-
--- | Usage: @'glGetVertexArrayPointervEXT' vaobj pname param@
---
--- The length of @param@ should be @1@.
-
-
-glGetVertexArrayPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVertexArrayPointervEXT = ffiuintenumPtrPtrVIOV glGetVertexArrayPointervEXTFunPtr
-
-glGetVertexArrayPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVertexArrayPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointervEXT")
-
-{-# NOINLINE glGetVertexArrayPointervEXTFunPtr #-}
-
--- | Usage: @'glMapNamedBufferEXT' buffer access@
---
--- The parameter @access@ is a @VertexBufferObjectAccess@.
-
-
-glMapNamedBufferEXT :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
-glMapNamedBufferEXT = ffiuintenumIOPtrV glMapNamedBufferEXTFunPtr
-
-glMapNamedBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
-glMapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferEXT")
-
-{-# NOINLINE glMapNamedBufferEXTFunPtr #-}
-
--- | Usage: @'glMapNamedBufferRangeEXT' buffer offset length access@
---
--- The parameter @access@ is a @BufferAccessMask@.
-
-
-glMapNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapNamedBufferRangeEXT = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeEXTFunPtr
-
-glMapNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRangeEXT")
-
-{-# NOINLINE glMapNamedBufferRangeEXTFunPtr #-}
-
--- | Usage: @'glMatrixFrustumEXT' mode left right bottom top zNear zFar@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixFrustumEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixFrustumEXTFunPtr
-
-glMatrixFrustumEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixFrustumEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixFrustumEXT")
-
-{-# NOINLINE glMatrixFrustumEXTFunPtr #-}
-
--- | Usage: @'glMatrixLoadIdentityEXT' mode@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
-glMatrixLoadIdentityEXT = ffienumIOV glMatrixLoadIdentityEXTFunPtr
-
-glMatrixLoadIdentityEXTFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixLoadIdentityEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadIdentityEXT")
-
-{-# NOINLINE glMatrixLoadIdentityEXTFunPtr #-}
-
--- | Usage: @'glMatrixLoadTransposedEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixLoadTransposedEXT = ffienumPtrdoubleIOV glMatrixLoadTransposedEXTFunPtr
-
-glMatrixLoadTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixLoadTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposedEXT")
-
-{-# NOINLINE glMatrixLoadTransposedEXTFunPtr #-}
-
--- | Usage: @'glMatrixLoadTransposefEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixLoadTransposefEXT = ffienumPtrfloatIOV glMatrixLoadTransposefEXTFunPtr
-
-glMatrixLoadTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixLoadTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposefEXT")
-
-{-# NOINLINE glMatrixLoadTransposefEXTFunPtr #-}
-
--- | Usage: @'glMatrixLoaddEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixLoaddEXT = ffienumPtrdoubleIOV glMatrixLoaddEXTFunPtr
-
-glMatrixLoaddEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixLoaddEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoaddEXT")
-
-{-# NOINLINE glMatrixLoaddEXTFunPtr #-}
-
--- | Usage: @'glMatrixLoadfEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixLoadfEXT = ffienumPtrfloatIOV glMatrixLoadfEXTFunPtr
-
-glMatrixLoadfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixLoadfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadfEXT")
-
-{-# NOINLINE glMatrixLoadfEXTFunPtr #-}
-
--- | Usage: @'glMatrixMultTransposedEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixMultTransposedEXT = ffienumPtrdoubleIOV glMatrixMultTransposedEXTFunPtr
-
-glMatrixMultTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixMultTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposedEXT")
-
-{-# NOINLINE glMatrixMultTransposedEXTFunPtr #-}
-
--- | Usage: @'glMatrixMultTransposefEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixMultTransposefEXT = ffienumPtrfloatIOV glMatrixMultTransposefEXTFunPtr
-
-glMatrixMultTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixMultTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposefEXT")
-
-{-# NOINLINE glMatrixMultTransposefEXTFunPtr #-}
-
--- | Usage: @'glMatrixMultdEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMatrixMultdEXT = ffienumPtrdoubleIOV glMatrixMultdEXTFunPtr
-
-glMatrixMultdEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMatrixMultdEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultdEXT")
-
-{-# NOINLINE glMatrixMultdEXTFunPtr #-}
-
--- | Usage: @'glMatrixMultfEXT' mode m@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
---
--- The length of @m@ should be @16@.
-
-
-glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixMultfEXT = ffienumPtrfloatIOV glMatrixMultfEXTFunPtr
-
-glMatrixMultfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixMultfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultfEXT")
-
-{-# NOINLINE glMatrixMultfEXTFunPtr #-}
-
--- | Usage: @'glMatrixOrthoEXT' mode left right bottom top zNear zFar@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixOrthoEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixOrthoEXTFunPtr
-
-glMatrixOrthoEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixOrthoEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixOrthoEXT")
-
-{-# NOINLINE glMatrixOrthoEXTFunPtr #-}
-
--- | Usage: @'glMatrixPopEXT' mode@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixPopEXT :: MonadIO m => GLenum -> m ()
-glMatrixPopEXT = ffienumIOV glMatrixPopEXTFunPtr
-
-glMatrixPopEXTFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixPopEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPopEXT")
-
-{-# NOINLINE glMatrixPopEXTFunPtr #-}
-
--- | Usage: @'glMatrixPushEXT' mode@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixPushEXT :: MonadIO m => GLenum -> m ()
-glMatrixPushEXT = ffienumIOV glMatrixPushEXTFunPtr
-
-glMatrixPushEXTFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixPushEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPushEXT")
-
-{-# NOINLINE glMatrixPushEXTFunPtr #-}
-
--- | Usage: @'glMatrixRotatedEXT' mode angle x y z@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixRotatedEXT = ffienumdoubledoubledoubledoubleIOV glMatrixRotatedEXTFunPtr
-
-glMatrixRotatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixRotatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatedEXT")
-
-{-# NOINLINE glMatrixRotatedEXTFunPtr #-}
-
--- | Usage: @'glMatrixRotatefEXT' mode angle x y z@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMatrixRotatefEXT = ffienumfloatfloatfloatfloatIOV glMatrixRotatefEXTFunPtr
-
-glMatrixRotatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMatrixRotatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatefEXT")
-
-{-# NOINLINE glMatrixRotatefEXTFunPtr #-}
-
--- | Usage: @'glMatrixScaledEXT' mode x y z@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixScaledEXT = ffienumdoubledoubledoubleIOV glMatrixScaledEXTFunPtr
-
-glMatrixScaledEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixScaledEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScaledEXT")
-
-{-# NOINLINE glMatrixScaledEXTFunPtr #-}
-
--- | Usage: @'glMatrixScalefEXT' mode x y z@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMatrixScalefEXT = ffienumfloatfloatfloatIOV glMatrixScalefEXTFunPtr
-
-glMatrixScalefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMatrixScalefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScalefEXT")
-
-{-# NOINLINE glMatrixScalefEXTFunPtr #-}
-
--- | Usage: @'glMatrixTranslatedEXT' mode x y z@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMatrixTranslatedEXT = ffienumdoubledoubledoubleIOV glMatrixTranslatedEXTFunPtr
-
-glMatrixTranslatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMatrixTranslatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatedEXT")
-
-{-# NOINLINE glMatrixTranslatedEXTFunPtr #-}
-
--- | Usage: @'glMatrixTranslatefEXT' mode x y z@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMatrixTranslatefEXT = ffienumfloatfloatfloatIOV glMatrixTranslatefEXTFunPtr
-
-glMatrixTranslatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMatrixTranslatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatefEXT")
-
-{-# NOINLINE glMatrixTranslatefEXTFunPtr #-}
-
--- | Usage: @'glMultiTexBufferEXT' texunit target internalformat buffer@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @internalformat@ is a @TypeEnum@.
-
-
-glMultiTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
-glMultiTexBufferEXT = ffienumenumenumuintIOV glMultiTexBufferEXTFunPtr
-
-glMultiTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexBufferEXT")
-
-{-# NOINLINE glMultiTexBufferEXTFunPtr #-}
-
--- | Usage: @'glMultiTexCoordPointerEXT' texunit size type stride pointer@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glMultiTexCoordPointerEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glMultiTexCoordPointerEXT = ffienumintenumsizeiPtrVIOV glMultiTexCoordPointerEXTFunPtr
-
-glMultiTexCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glMultiTexCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordPointerEXT")
-
-{-# NOINLINE glMultiTexCoordPointerEXTFunPtr #-}
-
--- | Usage: @'glMultiTexEnvfEXT' texunit target pname param@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @param@ is a @CheckedFloat32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexEnvfvEXT'.
-
-
-glMultiTexEnvfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
-glMultiTexEnvfEXT = ffienumenumenumfloatIOV glMultiTexEnvfEXTFunPtr
-
-glMultiTexEnvfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-glMultiTexEnvfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfEXT")
-
-{-# NOINLINE glMultiTexEnvfEXTFunPtr #-}
-
--- | Usage: @'glMultiTexEnvfvEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glMultiTexEnvfvEXTFunPtr
-
-glMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfvEXT")
-
-{-# NOINLINE glMultiTexEnvfvEXTFunPtr #-}
-
--- | Usage: @'glMultiTexEnviEXT' texunit target pname param@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @param@ is a @CheckedInt32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexEnvivEXT'.
-
-
-glMultiTexEnviEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
-glMultiTexEnviEXT = ffienumenumenumintIOV glMultiTexEnviEXTFunPtr
-
-glMultiTexEnviEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
-glMultiTexEnviEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnviEXT")
-
-{-# NOINLINE glMultiTexEnviEXTFunPtr #-}
-
--- | Usage: @'glMultiTexEnvivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexEnvivEXT = ffienumenumenumPtrintIOV glMultiTexEnvivEXTFunPtr
-
-glMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvivEXT")
-
-{-# NOINLINE glMultiTexEnvivEXTFunPtr #-}
-
--- | Usage: @'glMultiTexGendEXT' texunit coord pname param@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexGendvEXT'.
-
-
-glMultiTexGendEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLdouble -> m ()
-glMultiTexGendEXT = ffienumenumenumdoubleIOV glMultiTexGendEXTFunPtr
-
-glMultiTexGendEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ())
-glMultiTexGendEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendEXT")
-
-{-# NOINLINE glMultiTexGendEXTFunPtr #-}
-
--- | Usage: @'glMultiTexGendvEXT' texunit coord pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
-glMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glMultiTexGendvEXTFunPtr
-
-glMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendvEXT")
-
-{-# NOINLINE glMultiTexGendvEXTFunPtr #-}
-
--- | Usage: @'glMultiTexGenfEXT' texunit coord pname param@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @param@ is a @CheckedFloat32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexGenfvEXT'.
-
-
-glMultiTexGenfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
-glMultiTexGenfEXT = ffienumenumenumfloatIOV glMultiTexGenfEXTFunPtr
-
-glMultiTexGenfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-glMultiTexGenfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfEXT")
-
-{-# NOINLINE glMultiTexGenfEXTFunPtr #-}
-
--- | Usage: @'glMultiTexGenfvEXT' texunit coord pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glMultiTexGenfvEXTFunPtr
-
-glMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfvEXT")
-
-{-# NOINLINE glMultiTexGenfvEXTFunPtr #-}
-
--- | Usage: @'glMultiTexGeniEXT' texunit coord pname param@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @param@ is a @CheckedInt32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexGenivEXT'.
-
-
-glMultiTexGeniEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
-glMultiTexGeniEXT = ffienumenumenumintIOV glMultiTexGeniEXTFunPtr
-
-glMultiTexGeniEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
-glMultiTexGeniEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGeniEXT")
-
-{-# NOINLINE glMultiTexGeniEXTFunPtr #-}
-
--- | Usage: @'glMultiTexGenivEXT' texunit coord pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexGenivEXT = ffienumenumenumPtrintIOV glMultiTexGenivEXTFunPtr
-
-glMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenivEXT")
-
-{-# NOINLINE glMultiTexGenivEXTFunPtr #-}
-
--- | Usage: @'glMultiTexImage1DEXT' texunit target level internalformat width border format type pixels@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
-
-
-glMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexImage1DEXT = ffienumenumintintsizeiintenumenumPtrVIOV glMultiTexImage1DEXTFunPtr
-
-glMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage1DEXT")
-
-{-# NOINLINE glMultiTexImage1DEXTFunPtr #-}
-
--- | Usage: @'glMultiTexImage2DEXT' texunit target level internalformat width height border format type pixels@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
-
-
-glMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexImage2DEXT = ffienumenumintintsizeisizeiintenumenumPtrVIOV glMultiTexImage2DEXTFunPtr
-
-glMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage2DEXT")
-
-{-# NOINLINE glMultiTexImage2DEXTFunPtr #-}
-
--- | Usage: @'glMultiTexImage3DEXT' texunit target level internalformat width height depth border format type pixels@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
-
-
-glMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexImage3DEXT = ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV glMultiTexImage3DEXTFunPtr
-
-glMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage3DEXT")
-
-{-# NOINLINE glMultiTexImage3DEXTFunPtr #-}
-
--- | Usage: @'glMultiTexParameterIivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glMultiTexParameterIivEXTFunPtr
-
-glMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIivEXT")
-
-{-# NOINLINE glMultiTexParameterIivEXTFunPtr #-}
-
--- | Usage: @'glMultiTexParameterIuivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glMultiTexParameterIuivEXTFunPtr
-
-glMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIuivEXT")
-
-{-# NOINLINE glMultiTexParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glMultiTexParameterfEXT' texunit target pname param@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedFloat32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexParameterfvEXT'.
-
-
-glMultiTexParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
-glMultiTexParameterfEXT = ffienumenumenumfloatIOV glMultiTexParameterfEXTFunPtr
-
-glMultiTexParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-glMultiTexParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfEXT")
-
-{-# NOINLINE glMultiTexParameterfEXTFunPtr #-}
-
--- | Usage: @'glMultiTexParameterfvEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glMultiTexParameterfvEXTFunPtr
-
-glMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfvEXT")
-
-{-# NOINLINE glMultiTexParameterfvEXTFunPtr #-}
-
--- | Usage: @'glMultiTexParameteriEXT' texunit target pname param@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedInt32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexParameterivEXT'.
-
-
-glMultiTexParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
-glMultiTexParameteriEXT = ffienumenumenumintIOV glMultiTexParameteriEXTFunPtr
-
-glMultiTexParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
-glMultiTexParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameteriEXT")
-
-{-# NOINLINE glMultiTexParameteriEXTFunPtr #-}
-
--- | Usage: @'glMultiTexParameterivEXT' texunit target pname params@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glMultiTexParameterivEXT = ffienumenumenumPtrintIOV glMultiTexParameterivEXTFunPtr
-
-glMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterivEXT")
-
-{-# NOINLINE glMultiTexParameterivEXTFunPtr #-}
-
--- | Usage: @'glMultiTexRenderbufferEXT' texunit target renderbuffer@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
-
-
-glMultiTexRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexRenderbufferEXT = ffienumenumuintIOV glMultiTexRenderbufferEXTFunPtr
-
-glMultiTexRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexRenderbufferEXT")
-
-{-# NOINLINE glMultiTexRenderbufferEXTFunPtr #-}
-
--- | Usage: @'glMultiTexSubImage1DEXT' texunit target level xoffset width format type pixels@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
-
-
-glMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexSubImage1DEXT = ffienumenumintintsizeienumenumPtrVIOV glMultiTexSubImage1DEXTFunPtr
-
-glMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage1DEXT")
-
-{-# NOINLINE glMultiTexSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glMultiTexSubImage2DEXT' texunit target level xoffset yoffset width height format type pixels@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
-
-
-glMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumenumPtrVIOV glMultiTexSubImage2DEXTFunPtr
-
-glMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage2DEXT")
-
-{-# NOINLINE glMultiTexSubImage2DEXTFunPtr #-}
-
--- | Usage: @'glMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset width height depth format type pixels@
---
--- The parameter @texunit@ is a @TextureUnit@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
-
-
-glMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV glMultiTexSubImage3DEXTFunPtr
-
-glMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage3DEXT")
-
-{-# NOINLINE glMultiTexSubImage3DEXTFunPtr #-}
-
--- | Usage: @'glNamedBufferDataEXT' buffer size data usage@
---
--- The parameter @usage@ is a @VertexBufferObjectUsage@.
---
--- The length of @data@ should be @COMPSIZE(size)@.
-
-
-glNamedBufferDataEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-glNamedBufferDataEXT = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataEXTFunPtr
-
-glNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
-glNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferDataEXT")
-
-{-# NOINLINE glNamedBufferDataEXTFunPtr #-}
-
--- | Usage: @'glNamedBufferStorageEXT' buffer size data flags@
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @size@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glNamedBufferStorage'.
-
-
-glNamedBufferStorageEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glNamedBufferStorageEXT = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageEXTFunPtr
-
-glNamedBufferStorageEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glNamedBufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorageEXT")
-
-{-# NOINLINE glNamedBufferStorageEXTFunPtr #-}
-
--- | Usage: @'glNamedBufferSubDataEXT' buffer offset size data@
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @COMPSIZE(size)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glNamedBufferSubData'.
-
-
-glNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataEXTFunPtr
-
-glNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubDataEXT")
-
-{-# NOINLINE glNamedBufferSubDataEXTFunPtr #-}
-
--- | Usage: @'glNamedCopyBufferSubDataEXT' readBuffer writeBuffer readOffset writeOffset size@
-
-
-glNamedCopyBufferSubDataEXT :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glNamedCopyBufferSubDataEXT = ffiuintuintintptrintptrsizeiptrIOV glNamedCopyBufferSubDataEXTFunPtr
-
-glNamedCopyBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glNamedCopyBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedCopyBufferSubDataEXT")
-
-{-# NOINLINE glNamedCopyBufferSubDataEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferParameteriEXT' framebuffer pname param@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @pname@ is a @FramebufferParameterName@.
-
-
-glNamedFramebufferParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glNamedFramebufferParameteriEXT = ffiuintenumintIOV glNamedFramebufferParameteriEXTFunPtr
-
-glNamedFramebufferParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glNamedFramebufferParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteriEXT")
-
-{-# NOINLINE glNamedFramebufferParameteriEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferRenderbufferEXT' framebuffer attachment renderbuffertarget renderbuffer@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
---
--- The parameter @renderbuffer@ is a @Renderbuffer@.
-
-
-glNamedFramebufferRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glNamedFramebufferRenderbufferEXT = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferEXTFunPtr
-
-glNamedFramebufferRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glNamedFramebufferRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbufferEXT")
-
-{-# NOINLINE glNamedFramebufferRenderbufferEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTexture1DEXT' framebuffer attachment textarget texture level@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
-
-
-glNamedFramebufferTexture1DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTexture1DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture1DEXTFunPtr
-
-glNamedFramebufferTexture1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTexture1DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture1DEXT")
-
-{-# NOINLINE glNamedFramebufferTexture1DEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTexture2DEXT' framebuffer attachment textarget texture level@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
-
-
-glNamedFramebufferTexture2DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTexture2DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture2DEXTFunPtr
-
-glNamedFramebufferTexture2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTexture2DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture2DEXT")
-
-{-# NOINLINE glNamedFramebufferTexture2DEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTexture3DEXT' framebuffer attachment textarget texture level zoffset@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
-
-
-glNamedFramebufferTexture3DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glNamedFramebufferTexture3DEXT = ffiuintenumenumuintintintIOV glNamedFramebufferTexture3DEXTFunPtr
-
-glNamedFramebufferTexture3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glNamedFramebufferTexture3DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture3DEXT")
-
-{-# NOINLINE glNamedFramebufferTexture3DEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTextureEXT' framebuffer attachment texture level@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
-
-
-glNamedFramebufferTextureEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTextureEXT = ffiuintenumuintintIOV glNamedFramebufferTextureEXTFunPtr
-
-glNamedFramebufferTextureEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureEXT")
-
-{-# NOINLINE glNamedFramebufferTextureEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTextureFaceEXT' framebuffer attachment texture level face@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
-
-
-glNamedFramebufferTextureFaceEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
-glNamedFramebufferTextureFaceEXT = ffiuintenumuintintenumIOV glNamedFramebufferTextureFaceEXTFunPtr
-
-glNamedFramebufferTextureFaceEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
-glNamedFramebufferTextureFaceEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureFaceEXT")
-
-{-# NOINLINE glNamedFramebufferTextureFaceEXTFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTextureLayerEXT' framebuffer attachment texture level layer@
---
--- The parameter @framebuffer@ is a @Framebuffer@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @layer@ is a @CheckedInt32@.
-
-
-glNamedFramebufferTextureLayerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glNamedFramebufferTextureLayerEXT = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerEXTFunPtr
-
-glNamedFramebufferTextureLayerEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glNamedFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayerEXT")
-
-{-# NOINLINE glNamedFramebufferTextureLayerEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameter4dEXT' program target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameter4dvEXT'.
-
-
-glNamedProgramLocalParameter4dEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glNamedProgramLocalParameter4dEXT = ffiuintenumuintdoubledoubledoubledoubleIOV glNamedProgramLocalParameter4dEXTFunPtr
-
-glNamedProgramLocalParameter4dEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glNamedProgramLocalParameter4dEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4dEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameter4dvEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glNamedProgramLocalParameter4dvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
-glNamedProgramLocalParameter4dvEXT = ffiuintenumuintPtrdoubleIOV glNamedProgramLocalParameter4dvEXTFunPtr
-
-glNamedProgramLocalParameter4dvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glNamedProgramLocalParameter4dvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dvEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4dvEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameter4fEXT' program target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameter4fvEXT'.
-
-
-glNamedProgramLocalParameter4fEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glNamedProgramLocalParameter4fEXT = ffiuintenumuintfloatfloatfloatfloatIOV glNamedProgramLocalParameter4fEXTFunPtr
-
-glNamedProgramLocalParameter4fEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glNamedProgramLocalParameter4fEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4fEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameter4fvEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glNamedProgramLocalParameter4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
-glNamedProgramLocalParameter4fvEXT = ffiuintenumuintPtrfloatIOV glNamedProgramLocalParameter4fvEXTFunPtr
-
-glNamedProgramLocalParameter4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glNamedProgramLocalParameter4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fvEXT")
-
-{-# NOINLINE glNamedProgramLocalParameter4fvEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameterI4iEXT' program target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameterI4ivEXT'.
-
-
-glNamedProgramLocalParameterI4iEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glNamedProgramLocalParameterI4iEXT = ffiuintenumuintintintintintIOV glNamedProgramLocalParameterI4iEXTFunPtr
-
-glNamedProgramLocalParameterI4iEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glNamedProgramLocalParameterI4iEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4iEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4iEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameterI4ivEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glNamedProgramLocalParameterI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-glNamedProgramLocalParameterI4ivEXT = ffiuintenumuintPtrintIOV glNamedProgramLocalParameterI4ivEXTFunPtr
-
-glNamedProgramLocalParameterI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-glNamedProgramLocalParameterI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4ivEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4ivEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameterI4uiEXT' program target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameterI4uivEXT'.
-
-
-glNamedProgramLocalParameterI4uiEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glNamedProgramLocalParameterI4uiEXT = ffiuintenumuintuintuintuintuintIOV glNamedProgramLocalParameterI4uiEXTFunPtr
-
-glNamedProgramLocalParameterI4uiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glNamedProgramLocalParameterI4uiEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uiEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4uiEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameterI4uivEXT' program target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glNamedProgramLocalParameterI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
-glNamedProgramLocalParameterI4uivEXT = ffiuintenumuintPtruintIOV glNamedProgramLocalParameterI4uivEXTFunPtr
-
-glNamedProgramLocalParameterI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
-glNamedProgramLocalParameterI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uivEXT")
-
-{-# NOINLINE glNamedProgramLocalParameterI4uivEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParameters4fvEXT' program target index count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count*4@.
-
-
-glNamedProgramLocalParameters4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glNamedProgramLocalParameters4fvEXT = ffiuintenumuintsizeiPtrfloatIOV glNamedProgramLocalParameters4fvEXTFunPtr
-
-glNamedProgramLocalParameters4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glNamedProgramLocalParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameters4fvEXT")
-
-{-# NOINLINE glNamedProgramLocalParameters4fvEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParametersI4ivEXT' program target index count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count*4@.
-
-
-glNamedProgramLocalParametersI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
-glNamedProgramLocalParametersI4ivEXT = ffiuintenumuintsizeiPtrintIOV glNamedProgramLocalParametersI4ivEXTFunPtr
-
-glNamedProgramLocalParametersI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-glNamedProgramLocalParametersI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4ivEXT")
-
-{-# NOINLINE glNamedProgramLocalParametersI4ivEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramLocalParametersI4uivEXT' program target index count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count*4@.
-
-
-glNamedProgramLocalParametersI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glNamedProgramLocalParametersI4uivEXT = ffiuintenumuintsizeiPtruintIOV glNamedProgramLocalParametersI4uivEXTFunPtr
-
-glNamedProgramLocalParametersI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glNamedProgramLocalParametersI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4uivEXT")
-
-{-# NOINLINE glNamedProgramLocalParametersI4uivEXTFunPtr #-}
-
--- | Usage: @'glNamedProgramStringEXT' program target format len string@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The parameter @format@ is a @ProgramFormat@.
---
--- The length of @string@ should be @len@.
-
-
-glNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glNamedProgramStringEXT = ffiuintenumenumsizeiPtrVIOV glNamedProgramStringEXTFunPtr
-
-glNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramStringEXT")
-
-{-# NOINLINE glNamedProgramStringEXTFunPtr #-}
-
--- | Usage: @'glNamedRenderbufferStorageEXT' renderbuffer internalformat width height@
---
--- The parameter @renderbuffer@ is a @Renderbuffer@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
-
-
-glNamedRenderbufferStorageEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageEXT = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageEXTFunPtr
-
-glNamedRenderbufferStorageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageEXT")
-
-{-# NOINLINE glNamedRenderbufferStorageEXTFunPtr #-}
-
--- | Usage: @'glNamedRenderbufferStorageMultisampleCoverageEXT' renderbuffer coverageSamples colorSamples internalformat width height@
---
--- The parameter @renderbuffer@ is a @Renderbuffer@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
-
-
-glNamedRenderbufferStorageMultisampleCoverageEXT :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageMultisampleCoverageEXT = ffiuintsizeisizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr
-
-glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleCoverageEXT")
-
-{-# NOINLINE glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr #-}
-
--- | Usage: @'glNamedRenderbufferStorageMultisampleEXT' renderbuffer samples internalformat width height@
---
--- The parameter @renderbuffer@ is a @Renderbuffer@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
-
-
-glNamedRenderbufferStorageMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageMultisampleEXT = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleEXTFunPtr
-
-glNamedRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleEXT")
-
-{-# NOINLINE glNamedRenderbufferStorageMultisampleEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1dEXT' program location x@
-
-
-glProgramUniform1dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
-glProgramUniform1dEXT = ffiuintintdoubleIOV glProgramUniform1dEXTFunPtr
-
-glProgramUniform1dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
-glProgramUniform1dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dEXT")
-
-{-# NOINLINE glProgramUniform1dEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1dvEXT' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform1dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvEXTFunPtr
-
-glProgramUniform1dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform1dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dvEXT")
-
-{-# NOINLINE glProgramUniform1dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2dEXT' program location x y@
-
-
-glProgramUniform2dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
-glProgramUniform2dEXT = ffiuintintdoubledoubleIOV glProgramUniform2dEXTFunPtr
-
-glProgramUniform2dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
-glProgramUniform2dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dEXT")
-
-{-# NOINLINE glProgramUniform2dEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2dvEXT' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform2dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvEXTFunPtr
-
-glProgramUniform2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dvEXT")
-
-{-# NOINLINE glProgramUniform2dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3dEXT' program location x y z@
-
-
-glProgramUniform3dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform3dEXT = ffiuintintdoubledoubledoubleIOV glProgramUniform3dEXTFunPtr
-
-glProgramUniform3dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform3dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dEXT")
-
-{-# NOINLINE glProgramUniform3dEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3dvEXT' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform3dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvEXTFunPtr
-
-glProgramUniform3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dvEXT")
-
-{-# NOINLINE glProgramUniform3dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4dEXT' program location x y z w@
-
-
-glProgramUniform4dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform4dEXT = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dEXTFunPtr
-
-glProgramUniform4dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform4dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dEXT")
-
-{-# NOINLINE glProgramUniform4dEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4dvEXT' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform4dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvEXTFunPtr
-
-glProgramUniform4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dvEXT")
-
-{-# NOINLINE glProgramUniform4dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniformMatrix2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvEXTFunPtr
-
-glProgramUniformMatrix2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x3dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix2x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvEXTFunPtr
-
-glProgramUniformMatrix2x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x3dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x4dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix2x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvEXTFunPtr
-
-glProgramUniformMatrix2x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x4dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glProgramUniformMatrix3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvEXTFunPtr
-
-glProgramUniformMatrix3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x2dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix3x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvEXTFunPtr
-
-glProgramUniformMatrix3x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x2dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x4dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix3x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvEXTFunPtr
-
-glProgramUniformMatrix3x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x4dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glProgramUniformMatrix4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvEXTFunPtr
-
-glProgramUniformMatrix4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x2dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix4x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvEXTFunPtr
-
-glProgramUniformMatrix4x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x2dvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x3dvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix4x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvEXTFunPtr
-
-glProgramUniformMatrix4x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x3dvEXTFunPtr #-}
-
--- | Usage: @'glPushClientAttribDefaultEXT' mask@
---
--- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
-
-
-glPushClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
-glPushClientAttribDefaultEXT = ffibitfieldIOV glPushClientAttribDefaultEXTFunPtr
-
-glPushClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
-glPushClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glPushClientAttribDefaultEXT")
-
-{-# NOINLINE glPushClientAttribDefaultEXTFunPtr #-}
-
--- | Usage: @'glTextureBufferEXT' texture target internalformat buffer@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
-
-
-glTextureBufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glTextureBufferEXT = ffiuintenumenumuintIOV glTextureBufferEXTFunPtr
-
-glTextureBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glTextureBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferEXT")
-
-{-# NOINLINE glTextureBufferEXTFunPtr #-}
-
--- | Usage: @'glTextureBufferRangeEXT' texture target internalformat buffer offset size@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glTextureBufferRangeEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTextureBufferRangeEXT = ffiuintenumenumuintintptrsizeiptrIOV glTextureBufferRangeEXTFunPtr
-
-glTextureBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTextureBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRangeEXT")
-
-{-# NOINLINE glTextureBufferRangeEXTFunPtr #-}
-
--- | Usage: @'glTextureImage1DEXT' texture target level internalformat width border format type pixels@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
-
-
-glTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureImage1DEXT = ffiuintenumintintsizeiintenumenumPtrVIOV glTextureImage1DEXTFunPtr
-
-glTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage1DEXT")
-
-{-# NOINLINE glTextureImage1DEXTFunPtr #-}
-
--- | Usage: @'glTextureImage2DEXT' texture target level internalformat width height border format type pixels@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
-
-
-glTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureImage2DEXT = ffiuintenumintintsizeisizeiintenumenumPtrVIOV glTextureImage2DEXTFunPtr
-
-glTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DEXT")
-
-{-# NOINLINE glTextureImage2DEXTFunPtr #-}
-
--- | Usage: @'glTextureImage3DEXT' texture target level internalformat width height depth border format type pixels@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
-
-
-glTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureImage3DEXT = ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV glTextureImage3DEXTFunPtr
-
-glTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DEXT")
-
-{-# NOINLINE glTextureImage3DEXTFunPtr #-}
-
--- | Usage: @'glTexturePageCommitmentEXT' texture level xoffset yoffset zoffset width height depth commit@
-
-
-glTexturePageCommitmentEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexturePageCommitmentEXT = ffiuintintintintintsizeisizeisizeibooleanIOV glTexturePageCommitmentEXTFunPtr
-
-glTexturePageCommitmentEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexturePageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glTexturePageCommitmentEXT")
-
-{-# NOINLINE glTexturePageCommitmentEXTFunPtr #-}
-
--- | Usage: @'glTextureParameterIivEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glTextureParameterIivEXT = ffiuintenumenumPtrintIOV glTextureParameterIivEXTFunPtr
-
-glTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIivEXT")
-
-{-# NOINLINE glTextureParameterIivEXTFunPtr #-}
-
--- | Usage: @'glTextureParameterIuivEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
-glTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glTextureParameterIuivEXTFunPtr
-
-glTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuivEXT")
-
-{-# NOINLINE glTextureParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glTextureParameterfEXT' texture target pname param@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedFloat32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glTextureParameterfvEXT'.
-
-
-glTextureParameterfEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLfloat -> m ()
-glTextureParameterfEXT = ffiuintenumenumfloatIOV glTextureParameterfEXTFunPtr
-
-glTextureParameterfEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ())
-glTextureParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfEXT")
-
-{-# NOINLINE glTextureParameterfEXTFunPtr #-}
-
--- | Usage: @'glTextureParameterfvEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glTextureParameterfvEXTFunPtr
-
-glTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfvEXT")
-
-{-# NOINLINE glTextureParameterfvEXTFunPtr #-}
-
--- | Usage: @'glTextureParameteriEXT' texture target pname param@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedInt32@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glTextureParameterivEXT'.
-
-
-glTextureParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLint -> m ()
-glTextureParameteriEXT = ffiuintenumenumintIOV glTextureParameteriEXTFunPtr
-
-glTextureParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ())
-glTextureParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriEXT")
-
-{-# NOINLINE glTextureParameteriEXTFunPtr #-}
-
--- | Usage: @'glTextureParameterivEXT' texture target pname params@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glTextureParameterivEXT = ffiuintenumenumPtrintIOV glTextureParameterivEXTFunPtr
-
-glTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterivEXT")
-
-{-# NOINLINE glTextureParameterivEXTFunPtr #-}
-
--- | Usage: @'glTextureRenderbufferEXT' texture target renderbuffer@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
-
-
-glTextureRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
-glTextureRenderbufferEXT = ffiuintenumuintIOV glTextureRenderbufferEXTFunPtr
-
-glTextureRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
-glTextureRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureRenderbufferEXT")
-
-{-# NOINLINE glTextureRenderbufferEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage2DMultisampleEXT' texture target samples internalformat width height fixedsamplelocations@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @internalformat@ is a @TextureInternalFormat@.
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTextureStorage2DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage2DMultisampleEXT = ffiuintenumsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleEXTFunPtr
-
-glTextureStorage2DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage2DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisampleEXT")
-
-{-# NOINLINE glTextureStorage2DMultisampleEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage3DMultisampleEXT' texture target samples internalformat width height depth fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTextureStorage3DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage3DMultisampleEXT = ffiuintenumsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleEXTFunPtr
-
-glTextureStorage3DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage3DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisampleEXT")
-
-{-# NOINLINE glTextureStorage3DMultisampleEXTFunPtr #-}
-
--- | Usage: @'glTextureSubImage1DEXT' texture target level xoffset width format type pixels@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
-
-
-glTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage1DEXT = ffiuintenumintintsizeienumenumPtrVIOV glTextureSubImage1DEXTFunPtr
-
-glTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1DEXT")
-
-{-# NOINLINE glTextureSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glTextureSubImage2DEXT' texture target level xoffset yoffset width height format type pixels@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
-
-
-glTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DEXTFunPtr
-
-glTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2DEXT")
-
-{-# NOINLINE glTextureSubImage2DEXTFunPtr #-}
-
--- | Usage: @'glTextureSubImage3DEXT' texture target level xoffset yoffset zoffset width height depth format type pixels@
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
-
-
-glTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DEXTFunPtr
-
-glTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3DEXT")
-
-{-# NOINLINE glTextureSubImage3DEXTFunPtr #-}
-
--- | Usage: @'glUnmapNamedBufferEXT' buffer@
-
-
-glUnmapNamedBufferEXT :: MonadIO m => GLuint -> m GLboolean
-glUnmapNamedBufferEXT = ffiuintIOboolean glUnmapNamedBufferEXTFunPtr
-
-glUnmapNamedBufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glUnmapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBufferEXT")
-
-{-# NOINLINE glUnmapNamedBufferEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayBindVertexBufferEXT' vaobj bindingindex buffer offset stride@
---
--- The parameter @offset@ is a @BufferOffset@.
-
-
-glVertexArrayBindVertexBufferEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glVertexArrayBindVertexBufferEXT = ffiuintuintuintintptrsizeiIOV glVertexArrayBindVertexBufferEXTFunPtr
-
-glVertexArrayBindVertexBufferEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glVertexArrayBindVertexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindVertexBufferEXT")
-
-{-# NOINLINE glVertexArrayBindVertexBufferEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayColorOffsetEXT' vaobj buffer size type stride offset@
---
--- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
-
-
-glVertexArrayColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayColorOffsetEXTFunPtr
-
-glVertexArrayColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayColorOffsetEXT")
-
-{-# NOINLINE glVertexArrayColorOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayEdgeFlagOffsetEXT' vaobj buffer stride offset@
-
-
-glVertexArrayEdgeFlagOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
-glVertexArrayEdgeFlagOffsetEXT = ffiuintuintsizeiintptrIOV glVertexArrayEdgeFlagOffsetEXTFunPtr
-
-glVertexArrayEdgeFlagOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ())
-glVertexArrayEdgeFlagOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayEdgeFlagOffsetEXT")
-
-{-# NOINLINE glVertexArrayEdgeFlagOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayFogCoordOffsetEXT' vaobj buffer type stride offset@
---
--- The parameter @type@ is a @FogCoordinatePointerType@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
-
-
-glVertexArrayFogCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayFogCoordOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayFogCoordOffsetEXTFunPtr
-
-glVertexArrayFogCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayFogCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayFogCoordOffsetEXT")
-
-{-# NOINLINE glVertexArrayFogCoordOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayIndexOffsetEXT' vaobj buffer type stride offset@
---
--- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
-
-
-glVertexArrayIndexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayIndexOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayIndexOffsetEXTFunPtr
-
-glVertexArrayIndexOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayIndexOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayIndexOffsetEXT")
-
-{-# NOINLINE glVertexArrayIndexOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayMultiTexCoordOffsetEXT' vaobj buffer texunit size type stride offset@
---
--- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
-
-
-glVertexArrayMultiTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayMultiTexCoordOffsetEXT = ffiuintuintenumintenumsizeiintptrIOV glVertexArrayMultiTexCoordOffsetEXTFunPtr
-
-glVertexArrayMultiTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayMultiTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayMultiTexCoordOffsetEXT")
-
-{-# NOINLINE glVertexArrayMultiTexCoordOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayNormalOffsetEXT' vaobj buffer type stride offset@
---
--- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
-
-
-glVertexArrayNormalOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayNormalOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayNormalOffsetEXTFunPtr
-
-glVertexArrayNormalOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayNormalOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayNormalOffsetEXT")
-
-{-# NOINLINE glVertexArrayNormalOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArraySecondaryColorOffsetEXT' vaobj buffer size type stride offset@
---
--- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
-
-
-glVertexArraySecondaryColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArraySecondaryColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArraySecondaryColorOffsetEXTFunPtr
-
-glVertexArraySecondaryColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArraySecondaryColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArraySecondaryColorOffsetEXT")
-
-{-# NOINLINE glVertexArraySecondaryColorOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayTexCoordOffsetEXT' vaobj buffer size type stride offset@
---
--- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
-
-
-glVertexArrayTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayTexCoordOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayTexCoordOffsetEXTFunPtr
-
-glVertexArrayTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayTexCoordOffsetEXT")
-
-{-# NOINLINE glVertexArrayTexCoordOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribBindingEXT' vaobj attribindex bindingindex@
-
-
-glVertexArrayVertexAttribBindingEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayVertexAttribBindingEXT = ffiuintuintuintIOV glVertexArrayVertexAttribBindingEXTFunPtr
-
-glVertexArrayVertexAttribBindingEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayVertexAttribBindingEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribBindingEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribBindingEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribDivisorEXT' vaobj index divisor@
-
-
-glVertexArrayVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayVertexAttribDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexAttribDivisorEXTFunPtr
-
-glVertexArrayVertexAttribDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayVertexAttribDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribDivisorEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribDivisorEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribFormatEXT' vaobj attribindex size type normalized relativeoffset@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexArrayVertexAttribFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexArrayVertexAttribFormatEXT = ffiuintuintintenumbooleanuintIOV glVertexArrayVertexAttribFormatEXTFunPtr
-
-glVertexArrayVertexAttribFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexArrayVertexAttribFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribFormatEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribFormatEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribIFormatEXT' vaobj attribindex size type relativeoffset@
-
-
-glVertexArrayVertexAttribIFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayVertexAttribIFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribIFormatEXTFunPtr
-
-glVertexArrayVertexAttribIFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayVertexAttribIFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIFormatEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribIFormatEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribIOffsetEXT' vaobj buffer index size type stride offset@
---
--- The parameter @type@ is a @VertexAttribEnum@.
-
-
-glVertexArrayVertexAttribIOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayVertexAttribIOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribIOffsetEXTFunPtr
-
-glVertexArrayVertexAttribIOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayVertexAttribIOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIOffsetEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribIOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribLFormatEXT' vaobj attribindex size type relativeoffset@
-
-
-glVertexArrayVertexAttribLFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayVertexAttribLFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribLFormatEXTFunPtr
-
-glVertexArrayVertexAttribLFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayVertexAttribLFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLFormatEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribLFormatEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribLOffsetEXT' vaobj buffer index size type stride offset@
---
--- The parameter @offset@ is a @BufferOffset@.
-
-
-glVertexArrayVertexAttribLOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayVertexAttribLOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribLOffsetEXTFunPtr
-
-glVertexArrayVertexAttribLOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayVertexAttribLOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLOffsetEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribLOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexAttribOffsetEXT' vaobj buffer index size type normalized stride offset@
---
--- The parameter @type@ is a @VertexAttribPointerType@.
-
-
-glVertexArrayVertexAttribOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
-glVertexArrayVertexAttribOffsetEXT = ffiuintuintuintintenumbooleansizeiintptrIOV glVertexArrayVertexAttribOffsetEXTFunPtr
-
-glVertexArrayVertexAttribOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ())
-glVertexArrayVertexAttribOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribOffsetEXT")
-
-{-# NOINLINE glVertexArrayVertexAttribOffsetEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexBindingDivisorEXT' vaobj bindingindex divisor@
-
-
-glVertexArrayVertexBindingDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayVertexBindingDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexBindingDivisorEXTFunPtr
-
-glVertexArrayVertexBindingDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayVertexBindingDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBindingDivisorEXT")
-
-{-# NOINLINE glVertexArrayVertexBindingDivisorEXTFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexOffsetEXT' vaobj buffer size type stride offset@
---
--- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
-
-
-glVertexArrayVertexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-glVertexArrayVertexOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayVertexOffsetEXTFunPtr
-
-glVertexArrayVertexOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
-glVertexArrayVertexOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexOffsetEXT")
-
-{-# NOINLINE glVertexArrayVertexOffsetEXTFunPtr #-}
-
-pattern GL_PROGRAM_MATRIX_EXT = 0x8E2D
-
-pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F
-
-pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DiscardFramebuffer (
-  -- * Extension Support
-    gl_EXT_discard_framebuffer
-
-  -- * GL_EXT_discard_framebuffer
-  , glDiscardFramebufferEXT
-  , pattern GL_COLOR_EXT
-  , pattern GL_DEPTH_EXT
-  , pattern GL_STENCIL_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_framebuffer.txt GL_EXT_discard_framebuffer> extension is available.
-
-gl_EXT_discard_framebuffer :: Bool
-gl_EXT_discard_framebuffer = member "GL_EXT_discard_framebuffer" extensions
-{-# NOINLINE gl_EXT_discard_framebuffer #-}
-
--- | Usage: @'glDiscardFramebufferEXT' target numAttachments attachments@
---
--- The length of @attachments@ should be @numAttachments@.
-
-
-glDiscardFramebufferEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
-glDiscardFramebufferEXT = ffienumsizeiPtrenumIOV glDiscardFramebufferEXTFunPtr
-
-glDiscardFramebufferEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
-glDiscardFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glDiscardFramebufferEXT")
-
-{-# NOINLINE glDiscardFramebufferEXTFunPtr #-}
-
-pattern GL_COLOR_EXT = 0x1800
-
-pattern GL_DEPTH_EXT = 0x1801
-
-pattern GL_STENCIL_EXT = 0x1802
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs
+++ /dev/null
@@ -1,73 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DisjointTimerQuery (
-  -- * Extension Support
-    gl_EXT_disjoint_timer_query
-
-  -- * GL_EXT_disjoint_timer_query
-  , glBeginQueryEXT
-  , glDeleteQueriesEXT
-  , glEndQueryEXT
-  , glGenQueriesEXT
-  , glGetQueryObjecti64vEXT
-  , glGetQueryObjectivEXT
-  , glGetQueryObjectui64vEXT
-  , glGetQueryObjectuivEXT
-  , glGetQueryivEXT
-  , glIsQueryEXT
-  , glQueryCounterEXT
-  , pattern GL_CURRENT_QUERY_EXT
-  , pattern GL_GPU_DISJOINT_EXT
-  , pattern GL_QUERY_COUNTER_BITS_EXT
-  , pattern GL_QUERY_RESULT_AVAILABLE_EXT
-  , pattern GL_QUERY_RESULT_EXT
-  , pattern GL_TIMESTAMP_EXT
-  , pattern GL_TIME_ELAPSED_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://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt GL_EXT_disjoint_timer_query> extension is available.
-
-gl_EXT_disjoint_timer_query :: Bool
-gl_EXT_disjoint_timer_query = member "GL_EXT_disjoint_timer_query" extensions
-{-# NOINLINE gl_EXT_disjoint_timer_query #-}
-
--- | Usage: @'glGetQueryObjectivEXT' id pname params@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectiv'.
-
-
-glGetQueryObjectivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryObjectivEXT = ffiuintenumPtrintIOV glGetQueryObjectivEXTFunPtr
-
-glGetQueryObjectivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryObjectivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectivEXT")
-
-{-# NOINLINE glGetQueryObjectivEXTFunPtr #-}
-
--- | Usage: @'glQueryCounterEXT' id target@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glQueryCounter'.
-
-
-glQueryCounterEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glQueryCounterEXT = ffiuintenumIOV glQueryCounterEXTFunPtr
-
-glQueryCounterEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glQueryCounterEXTFunPtr = unsafePerformIO (getProcAddress "glQueryCounterEXT")
-
-{-# NOINLINE glQueryCounterEXTFunPtr #-}
-
-pattern GL_GPU_DISJOINT_EXT = 0x8FBB
-
-pattern GL_QUERY_COUNTER_BITS_EXT = 0x8864
-
-pattern GL_TIMESTAMP_EXT = 0x8E28
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffers.hs
+++ /dev/null
@@ -1,105 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DrawBuffers (
-  -- * Extension Support
-    gl_EXT_draw_buffers
-
-  -- * GL_EXT_draw_buffers
-  , glDrawBuffersEXT
-  , pattern GL_COLOR_ATTACHMENT0_EXT
-  , pattern GL_COLOR_ATTACHMENT10_EXT
-  , pattern GL_COLOR_ATTACHMENT11_EXT
-  , pattern GL_COLOR_ATTACHMENT12_EXT
-  , pattern GL_COLOR_ATTACHMENT13_EXT
-  , pattern GL_COLOR_ATTACHMENT14_EXT
-  , pattern GL_COLOR_ATTACHMENT15_EXT
-  , pattern GL_COLOR_ATTACHMENT1_EXT
-  , pattern GL_COLOR_ATTACHMENT2_EXT
-  , pattern GL_COLOR_ATTACHMENT3_EXT
-  , pattern GL_COLOR_ATTACHMENT4_EXT
-  , pattern GL_COLOR_ATTACHMENT5_EXT
-  , pattern GL_COLOR_ATTACHMENT6_EXT
-  , pattern GL_COLOR_ATTACHMENT7_EXT
-  , pattern GL_COLOR_ATTACHMENT8_EXT
-  , pattern GL_COLOR_ATTACHMENT9_EXT
-  , pattern GL_DRAW_BUFFER0_EXT
-  , pattern GL_DRAW_BUFFER10_EXT
-  , pattern GL_DRAW_BUFFER11_EXT
-  , pattern GL_DRAW_BUFFER12_EXT
-  , pattern GL_DRAW_BUFFER13_EXT
-  , pattern GL_DRAW_BUFFER14_EXT
-  , pattern GL_DRAW_BUFFER15_EXT
-  , pattern GL_DRAW_BUFFER1_EXT
-  , pattern GL_DRAW_BUFFER2_EXT
-  , pattern GL_DRAW_BUFFER3_EXT
-  , pattern GL_DRAW_BUFFER4_EXT
-  , pattern GL_DRAW_BUFFER5_EXT
-  , pattern GL_DRAW_BUFFER6_EXT
-  , pattern GL_DRAW_BUFFER7_EXT
-  , pattern GL_DRAW_BUFFER8_EXT
-  , pattern GL_DRAW_BUFFER9_EXT
-  , pattern GL_MAX_COLOR_ATTACHMENTS_EXT
-  , pattern GL_MAX_DRAW_BUFFERS_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://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers.txt GL_EXT_draw_buffers> extension is available.
-
-gl_EXT_draw_buffers :: Bool
-gl_EXT_draw_buffers = member "GL_EXT_draw_buffers" extensions
-{-# NOINLINE gl_EXT_draw_buffers #-}
-
--- | Usage: @'glDrawBuffersEXT' n bufs@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawBuffers'.
-
-
-glDrawBuffersEXT :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
-glDrawBuffersEXT = ffisizeiPtrenumIOV glDrawBuffersEXTFunPtr
-
-glDrawBuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
-glDrawBuffersEXTFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersEXT")
-
-{-# NOINLINE glDrawBuffersEXTFunPtr #-}
-
-pattern GL_DRAW_BUFFER0_EXT = 0x8825
-
-pattern GL_DRAW_BUFFER10_EXT = 0x882F
-
-pattern GL_DRAW_BUFFER11_EXT = 0x8830
-
-pattern GL_DRAW_BUFFER12_EXT = 0x8831
-
-pattern GL_DRAW_BUFFER13_EXT = 0x8832
-
-pattern GL_DRAW_BUFFER14_EXT = 0x8833
-
-pattern GL_DRAW_BUFFER15_EXT = 0x8834
-
-pattern GL_DRAW_BUFFER1_EXT = 0x8826
-
-pattern GL_DRAW_BUFFER2_EXT = 0x8827
-
-pattern GL_DRAW_BUFFER3_EXT = 0x8828
-
-pattern GL_DRAW_BUFFER4_EXT = 0x8829
-
-pattern GL_DRAW_BUFFER5_EXT = 0x882A
-
-pattern GL_DRAW_BUFFER6_EXT = 0x882B
-
-pattern GL_DRAW_BUFFER7_EXT = 0x882C
-
-pattern GL_DRAW_BUFFER8_EXT = 0x882D
-
-pattern GL_DRAW_BUFFER9_EXT = 0x882E
-
-pattern GL_MAX_DRAW_BUFFERS_EXT = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffers2.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffers2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffers2.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DrawBuffers2 (
-  -- * Extension Support
-    gl_EXT_draw_buffers2
-
-  -- * GL_EXT_draw_buffers2
-  , glColorMaskIndexedEXT
-  , glDisableIndexedEXT
-  , glEnableIndexedEXT
-  , glGetBooleanIndexedvEXT
-  , glGetIntegerIndexedvEXT
-  , glIsEnabledIndexedEXT
-) 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/draw_buffers2.txt GL_EXT_draw_buffers2> extension is available.
-
-gl_EXT_draw_buffers2 :: Bool
-gl_EXT_draw_buffers2 = member "GL_EXT_draw_buffers2" extensions
-{-# NOINLINE gl_EXT_draw_buffers2 #-}
-
--- | Usage: @'glColorMaskIndexedEXT' index r g b a@
---
--- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glColorMaski'.
-
-
-glColorMaskIndexedEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMaskIndexedEXT = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskIndexedEXTFunPtr
-
-glColorMaskIndexedEXTFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glColorMaskIndexedEXT")
-
-{-# NOINLINE glColorMaskIndexedEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffersIndexed.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffersIndexed.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawBuffersIndexed.hs
+++ /dev/null
@@ -1,171 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DrawBuffersIndexed (
-  -- * Extension Support
-    gl_EXT_draw_buffers_indexed
-
-  -- * GL_EXT_draw_buffers_indexed
-  , glBlendEquationSeparateiEXT
-  , glBlendEquationiEXT
-  , glBlendFuncSeparateiEXT
-  , glBlendFunciEXT
-  , glColorMaskiEXT
-  , glDisableiEXT
-  , glEnableiEXT
-  , glIsEnablediEXT
-  , pattern GL_BLEND
-  , pattern GL_BLEND_DST_ALPHA
-  , pattern GL_BLEND_DST_RGB
-  , pattern GL_BLEND_EQUATION_ALPHA
-  , pattern GL_BLEND_EQUATION_RGB
-  , pattern GL_BLEND_SRC_ALPHA
-  , pattern GL_BLEND_SRC_RGB
-  , pattern GL_COLOR_WRITEMASK
-  , pattern GL_CONSTANT_ALPHA
-  , pattern GL_CONSTANT_COLOR
-  , pattern GL_DST_ALPHA
-  , pattern GL_DST_COLOR
-  , pattern GL_FUNC_ADD
-  , pattern GL_FUNC_REVERSE_SUBTRACT
-  , pattern GL_FUNC_SUBTRACT
-  , pattern GL_MAX
-  , pattern GL_MIN
-  , pattern GL_ONE
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR
-  , pattern GL_ONE_MINUS_DST_ALPHA
-  , pattern GL_ONE_MINUS_DST_COLOR
-  , pattern GL_ONE_MINUS_SRC_ALPHA
-  , pattern GL_ONE_MINUS_SRC_COLOR
-  , pattern GL_SRC_ALPHA
-  , pattern GL_SRC_ALPHA_SATURATE
-  , pattern GL_SRC_COLOR
-  , pattern GL_ZERO
-) 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://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt GL_EXT_draw_buffers_indexed> extension is available.
-
-gl_EXT_draw_buffers_indexed :: Bool
-gl_EXT_draw_buffers_indexed = member "GL_EXT_draw_buffers_indexed" extensions
-{-# NOINLINE gl_EXT_draw_buffers_indexed #-}
-
--- | Usage: @'glBlendEquationSeparateiEXT' buf modeRGB modeAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
-
-
-glBlendEquationSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendEquationSeparateiEXT = ffiuintenumenumIOV glBlendEquationSeparateiEXTFunPtr
-
-glBlendEquationSeparateiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendEquationSeparateiEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateiEXT")
-
-{-# NOINLINE glBlendEquationSeparateiEXTFunPtr #-}
-
--- | Usage: @'glBlendEquationiEXT' buf mode@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
-
-
-glBlendEquationiEXT :: MonadIO m => GLuint -> GLenum -> m ()
-glBlendEquationiEXT = ffiuintenumIOV glBlendEquationiEXTFunPtr
-
-glBlendEquationiEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBlendEquationiEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationiEXT")
-
-{-# NOINLINE glBlendEquationiEXTFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparateiEXT' buf srcRGB dstRGB srcAlpha dstAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
-
-
-glBlendFuncSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparateiEXT = ffiuintenumenumenumenumIOV glBlendFuncSeparateiEXTFunPtr
-
-glBlendFuncSeparateiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateiEXTFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateiEXT")
-
-{-# NOINLINE glBlendFuncSeparateiEXTFunPtr #-}
-
--- | Usage: @'glBlendFunciEXT' buf src dst@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
-
-
-glBlendFunciEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendFunciEXT = ffiuintenumenumIOV glBlendFunciEXTFunPtr
-
-glBlendFunciEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendFunciEXTFunPtr = unsafePerformIO (getProcAddress "glBlendFunciEXT")
-
-{-# NOINLINE glBlendFunciEXTFunPtr #-}
-
--- | Usage: @'glColorMaskiEXT' index r g b a@
---
--- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glColorMaski'.
-
-
-glColorMaskiEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMaskiEXT = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiEXTFunPtr
-
-glColorMaskiEXTFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskiEXTFunPtr = unsafePerformIO (getProcAddress "glColorMaskiEXT")
-
-{-# NOINLINE glColorMaskiEXTFunPtr #-}
-
--- | Usage: @'glDisableiEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
-
-
-glDisableiEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableiEXT = ffienumuintIOV glDisableiEXTFunPtr
-
-glDisableiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableiEXTFunPtr = unsafePerformIO (getProcAddress "glDisableiEXT")
-
-{-# NOINLINE glDisableiEXTFunPtr #-}
-
--- | Usage: @'glEnableiEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
-
-
-glEnableiEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableiEXT = ffienumuintIOV glEnableiEXTFunPtr
-
-glEnableiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableiEXTFunPtr = unsafePerformIO (getProcAddress "glEnableiEXT")
-
-{-# NOINLINE glEnableiEXTFunPtr #-}
-
--- | Usage: @'glIsEnablediEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
-
-
-glIsEnablediEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnablediEXT = ffienumuintIOboolean glIsEnablediEXTFunPtr
-
-glIsEnablediEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnablediEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnablediEXT")
-
-{-# NOINLINE glIsEnablediEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawElementsBaseVertex.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DrawElementsBaseVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawElementsBaseVertex.hs
+++ /dev/null
@@ -1,104 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DrawElementsBaseVertex (
-  -- * Extension Support
-    gl_EXT_draw_elements_base_vertex
-
-  -- * GL_EXT_draw_elements_base_vertex
-  , glDrawElementsBaseVertexEXT
-  , glDrawElementsInstancedBaseVertexEXT
-  , glDrawRangeElementsBaseVertexEXT
-  , glMultiDrawElementsBaseVertexEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_EXT_draw_elements_base_vertex extension is available.
-
-gl_EXT_draw_elements_base_vertex :: Bool
-gl_EXT_draw_elements_base_vertex = member "GL_EXT_draw_elements_base_vertex" extensions
-{-# NOINLINE gl_EXT_draw_elements_base_vertex #-}
-
--- | Usage: @'glDrawElementsBaseVertexEXT' mode count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsBaseVertex'.
-
-
-glDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawElementsBaseVertexEXT = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexEXTFunPtr
-
-glDrawElementsBaseVertexEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawElementsBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertexEXT")
-
-{-# NOINLINE glDrawElementsBaseVertexEXTFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseVertexEXT' mode count type indices instancecount basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseVertex'.
-
-
-glDrawElementsInstancedBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-glDrawElementsInstancedBaseVertexEXT = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexEXTFunPtr
-
-glDrawElementsInstancedBaseVertexEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
-glDrawElementsInstancedBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexEXT")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexEXTFunPtr #-}
-
--- | Usage: @'glDrawRangeElementsBaseVertexEXT' mode start end count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawRangeElementsBaseVertex'.
-
-
-glDrawRangeElementsBaseVertexEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawRangeElementsBaseVertexEXT = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexEXTFunPtr
-
-glDrawRangeElementsBaseVertexEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawRangeElementsBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertexEXT")
-
-{-# NOINLINE glDrawRangeElementsBaseVertexEXTFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsBaseVertexEXT' mode count type indices primcount basevertex@
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- The length of @indices@ should be @COMPSIZE(drawcount)@.
---
--- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsBaseVertex'.
-
-
-glMultiDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
-glMultiDrawElementsBaseVertexEXT = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexEXTFunPtr
-
-glMultiDrawElementsBaseVertexEXTFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
-glMultiDrawElementsBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertexEXT")
-
-{-# NOINLINE glMultiDrawElementsBaseVertexEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawInstanced.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DrawInstanced.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawInstanced.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DrawInstanced (
-  -- * Extension Support
-    gl_EXT_draw_instanced
-
-  -- * GL_EXT_draw_instanced
-  , glDrawArraysInstancedEXT
-  , glDrawElementsInstancedEXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_instanced.txt GL_EXT_draw_instanced> extension is available.
-
-gl_EXT_draw_instanced :: Bool
-gl_EXT_draw_instanced = member "GL_EXT_draw_instanced" extensions
-{-# NOINLINE gl_EXT_draw_instanced #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawRangeElements.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DrawRangeElements.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawRangeElements.hs
+++ /dev/null
@@ -1,48 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DrawRangeElements (
-  -- * Extension Support
-    gl_EXT_draw_range_elements
-
-  -- * GL_EXT_draw_range_elements
-  , glDrawRangeElementsEXT
-  , pattern GL_MAX_ELEMENTS_INDICES_EXT
-  , pattern GL_MAX_ELEMENTS_VERTICES_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_range_elements.txt GL_EXT_draw_range_elements> extension is available.
-
-gl_EXT_draw_range_elements :: Bool
-gl_EXT_draw_range_elements = member "GL_EXT_draw_range_elements" extensions
-{-# NOINLINE gl_EXT_draw_range_elements #-}
-
--- | Usage: @'glDrawRangeElementsEXT' mode start end count type indices@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawRangeElements'.
-
-
-glDrawRangeElementsEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
-glDrawRangeElementsEXT = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsEXTFunPtr
-
-glDrawRangeElementsEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
-glDrawRangeElementsEXTFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsEXT")
-
-{-# NOINLINE glDrawRangeElementsEXTFunPtr #-}
-
-pattern GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9
-
-pattern GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawTransformFeedback.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/DrawTransformFeedback.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/DrawTransformFeedback.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.DrawTransformFeedback (
-  -- * Extension Support
-    gl_EXT_draw_transform_feedback
-
-  -- * GL_EXT_draw_transform_feedback
-  , glDrawTransformFeedbackEXT
-  , glDrawTransformFeedbackInstancedEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_transform_feedback.txt GL_EXT_draw_transform_feedback> extension is available.
-
-gl_EXT_draw_transform_feedback :: Bool
-gl_EXT_draw_transform_feedback = member "GL_EXT_draw_transform_feedback" extensions
-{-# NOINLINE gl_EXT_draw_transform_feedback #-}
-
--- | Usage: @'glDrawTransformFeedbackEXT' mode id@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawTransformFeedback'.
-
-
-glDrawTransformFeedbackEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDrawTransformFeedbackEXT = ffienumuintIOV glDrawTransformFeedbackEXTFunPtr
-
-glDrawTransformFeedbackEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDrawTransformFeedbackEXTFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackEXT")
-
-{-# NOINLINE glDrawTransformFeedbackEXTFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackInstancedEXT' mode id instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawTransformFeedbackInstanced'.
-
-
-glDrawTransformFeedbackInstancedEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
-glDrawTransformFeedbackInstancedEXT = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedEXTFunPtr
-
-glDrawTransformFeedbackInstancedEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
-glDrawTransformFeedbackInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstancedEXT")
-
-{-# NOINLINE glDrawTransformFeedbackInstancedEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FloatBlend.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FloatBlend.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FloatBlend.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FloatBlend (
-  -- * Extension Support
-    gl_EXT_float_blend
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_float_blend.txt GL_EXT_float_blend> extension is available.
-
-gl_EXT_float_blend :: Bool
-gl_EXT_float_blend = member "GL_EXT_float_blend" extensions
-{-# NOINLINE gl_EXT_float_blend #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FogCoord.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FogCoord.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FogCoord.hs
+++ /dev/null
@@ -1,135 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FogCoord (
-  -- * Extension Support
-    gl_EXT_fog_coord
-
-  -- * GL_EXT_fog_coord
-  , glFogCoordPointerEXT
-  , glFogCoorddEXT
-  , glFogCoorddvEXT
-  , glFogCoordfEXT
-  , glFogCoordfvEXT
-  , pattern GL_CURRENT_FOG_COORDINATE_EXT
-  , pattern GL_FOG_COORDINATE_ARRAY_EXT
-  , pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT
-  , pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
-  , pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT
-  , pattern GL_FOG_COORDINATE_EXT
-  , pattern GL_FOG_COORDINATE_SOURCE_EXT
-  , pattern GL_FRAGMENT_DEPTH_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/fog_coord.txt GL_EXT_fog_coord> extension is available.
-
-gl_EXT_fog_coord :: Bool
-gl_EXT_fog_coord = member "GL_EXT_fog_coord" extensions
-{-# NOINLINE gl_EXT_fog_coord #-}
-
--- | Usage: @'glFogCoordPointerEXT' type stride pointer@
---
--- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordPointer'.
-
-
-glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glFogCoordPointerEXT = ffienumsizeiPtrVIOV glFogCoordPointerEXTFunPtr
-
-glFogCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glFogCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointerEXT")
-
-{-# NOINLINE glFogCoordPointerEXTFunPtr #-}
-
--- | Usage: @'glFogCoorddEXT' coord@
---
--- The parameter @coord@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordd'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.FogCoord.glFogCoorddvEXT'.
-
-
-glFogCoorddEXT :: MonadIO m => GLdouble -> m ()
-glFogCoorddEXT = ffidoubleIOV glFogCoorddEXTFunPtr
-
-glFogCoorddEXTFunPtr :: FunPtr (GLdouble -> IO ())
-glFogCoorddEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoorddEXT")
-
-{-# NOINLINE glFogCoorddEXTFunPtr #-}
-
--- | Usage: @'glFogCoorddvEXT' coord@
---
--- The parameter @coord@ is a @CoordD@.
---
--- The length of @coord@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoorddv'.
-
-
-glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()
-glFogCoorddvEXT = ffiPtrdoubleIOV glFogCoorddvEXTFunPtr
-
-glFogCoorddvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glFogCoorddvEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoorddvEXT")
-
-{-# NOINLINE glFogCoorddvEXTFunPtr #-}
-
--- | Usage: @'glFogCoordfEXT' coord@
---
--- The parameter @coord@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordf'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.FogCoord.glFogCoordfvEXT'.
-
-
-glFogCoordfEXT :: MonadIO m => GLfloat -> m ()
-glFogCoordfEXT = ffifloatIOV glFogCoordfEXTFunPtr
-
-glFogCoordfEXTFunPtr :: FunPtr (GLfloat -> IO ())
-glFogCoordfEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordfEXT")
-
-{-# NOINLINE glFogCoordfEXTFunPtr #-}
-
--- | Usage: @'glFogCoordfvEXT' coord@
---
--- The parameter @coord@ is a @CoordF@.
---
--- The length of @coord@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordfv'.
-
-
-glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()
-glFogCoordfvEXT = ffiPtrfloatIOV glFogCoordfvEXTFunPtr
-
-glFogCoordfvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glFogCoordfvEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordfvEXT")
-
-{-# NOINLINE glFogCoordfvEXTFunPtr #-}
-
-pattern GL_CURRENT_FOG_COORDINATE_EXT = 0x8453
-
-pattern GL_FOG_COORDINATE_ARRAY_EXT = 0x8457
-
-pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456
-
-pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455
-
-pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454
-
-pattern GL_FOG_COORDINATE_EXT = 0x8451
-
-pattern GL_FOG_COORDINATE_SOURCE_EXT = 0x8450
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FourTwoTwoPixels (
-  -- * Extension Support
-    gl_EXT_422_pixels
-
-  -- * GL_EXT_422_pixels
-  , pattern GL_422_AVERAGE_EXT
-  , pattern GL_422_EXT
-  , pattern GL_422_REV_AVERAGE_EXT
-  , pattern GL_422_REV_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/422_pixels.txt GL_EXT_422_pixels> extension is available.
-
-gl_EXT_422_pixels :: Bool
-gl_EXT_422_pixels = member "GL_EXT_422_pixels" extensions
-{-# NOINLINE gl_EXT_422_pixels #-}
-
-pattern GL_422_AVERAGE_EXT = 0x80CE
-
-pattern GL_422_EXT = 0x80CC
-
-pattern GL_422_REV_AVERAGE_EXT = 0x80CF
-
-pattern GL_422_REV_EXT = 0x80CD
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferBlit.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferBlit.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FramebufferBlit (
-  -- * Extension Support
-    gl_EXT_framebuffer_blit
-
-  -- * GL_EXT_framebuffer_blit
-  , glBlitFramebufferEXT
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT
-  , pattern GL_DRAW_FRAMEBUFFER_EXT
-  , pattern GL_READ_FRAMEBUFFER_BINDING_EXT
-  , pattern GL_READ_FRAMEBUFFER_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_blit.txt GL_EXT_framebuffer_blit> extension is available.
-
-gl_EXT_framebuffer_blit :: Bool
-gl_EXT_framebuffer_blit = member "GL_EXT_framebuffer_blit" extensions
-{-# NOINLINE gl_EXT_framebuffer_blit #-}
-
--- | Usage: @'glBlitFramebufferEXT' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
---
--- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlitFramebuffer'.
-
-
-glBlitFramebufferEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitFramebufferEXT = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferEXTFunPtr
-
-glBlitFramebufferEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glBlitFramebufferEXT")
-
-{-# NOINLINE glBlitFramebufferEXTFunPtr #-}
-
-pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6
-
-pattern GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9
-
-pattern GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA
-
-pattern GL_READ_FRAMEBUFFER_EXT = 0x8CA8
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferMultisample.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FramebufferMultisample (
-  -- * Extension Support
-    gl_EXT_framebuffer_multisample
-
-  -- * GL_EXT_framebuffer_multisample
-  , glRenderbufferStorageMultisampleEXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
-  , pattern GL_MAX_SAMPLES_EXT
-  , pattern GL_RENDERBUFFER_SAMPLES_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample.txt GL_EXT_framebuffer_multisample> extension is available.
-
-gl_EXT_framebuffer_multisample :: Bool
-gl_EXT_framebuffer_multisample = member "GL_EXT_framebuffer_multisample" extensions
-{-# NOINLINE gl_EXT_framebuffer_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled (
-  -- * Extension Support
-    gl_EXT_framebuffer_multisample_blit_scaled
-
-  -- * GL_EXT_framebuffer_multisample_blit_scaled
-  , pattern GL_SCALED_RESOLVE_FASTEST_EXT
-  , pattern GL_SCALED_RESOLVE_NICEST_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample_blit_scaled.txt GL_EXT_framebuffer_multisample_blit_scaled> extension is available.
-
-gl_EXT_framebuffer_multisample_blit_scaled :: Bool
-gl_EXT_framebuffer_multisample_blit_scaled = member "GL_EXT_framebuffer_multisample_blit_scaled" extensions
-{-# NOINLINE gl_EXT_framebuffer_multisample_blit_scaled #-}
-
-pattern GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA
-
-pattern GL_SCALED_RESOLVE_NICEST_EXT = 0x90BB
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferObject.hs
+++ /dev/null
@@ -1,420 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FramebufferObject (
-  -- * Extension Support
-    gl_EXT_framebuffer_object
-
-  -- * GL_EXT_framebuffer_object
-  , glBindFramebufferEXT
-  , glBindRenderbufferEXT
-  , glCheckFramebufferStatusEXT
-  , glDeleteFramebuffersEXT
-  , glDeleteRenderbuffersEXT
-  , glFramebufferRenderbufferEXT
-  , glFramebufferTexture1DEXT
-  , glFramebufferTexture2DEXT
-  , glFramebufferTexture3DEXT
-  , glGenFramebuffersEXT
-  , glGenRenderbuffersEXT
-  , glGenerateMipmapEXT
-  , glGetFramebufferAttachmentParameterivEXT
-  , glGetRenderbufferParameterivEXT
-  , glIsFramebufferEXT
-  , glIsRenderbufferEXT
-  , glRenderbufferStorageEXT
-  , pattern GL_COLOR_ATTACHMENT0_EXT
-  , pattern GL_COLOR_ATTACHMENT10_EXT
-  , pattern GL_COLOR_ATTACHMENT11_EXT
-  , pattern GL_COLOR_ATTACHMENT12_EXT
-  , pattern GL_COLOR_ATTACHMENT13_EXT
-  , pattern GL_COLOR_ATTACHMENT14_EXT
-  , pattern GL_COLOR_ATTACHMENT15_EXT
-  , pattern GL_COLOR_ATTACHMENT1_EXT
-  , pattern GL_COLOR_ATTACHMENT2_EXT
-  , pattern GL_COLOR_ATTACHMENT3_EXT
-  , pattern GL_COLOR_ATTACHMENT4_EXT
-  , pattern GL_COLOR_ATTACHMENT5_EXT
-  , pattern GL_COLOR_ATTACHMENT6_EXT
-  , pattern GL_COLOR_ATTACHMENT7_EXT
-  , pattern GL_COLOR_ATTACHMENT8_EXT
-  , pattern GL_COLOR_ATTACHMENT9_EXT
-  , pattern GL_DEPTH_ATTACHMENT_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
-  , pattern GL_FRAMEBUFFER_BINDING_EXT
-  , pattern GL_FRAMEBUFFER_COMPLETE_EXT
-  , pattern GL_FRAMEBUFFER_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
-  , pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT
-  , pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT
-  , pattern GL_MAX_COLOR_ATTACHMENTS_EXT
-  , pattern GL_MAX_RENDERBUFFER_SIZE_EXT
-  , pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT
-  , pattern GL_RENDERBUFFER_BINDING_EXT
-  , pattern GL_RENDERBUFFER_BLUE_SIZE_EXT
-  , pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT
-  , pattern GL_RENDERBUFFER_EXT
-  , pattern GL_RENDERBUFFER_GREEN_SIZE_EXT
-  , pattern GL_RENDERBUFFER_HEIGHT_EXT
-  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT
-  , pattern GL_RENDERBUFFER_RED_SIZE_EXT
-  , pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT
-  , pattern GL_RENDERBUFFER_WIDTH_EXT
-  , pattern GL_STENCIL_ATTACHMENT_EXT
-  , pattern GL_STENCIL_INDEX16_EXT
-  , pattern GL_STENCIL_INDEX1_EXT
-  , pattern GL_STENCIL_INDEX4_EXT
-  , pattern GL_STENCIL_INDEX8_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/framebuffer_object.txt GL_EXT_framebuffer_object> extension is available.
-
-gl_EXT_framebuffer_object :: Bool
-gl_EXT_framebuffer_object = member "GL_EXT_framebuffer_object" extensions
-{-# NOINLINE gl_EXT_framebuffer_object #-}
-
--- | Usage: @'glBindFramebufferEXT' target framebuffer@
---
--- The parameter @target@ is a @FramebufferTarget@.
-
-
-glBindFramebufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glBindFramebufferEXT = ffienumuintIOV glBindFramebufferEXTFunPtr
-
-glBindFramebufferEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glBindFramebufferEXT")
-
-{-# NOINLINE glBindFramebufferEXTFunPtr #-}
-
--- | Usage: @'glBindRenderbufferEXT' target renderbuffer@
---
--- The parameter @target@ is a @RenderbufferTarget@.
-
-
-glBindRenderbufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glBindRenderbufferEXT = ffienumuintIOV glBindRenderbufferEXTFunPtr
-
-glBindRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glBindRenderbufferEXT")
-
-{-# NOINLINE glBindRenderbufferEXTFunPtr #-}
-
--- | Usage: @'glCheckFramebufferStatusEXT' target@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCheckFramebufferStatus'.
-
-
-glCheckFramebufferStatusEXT :: MonadIO m => GLenum -> m GLenum
-glCheckFramebufferStatusEXT = ffienumIOenum glCheckFramebufferStatusEXTFunPtr
-
-glCheckFramebufferStatusEXTFunPtr :: FunPtr (GLenum -> IO GLenum)
-glCheckFramebufferStatusEXTFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatusEXT")
-
-{-# NOINLINE glCheckFramebufferStatusEXTFunPtr #-}
-
--- | Usage: @'glDeleteFramebuffersEXT' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteFramebuffers'.
-
-
-glDeleteFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteFramebuffersEXT = ffisizeiPtruintIOV glDeleteFramebuffersEXTFunPtr
-
-glDeleteFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteFramebuffersEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffersEXT")
-
-{-# NOINLINE glDeleteFramebuffersEXTFunPtr #-}
-
--- | Usage: @'glDeleteRenderbuffersEXT' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteRenderbuffers'.
-
-
-glDeleteRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteRenderbuffersEXT = ffisizeiPtruintIOV glDeleteRenderbuffersEXTFunPtr
-
-glDeleteRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteRenderbuffersEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffersEXT")
-
-{-# NOINLINE glDeleteRenderbuffersEXTFunPtr #-}
-
--- | Usage: @'glFramebufferRenderbufferEXT' target attachment renderbuffertarget renderbuffer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferRenderbuffer'.
-
-
-glFramebufferRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
-glFramebufferRenderbufferEXT = ffienumenumenumuintIOV glFramebufferRenderbufferEXTFunPtr
-
-glFramebufferRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-glFramebufferRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbufferEXT")
-
-{-# NOINLINE glFramebufferRenderbufferEXTFunPtr #-}
-
--- | Usage: @'glFramebufferTexture1DEXT' target attachment textarget texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture1D'.
-
-
-glFramebufferTexture1DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture1DEXT = ffienumenumenumuintintIOV glFramebufferTexture1DEXTFunPtr
-
-glFramebufferTexture1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture1DEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1DEXT")
-
-{-# NOINLINE glFramebufferTexture1DEXTFunPtr #-}
-
--- | Usage: @'glFramebufferTexture2DEXT' target attachment textarget texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture2D'.
-
-
-glFramebufferTexture2DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture2DEXT = ffienumenumenumuintintIOV glFramebufferTexture2DEXTFunPtr
-
-glFramebufferTexture2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture2DEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DEXT")
-
-{-# NOINLINE glFramebufferTexture2DEXTFunPtr #-}
-
--- | Usage: @'glFramebufferTexture3DEXT' target attachment textarget texture level zoffset@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture3D'.
-
-
-glFramebufferTexture3DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTexture3DEXT = ffienumenumenumuintintintIOV glFramebufferTexture3DEXTFunPtr
-
-glFramebufferTexture3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTexture3DEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3DEXT")
-
-{-# NOINLINE glFramebufferTexture3DEXTFunPtr #-}
-
--- | Usage: @'glGenFramebuffersEXT' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenFramebuffers'.
-
-
-glGenFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenFramebuffersEXT = ffisizeiPtruintIOV glGenFramebuffersEXTFunPtr
-
-glGenFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenFramebuffersEXTFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffersEXT")
-
-{-# NOINLINE glGenFramebuffersEXTFunPtr #-}
-
--- | Usage: @'glGenRenderbuffersEXT' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenRenderbuffers'.
-
-
-glGenRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenRenderbuffersEXT = ffisizeiPtruintIOV glGenRenderbuffersEXTFunPtr
-
-glGenRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenRenderbuffersEXTFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffersEXT")
-
-{-# NOINLINE glGenRenderbuffersEXTFunPtr #-}
-
--- | Usage: @'glGenerateMipmapEXT' target@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenerateMipmap'.
-
-
-glGenerateMipmapEXT :: MonadIO m => GLenum -> m ()
-glGenerateMipmapEXT = ffienumIOV glGenerateMipmapEXTFunPtr
-
-glGenerateMipmapEXTFunPtr :: FunPtr (GLenum -> IO ())
-glGenerateMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmapEXT")
-
-{-# NOINLINE glGenerateMipmapEXTFunPtr #-}
-
--- | Usage: @'glGetFramebufferAttachmentParameterivEXT' target attachment pname params@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFramebufferAttachmentParameteriv'.
-
-
-glGetFramebufferAttachmentParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferAttachmentParameterivEXT = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivEXTFunPtr
-
-glGetFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferAttachmentParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameterivEXT")
-
-{-# NOINLINE glGetFramebufferAttachmentParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetRenderbufferParameterivEXT' target pname params@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetRenderbufferParameteriv'.
-
-
-glGetRenderbufferParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetRenderbufferParameterivEXT = ffienumenumPtrintIOV glGetRenderbufferParameterivEXTFunPtr
-
-glGetRenderbufferParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetRenderbufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameterivEXT")
-
-{-# NOINLINE glGetRenderbufferParameterivEXTFunPtr #-}
-
--- | Usage: @'glIsFramebufferEXT' framebuffer@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsFramebuffer'.
-
-
-glIsFramebufferEXT :: MonadIO m => GLuint -> m GLboolean
-glIsFramebufferEXT = ffiuintIOboolean glIsFramebufferEXTFunPtr
-
-glIsFramebufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glIsFramebufferEXT")
-
-{-# NOINLINE glIsFramebufferEXTFunPtr #-}
-
--- | Usage: @'glIsRenderbufferEXT' renderbuffer@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsRenderbuffer'.
-
-
-glIsRenderbufferEXT :: MonadIO m => GLuint -> m GLboolean
-glIsRenderbufferEXT = ffiuintIOboolean glIsRenderbufferEXTFunPtr
-
-glIsRenderbufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glIsRenderbufferEXT")
-
-{-# NOINLINE glIsRenderbufferEXTFunPtr #-}
-
--- | Usage: @'glRenderbufferStorageEXT' target internalformat width height@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorage'.
-
-
-glRenderbufferStorageEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageEXT = ffienumenumsizeisizeiIOV glRenderbufferStorageEXTFunPtr
-
-glRenderbufferStorageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageEXT")
-
-{-# NOINLINE glRenderbufferStorageEXTFunPtr #-}
-
-pattern GL_DEPTH_ATTACHMENT_EXT = 0x8D00
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2
-
-pattern GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6
-
-pattern GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5
-
-pattern GL_FRAMEBUFFER_EXT = 0x8D40
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC
-
-pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD
-
-pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506
-
-pattern GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8
-
-pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53
-
-pattern GL_RENDERBUFFER_BINDING_EXT = 0x8CA7
-
-pattern GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52
-
-pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54
-
-pattern GL_RENDERBUFFER_EXT = 0x8D41
-
-pattern GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51
-
-pattern GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43
-
-pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44
-
-pattern GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50
-
-pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55
-
-pattern GL_RENDERBUFFER_WIDTH_EXT = 0x8D42
-
-pattern GL_STENCIL_ATTACHMENT_EXT = 0x8D20
-
-pattern GL_STENCIL_INDEX16_EXT = 0x8D49
-
-pattern GL_STENCIL_INDEX1_EXT = 0x8D46
-
-pattern GL_STENCIL_INDEX4_EXT = 0x8D47
-
-pattern GL_STENCIL_INDEX8_EXT = 0x8D48
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferSRGB.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferSRGB.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/FramebufferSRGB.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.FramebufferSRGB (
-  -- * Extension Support
-    gl_EXT_framebuffer_sRGB
-
-  -- * GL_EXT_framebuffer_sRGB
-  , pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
-  , pattern GL_FRAMEBUFFER_SRGB_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_sRGB.txt GL_EXT_framebuffer_sRGB> extension is available.
-
-gl_EXT_framebuffer_sRGB :: Bool
-gl_EXT_framebuffer_sRGB = member "GL_EXT_framebuffer_sRGB" extensions
-{-# NOINLINE gl_EXT_framebuffer_sRGB #-}
-
-pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryPointSize.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryPointSize.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryPointSize.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.GeometryPointSize (
-  -- * Extension Support
-    gl_EXT_geometry_point_size
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_geometry_point_size.txt GL_EXT_geometry_point_size> extension is available.
-
-gl_EXT_geometry_point_size :: Bool
-gl_EXT_geometry_point_size = member "GL_EXT_geometry_point_size" extensions
-{-# NOINLINE gl_EXT_geometry_point_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader.hs
+++ /dev/null
@@ -1,90 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.GeometryShader (
-  -- * Extension Support
-    gl_EXT_geometry_shader
-
-  -- * GL_EXT_geometry_shader
-  , glFramebufferTextureEXT
-  , pattern GL_FIRST_VERTEX_CONVENTION_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
-  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
-  , pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT
-  , pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT
-  , pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT
-  , pattern GL_GEOMETRY_SHADER_BIT_EXT
-  , pattern GL_GEOMETRY_SHADER_EXT
-  , pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT
-  , pattern GL_LAST_VERTEX_CONVENTION_EXT
-  , pattern GL_LAYER_PROVOKING_VERTEX_EXT
-  , pattern GL_LINES_ADJACENCY_EXT
-  , pattern GL_LINE_STRIP_ADJACENCY_EXT
-  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT
-  , pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT
-  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT
-  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT
-  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT
-  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
-  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT
-  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT
-  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
-  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
-  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT
-  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
-  , pattern GL_PRIMITIVES_GENERATED_EXT
-  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT
-  , pattern GL_TRIANGLES_ADJACENCY_EXT
-  , pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT
-  , pattern GL_UNDEFINED_VERTEX_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_geometry_shader.txt GL_EXT_geometry_shader> extension is available.
-
-gl_EXT_geometry_shader :: Bool
-gl_EXT_geometry_shader = member "GL_EXT_geometry_shader" extensions
-{-# NOINLINE gl_EXT_geometry_shader #-}
-
-pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312
-
-pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917
-
-pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918
-
-pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916
-
-pattern GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004
-
-pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F
-
-pattern GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E
-
-pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32
-
-pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF
-
-pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD
-
-pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123
-
-pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124
-
-pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A
-
-pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7
-
-pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C
-
-pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309
-
-pattern GL_UNDEFINED_VERTEX_EXT = 0x8260
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/GeometryShader4.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.GeometryShader4 (
-  -- * Extension Support
-    gl_EXT_geometry_shader4
-
-  -- * GL_EXT_geometry_shader4
-  , glProgramParameteriEXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
-  , pattern GL_GEOMETRY_INPUT_TYPE_EXT
-  , pattern GL_GEOMETRY_OUTPUT_TYPE_EXT
-  , pattern GL_GEOMETRY_SHADER_EXT
-  , pattern GL_GEOMETRY_VERTICES_OUT_EXT
-  , pattern GL_LINES_ADJACENCY_EXT
-  , pattern GL_LINE_STRIP_ADJACENCY_EXT
-  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
-  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
-  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
-  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
-  , pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT
-  , pattern GL_MAX_VARYING_COMPONENTS_EXT
-  , pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT
-  , pattern GL_PROGRAM_POINT_SIZE_EXT
-  , pattern GL_TRIANGLES_ADJACENCY_EXT
-  , pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/geometry_shader4.txt GL_EXT_geometry_shader4> extension is available.
-
-gl_EXT_geometry_shader4 :: Bool
-gl_EXT_geometry_shader4 = member "GL_EXT_geometry_shader4" extensions
-{-# NOINLINE gl_EXT_geometry_shader4 #-}
-
-pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD
-
-pattern GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B
-
-pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/GpuProgramParameters.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/GpuProgramParameters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/GpuProgramParameters.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.GpuProgramParameters (
-  -- * Extension Support
-    gl_EXT_gpu_program_parameters
-
-  -- * GL_EXT_gpu_program_parameters
-  , glProgramEnvParameters4fvEXT
-  , glProgramLocalParameters4fvEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/gpu_program_parameters.txt GL_EXT_gpu_program_parameters> extension is available.
-
-gl_EXT_gpu_program_parameters :: Bool
-gl_EXT_gpu_program_parameters = member "GL_EXT_gpu_program_parameters" extensions
-{-# NOINLINE gl_EXT_gpu_program_parameters #-}
-
--- | Usage: @'glProgramEnvParameters4fvEXT' target index count params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @count*4@.
-
-
-glProgramEnvParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramEnvParameters4fvEXT = ffienumuintsizeiPtrfloatIOV glProgramEnvParameters4fvEXTFunPtr
-
-glProgramEnvParameters4fvEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramEnvParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameters4fvEXT")
-
-{-# NOINLINE glProgramEnvParameters4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramLocalParameters4fvEXT' target index count params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @count*4@.
-
-
-glProgramLocalParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramLocalParameters4fvEXT = ffienumuintsizeiPtrfloatIOV glProgramLocalParameters4fvEXTFunPtr
-
-glProgramLocalParameters4fvEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramLocalParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameters4fvEXT")
-
-{-# NOINLINE glProgramLocalParameters4fvEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/GpuShader4.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/GpuShader4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/GpuShader4.hs
+++ /dev/null
@@ -1,254 +0,0 @@
--- 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 = member "GL_EXT_gpu_shader4" 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 = ffiuintPtrcharIOint glGetFragDataLocationEXTFunPtr
-
-glGetFragDataLocationEXTFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataLocationEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiuintintPtruintIOV glGetUniformuivEXTFunPtr
-
-glGetUniformuivEXTFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
-glGetUniformuivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintIOV glUniform1uiEXTFunPtr
-
-glUniform1uiEXTFunPtr :: FunPtr (GLint -> GLuint -> IO ())
-glUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform1uivEXTFunPtr
-
-glUniform1uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintuintIOV glUniform2uiEXTFunPtr
-
-glUniform2uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
-glUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform2uivEXTFunPtr
-
-glUniform2uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintuintuintIOV glUniform3uiEXTFunPtr
-
-glUniform3uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform3uivEXTFunPtr
-
-glUniform3uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintuintuintuintIOV glUniform4uiEXTFunPtr
-
-glUniform4uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform4uivEXTFunPtr
-
-glUniform4uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glUniform4uivEXT")
-
-{-# NOINLINE glUniform4uivEXTFunPtr #-}
-
-pattern GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE
-
-pattern GL_INT_SAMPLER_1D_EXT = 0x8DC9
-
-pattern GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF
-
-pattern GL_INT_SAMPLER_2D_EXT = 0x8DCA
-
-pattern GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD
-
-pattern GL_INT_SAMPLER_3D_EXT = 0x8DCB
-
-pattern GL_INT_SAMPLER_CUBE_EXT = 0x8DCC
-
-pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905
-
-pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904
-
-pattern GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0
-
-pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3
-
-pattern GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1
-
-pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4
-
-pattern GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5
-
-pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4
-
-pattern GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6
-
-pattern GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7
-
-pattern GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8
-
-pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/GpuShader5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/GpuShader5.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.GpuShader5 (
-  -- * Extension Support
-    gl_EXT_gpu_shader5
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_gpu_shader5.txt GL_EXT_gpu_shader5> extension is available.
-
-gl_EXT_gpu_shader5 :: Bool
-gl_EXT_gpu_shader5 = member "GL_EXT_gpu_shader5" extensions
-{-# NOINLINE gl_EXT_gpu_shader5 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Histogram.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Histogram.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Histogram.hs
+++ /dev/null
@@ -1,252 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Histogram (
-  -- * Extension Support
-    gl_EXT_histogram
-
-  -- * GL_EXT_histogram
-  , glGetHistogramEXT
-  , glGetHistogramParameterfvEXT
-  , glGetHistogramParameterivEXT
-  , glGetMinmaxEXT
-  , glGetMinmaxParameterfvEXT
-  , glGetMinmaxParameterivEXT
-  , glHistogramEXT
-  , glMinmaxEXT
-  , glResetHistogramEXT
-  , glResetMinmaxEXT
-  , pattern GL_HISTOGRAM_ALPHA_SIZE_EXT
-  , pattern GL_HISTOGRAM_BLUE_SIZE_EXT
-  , pattern GL_HISTOGRAM_EXT
-  , pattern GL_HISTOGRAM_FORMAT_EXT
-  , pattern GL_HISTOGRAM_GREEN_SIZE_EXT
-  , pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT
-  , pattern GL_HISTOGRAM_RED_SIZE_EXT
-  , pattern GL_HISTOGRAM_SINK_EXT
-  , pattern GL_HISTOGRAM_WIDTH_EXT
-  , pattern GL_MINMAX_EXT
-  , pattern GL_MINMAX_FORMAT_EXT
-  , pattern GL_MINMAX_SINK_EXT
-  , pattern GL_PROXY_HISTOGRAM_EXT
-  , pattern GL_TABLE_TOO_LARGE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/histogram.txt GL_EXT_histogram> extension is available.
-
-gl_EXT_histogram :: Bool
-gl_EXT_histogram = member "GL_EXT_histogram" extensions
-{-# NOINLINE gl_EXT_histogram #-}
-
--- | Usage: @'glGetHistogramEXT' target reset format type values@
---
--- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
---
--- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @values@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetHistogramEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
-glGetHistogramEXT = ffienumbooleanenumenumPtrVIOV glGetHistogramEXTFunPtr
-
-glGetHistogramEXTFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetHistogramEXTFunPtr = unsafePerformIO (getProcAddress "glGetHistogramEXT")
-
-{-# NOINLINE glGetHistogramEXTFunPtr #-}
-
--- | Usage: @'glGetHistogramParameterfvEXT' target pname params@
---
--- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
---
--- The parameter @pname@ is a @GetHistogramParameterPNameEXT@, one of: 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_ALPHA_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_BLUE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_FORMAT_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_GREEN_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_LUMINANCE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_RED_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_SINK_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_WIDTH_EXT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetHistogramParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetHistogramParameterfvEXT = ffienumenumPtrfloatIOV glGetHistogramParameterfvEXTFunPtr
-
-glGetHistogramParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetHistogramParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterfvEXT")
-
-{-# NOINLINE glGetHistogramParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetHistogramParameterivEXT' target pname params@
---
--- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
---
--- The parameter @pname@ is a @GetHistogramParameterPNameEXT@, one of: 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_ALPHA_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_BLUE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_FORMAT_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_GREEN_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_LUMINANCE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_RED_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_SINK_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_WIDTH_EXT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetHistogramParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetHistogramParameterivEXT = ffienumenumPtrintIOV glGetHistogramParameterivEXTFunPtr
-
-glGetHistogramParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetHistogramParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterivEXT")
-
-{-# NOINLINE glGetHistogramParameterivEXTFunPtr #-}
-
--- | Usage: @'glGetMinmaxEXT' target reset format type values@
---
--- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
---
--- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @values@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetMinmaxEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
-glGetMinmaxEXT = ffienumbooleanenumenumPtrVIOV glGetMinmaxEXTFunPtr
-
-glGetMinmaxEXTFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetMinmaxEXTFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxEXT")
-
-{-# NOINLINE glGetMinmaxEXTFunPtr #-}
-
--- | Usage: @'glGetMinmaxParameterfvEXT' target pname params@
---
--- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
---
--- The parameter @pname@ is a @GetMinmaxParameterPNameEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_FORMAT', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_FORMAT_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_SINK', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_SINK_EXT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMinmaxParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMinmaxParameterfvEXT = ffienumenumPtrfloatIOV glGetMinmaxParameterfvEXTFunPtr
-
-glGetMinmaxParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMinmaxParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameterfvEXT")
-
-{-# NOINLINE glGetMinmaxParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetMinmaxParameterivEXT' target pname params@
---
--- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
---
--- The parameter @pname@ is a @GetMinmaxParameterPNameEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_FORMAT', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_FORMAT_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_SINK', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_SINK_EXT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMinmaxParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMinmaxParameterivEXT = ffienumenumPtrintIOV glGetMinmaxParameterivEXTFunPtr
-
-glGetMinmaxParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMinmaxParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameterivEXT")
-
-{-# NOINLINE glGetMinmaxParameterivEXTFunPtr #-}
-
--- | Usage: @'glHistogramEXT' target width internalformat sink@
---
--- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glHistogram'.
-
-
-glHistogramEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
-glHistogramEXT = ffienumsizeienumbooleanIOV glHistogramEXTFunPtr
-
-glHistogramEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
-glHistogramEXTFunPtr = unsafePerformIO (getProcAddress "glHistogramEXT")
-
-{-# NOINLINE glHistogramEXTFunPtr #-}
-
--- | Usage: @'glMinmaxEXT' target internalformat sink@
---
--- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glMinmax'.
-
-
-glMinmaxEXT :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()
-glMinmaxEXT = ffienumenumbooleanIOV glMinmaxEXTFunPtr
-
-glMinmaxEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ())
-glMinmaxEXTFunPtr = unsafePerformIO (getProcAddress "glMinmaxEXT")
-
-{-# NOINLINE glMinmaxEXTFunPtr #-}
-
--- | Usage: @'glResetHistogramEXT' target@
---
--- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glResetHistogram'.
-
-
-glResetHistogramEXT :: MonadIO m => GLenum -> m ()
-glResetHistogramEXT = ffienumIOV glResetHistogramEXTFunPtr
-
-glResetHistogramEXTFunPtr :: FunPtr (GLenum -> IO ())
-glResetHistogramEXTFunPtr = unsafePerformIO (getProcAddress "glResetHistogramEXT")
-
-{-# NOINLINE glResetHistogramEXTFunPtr #-}
-
--- | Usage: @'glResetMinmaxEXT' target@
---
--- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glResetMinmax'.
-
-
-glResetMinmaxEXT :: MonadIO m => GLenum -> m ()
-glResetMinmaxEXT = ffienumIOV glResetMinmaxEXTFunPtr
-
-glResetMinmaxEXTFunPtr :: FunPtr (GLenum -> IO ())
-glResetMinmaxEXTFunPtr = unsafePerformIO (getProcAddress "glResetMinmaxEXT")
-
-{-# NOINLINE glResetMinmaxEXTFunPtr #-}
-
-pattern GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B
-
-pattern GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A
-
-pattern GL_HISTOGRAM_EXT = 0x8024
-
-pattern GL_HISTOGRAM_FORMAT_EXT = 0x8027
-
-pattern GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029
-
-pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C
-
-pattern GL_HISTOGRAM_RED_SIZE_EXT = 0x8028
-
-pattern GL_HISTOGRAM_SINK_EXT = 0x802D
-
-pattern GL_HISTOGRAM_WIDTH_EXT = 0x8026
-
-pattern GL_MINMAX_EXT = 0x802E
-
-pattern GL_MINMAX_FORMAT_EXT = 0x802F
-
-pattern GL_MINMAX_SINK_EXT = 0x8030
-
-pattern GL_PROXY_HISTOGRAM_EXT = 0x8025
-
-pattern GL_TABLE_TOO_LARGE_EXT = 0x8031
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexArrayFormats.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/IndexArrayFormats.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexArrayFormats.hs
+++ /dev/null
@@ -1,41 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.IndexArrayFormats (
-  -- * Extension Support
-    gl_EXT_index_array_formats
-
-  -- * GL_EXT_index_array_formats
-  , pattern GL_IUI_N3F_V2F_EXT
-  , pattern GL_IUI_N3F_V3F_EXT
-  , pattern GL_IUI_V2F_EXT
-  , pattern GL_IUI_V3F_EXT
-  , pattern GL_T2F_IUI_N3F_V2F_EXT
-  , pattern GL_T2F_IUI_N3F_V3F_EXT
-  , pattern GL_T2F_IUI_V2F_EXT
-  , pattern GL_T2F_IUI_V3F_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_array_formats.txt GL_EXT_index_array_formats> extension is available.
-
-gl_EXT_index_array_formats :: Bool
-gl_EXT_index_array_formats = member "GL_EXT_index_array_formats" extensions
-{-# NOINLINE gl_EXT_index_array_formats #-}
-
-pattern GL_IUI_N3F_V2F_EXT = 0x81AF
-
-pattern GL_IUI_N3F_V3F_EXT = 0x81B0
-
-pattern GL_IUI_V2F_EXT = 0x81AD
-
-pattern GL_IUI_V3F_EXT = 0x81AE
-
-pattern GL_T2F_IUI_N3F_V2F_EXT = 0x81B3
-
-pattern GL_T2F_IUI_N3F_V3F_EXT = 0x81B4
-
-pattern GL_T2F_IUI_V2F_EXT = 0x81B1
-
-pattern GL_T2F_IUI_V3F_EXT = 0x81B2
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexFunc.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/IndexFunc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexFunc.hs
+++ /dev/null
@@ -1,47 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.IndexFunc (
-  -- * Extension Support
-    gl_EXT_index_func
-
-  -- * GL_EXT_index_func
-  , glIndexFuncEXT
-  , pattern GL_INDEX_TEST_EXT
-  , pattern GL_INDEX_TEST_FUNC_EXT
-  , pattern GL_INDEX_TEST_REF_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_func.txt GL_EXT_index_func> extension is available.
-
-gl_EXT_index_func :: Bool
-gl_EXT_index_func = member "GL_EXT_index_func" extensions
-{-# NOINLINE gl_EXT_index_func #-}
-
--- | Usage: @'glIndexFuncEXT' func ref@
---
--- The parameter @func@ is a @IndexFunctionEXT@.
---
--- The parameter @ref@ is a @ClampedFloat32@.
-
-
-glIndexFuncEXT :: MonadIO m => GLenum -> GLclampf -> m ()
-glIndexFuncEXT = ffienumclampfIOV glIndexFuncEXTFunPtr
-
-glIndexFuncEXTFunPtr :: FunPtr (GLenum -> GLclampf -> IO ())
-glIndexFuncEXTFunPtr = unsafePerformIO (getProcAddress "glIndexFuncEXT")
-
-{-# NOINLINE glIndexFuncEXTFunPtr #-}
-
-pattern GL_INDEX_TEST_EXT = 0x81B5
-
-pattern GL_INDEX_TEST_FUNC_EXT = 0x81B6
-
-pattern GL_INDEX_TEST_REF_EXT = 0x81B7
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexMaterial.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/IndexMaterial.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexMaterial.hs
+++ /dev/null
@@ -1,47 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.IndexMaterial (
-  -- * Extension Support
-    gl_EXT_index_material
-
-  -- * GL_EXT_index_material
-  , glIndexMaterialEXT
-  , pattern GL_INDEX_MATERIAL_EXT
-  , pattern GL_INDEX_MATERIAL_FACE_EXT
-  , pattern GL_INDEX_MATERIAL_PARAMETER_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_material.txt GL_EXT_index_material> extension is available.
-
-gl_EXT_index_material :: Bool
-gl_EXT_index_material = member "GL_EXT_index_material" extensions
-{-# NOINLINE gl_EXT_index_material #-}
-
--- | Usage: @'glIndexMaterialEXT' face mode@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @mode@ is a @IndexMaterialParameterEXT@.
-
-
-glIndexMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
-glIndexMaterialEXT = ffienumenumIOV glIndexMaterialEXTFunPtr
-
-glIndexMaterialEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glIndexMaterialEXTFunPtr = unsafePerformIO (getProcAddress "glIndexMaterialEXT")
-
-{-# NOINLINE glIndexMaterialEXTFunPtr #-}
-
-pattern GL_INDEX_MATERIAL_EXT = 0x81B8
-
-pattern GL_INDEX_MATERIAL_FACE_EXT = 0x81BA
-
-pattern GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexTexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/IndexTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/IndexTexture.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.IndexTexture (
-  -- * Extension Support
-    gl_EXT_index_texture
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_texture.txt GL_EXT_index_texture> extension is available.
-
-gl_EXT_index_texture :: Bool
-gl_EXT_index_texture = member "GL_EXT_index_texture" extensions
-{-# NOINLINE gl_EXT_index_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/InstancedArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/InstancedArrays.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.InstancedArrays (
-  -- * Extension Support
-    gl_EXT_instanced_arrays
-
-  -- * GL_EXT_instanced_arrays
-  , glDrawArraysInstancedEXT
-  , glDrawElementsInstancedEXT
-  , glVertexAttribDivisorEXT
-  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_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://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt GL_EXT_instanced_arrays> extension is available.
-
-gl_EXT_instanced_arrays :: Bool
-gl_EXT_instanced_arrays = member "GL_EXT_instanced_arrays" extensions
-{-# NOINLINE gl_EXT_instanced_arrays #-}
-
--- | Usage: @'glVertexAttribDivisorEXT' index divisor@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
-
-
-glVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribDivisorEXT = ffiuintuintIOV glVertexAttribDivisorEXTFunPtr
-
-glVertexAttribDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorEXT")
-
-{-# NOINLINE glVertexAttribDivisorEXTFunPtr #-}
-
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/LightTexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/LightTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/LightTexture.hs
+++ /dev/null
@@ -1,95 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.LightTexture (
-  -- * Extension Support
-    gl_EXT_light_texture
-
-  -- * GL_EXT_light_texture
-  , glApplyTextureEXT
-  , glTextureLightEXT
-  , glTextureMaterialEXT
-  , pattern GL_ATTENUATION_EXT
-  , pattern GL_FRAGMENT_COLOR_EXT
-  , pattern GL_FRAGMENT_DEPTH_EXT
-  , pattern GL_FRAGMENT_MATERIAL_EXT
-  , pattern GL_FRAGMENT_NORMAL_EXT
-  , pattern GL_SHADOW_ATTENUATION_EXT
-  , pattern GL_TEXTURE_APPLICATION_MODE_EXT
-  , pattern GL_TEXTURE_LIGHT_EXT
-  , pattern GL_TEXTURE_MATERIAL_FACE_EXT
-  , pattern GL_TEXTURE_MATERIAL_PARAMETER_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/light_texture.txt GL_EXT_light_texture> extension is available.
-
-gl_EXT_light_texture :: Bool
-gl_EXT_light_texture = member "GL_EXT_light_texture" extensions
-{-# NOINLINE gl_EXT_light_texture #-}
-
--- | Usage: @'glApplyTextureEXT' mode@
---
--- The parameter @mode@ is a @LightTextureModeEXT@.
-
-
-glApplyTextureEXT :: MonadIO m => GLenum -> m ()
-glApplyTextureEXT = ffienumIOV glApplyTextureEXTFunPtr
-
-glApplyTextureEXTFunPtr :: FunPtr (GLenum -> IO ())
-glApplyTextureEXTFunPtr = unsafePerformIO (getProcAddress "glApplyTextureEXT")
-
-{-# NOINLINE glApplyTextureEXTFunPtr #-}
-
--- | Usage: @'glTextureLightEXT' pname@
---
--- The parameter @pname@ is a @LightTexturePNameEXT@.
-
-
-glTextureLightEXT :: MonadIO m => GLenum -> m ()
-glTextureLightEXT = ffienumIOV glTextureLightEXTFunPtr
-
-glTextureLightEXTFunPtr :: FunPtr (GLenum -> IO ())
-glTextureLightEXTFunPtr = unsafePerformIO (getProcAddress "glTextureLightEXT")
-
-{-# NOINLINE glTextureLightEXTFunPtr #-}
-
--- | Usage: @'glTextureMaterialEXT' face mode@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @mode@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
-
-
-glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
-glTextureMaterialEXT = ffienumenumIOV glTextureMaterialEXTFunPtr
-
-glTextureMaterialEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glTextureMaterialEXTFunPtr = unsafePerformIO (getProcAddress "glTextureMaterialEXT")
-
-{-# NOINLINE glTextureMaterialEXTFunPtr #-}
-
-pattern GL_ATTENUATION_EXT = 0x834D
-
-pattern GL_FRAGMENT_COLOR_EXT = 0x834C
-
-pattern GL_FRAGMENT_MATERIAL_EXT = 0x8349
-
-pattern GL_FRAGMENT_NORMAL_EXT = 0x834A
-
-pattern GL_SHADOW_ATTENUATION_EXT = 0x834E
-
-pattern GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F
-
-pattern GL_TEXTURE_LIGHT_EXT = 0x8350
-
-pattern GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351
-
-pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/MapBufferRange.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/MapBufferRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/MapBufferRange.hs
+++ /dev/null
@@ -1,68 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.MapBufferRange (
-  -- * Extension Support
-    gl_EXT_map_buffer_range
-
-  -- * GL_EXT_map_buffer_range
-  , glFlushMappedBufferRangeEXT
-  , glMapBufferRangeEXT
-  , pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT
-  , pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT
-  , pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT
-  , pattern GL_MAP_READ_BIT_EXT
-  , pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT
-  , pattern GL_MAP_WRITE_BIT_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_map_buffer_range.txt GL_EXT_map_buffer_range> extension is available.
-
-gl_EXT_map_buffer_range :: Bool
-gl_EXT_map_buffer_range = member "GL_EXT_map_buffer_range" extensions
-{-# NOINLINE gl_EXT_map_buffer_range #-}
-
--- | Usage: @'glFlushMappedBufferRangeEXT' target offset length@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFlushMappedBufferRange'.
-
-
-glFlushMappedBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedBufferRangeEXT = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeEXTFunPtr
-
-glFlushMappedBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRangeEXT")
-
-{-# NOINLINE glFlushMappedBufferRangeEXTFunPtr #-}
-
--- | Usage: @'glMapBufferRangeEXT' target offset length access@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMapBufferRange'.
-
-
-glMapBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapBufferRangeEXT = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeEXTFunPtr
-
-glMapBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glMapBufferRangeEXT")
-
-{-# NOINLINE glMapBufferRangeEXTFunPtr #-}
-
-pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010
-
-pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008
-
-pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004
-
-pattern GL_MAP_READ_BIT_EXT = 0x0001
-
-pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020
-
-pattern GL_MAP_WRITE_BIT_EXT = 0x0002
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/MiscAttribute.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/MiscAttribute.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/MiscAttribute.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.MiscAttribute (
-  -- * Extension Support
-    gl_EXT_misc_attribute
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/misc_attribute.txt GL_EXT_misc_attribute> extension is available.
-
-gl_EXT_misc_attribute :: Bool
-gl_EXT_misc_attribute = member "GL_EXT_misc_attribute" extensions
-{-# NOINLINE gl_EXT_misc_attribute #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/MultiDrawArrays.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/MultiDrawArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/MultiDrawArrays.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.MultiDrawArrays (
-  -- * Extension Support
-    gl_EXT_multi_draw_arrays
-
-  -- * GL_EXT_multi_draw_arrays
-  , glMultiDrawArraysEXT
-  , glMultiDrawElementsEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/multi_draw_arrays.txt GL_EXT_multi_draw_arrays> extension is available.
-
-gl_EXT_multi_draw_arrays :: Bool
-gl_EXT_multi_draw_arrays = member "GL_EXT_multi_draw_arrays" extensions
-{-# NOINLINE gl_EXT_multi_draw_arrays #-}
-
--- | Usage: @'glMultiDrawArraysEXT' mode first count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @first@ should be @COMPSIZE(primcount)@.
---
--- The length of @count@ should be @COMPSIZE(primcount)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawArrays'.
-
-
-glMultiDrawArraysEXT :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-glMultiDrawArraysEXT = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysEXTFunPtr
-
-glMultiDrawArraysEXTFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysEXT")
-
-{-# NOINLINE glMultiDrawArraysEXTFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsEXT' mode count type indices primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @count@ should be @COMPSIZE(primcount)@.
---
--- The length of @indices@ should be @COMPSIZE(primcount)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElements'.
-
-
-glMultiDrawElementsEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
-glMultiDrawElementsEXT = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsEXTFunPtr
-
-glMultiDrawElementsEXTFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
-glMultiDrawElementsEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsEXT")
-
-{-# NOINLINE glMultiDrawElementsEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/MultiDrawIndirect.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/MultiDrawIndirect.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/MultiDrawIndirect.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.MultiDrawIndirect (
-  -- * Extension Support
-    gl_EXT_multi_draw_indirect
-
-  -- * GL_EXT_multi_draw_indirect
-  , glMultiDrawArraysIndirectEXT
-  , glMultiDrawElementsIndirectEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_EXT_multi_draw_indirect extension is available.
-
-gl_EXT_multi_draw_indirect :: Bool
-gl_EXT_multi_draw_indirect = member "GL_EXT_multi_draw_indirect" extensions
-{-# NOINLINE gl_EXT_multi_draw_indirect #-}
-
--- | Usage: @'glMultiDrawArraysIndirectEXT' mode indirect drawcount stride@
---
--- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawArraysIndirect'.
-
-
-glMultiDrawArraysIndirectEXT :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawArraysIndirectEXT = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectEXTFunPtr
-
-glMultiDrawArraysIndirectEXTFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysIndirectEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectEXT")
-
-{-# NOINLINE glMultiDrawArraysIndirectEXTFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsIndirectEXT' mode type indirect drawcount stride@
---
--- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsIndirect'.
-
-
-glMultiDrawElementsIndirectEXT :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawElementsIndirectEXT = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectEXTFunPtr
-
-glMultiDrawElementsIndirectEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawElementsIndirectEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectEXT")
-
-{-# NOINLINE glMultiDrawElementsIndirectEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Multisample.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Multisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Multisample.hs
+++ /dev/null
@@ -1,100 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Multisample (
-  -- * Extension Support
-    gl_EXT_multisample
-
-  -- * GL_EXT_multisample
-  , glSampleMaskEXT
-  , glSamplePatternEXT
-  , pattern GL_1PASS_EXT
-  , pattern GL_2PASS_0_EXT
-  , pattern GL_2PASS_1_EXT
-  , pattern GL_4PASS_0_EXT
-  , pattern GL_4PASS_1_EXT
-  , pattern GL_4PASS_2_EXT
-  , pattern GL_4PASS_3_EXT
-  , pattern GL_MULTISAMPLE_BIT_EXT
-  , pattern GL_MULTISAMPLE_EXT
-  , pattern GL_SAMPLES_EXT
-  , pattern GL_SAMPLE_ALPHA_TO_MASK_EXT
-  , pattern GL_SAMPLE_ALPHA_TO_ONE_EXT
-  , pattern GL_SAMPLE_BUFFERS_EXT
-  , pattern GL_SAMPLE_MASK_EXT
-  , pattern GL_SAMPLE_MASK_INVERT_EXT
-  , pattern GL_SAMPLE_MASK_VALUE_EXT
-  , pattern GL_SAMPLE_PATTERN_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 GL_EXT_multisample extension is available.
-
-gl_EXT_multisample :: Bool
-gl_EXT_multisample = member "GL_EXT_multisample" extensions
-{-# NOINLINE gl_EXT_multisample #-}
-
--- | Usage: @'glSampleMaskEXT' value invert@
---
--- The parameter @value@ is a @ClampedFloat32@.
---
--- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glSampleMaskEXT :: MonadIO m => GLclampf -> GLboolean -> m ()
-glSampleMaskEXT = fficlampfbooleanIOV glSampleMaskEXTFunPtr
-
-glSampleMaskEXTFunPtr :: FunPtr (GLclampf -> GLboolean -> IO ())
-glSampleMaskEXTFunPtr = unsafePerformIO (getProcAddress "glSampleMaskEXT")
-
-{-# NOINLINE glSampleMaskEXTFunPtr #-}
-
--- | Usage: @'glSamplePatternEXT' pattern@
---
--- The parameter @pattern@ is a @SamplePatternEXT@.
-
-
-glSamplePatternEXT :: MonadIO m => GLenum -> m ()
-glSamplePatternEXT = ffienumIOV glSamplePatternEXTFunPtr
-
-glSamplePatternEXTFunPtr :: FunPtr (GLenum -> IO ())
-glSamplePatternEXTFunPtr = unsafePerformIO (getProcAddress "glSamplePatternEXT")
-
-{-# NOINLINE glSamplePatternEXTFunPtr #-}
-
-pattern GL_1PASS_EXT = 0x80A1
-
-pattern GL_2PASS_0_EXT = 0x80A2
-
-pattern GL_2PASS_1_EXT = 0x80A3
-
-pattern GL_4PASS_0_EXT = 0x80A4
-
-pattern GL_4PASS_1_EXT = 0x80A5
-
-pattern GL_4PASS_2_EXT = 0x80A6
-
-pattern GL_4PASS_3_EXT = 0x80A7
-
-pattern GL_MULTISAMPLE_BIT_EXT = 0x20000000
-
-pattern GL_SAMPLES_EXT = 0x80A9
-
-pattern GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E
-
-pattern GL_SAMPLE_BUFFERS_EXT = 0x80A8
-
-pattern GL_SAMPLE_MASK_EXT = 0x80A0
-
-pattern GL_SAMPLE_MASK_INVERT_EXT = 0x80AB
-
-pattern GL_SAMPLE_MASK_VALUE_EXT = 0x80AA
-
-pattern GL_SAMPLE_PATTERN_EXT = 0x80AC
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/MultisampleCompatibility.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/MultisampleCompatibility.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/MultisampleCompatibility.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.MultisampleCompatibility (
-  -- * Extension Support
-    gl_EXT_multisample_compatibility
-
-  -- * GL_EXT_multisample_compatibility
-  , pattern GL_MULTISAMPLE_EXT
-  , pattern GL_SAMPLE_ALPHA_TO_ONE_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisample_compatibility.txt GL_EXT_multisample_compatibility> extension is available.
-
-gl_EXT_multisample_compatibility :: Bool
-gl_EXT_multisample_compatibility = member "GL_EXT_multisample_compatibility" extensions
-{-# NOINLINE gl_EXT_multisample_compatibility #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.MultisampledRenderToTexture (
-  -- * Extension Support
-    gl_EXT_multisampled_render_to_texture
-
-  -- * GL_EXT_multisampled_render_to_texture
-  , glFramebufferTexture2DMultisampleEXT
-  , glRenderbufferStorageMultisampleEXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
-  , pattern GL_MAX_SAMPLES_EXT
-  , pattern GL_RENDERBUFFER_SAMPLES_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://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt GL_EXT_multisampled_render_to_texture> extension is available.
-
-gl_EXT_multisampled_render_to_texture :: Bool
-gl_EXT_multisampled_render_to_texture = member "GL_EXT_multisampled_render_to_texture" extensions
-{-# NOINLINE gl_EXT_multisampled_render_to_texture #-}
-
--- | Usage: @'glFramebufferTexture2DMultisampleEXT' target attachment textarget texture level samples@
-
-
-glFramebufferTexture2DMultisampleEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
-glFramebufferTexture2DMultisampleEXT = ffienumenumenumuintintsizeiIOV glFramebufferTexture2DMultisampleEXTFunPtr
-
-glFramebufferTexture2DMultisampleEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ())
-glFramebufferTexture2DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DMultisampleEXT")
-
-{-# NOINLINE glFramebufferTexture2DMultisampleEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs
+++ /dev/null
@@ -1,77 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.MultiviewDrawBuffers (
-  -- * Extension Support
-    gl_EXT_multiview_draw_buffers
-
-  -- * GL_EXT_multiview_draw_buffers
-  , glDrawBuffersIndexedEXT
-  , glGetIntegeri_vEXT
-  , glReadBufferIndexedEXT
-  , pattern GL_COLOR_ATTACHMENT_EXT
-  , pattern GL_DRAW_BUFFER_EXT
-  , pattern GL_MAX_MULTIVIEW_BUFFERS_EXT
-  , pattern GL_MULTIVIEW_EXT
-  , pattern GL_READ_BUFFER_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt GL_EXT_multiview_draw_buffers> extension is available.
-
-gl_EXT_multiview_draw_buffers :: Bool
-gl_EXT_multiview_draw_buffers = member "GL_EXT_multiview_draw_buffers" extensions
-{-# NOINLINE gl_EXT_multiview_draw_buffers #-}
-
--- | Usage: @'glDrawBuffersIndexedEXT' n location indices@
---
--- The length of @location@ should be @n@.
---
--- The length of @indices@ should be @n@.
-
-
-glDrawBuffersIndexedEXT :: MonadIO m => GLint -> Ptr GLenum -> Ptr GLint -> m ()
-glDrawBuffersIndexedEXT = ffiintPtrenumPtrintIOV glDrawBuffersIndexedEXTFunPtr
-
-glDrawBuffersIndexedEXTFunPtr :: FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ())
-glDrawBuffersIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersIndexedEXT")
-
-{-# NOINLINE glDrawBuffersIndexedEXTFunPtr #-}
-
--- | Usage: @'glGetIntegeri_vEXT' target index data@
-
-
-glGetIntegeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetIntegeri_vEXT = ffienumuintPtrintIOV glGetIntegeri_vEXTFunPtr
-
-glGetIntegeri_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetIntegeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_vEXT")
-
-{-# NOINLINE glGetIntegeri_vEXTFunPtr #-}
-
--- | Usage: @'glReadBufferIndexedEXT' src index@
-
-
-glReadBufferIndexedEXT :: MonadIO m => GLenum -> GLint -> m ()
-glReadBufferIndexedEXT = ffienumintIOV glReadBufferIndexedEXTFunPtr
-
-glReadBufferIndexedEXTFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glReadBufferIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glReadBufferIndexedEXT")
-
-{-# NOINLINE glReadBufferIndexedEXTFunPtr #-}
-
-pattern GL_COLOR_ATTACHMENT_EXT = 0x90F0
-
-pattern GL_DRAW_BUFFER_EXT = 0x0C01
-
-pattern GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2
-
-pattern GL_MULTIVIEW_EXT = 0x90F1
-
-pattern GL_READ_BUFFER_EXT = 0x0C02
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs
+++ /dev/null
@@ -1,34 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.OcclusionQueryBoolean (
-  -- * Extension Support
-    gl_EXT_occlusion_query_boolean
-
-  -- * GL_EXT_occlusion_query_boolean
-  , glBeginQueryEXT
-  , glDeleteQueriesEXT
-  , glEndQueryEXT
-  , glGenQueriesEXT
-  , glGetQueryObjectuivEXT
-  , glGetQueryivEXT
-  , glIsQueryEXT
-  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
-  , pattern GL_ANY_SAMPLES_PASSED_EXT
-  , pattern GL_CURRENT_QUERY_EXT
-  , pattern GL_QUERY_RESULT_AVAILABLE_EXT
-  , pattern GL_QUERY_RESULT_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt GL_EXT_occlusion_query_boolean> extension is available.
-
-gl_EXT_occlusion_query_boolean :: Bool
-gl_EXT_occlusion_query_boolean = member "GL_EXT_occlusion_query_boolean" extensions
-{-# NOINLINE gl_EXT_occlusion_query_boolean #-}
-
-pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A
-
-pattern GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PackedDepthStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PackedDepthStencil.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PackedDepthStencil (
-  -- * Extension Support
-    gl_EXT_packed_depth_stencil
-
-  -- * GL_EXT_packed_depth_stencil
-  , pattern GL_DEPTH24_STENCIL8_EXT
-  , pattern GL_DEPTH_STENCIL_EXT
-  , pattern GL_TEXTURE_STENCIL_SIZE_EXT
-  , pattern GL_UNSIGNED_INT_24_8_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_depth_stencil.txt GL_EXT_packed_depth_stencil> extension is available.
-
-gl_EXT_packed_depth_stencil :: Bool
-gl_EXT_packed_depth_stencil = member "GL_EXT_packed_depth_stencil" extensions
-{-# NOINLINE gl_EXT_packed_depth_stencil #-}
-
-pattern GL_DEPTH24_STENCIL8_EXT = 0x88F0
-
-pattern GL_DEPTH_STENCIL_EXT = 0x84F9
-
-pattern GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1
-
-pattern GL_UNSIGNED_INT_24_8_EXT = 0x84FA
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PackedFloat.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PackedFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PackedFloat.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PackedFloat (
-  -- * Extension Support
-    gl_EXT_packed_float
-
-  -- * GL_EXT_packed_float
-  , pattern GL_R11F_G11F_B10F_EXT
-  , pattern GL_RGBA_SIGNED_COMPONENTS_EXT
-  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_float.txt GL_EXT_packed_float> extension is available.
-
-gl_EXT_packed_float :: Bool
-gl_EXT_packed_float = member "GL_EXT_packed_float" extensions
-{-# NOINLINE gl_EXT_packed_float #-}
-
-pattern GL_R11F_G11F_B10F_EXT = 0x8C3A
-
-pattern GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C
-
-pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PackedPixels.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PackedPixels.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PackedPixels.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PackedPixels (
-  -- * Extension Support
-    gl_EXT_packed_pixels
-
-  -- * GL_EXT_packed_pixels
-  , pattern GL_UNSIGNED_BYTE_3_3_2_EXT
-  , pattern GL_UNSIGNED_INT_10_10_10_2_EXT
-  , pattern GL_UNSIGNED_INT_8_8_8_8_EXT
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT
-  , pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_pixels.txt GL_EXT_packed_pixels> extension is available.
-
-gl_EXT_packed_pixels :: Bool
-gl_EXT_packed_pixels = member "GL_EXT_packed_pixels" extensions
-{-# NOINLINE gl_EXT_packed_pixels #-}
-
-pattern GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032
-
-pattern GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036
-
-pattern GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033
-
-pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PalettedTexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PalettedTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PalettedTexture.hs
+++ /dev/null
@@ -1,129 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PalettedTexture (
-  -- * Extension Support
-    gl_EXT_paletted_texture
-
-  -- * GL_EXT_paletted_texture
-  , glColorTableEXT
-  , glGetColorTableEXT
-  , glGetColorTableParameterfvEXT
-  , glGetColorTableParameterivEXT
-  , pattern GL_COLOR_INDEX12_EXT
-  , pattern GL_COLOR_INDEX16_EXT
-  , pattern GL_COLOR_INDEX1_EXT
-  , pattern GL_COLOR_INDEX2_EXT
-  , pattern GL_COLOR_INDEX4_EXT
-  , pattern GL_COLOR_INDEX8_EXT
-  , pattern GL_TEXTURE_INDEX_SIZE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/paletted_texture.txt GL_EXT_paletted_texture> extension is available.
-
-gl_EXT_paletted_texture :: Bool
-gl_EXT_paletted_texture = member "GL_EXT_paletted_texture" extensions
-{-# NOINLINE gl_EXT_paletted_texture #-}
-
--- | Usage: @'glColorTableEXT' target internalFormat width format type table@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @internalFormat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @table@ should be @COMPSIZE(format,type,width)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTable'.
-
-
-glColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glColorTableEXT = ffienumenumsizeienumenumPtrVIOV glColorTableEXTFunPtr
-
-glColorTableEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glColorTableEXTFunPtr = unsafePerformIO (getProcAddress "glColorTableEXT")
-
-{-# NOINLINE glColorTableEXTFunPtr #-}
-
--- | Usage: @'glGetColorTableEXT' target format type data@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @data@ should be @COMPSIZE(target,format,type)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glGetColorTable'.
-
-
-glGetColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glGetColorTableEXT = ffienumenumenumPtrVIOV glGetColorTableEXTFunPtr
-
-glGetColorTableEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetColorTableEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableEXT")
-
-{-# NOINLINE glGetColorTableEXTFunPtr #-}
-
--- | Usage: @'glGetColorTableParameterfvEXT' target pname params@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @pname@ is a @GetColorTableParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glGetColorTableParameterfv'.
-
-
-glGetColorTableParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetColorTableParameterfvEXT = ffienumenumPtrfloatIOV glGetColorTableParameterfvEXTFunPtr
-
-glGetColorTableParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetColorTableParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfvEXT")
-
-{-# NOINLINE glGetColorTableParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetColorTableParameterivEXT' target pname params@
---
--- The parameter @target@ is a @ColorTableTarget@.
---
--- The parameter @pname@ is a @GetColorTableParameterPName@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glGetColorTableParameteriv'.
-
-
-glGetColorTableParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetColorTableParameterivEXT = ffienumenumPtrintIOV glGetColorTableParameterivEXTFunPtr
-
-glGetColorTableParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetColorTableParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterivEXT")
-
-{-# NOINLINE glGetColorTableParameterivEXTFunPtr #-}
-
-pattern GL_COLOR_INDEX12_EXT = 0x80E6
-
-pattern GL_COLOR_INDEX16_EXT = 0x80E7
-
-pattern GL_COLOR_INDEX1_EXT = 0x80E2
-
-pattern GL_COLOR_INDEX2_EXT = 0x80E3
-
-pattern GL_COLOR_INDEX4_EXT = 0x80E4
-
-pattern GL_COLOR_INDEX8_EXT = 0x80E5
-
-pattern GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PixelBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PixelBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PixelBufferObject.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PixelBufferObject (
-  -- * Extension Support
-    gl_EXT_pixel_buffer_object
-
-  -- * GL_EXT_pixel_buffer_object
-  , pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT
-  , pattern GL_PIXEL_PACK_BUFFER_EXT
-  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
-  , pattern GL_PIXEL_UNPACK_BUFFER_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_buffer_object.txt GL_EXT_pixel_buffer_object> extension is available.
-
-gl_EXT_pixel_buffer_object :: Bool
-gl_EXT_pixel_buffer_object = member "GL_EXT_pixel_buffer_object" extensions
-{-# NOINLINE gl_EXT_pixel_buffer_object #-}
-
-pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED
-
-pattern GL_PIXEL_PACK_BUFFER_EXT = 0x88EB
-
-pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF
-
-pattern GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PixelTransform.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PixelTransform.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PixelTransform.hs
+++ /dev/null
@@ -1,145 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PixelTransform (
-  -- * Extension Support
-    gl_EXT_pixel_transform
-
-  -- * GL_EXT_pixel_transform
-  , glGetPixelTransformParameterfvEXT
-  , glGetPixelTransformParameterivEXT
-  , glPixelTransformParameterfEXT
-  , glPixelTransformParameterfvEXT
-  , glPixelTransformParameteriEXT
-  , glPixelTransformParameterivEXT
-  , pattern GL_AVERAGE_EXT
-  , pattern GL_CUBIC_EXT
-  , pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
-  , pattern GL_PIXEL_CUBIC_WEIGHT_EXT
-  , pattern GL_PIXEL_MAG_FILTER_EXT
-  , pattern GL_PIXEL_MIN_FILTER_EXT
-  , pattern GL_PIXEL_TRANSFORM_2D_EXT
-  , pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT
-  , pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform.txt GL_EXT_pixel_transform> extension is available.
-
-gl_EXT_pixel_transform :: Bool
-gl_EXT_pixel_transform = member "GL_EXT_pixel_transform" extensions
-{-# NOINLINE gl_EXT_pixel_transform #-}
-
--- | Usage: @'glGetPixelTransformParameterfvEXT' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetPixelTransformParameterfvEXT = ffienumenumPtrfloatIOV glGetPixelTransformParameterfvEXTFunPtr
-
-glGetPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetPixelTransformParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetPixelTransformParameterfvEXT")
-
-{-# NOINLINE glGetPixelTransformParameterfvEXTFunPtr #-}
-
--- | Usage: @'glGetPixelTransformParameterivEXT' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetPixelTransformParameterivEXT = ffienumenumPtrintIOV glGetPixelTransformParameterivEXTFunPtr
-
-glGetPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetPixelTransformParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetPixelTransformParameterivEXT")
-
-{-# NOINLINE glGetPixelTransformParameterivEXTFunPtr #-}
-
--- | Usage: @'glPixelTransformParameterfEXT' target pname param@
---
--- The parameter @target@ is a @PixelTransformTargetEXT@.
---
--- The parameter @pname@ is a @PixelTransformPNameEXT@.
-
-
-glPixelTransformParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glPixelTransformParameterfEXT = ffienumenumfloatIOV glPixelTransformParameterfEXTFunPtr
-
-glPixelTransformParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glPixelTransformParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameterfEXT")
-
-{-# NOINLINE glPixelTransformParameterfEXTFunPtr #-}
-
--- | Usage: @'glPixelTransformParameterfvEXT' target pname params@
---
--- The parameter @target@ is a @PixelTransformTargetEXT@.
---
--- The parameter @pname@ is a @PixelTransformPNameEXT@.
---
--- The length of @params@ should be @1@.
-
-
-glPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glPixelTransformParameterfvEXT = ffienumenumPtrfloatIOV glPixelTransformParameterfvEXTFunPtr
-
-glPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glPixelTransformParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameterfvEXT")
-
-{-# NOINLINE glPixelTransformParameterfvEXTFunPtr #-}
-
--- | Usage: @'glPixelTransformParameteriEXT' target pname param@
---
--- The parameter @target@ is a @PixelTransformTargetEXT@.
---
--- The parameter @pname@ is a @PixelTransformPNameEXT@.
-
-
-glPixelTransformParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glPixelTransformParameteriEXT = ffienumenumintIOV glPixelTransformParameteriEXTFunPtr
-
-glPixelTransformParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glPixelTransformParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameteriEXT")
-
-{-# NOINLINE glPixelTransformParameteriEXTFunPtr #-}
-
--- | Usage: @'glPixelTransformParameterivEXT' target pname params@
---
--- The parameter @target@ is a @PixelTransformTargetEXT@.
---
--- The parameter @pname@ is a @PixelTransformPNameEXT@.
---
--- The length of @params@ should be @1@.
-
-
-glPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glPixelTransformParameterivEXT = ffienumenumPtrintIOV glPixelTransformParameterivEXTFunPtr
-
-glPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glPixelTransformParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameterivEXT")
-
-{-# NOINLINE glPixelTransformParameterivEXTFunPtr #-}
-
-pattern GL_AVERAGE_EXT = 0x8335
-
-pattern GL_CUBIC_EXT = 0x8334
-
-pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337
-
-pattern GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333
-
-pattern GL_PIXEL_MAG_FILTER_EXT = 0x8331
-
-pattern GL_PIXEL_MIN_FILTER_EXT = 0x8332
-
-pattern GL_PIXEL_TRANSFORM_2D_EXT = 0x8330
-
-pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338
-
-pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PixelTransformColorTable.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PixelTransformColorTable.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PixelTransformColorTable.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PixelTransformColorTable (
-  -- * Extension Support
-    gl_EXT_pixel_transform_color_table
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform_color_table.txt GL_EXT_pixel_transform_color_table> extension is available.
-
-gl_EXT_pixel_transform_color_table :: Bool
-gl_EXT_pixel_transform_color_table = member "GL_EXT_pixel_transform_color_table" extensions
-{-# NOINLINE gl_EXT_pixel_transform_color_table #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PointParameters.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PointParameters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PointParameters.hs
+++ /dev/null
@@ -1,72 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PointParameters (
-  -- * Extension Support
-    gl_EXT_point_parameters
-
-  -- * GL_EXT_point_parameters
-  , glPointParameterfEXT
-  , glPointParameterfvEXT
-  , pattern GL_DISTANCE_ATTENUATION_EXT
-  , pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT
-  , pattern GL_POINT_SIZE_MAX_EXT
-  , pattern GL_POINT_SIZE_MIN_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/point_parameters.txt GL_EXT_point_parameters> extension is available.
-
-gl_EXT_point_parameters :: Bool
-gl_EXT_point_parameters = member "GL_EXT_point_parameters" extensions
-{-# NOINLINE gl_EXT_point_parameters #-}
-
--- | Usage: @'glPointParameterfEXT' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @param@ is a @CheckedFloat32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterf'.
-
-
-glPointParameterfEXT :: MonadIO m => GLenum -> GLfloat -> m ()
-glPointParameterfEXT = ffienumfloatIOV glPointParameterfEXTFunPtr
-
-glPointParameterfEXTFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPointParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glPointParameterfEXT")
-
-{-# NOINLINE glPointParameterfEXTFunPtr #-}
-
--- | Usage: @'glPointParameterfvEXT' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterfv'.
-
-
-glPointParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPointParameterfvEXT = ffienumPtrfloatIOV glPointParameterfvEXTFunPtr
-
-glPointParameterfvEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPointParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glPointParameterfvEXT")
-
-{-# NOINLINE glPointParameterfvEXTFunPtr #-}
-
-pattern GL_DISTANCE_ATTENUATION_EXT = 0x8129
-
-pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128
-
-pattern GL_POINT_SIZE_MAX_EXT = 0x8127
-
-pattern GL_POINT_SIZE_MIN_EXT = 0x8126
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PolygonOffset.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PolygonOffset.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PolygonOffset.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PolygonOffset (
-  -- * Extension Support
-    gl_EXT_polygon_offset
-
-  -- * GL_EXT_polygon_offset
-  , glPolygonOffsetEXT
-  , pattern GL_POLYGON_OFFSET_BIAS_EXT
-  , pattern GL_POLYGON_OFFSET_EXT
-  , pattern GL_POLYGON_OFFSET_FACTOR_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset.txt GL_EXT_polygon_offset> extension is available.
-
-gl_EXT_polygon_offset :: Bool
-gl_EXT_polygon_offset = member "GL_EXT_polygon_offset" extensions
-{-# NOINLINE gl_EXT_polygon_offset #-}
-
--- | Usage: @'glPolygonOffsetEXT' factor bias@
-
-
-glPolygonOffsetEXT :: MonadIO m => GLfloat -> GLfloat -> m ()
-glPolygonOffsetEXT = ffifloatfloatIOV glPolygonOffsetEXTFunPtr
-
-glPolygonOffsetEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glPolygonOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetEXT")
-
-{-# NOINLINE glPolygonOffsetEXTFunPtr #-}
-
-pattern GL_POLYGON_OFFSET_BIAS_EXT = 0x8039
-
-pattern GL_POLYGON_OFFSET_EXT = 0x8037
-
-pattern GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs
+++ /dev/null
@@ -1,37 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PolygonOffsetClamp (
-  -- * Extension Support
-    gl_EXT_polygon_offset_clamp
-
-  -- * GL_EXT_polygon_offset_clamp
-  , glPolygonOffsetClampEXT
-  , pattern GL_POLYGON_OFFSET_CLAMP_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset_clamp.txt GL_EXT_polygon_offset_clamp> extension is available.
-
-gl_EXT_polygon_offset_clamp :: Bool
-gl_EXT_polygon_offset_clamp = member "GL_EXT_polygon_offset_clamp" extensions
-{-# NOINLINE gl_EXT_polygon_offset_clamp #-}
-
--- | Usage: @'glPolygonOffsetClampEXT' factor units clamp@
-
-
-glPolygonOffsetClampEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glPolygonOffsetClampEXT = ffifloatfloatfloatIOV glPolygonOffsetClampEXTFunPtr
-
-glPolygonOffsetClampEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glPolygonOffsetClampEXTFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetClampEXT")
-
-{-# NOINLINE glPolygonOffsetClampEXTFunPtr #-}
-
-pattern GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PostDepthCoverage.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PostDepthCoverage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PostDepthCoverage.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PostDepthCoverage (
-  -- * Extension Support
-    gl_EXT_post_depth_coverage
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/post_depth_coverage.txt GL_EXT_post_depth_coverage> extension is available.
-
-gl_EXT_post_depth_coverage :: Bool
-gl_EXT_post_depth_coverage = member "GL_EXT_post_depth_coverage" extensions
-{-# NOINLINE gl_EXT_post_depth_coverage #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PrimitiveBoundingBox (
-  -- * Extension Support
-    gl_EXT_primitive_bounding_box
-
-  -- * GL_EXT_primitive_bounding_box
-  , glPrimitiveBoundingBoxEXT
-  , pattern GL_PRIMITIVE_BOUNDING_BOX_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_primitive_bounding_box.txt GL_EXT_primitive_bounding_box> extension is available.
-
-gl_EXT_primitive_bounding_box :: Bool
-gl_EXT_primitive_bounding_box = member "GL_EXT_primitive_bounding_box" extensions
-{-# NOINLINE gl_EXT_primitive_bounding_box #-}
-
--- | Usage: @'glPrimitiveBoundingBoxEXT' minX minY minZ minW maxX maxY maxZ maxW@
---
--- This command is an alias for 'Graphics.GL.Embedded32.glPrimitiveBoundingBox'.
-
-
-glPrimitiveBoundingBoxEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glPrimitiveBoundingBoxEXT = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxEXTFunPtr
-
-glPrimitiveBoundingBoxEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glPrimitiveBoundingBoxEXTFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBoxEXT")
-
-{-# NOINLINE glPrimitiveBoundingBoxEXTFunPtr #-}
-
-pattern GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ProtectedTextures.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ProtectedTextures.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ProtectedTextures.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ProtectedTextures (
-  -- * Extension Support
-    gl_EXT_protected_textures
-
-  -- * GL_EXT_protected_textures
-  , pattern GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT
-  , pattern GL_TEXTURE_PROTECTED_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_protected_textures.txt GL_EXT_protected_textures> extension is available.
-
-gl_EXT_protected_textures :: Bool
-gl_EXT_protected_textures = member "GL_EXT_protected_textures" extensions
-{-# NOINLINE gl_EXT_protected_textures #-}
-
-pattern GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT = 0x00000010
-
-pattern GL_TEXTURE_PROTECTED_EXT = 0x8BFA
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ProvokingVertex.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ProvokingVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ProvokingVertex.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ProvokingVertex (
-  -- * Extension Support
-    gl_EXT_provoking_vertex
-
-  -- * GL_EXT_provoking_vertex
-  , glProvokingVertexEXT
-  , pattern GL_FIRST_VERTEX_CONVENTION_EXT
-  , pattern GL_LAST_VERTEX_CONVENTION_EXT
-  , pattern GL_PROVOKING_VERTEX_EXT
-  , pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_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/provoking_vertex.txt GL_EXT_provoking_vertex> extension is available.
-
-gl_EXT_provoking_vertex :: Bool
-gl_EXT_provoking_vertex = member "GL_EXT_provoking_vertex" extensions
-{-# NOINLINE gl_EXT_provoking_vertex #-}
-
--- | Usage: @'glProvokingVertexEXT' mode@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProvokingVertex'.
-
-
-glProvokingVertexEXT :: MonadIO m => GLenum -> m ()
-glProvokingVertexEXT = ffienumIOV glProvokingVertexEXTFunPtr
-
-glProvokingVertexEXTFunPtr :: FunPtr (GLenum -> IO ())
-glProvokingVertexEXTFunPtr = unsafePerformIO (getProcAddress "glProvokingVertexEXT")
-
-{-# NOINLINE glProvokingVertexEXTFunPtr #-}
-
-pattern GL_PROVOKING_VERTEX_EXT = 0x8E4F
-
-pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/PvrtcSRGB.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/PvrtcSRGB.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/PvrtcSRGB.hs
+++ /dev/null
@@ -1,35 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.PvrtcSRGB (
-  -- * Extension Support
-    gl_EXT_pvrtc_sRGB
-
-  -- * GL_EXT_pvrtc_sRGB
-  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT
-  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG
-  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT
-  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG
-  , pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT
-  , pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_pvrtc_sRGB.txt GL_EXT_pvrtc_sRGB> extension is available.
-
-gl_EXT_pvrtc_sRGB :: Bool
-gl_EXT_pvrtc_sRGB = member "GL_EXT_pvrtc_sRGB" extensions
-{-# NOINLINE gl_EXT_pvrtc_sRGB #-}
-
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56
-
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0
-
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57
-
-pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1
-
-pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54
-
-pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/RasterMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/RasterMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/RasterMultisample.hs
+++ /dev/null
@@ -1,25 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.RasterMultisample (
-  -- * Extension Support
-    gl_EXT_raster_multisample
-
-  -- * GL_EXT_raster_multisample
-  , glRasterSamplesEXT
-  , pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT
-  , pattern GL_MAX_RASTER_SAMPLES_EXT
-  , pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
-  , pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
-  , pattern GL_RASTER_MULTISAMPLE_EXT
-  , pattern GL_RASTER_SAMPLES_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/raster_multisample.txt GL_EXT_raster_multisample> extension is available.
-
-gl_EXT_raster_multisample :: Bool
-gl_EXT_raster_multisample = member "GL_EXT_raster_multisample" extensions
-{-# NOINLINE gl_EXT_raster_multisample #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ReadFormatBgra.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ReadFormatBgra.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ReadFormatBgra.hs
+++ /dev/null
@@ -1,25 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ReadFormatBgra (
-  -- * Extension Support
-    gl_EXT_read_format_bgra
-
-  -- * GL_EXT_read_format_bgra
-  , pattern GL_BGRA_EXT
-  , pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_read_format_bgra.txt GL_EXT_read_format_bgra> extension is available.
-
-gl_EXT_read_format_bgra :: Bool
-gl_EXT_read_format_bgra = member "GL_EXT_read_format_bgra" extensions
-{-# NOINLINE gl_EXT_read_format_bgra #-}
-
-pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/RenderSnorm.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/RenderSnorm.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/RenderSnorm.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.RenderSnorm (
-  -- * Extension Support
-    gl_EXT_render_snorm
-
-  -- * GL_EXT_render_snorm
-  , pattern GL_BYTE
-  , pattern GL_R16_SNORM_EXT
-  , pattern GL_R8_SNORM
-  , pattern GL_RG16_SNORM_EXT
-  , pattern GL_RG8_SNORM
-  , pattern GL_RGBA16_SNORM_EXT
-  , pattern GL_RGBA8_SNORM
-  , pattern GL_SHORT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the GL_EXT_render_snorm extension is available.
-
-gl_EXT_render_snorm :: Bool
-gl_EXT_render_snorm = member "GL_EXT_render_snorm" extensions
-{-# NOINLINE gl_EXT_render_snorm #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/RescaleNormal.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/RescaleNormal.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/RescaleNormal.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.RescaleNormal (
-  -- * Extension Support
-    gl_EXT_rescale_normal
-
-  -- * GL_EXT_rescale_normal
-  , pattern GL_RESCALE_NORMAL_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/rescale_normal.txt GL_EXT_rescale_normal> extension is available.
-
-gl_EXT_rescale_normal :: Bool
-gl_EXT_rescale_normal = member "GL_EXT_rescale_normal" extensions
-{-# NOINLINE gl_EXT_rescale_normal #-}
-
-pattern GL_RESCALE_NORMAL_EXT = 0x803A
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Robustness.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Robustness.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Robustness.hs
+++ /dev/null
@@ -1,101 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Robustness (
-  -- * Extension Support
-    gl_EXT_robustness
-
-  -- * GL_EXT_robustness
-  , glGetGraphicsResetStatusEXT
-  , glGetnUniformfvEXT
-  , glGetnUniformivEXT
-  , glReadnPixelsEXT
-  , pattern GL_CONTEXT_ROBUST_ACCESS_EXT
-  , pattern GL_GUILTY_CONTEXT_RESET_EXT
-  , pattern GL_INNOCENT_CONTEXT_RESET_EXT
-  , pattern GL_LOSE_CONTEXT_ON_RESET_EXT
-  , pattern GL_NO_ERROR
-  , pattern GL_NO_RESET_NOTIFICATION_EXT
-  , pattern GL_RESET_NOTIFICATION_STRATEGY_EXT
-  , pattern GL_UNKNOWN_CONTEXT_RESET_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://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt GL_EXT_robustness> extension is available.
-
-gl_EXT_robustness :: Bool
-gl_EXT_robustness = member "GL_EXT_robustness" extensions
-{-# NOINLINE gl_EXT_robustness #-}
-
--- | Usage: @'glGetGraphicsResetStatusEXT'@
-
-
-glGetGraphicsResetStatusEXT :: MonadIO m => m GLenum
-glGetGraphicsResetStatusEXT = ffiIOenum glGetGraphicsResetStatusEXTFunPtr
-
-glGetGraphicsResetStatusEXTFunPtr :: FunPtr (IO GLenum)
-glGetGraphicsResetStatusEXTFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusEXT")
-
-{-# NOINLINE glGetGraphicsResetStatusEXTFunPtr #-}
-
--- | Usage: @'glGetnUniformfvEXT' program location bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetnUniformfvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glGetnUniformfvEXT = ffiuintintsizeiPtrfloatIOV glGetnUniformfvEXTFunPtr
-
-glGetnUniformfvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnUniformfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfvEXT")
-
-{-# NOINLINE glGetnUniformfvEXTFunPtr #-}
-
--- | Usage: @'glGetnUniformivEXT' program location bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetnUniformivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glGetnUniformivEXT = ffiuintintsizeiPtrintIOV glGetnUniformivEXTFunPtr
-
-glGetnUniformivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glGetnUniformivEXTFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivEXT")
-
-{-# NOINLINE glGetnUniformivEXTFunPtr #-}
-
--- | Usage: @'glReadnPixelsEXT' x y width height format type bufSize data@
---
--- The length of @data@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glReadnPixels'.
-
-
-glReadnPixelsEXT :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glReadnPixelsEXT = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsEXTFunPtr
-
-glReadnPixelsEXTFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glReadnPixelsEXTFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsEXT")
-
-{-# NOINLINE glReadnPixelsEXTFunPtr #-}
-
-pattern GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3
-
-pattern GL_GUILTY_CONTEXT_RESET_EXT = 0x8253
-
-pattern GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254
-
-pattern GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252
-
-pattern GL_NO_RESET_NOTIFICATION_EXT = 0x8261
-
-pattern GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256
-
-pattern GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SRGB.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SRGB.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SRGB.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SRGB (
-  -- * Extension Support
-    gl_EXT_sRGB
-
-  -- * GL_EXT_sRGB
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT
-  , pattern GL_SRGB8_ALPHA8_EXT
-  , pattern GL_SRGB_ALPHA_EXT
-  , pattern GL_SRGB_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_sRGB.txt GL_EXT_sRGB> extension is available.
-
-gl_EXT_sRGB :: Bool
-gl_EXT_sRGB = member "GL_EXT_sRGB" extensions
-{-# NOINLINE gl_EXT_sRGB #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SRGBWriteControl.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SRGBWriteControl.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SRGBWriteControl.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SRGBWriteControl (
-  -- * Extension Support
-    gl_EXT_sRGB_write_control
-
-  -- * GL_EXT_sRGB_write_control
-  , pattern GL_FRAMEBUFFER_SRGB_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_sRGB_write_control.txt GL_EXT_sRGB_write_control> extension is available.
-
-gl_EXT_sRGB_write_control :: Bool
-gl_EXT_sRGB_write_control = member "GL_EXT_sRGB_write_control" extensions
-{-# NOINLINE gl_EXT_sRGB_write_control #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SecondaryColor.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SecondaryColor.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SecondaryColor.hs
+++ /dev/null
@@ -1,381 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SecondaryColor (
-  -- * Extension Support
-    gl_EXT_secondary_color
-
-  -- * GL_EXT_secondary_color
-  , glSecondaryColor3bEXT
-  , glSecondaryColor3bvEXT
-  , glSecondaryColor3dEXT
-  , glSecondaryColor3dvEXT
-  , glSecondaryColor3fEXT
-  , glSecondaryColor3fvEXT
-  , glSecondaryColor3iEXT
-  , glSecondaryColor3ivEXT
-  , glSecondaryColor3sEXT
-  , glSecondaryColor3svEXT
-  , glSecondaryColor3ubEXT
-  , glSecondaryColor3ubvEXT
-  , glSecondaryColor3uiEXT
-  , glSecondaryColor3uivEXT
-  , glSecondaryColor3usEXT
-  , glSecondaryColor3usvEXT
-  , glSecondaryColorPointerEXT
-  , pattern GL_COLOR_SUM_EXT
-  , pattern GL_CURRENT_SECONDARY_COLOR_EXT
-  , pattern GL_SECONDARY_COLOR_ARRAY_EXT
-  , pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT
-  , pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
-  , pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
-  , pattern GL_SECONDARY_COLOR_ARRAY_TYPE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/secondary_color.txt GL_EXT_secondary_color> extension is available.
-
-gl_EXT_secondary_color :: Bool
-gl_EXT_secondary_color = member "GL_EXT_secondary_color" extensions
-{-# NOINLINE gl_EXT_secondary_color #-}
-
--- | Usage: @'glSecondaryColor3bEXT' red green blue@
---
--- The parameter @red@ is a @ColorB@.
---
--- The parameter @green@ is a @ColorB@.
---
--- The parameter @blue@ is a @ColorB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3b'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3bvEXT'.
-
-
-glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glSecondaryColor3bEXT = ffibytebytebyteIOV glSecondaryColor3bEXTFunPtr
-
-glSecondaryColor3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glSecondaryColor3bEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bEXT")
-
-{-# NOINLINE glSecondaryColor3bEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3bvEXT' v@
---
--- The parameter @v@ is a @ColorB@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3bv'.
-
-
-glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
-glSecondaryColor3bvEXT = ffiPtrbyteIOV glSecondaryColor3bvEXTFunPtr
-
-glSecondaryColor3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glSecondaryColor3bvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bvEXT")
-
-{-# NOINLINE glSecondaryColor3bvEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3dEXT' red green blue@
---
--- The parameter @red@ is a @ColorD@.
---
--- The parameter @green@ is a @ColorD@.
---
--- The parameter @blue@ is a @ColorD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3dvEXT'.
-
-
-glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glSecondaryColor3dEXT = ffidoubledoubledoubleIOV glSecondaryColor3dEXTFunPtr
-
-glSecondaryColor3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glSecondaryColor3dEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dEXT")
-
-{-# NOINLINE glSecondaryColor3dEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3dvEXT' v@
---
--- The parameter @v@ is a @ColorD@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3dv'.
-
-
-glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
-glSecondaryColor3dvEXT = ffiPtrdoubleIOV glSecondaryColor3dvEXTFunPtr
-
-glSecondaryColor3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glSecondaryColor3dvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dvEXT")
-
-{-# NOINLINE glSecondaryColor3dvEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3fEXT' red green blue@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3fvEXT'.
-
-
-glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glSecondaryColor3fEXT = ffifloatfloatfloatIOV glSecondaryColor3fEXTFunPtr
-
-glSecondaryColor3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glSecondaryColor3fEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fEXT")
-
-{-# NOINLINE glSecondaryColor3fEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3fvEXT' v@
---
--- The parameter @v@ is a @ColorF@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3fv'.
-
-
-glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
-glSecondaryColor3fvEXT = ffiPtrfloatIOV glSecondaryColor3fvEXTFunPtr
-
-glSecondaryColor3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glSecondaryColor3fvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fvEXT")
-
-{-# NOINLINE glSecondaryColor3fvEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3iEXT' red green blue@
---
--- The parameter @red@ is a @ColorI@.
---
--- The parameter @green@ is a @ColorI@.
---
--- The parameter @blue@ is a @ColorI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3ivEXT'.
-
-
-glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glSecondaryColor3iEXT = ffiintintintIOV glSecondaryColor3iEXTFunPtr
-
-glSecondaryColor3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glSecondaryColor3iEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iEXT")
-
-{-# NOINLINE glSecondaryColor3iEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3ivEXT' v@
---
--- The parameter @v@ is a @ColorI@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3iv'.
-
-
-glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()
-glSecondaryColor3ivEXT = ffiPtrintIOV glSecondaryColor3ivEXTFunPtr
-
-glSecondaryColor3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
-glSecondaryColor3ivEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ivEXT")
-
-{-# NOINLINE glSecondaryColor3ivEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3sEXT' red green blue@
---
--- The parameter @red@ is a @ColorS@.
---
--- The parameter @green@ is a @ColorS@.
---
--- The parameter @blue@ is a @ColorS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3svEXT'.
-
-
-glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glSecondaryColor3sEXT = ffishortshortshortIOV glSecondaryColor3sEXTFunPtr
-
-glSecondaryColor3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glSecondaryColor3sEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sEXT")
-
-{-# NOINLINE glSecondaryColor3sEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3svEXT' v@
---
--- The parameter @v@ is a @ColorS@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3sv'.
-
-
-glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()
-glSecondaryColor3svEXT = ffiPtrshortIOV glSecondaryColor3svEXTFunPtr
-
-glSecondaryColor3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glSecondaryColor3svEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3svEXT")
-
-{-# NOINLINE glSecondaryColor3svEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3ubEXT' red green blue@
---
--- The parameter @red@ is a @ColorUB@.
---
--- The parameter @green@ is a @ColorUB@.
---
--- The parameter @blue@ is a @ColorUB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ub'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3ubvEXT'.
-
-
-glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
-glSecondaryColor3ubEXT = ffiubyteubyteubyteIOV glSecondaryColor3ubEXTFunPtr
-
-glSecondaryColor3ubEXTFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
-glSecondaryColor3ubEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubEXT")
-
-{-# NOINLINE glSecondaryColor3ubEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3ubvEXT' v@
---
--- The parameter @v@ is a @ColorUB@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ubv'.
-
-
-glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()
-glSecondaryColor3ubvEXT = ffiPtrubyteIOV glSecondaryColor3ubvEXTFunPtr
-
-glSecondaryColor3ubvEXTFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glSecondaryColor3ubvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubvEXT")
-
-{-# NOINLINE glSecondaryColor3ubvEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3uiEXT' red green blue@
---
--- The parameter @red@ is a @ColorUI@.
---
--- The parameter @green@ is a @ColorUI@.
---
--- The parameter @blue@ is a @ColorUI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ui'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3uivEXT'.
-
-
-glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glSecondaryColor3uiEXT = ffiuintuintuintIOV glSecondaryColor3uiEXTFunPtr
-
-glSecondaryColor3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glSecondaryColor3uiEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiEXT")
-
-{-# NOINLINE glSecondaryColor3uiEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3uivEXT' v@
---
--- The parameter @v@ is a @ColorUI@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3uiv'.
-
-
-glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()
-glSecondaryColor3uivEXT = ffiPtruintIOV glSecondaryColor3uivEXTFunPtr
-
-glSecondaryColor3uivEXTFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glSecondaryColor3uivEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uivEXT")
-
-{-# NOINLINE glSecondaryColor3uivEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3usEXT' red green blue@
---
--- The parameter @red@ is a @ColorUS@.
---
--- The parameter @green@ is a @ColorUS@.
---
--- The parameter @blue@ is a @ColorUS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3us'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3usvEXT'.
-
-
-glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
-glSecondaryColor3usEXT = ffiushortushortushortIOV glSecondaryColor3usEXTFunPtr
-
-glSecondaryColor3usEXTFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-glSecondaryColor3usEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usEXT")
-
-{-# NOINLINE glSecondaryColor3usEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColor3usvEXT' v@
---
--- The parameter @v@ is a @ColorUS@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3usv'.
-
-
-glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()
-glSecondaryColor3usvEXT = ffiPtrushortIOV glSecondaryColor3usvEXTFunPtr
-
-glSecondaryColor3usvEXTFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glSecondaryColor3usvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usvEXT")
-
-{-# NOINLINE glSecondaryColor3usvEXTFunPtr #-}
-
--- | Usage: @'glSecondaryColorPointerEXT' size type stride pointer@
---
--- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColorPointer'.
-
-
-glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glSecondaryColorPointerEXT = ffiintenumsizeiPtrVIOV glSecondaryColorPointerEXTFunPtr
-
-glSecondaryColorPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glSecondaryColorPointerEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointerEXT")
-
-{-# NOINLINE glSecondaryColorPointerEXTFunPtr #-}
-
-pattern GL_COLOR_SUM_EXT = 0x8458
-
-pattern GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459
-
-pattern GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E
-
-pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D
-
-pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A
-
-pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C
-
-pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs
+++ /dev/null
@@ -1,241 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SeparateShaderObjects (
-  -- * Extension Support
-    gl_EXT_separate_shader_objects
-
-  -- * GL_EXT_separate_shader_objects
-  , glActiveProgramEXT
-  , glActiveShaderProgramEXT
-  , glBindProgramPipelineEXT
-  , glCreateShaderProgramEXT
-  , glCreateShaderProgramvEXT
-  , glDeleteProgramPipelinesEXT
-  , glGenProgramPipelinesEXT
-  , glGetProgramPipelineInfoLogEXT
-  , glGetProgramPipelineivEXT
-  , glIsProgramPipelineEXT
-  , glProgramParameteriEXT
-  , glProgramUniform1fEXT
-  , glProgramUniform1fvEXT
-  , glProgramUniform1iEXT
-  , glProgramUniform1ivEXT
-  , glProgramUniform1uiEXT
-  , glProgramUniform1uivEXT
-  , glProgramUniform2fEXT
-  , glProgramUniform2fvEXT
-  , glProgramUniform2iEXT
-  , glProgramUniform2ivEXT
-  , glProgramUniform2uiEXT
-  , glProgramUniform2uivEXT
-  , glProgramUniform3fEXT
-  , glProgramUniform3fvEXT
-  , glProgramUniform3iEXT
-  , glProgramUniform3ivEXT
-  , glProgramUniform3uiEXT
-  , glProgramUniform3uivEXT
-  , glProgramUniform4fEXT
-  , glProgramUniform4fvEXT
-  , glProgramUniform4iEXT
-  , glProgramUniform4ivEXT
-  , glProgramUniform4uiEXT
-  , glProgramUniform4uivEXT
-  , glProgramUniformMatrix2fvEXT
-  , glProgramUniformMatrix2x3fvEXT
-  , glProgramUniformMatrix2x4fvEXT
-  , glProgramUniformMatrix3fvEXT
-  , glProgramUniformMatrix3x2fvEXT
-  , glProgramUniformMatrix3x4fvEXT
-  , glProgramUniformMatrix4fvEXT
-  , glProgramUniformMatrix4x2fvEXT
-  , glProgramUniformMatrix4x3fvEXT
-  , glUseProgramStagesEXT
-  , glUseShaderProgramEXT
-  , glValidateProgramPipelineEXT
-  , pattern GL_ACTIVE_PROGRAM_EXT
-  , pattern GL_ALL_SHADER_BITS_EXT
-  , pattern GL_FRAGMENT_SHADER_BIT_EXT
-  , pattern GL_PROGRAM_PIPELINE_BINDING_EXT
-  , pattern GL_PROGRAM_SEPARABLE_EXT
-  , pattern GL_VERTEX_SHADER_BIT_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://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt GL_EXT_separate_shader_objects> extension is available.
-
-gl_EXT_separate_shader_objects :: Bool
-gl_EXT_separate_shader_objects = member "GL_EXT_separate_shader_objects" extensions
-{-# NOINLINE gl_EXT_separate_shader_objects #-}
-
--- | Usage: @'glActiveProgramEXT' program@
-
-
-glActiveProgramEXT :: MonadIO m => GLuint -> m ()
-glActiveProgramEXT = ffiuintIOV glActiveProgramEXTFunPtr
-
-glActiveProgramEXTFunPtr :: FunPtr (GLuint -> IO ())
-glActiveProgramEXTFunPtr = unsafePerformIO (getProcAddress "glActiveProgramEXT")
-
-{-# NOINLINE glActiveProgramEXTFunPtr #-}
-
--- | Usage: @'glActiveShaderProgramEXT' pipeline program@
-
-
-glActiveShaderProgramEXT :: MonadIO m => GLuint -> GLuint -> m ()
-glActiveShaderProgramEXT = ffiuintuintIOV glActiveShaderProgramEXTFunPtr
-
-glActiveShaderProgramEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glActiveShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgramEXT")
-
-{-# NOINLINE glActiveShaderProgramEXTFunPtr #-}
-
--- | Usage: @'glBindProgramPipelineEXT' pipeline@
-
-
-glBindProgramPipelineEXT :: MonadIO m => GLuint -> m ()
-glBindProgramPipelineEXT = ffiuintIOV glBindProgramPipelineEXTFunPtr
-
-glBindProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO ())
-glBindProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipelineEXT")
-
-{-# NOINLINE glBindProgramPipelineEXTFunPtr #-}
-
--- | Usage: @'glCreateShaderProgramEXT' type string@
-
-
-glCreateShaderProgramEXT :: MonadIO m => GLenum -> Ptr GLchar -> m GLuint
-glCreateShaderProgramEXT = ffienumPtrcharIOuint glCreateShaderProgramEXTFunPtr
-
-glCreateShaderProgramEXTFunPtr :: FunPtr (GLenum -> Ptr GLchar -> IO GLuint)
-glCreateShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramEXT")
-
-{-# NOINLINE glCreateShaderProgramEXTFunPtr #-}
-
--- | Usage: @'glCreateShaderProgramvEXT' type count strings@
---
--- The length of @strings@ should be @count@.
-
-
-glCreateShaderProgramvEXT :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
-glCreateShaderProgramvEXT = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvEXTFunPtr
-
-glCreateShaderProgramvEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
-glCreateShaderProgramvEXTFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramvEXT")
-
-{-# NOINLINE glCreateShaderProgramvEXTFunPtr #-}
-
--- | Usage: @'glDeleteProgramPipelinesEXT' n pipelines@
---
--- The length of @pipelines@ should be @n@.
-
-
-glDeleteProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramPipelinesEXT = ffisizeiPtruintIOV glDeleteProgramPipelinesEXTFunPtr
-
-glDeleteProgramPipelinesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramPipelinesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelinesEXT")
-
-{-# NOINLINE glDeleteProgramPipelinesEXTFunPtr #-}
-
--- | Usage: @'glGenProgramPipelinesEXT' n pipelines@
---
--- The length of @pipelines@ should be @n@.
-
-
-glGenProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramPipelinesEXT = ffisizeiPtruintIOV glGenProgramPipelinesEXTFunPtr
-
-glGenProgramPipelinesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramPipelinesEXTFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelinesEXT")
-
-{-# NOINLINE glGenProgramPipelinesEXTFunPtr #-}
-
--- | Usage: @'glGetProgramPipelineInfoLogEXT' pipeline bufSize length infoLog@
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @bufSize@.
-
-
-glGetProgramPipelineInfoLogEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramPipelineInfoLogEXT = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogEXTFunPtr
-
-glGetProgramPipelineInfoLogEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramPipelineInfoLogEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLogEXT")
-
-{-# NOINLINE glGetProgramPipelineInfoLogEXTFunPtr #-}
-
--- | Usage: @'glGetProgramPipelineivEXT' pipeline pname params@
-
-
-glGetProgramPipelineivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramPipelineivEXT = ffiuintenumPtrintIOV glGetProgramPipelineivEXTFunPtr
-
-glGetProgramPipelineivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramPipelineivEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineivEXT")
-
-{-# NOINLINE glGetProgramPipelineivEXTFunPtr #-}
-
--- | Usage: @'glIsProgramPipelineEXT' pipeline@
-
-
-glIsProgramPipelineEXT :: MonadIO m => GLuint -> m GLboolean
-glIsProgramPipelineEXT = ffiuintIOboolean glIsProgramPipelineEXTFunPtr
-
-glIsProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipelineEXT")
-
-{-# NOINLINE glIsProgramPipelineEXTFunPtr #-}
-
--- | Usage: @'glUseProgramStagesEXT' pipeline stages program@
-
-
-glUseProgramStagesEXT :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
-glUseProgramStagesEXT = ffiuintbitfielduintIOV glUseProgramStagesEXTFunPtr
-
-glUseProgramStagesEXTFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
-glUseProgramStagesEXTFunPtr = unsafePerformIO (getProcAddress "glUseProgramStagesEXT")
-
-{-# NOINLINE glUseProgramStagesEXTFunPtr #-}
-
--- | Usage: @'glUseShaderProgramEXT' type program@
-
-
-glUseShaderProgramEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glUseShaderProgramEXT = ffienumuintIOV glUseShaderProgramEXTFunPtr
-
-glUseShaderProgramEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glUseShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glUseShaderProgramEXT")
-
-{-# NOINLINE glUseShaderProgramEXTFunPtr #-}
-
--- | Usage: @'glValidateProgramPipelineEXT' pipeline@
-
-
-glValidateProgramPipelineEXT :: MonadIO m => GLuint -> m ()
-glValidateProgramPipelineEXT = ffiuintIOV glValidateProgramPipelineEXTFunPtr
-
-glValidateProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO ())
-glValidateProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipelineEXT")
-
-{-# NOINLINE glValidateProgramPipelineEXTFunPtr #-}
-
-pattern GL_ACTIVE_PROGRAM_EXT = 0x8B8D
-
-pattern GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF
-
-pattern GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002
-
-pattern GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A
-
-pattern GL_PROGRAM_SEPARABLE_EXT = 0x8258
-
-pattern GL_VERTEX_SHADER_BIT_EXT = 0x00000001
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SeparateSpecularColor (
-  -- * Extension Support
-    gl_EXT_separate_specular_color
-
-  -- * GL_EXT_separate_specular_color
-  , pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT
-  , pattern GL_SEPARATE_SPECULAR_COLOR_EXT
-  , pattern GL_SINGLE_COLOR_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/separate_specular_color.txt GL_EXT_separate_specular_color> extension is available.
-
-gl_EXT_separate_specular_color :: Bool
-gl_EXT_separate_specular_color = member "GL_EXT_separate_specular_color" extensions
-{-# NOINLINE gl_EXT_separate_specular_color #-}
-
-pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8
-
-pattern GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA
-
-pattern GL_SINGLE_COLOR_EXT = 0x81F9
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderFramebufferFetch (
-  -- * Extension Support
-    gl_EXT_shader_framebuffer_fetch
-
-  -- * GL_EXT_shader_framebuffer_fetch
-  , pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_framebuffer_fetch.txt GL_EXT_shader_framebuffer_fetch> extension is available.
-
-gl_EXT_shader_framebuffer_fetch :: Bool
-gl_EXT_shader_framebuffer_fetch = member "GL_EXT_shader_framebuffer_fetch" extensions
-{-# NOINLINE gl_EXT_shader_framebuffer_fetch #-}
-
-pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderGroupVote.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderGroupVote.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderGroupVote.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderGroupVote (
-  -- * Extension Support
-    gl_EXT_shader_group_vote
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_group_vote.txt GL_EXT_shader_group_vote> extension is available.
-
-gl_EXT_shader_group_vote :: Bool
-gl_EXT_shader_group_vote = member "GL_EXT_shader_group_vote" extensions
-{-# NOINLINE gl_EXT_shader_group_vote #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImageLoadFormatted.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImageLoadFormatted.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImageLoadFormatted.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderImageLoadFormatted (
-  -- * Extension Support
-    gl_EXT_shader_image_load_formatted
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_image_load_formatted.txt GL_EXT_shader_image_load_formatted> extension is available.
-
-gl_EXT_shader_image_load_formatted :: Bool
-gl_EXT_shader_image_load_formatted = member "GL_EXT_shader_image_load_formatted" extensions
-{-# NOINLINE gl_EXT_shader_image_load_formatted #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs
+++ /dev/null
@@ -1,204 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderImageLoadStore (
-  -- * Extension Support
-    gl_EXT_shader_image_load_store
-
-  -- * GL_EXT_shader_image_load_store
-  , glBindImageTextureEXT
-  , glMemoryBarrierEXT
-  , pattern GL_ALL_BARRIER_BITS_EXT
-  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT
-  , pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT
-  , pattern GL_COMMAND_BARRIER_BIT_EXT
-  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT
-  , pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT
-  , pattern GL_IMAGE_1D_ARRAY_EXT
-  , pattern GL_IMAGE_1D_EXT
-  , pattern GL_IMAGE_2D_ARRAY_EXT
-  , pattern GL_IMAGE_2D_EXT
-  , pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
-  , pattern GL_IMAGE_2D_MULTISAMPLE_EXT
-  , pattern GL_IMAGE_2D_RECT_EXT
-  , pattern GL_IMAGE_3D_EXT
-  , pattern GL_IMAGE_BINDING_ACCESS_EXT
-  , pattern GL_IMAGE_BINDING_FORMAT_EXT
-  , pattern GL_IMAGE_BINDING_LAYERED_EXT
-  , pattern GL_IMAGE_BINDING_LAYER_EXT
-  , pattern GL_IMAGE_BINDING_LEVEL_EXT
-  , pattern GL_IMAGE_BINDING_NAME_EXT
-  , pattern GL_IMAGE_BUFFER_EXT
-  , pattern GL_IMAGE_CUBE_EXT
-  , pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT
-  , pattern GL_INT_IMAGE_1D_ARRAY_EXT
-  , pattern GL_INT_IMAGE_1D_EXT
-  , pattern GL_INT_IMAGE_2D_ARRAY_EXT
-  , pattern GL_INT_IMAGE_2D_EXT
-  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
-  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT
-  , pattern GL_INT_IMAGE_2D_RECT_EXT
-  , pattern GL_INT_IMAGE_3D_EXT
-  , pattern GL_INT_IMAGE_BUFFER_EXT
-  , pattern GL_INT_IMAGE_CUBE_EXT
-  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
-  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT
-  , pattern GL_MAX_IMAGE_SAMPLES_EXT
-  , pattern GL_MAX_IMAGE_UNITS_EXT
-  , pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT
-  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT
-  , pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT
-  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT
-  , pattern GL_UNIFORM_BARRIER_BIT_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_1D_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_3D_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_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/shader_image_load_store.txt GL_EXT_shader_image_load_store> extension is available.
-
-gl_EXT_shader_image_load_store :: Bool
-gl_EXT_shader_image_load_store = member "GL_EXT_shader_image_load_store" extensions
-{-# NOINLINE gl_EXT_shader_image_load_store #-}
-
--- | Usage: @'glBindImageTextureEXT' index texture level layered layer access format@
---
--- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glBindImageTextureEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()
-glBindImageTextureEXT = ffiuintuintintbooleanintenumintIOV glBindImageTextureEXTFunPtr
-
-glBindImageTextureEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ())
-glBindImageTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindImageTextureEXT")
-
-{-# NOINLINE glBindImageTextureEXTFunPtr #-}
-
--- | Usage: @'glMemoryBarrierEXT' barriers@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMemoryBarrier'.
-
-
-glMemoryBarrierEXT :: MonadIO m => GLbitfield -> m ()
-glMemoryBarrierEXT = ffibitfieldIOV glMemoryBarrierEXTFunPtr
-
-glMemoryBarrierEXTFunPtr :: FunPtr (GLbitfield -> IO ())
-glMemoryBarrierEXTFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierEXT")
-
-{-# NOINLINE glMemoryBarrierEXTFunPtr #-}
-
-pattern GL_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF
-
-pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000
-
-pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200
-
-pattern GL_COMMAND_BARRIER_BIT_EXT = 0x00000040
-
-pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002
-
-pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400
-
-pattern GL_IMAGE_1D_ARRAY_EXT = 0x9052
-
-pattern GL_IMAGE_1D_EXT = 0x904C
-
-pattern GL_IMAGE_2D_ARRAY_EXT = 0x9053
-
-pattern GL_IMAGE_2D_EXT = 0x904D
-
-pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056
-
-pattern GL_IMAGE_2D_MULTISAMPLE_EXT = 0x9055
-
-pattern GL_IMAGE_2D_RECT_EXT = 0x904F
-
-pattern GL_IMAGE_3D_EXT = 0x904E
-
-pattern GL_IMAGE_BINDING_ACCESS_EXT = 0x8F3E
-
-pattern GL_IMAGE_BINDING_FORMAT_EXT = 0x906E
-
-pattern GL_IMAGE_BINDING_LAYERED_EXT = 0x8F3C
-
-pattern GL_IMAGE_BINDING_LAYER_EXT = 0x8F3D
-
-pattern GL_IMAGE_BINDING_LEVEL_EXT = 0x8F3B
-
-pattern GL_IMAGE_BINDING_NAME_EXT = 0x8F3A
-
-pattern GL_IMAGE_CUBE_EXT = 0x9050
-
-pattern GL_INT_IMAGE_1D_ARRAY_EXT = 0x905D
-
-pattern GL_INT_IMAGE_1D_EXT = 0x9057
-
-pattern GL_INT_IMAGE_2D_ARRAY_EXT = 0x905E
-
-pattern GL_INT_IMAGE_2D_EXT = 0x9058
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060
-
-pattern GL_INT_IMAGE_2D_RECT_EXT = 0x905A
-
-pattern GL_INT_IMAGE_3D_EXT = 0x9059
-
-pattern GL_INT_IMAGE_CUBE_EXT = 0x905B
-
-pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39
-
-pattern GL_MAX_IMAGE_SAMPLES_EXT = 0x906D
-
-pattern GL_MAX_IMAGE_UNITS_EXT = 0x8F38
-
-pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080
-
-pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020
-
-pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008
-
-pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100
-
-pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800
-
-pattern GL_UNIFORM_BARRIER_BIT_EXT = 0x00000004
-
-pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068
-
-pattern GL_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065
-
-pattern GL_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImplicitConversions.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImplicitConversions.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderImplicitConversions.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderImplicitConversions (
-  -- * Extension Support
-    gl_EXT_shader_implicit_conversions
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_implicit_conversions.txt GL_EXT_shader_implicit_conversions> extension is available.
-
-gl_EXT_shader_implicit_conversions :: Bool
-gl_EXT_shader_implicit_conversions = member "GL_EXT_shader_implicit_conversions" extensions
-{-# NOINLINE gl_EXT_shader_implicit_conversions #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderIntegerMix.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderIntegerMix.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderIntegerMix.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderIntegerMix (
-  -- * Extension Support
-    gl_EXT_shader_integer_mix
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_integer_mix.txt GL_EXT_shader_integer_mix> extension is available.
-
-gl_EXT_shader_integer_mix :: Bool
-gl_EXT_shader_integer_mix = member "GL_EXT_shader_integer_mix" extensions
-{-# NOINLINE gl_EXT_shader_integer_mix #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderIoBlocks.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderIoBlocks.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderIoBlocks.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderIoBlocks (
-  -- * Extension Support
-    gl_EXT_shader_io_blocks
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_io_blocks.txt GL_EXT_shader_io_blocks> extension is available.
-
-gl_EXT_shader_io_blocks :: Bool
-gl_EXT_shader_io_blocks = member "GL_EXT_shader_io_blocks" extensions
-{-# NOINLINE gl_EXT_shader_io_blocks #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderNonConstantGlobalInitializers.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderNonConstantGlobalInitializers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderNonConstantGlobalInitializers.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderNonConstantGlobalInitializers (
-  -- * Extension Support
-    gl_EXT_shader_non_constant_global_initializers
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_non_constant_global_initializers.txt GL_EXT_shader_non_constant_global_initializers> extension is available.
-
-gl_EXT_shader_non_constant_global_initializers :: Bool
-gl_EXT_shader_non_constant_global_initializers = member "GL_EXT_shader_non_constant_global_initializers" extensions
-{-# NOINLINE gl_EXT_shader_non_constant_global_initializers #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage (
-  -- * Extension Support
-    gl_EXT_shader_pixel_local_storage
-
-  -- * GL_EXT_shader_pixel_local_storage
-  , pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT
-  , pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT
-  , pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_pixel_local_storage.txt GL_EXT_shader_pixel_local_storage> extension is available.
-
-gl_EXT_shader_pixel_local_storage :: Bool
-gl_EXT_shader_pixel_local_storage = member "GL_EXT_shader_pixel_local_storage" extensions
-{-# NOINLINE gl_EXT_shader_pixel_local_storage #-}
-
-pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63
-
-pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67
-
-pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs
+++ /dev/null
@@ -1,67 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage2 (
-  -- * Extension Support
-    gl_EXT_shader_pixel_local_storage2
-
-  -- * GL_EXT_shader_pixel_local_storage2
-  , glClearPixelLocalStorageuiEXT
-  , glFramebufferPixelLocalStorageSizeEXT
-  , glGetFramebufferPixelLocalStorageSizeEXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT
-  , pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT
-  , pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_pixel_local_storage2.txt GL_EXT_shader_pixel_local_storage2> extension is available.
-
-gl_EXT_shader_pixel_local_storage2 :: Bool
-gl_EXT_shader_pixel_local_storage2 = member "GL_EXT_shader_pixel_local_storage2" extensions
-{-# NOINLINE gl_EXT_shader_pixel_local_storage2 #-}
-
--- | Usage: @'glClearPixelLocalStorageuiEXT' offset n values@
-
-
-glClearPixelLocalStorageuiEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLuint -> m ()
-glClearPixelLocalStorageuiEXT = ffisizeisizeiPtruintIOV glClearPixelLocalStorageuiEXTFunPtr
-
-glClearPixelLocalStorageuiEXTFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ())
-glClearPixelLocalStorageuiEXTFunPtr = unsafePerformIO (getProcAddress "glClearPixelLocalStorageuiEXT")
-
-{-# NOINLINE glClearPixelLocalStorageuiEXTFunPtr #-}
-
--- | Usage: @'glFramebufferPixelLocalStorageSizeEXT' target size@
-
-
-glFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> GLsizei -> m ()
-glFramebufferPixelLocalStorageSizeEXT = ffiuintsizeiIOV glFramebufferPixelLocalStorageSizeEXTFunPtr
-
-glFramebufferPixelLocalStorageSizeEXTFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
-glFramebufferPixelLocalStorageSizeEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferPixelLocalStorageSizeEXT")
-
-{-# NOINLINE glFramebufferPixelLocalStorageSizeEXTFunPtr #-}
-
--- | Usage: @'glGetFramebufferPixelLocalStorageSizeEXT' target@
-
-
-glGetFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> m GLsizei
-glGetFramebufferPixelLocalStorageSizeEXT = ffiuintIOsizei glGetFramebufferPixelLocalStorageSizeEXTFunPtr
-
-glGetFramebufferPixelLocalStorageSizeEXTFunPtr :: FunPtr (GLuint -> IO GLsizei)
-glGetFramebufferPixelLocalStorageSizeEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferPixelLocalStorageSizeEXT")
-
-{-# NOINLINE glGetFramebufferPixelLocalStorageSizeEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT = 0x9652
-
-pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT = 0x9650
-
-pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT = 0x9651
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderTextureLod.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderTextureLod.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShaderTextureLod.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShaderTextureLod (
-  -- * Extension Support
-    gl_EXT_shader_texture_lod
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_texture_lod.txt GL_EXT_shader_texture_lod> extension is available.
-
-gl_EXT_shader_texture_lod :: Bool
-gl_EXT_shader_texture_lod = member "GL_EXT_shader_texture_lod" extensions
-{-# NOINLINE gl_EXT_shader_texture_lod #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShadowFuncs.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShadowFuncs.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShadowFuncs.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShadowFuncs (
-  -- * Extension Support
-    gl_EXT_shadow_funcs
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shadow_funcs.txt GL_EXT_shadow_funcs> extension is available.
-
-gl_EXT_shadow_funcs :: Bool
-gl_EXT_shadow_funcs = member "GL_EXT_shadow_funcs" extensions
-{-# NOINLINE gl_EXT_shadow_funcs #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/ShadowSamplers.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/ShadowSamplers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/ShadowSamplers.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.ShadowSamplers (
-  -- * Extension Support
-    gl_EXT_shadow_samplers
-
-  -- * GL_EXT_shadow_samplers
-  , pattern GL_COMPARE_REF_TO_TEXTURE_EXT
-  , pattern GL_SAMPLER_2D_SHADOW_EXT
-  , pattern GL_TEXTURE_COMPARE_FUNC_EXT
-  , pattern GL_TEXTURE_COMPARE_MODE_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shadow_samplers.txt GL_EXT_shadow_samplers> extension is available.
-
-gl_EXT_shadow_samplers :: Bool
-gl_EXT_shadow_samplers = member "GL_EXT_shadow_samplers" extensions
-{-# NOINLINE gl_EXT_shadow_samplers #-}
-
-pattern GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E
-
-pattern GL_SAMPLER_2D_SHADOW_EXT = 0x8B62
-
-pattern GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D
-
-pattern GL_TEXTURE_COMPARE_MODE_EXT = 0x884C
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SharedTexturePalette.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SharedTexturePalette.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SharedTexturePalette.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SharedTexturePalette (
-  -- * Extension Support
-    gl_EXT_shared_texture_palette
-
-  -- * GL_EXT_shared_texture_palette
-  , pattern GL_SHARED_TEXTURE_PALETTE_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shared_texture_palette.txt GL_EXT_shared_texture_palette> extension is available.
-
-gl_EXT_shared_texture_palette :: Bool
-gl_EXT_shared_texture_palette = member "GL_EXT_shared_texture_palette" extensions
-{-# NOINLINE gl_EXT_shared_texture_palette #-}
-
-pattern GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SparseTexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SparseTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SparseTexture.hs
+++ /dev/null
@@ -1,75 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SparseTexture (
-  -- * Extension Support
-    gl_EXT_sparse_texture
-
-  -- * GL_EXT_sparse_texture
-  , glTexPageCommitmentEXT
-  , pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT
-  , pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT
-  , pattern GL_MAX_SPARSE_TEXTURE_SIZE_EXT
-  , pattern GL_NUM_SPARSE_LEVELS_EXT
-  , pattern GL_NUM_VIRTUAL_PAGE_SIZES_EXT
-  , pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT
-  , pattern GL_TEXTURE_2D
-  , pattern GL_TEXTURE_2D_ARRAY
-  , pattern GL_TEXTURE_3D
-  , pattern GL_TEXTURE_CUBE_MAP
-  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES
-  , pattern GL_TEXTURE_SPARSE_EXT
-  , pattern GL_VIRTUAL_PAGE_SIZE_INDEX_EXT
-  , pattern GL_VIRTUAL_PAGE_SIZE_X_EXT
-  , pattern GL_VIRTUAL_PAGE_SIZE_Y_EXT
-  , pattern GL_VIRTUAL_PAGE_SIZE_Z_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://www.khronos.org/registry/gles/extensions/EXT/EXT_sparse_texture.txt GL_EXT_sparse_texture> extension is available.
-
-gl_EXT_sparse_texture :: Bool
-gl_EXT_sparse_texture = member "GL_EXT_sparse_texture" extensions
-{-# NOINLINE gl_EXT_sparse_texture #-}
-
--- | Usage: @'glTexPageCommitmentEXT' target level xoffset yoffset zoffset width height depth commit@
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.SparseTexture.glTexPageCommitmentARB'.
-
-
-glTexPageCommitmentEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexPageCommitmentEXT = ffienumintintintintsizeisizeisizeibooleanIOV glTexPageCommitmentEXTFunPtr
-
-glTexPageCommitmentEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexPageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glTexPageCommitmentEXT")
-
-{-# NOINLINE glTexPageCommitmentEXTFunPtr #-}
-
-pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT = 0x9199
-
-pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT = 0x919A
-
-pattern GL_MAX_SPARSE_TEXTURE_SIZE_EXT = 0x9198
-
-pattern GL_NUM_SPARSE_LEVELS_EXT = 0x91AA
-
-pattern GL_NUM_VIRTUAL_PAGE_SIZES_EXT = 0x91A8
-
-pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT = 0x91A9
-
-pattern GL_TEXTURE_SPARSE_EXT = 0x91A6
-
-pattern GL_VIRTUAL_PAGE_SIZE_INDEX_EXT = 0x91A7
-
-pattern GL_VIRTUAL_PAGE_SIZE_X_EXT = 0x9195
-
-pattern GL_VIRTUAL_PAGE_SIZE_Y_EXT = 0x9196
-
-pattern GL_VIRTUAL_PAGE_SIZE_Z_EXT = 0x9197
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/SparseTexture2.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/SparseTexture2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/SparseTexture2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.SparseTexture2 (
-  -- * Extension Support
-    gl_EXT_sparse_texture2
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/sparse_texture2.txt GL_EXT_sparse_texture2> extension is available.
-
-gl_EXT_sparse_texture2 :: Bool
-gl_EXT_sparse_texture2 = member "GL_EXT_sparse_texture2" extensions
-{-# NOINLINE gl_EXT_sparse_texture2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/StencilClearTag.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/StencilClearTag.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/StencilClearTag.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.StencilClearTag (
-  -- * Extension Support
-    gl_EXT_stencil_clear_tag
-
-  -- * GL_EXT_stencil_clear_tag
-  , glStencilClearTagEXT
-  , pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT
-  , pattern GL_STENCIL_TAG_BITS_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_clear_tag.txt GL_EXT_stencil_clear_tag> extension is available.
-
-gl_EXT_stencil_clear_tag :: Bool
-gl_EXT_stencil_clear_tag = member "GL_EXT_stencil_clear_tag" extensions
-{-# NOINLINE gl_EXT_stencil_clear_tag #-}
-
--- | Usage: @'glStencilClearTagEXT' stencilTagBits stencilClearTag@
-
-
-glStencilClearTagEXT :: MonadIO m => GLsizei -> GLuint -> m ()
-glStencilClearTagEXT = ffisizeiuintIOV glStencilClearTagEXTFunPtr
-
-glStencilClearTagEXTFunPtr :: FunPtr (GLsizei -> GLuint -> IO ())
-glStencilClearTagEXTFunPtr = unsafePerformIO (getProcAddress "glStencilClearTagEXT")
-
-{-# NOINLINE glStencilClearTagEXTFunPtr #-}
-
-pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3
-
-pattern GL_STENCIL_TAG_BITS_EXT = 0x88F2
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/StencilTwoSide.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/StencilTwoSide.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/StencilTwoSide.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.StencilTwoSide (
-  -- * Extension Support
-    gl_EXT_stencil_two_side
-
-  -- * GL_EXT_stencil_two_side
-  , glActiveStencilFaceEXT
-  , pattern GL_ACTIVE_STENCIL_FACE_EXT
-  , pattern GL_STENCIL_TEST_TWO_SIDE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_two_side.txt GL_EXT_stencil_two_side> extension is available.
-
-gl_EXT_stencil_two_side :: Bool
-gl_EXT_stencil_two_side = member "GL_EXT_stencil_two_side" extensions
-{-# NOINLINE gl_EXT_stencil_two_side #-}
-
--- | Usage: @'glActiveStencilFaceEXT' face@
---
--- The parameter @face@ is a @StencilFaceDirection@.
-
-
-glActiveStencilFaceEXT :: MonadIO m => GLenum -> m ()
-glActiveStencilFaceEXT = ffienumIOV glActiveStencilFaceEXTFunPtr
-
-glActiveStencilFaceEXTFunPtr :: FunPtr (GLenum -> IO ())
-glActiveStencilFaceEXTFunPtr = unsafePerformIO (getProcAddress "glActiveStencilFaceEXT")
-
-{-# NOINLINE glActiveStencilFaceEXTFunPtr #-}
-
-pattern GL_ACTIVE_STENCIL_FACE_EXT = 0x8911
-
-pattern GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/StencilWrap.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/StencilWrap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/StencilWrap.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.StencilWrap (
-  -- * Extension Support
-    gl_EXT_stencil_wrap
-
-  -- * GL_EXT_stencil_wrap
-  , pattern GL_DECR_WRAP_EXT
-  , pattern GL_INCR_WRAP_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_wrap.txt GL_EXT_stencil_wrap> extension is available.
-
-gl_EXT_stencil_wrap :: Bool
-gl_EXT_stencil_wrap = member "GL_EXT_stencil_wrap" extensions
-{-# NOINLINE gl_EXT_stencil_wrap #-}
-
-pattern GL_DECR_WRAP_EXT = 0x8508
-
-pattern GL_INCR_WRAP_EXT = 0x8507
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Subtexture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Subtexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Subtexture.hs
+++ /dev/null
@@ -1,76 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Subtexture (
-  -- * Extension Support
-    gl_EXT_subtexture
-
-  -- * GL_EXT_subtexture
-  , glTexSubImage1DEXT
-  , glTexSubImage2DEXT
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/subtexture.txt GL_EXT_subtexture> extension is available.
-
-gl_EXT_subtexture :: Bool
-gl_EXT_subtexture = member "GL_EXT_subtexture" extensions
-{-# NOINLINE gl_EXT_subtexture #-}
-
--- | Usage: @'glTexSubImage1DEXT' target level xoffset width format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage1D'.
-
-
-glTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage1DEXT = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DEXTFunPtr
-
-glTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1DEXT")
-
-{-# NOINLINE glTexSubImage1DEXTFunPtr #-}
-
--- | Usage: @'glTexSubImage2DEXT' target level xoffset yoffset width height format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage2D'.
-
-
-glTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage2DEXT = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DEXTFunPtr
-
-glTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2DEXT")
-
-{-# NOINLINE glTexSubImage2DEXTFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationPointSize.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationPointSize.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationPointSize.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TessellationPointSize (
-  -- * Extension Support
-    gl_EXT_tessellation_point_size
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_tessellation_point_size.txt GL_EXT_tessellation_point_size> extension is available.
-
-gl_EXT_tessellation_point_size :: Bool
-gl_EXT_tessellation_point_size = member "GL_EXT_tessellation_point_size" extensions
-{-# NOINLINE gl_EXT_tessellation_point_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationShader.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TessellationShader.hs
+++ /dev/null
@@ -1,168 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TessellationShader (
-  -- * Extension Support
-    gl_EXT_tessellation_shader
-
-  -- * GL_EXT_tessellation_shader
-  , glPatchParameteriEXT
-  , pattern GL_CCW
-  , pattern GL_CW
-  , pattern GL_EQUAL
-  , pattern GL_FRACTIONAL_EVEN_EXT
-  , pattern GL_FRACTIONAL_ODD_EXT
-  , pattern GL_ISOLINES_EXT
-  , pattern GL_IS_PER_PATCH_EXT
-  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
-  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
-  , pattern GL_MAX_PATCH_VERTICES_EXT
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT
-  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT
-  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT
-  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT
-  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT
-  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT
-  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
-  , pattern GL_MAX_TESS_GEN_LEVEL_EXT
-  , pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT
-  , pattern GL_PATCHES_EXT
-  , pattern GL_PATCH_VERTICES_EXT
-  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
-  , pattern GL_QUADS_EXT
-  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT
-  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT
-  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT
-  , pattern GL_TESS_CONTROL_SHADER_BIT_EXT
-  , pattern GL_TESS_CONTROL_SHADER_EXT
-  , pattern GL_TESS_EVALUATION_SHADER_BIT_EXT
-  , pattern GL_TESS_EVALUATION_SHADER_EXT
-  , pattern GL_TESS_GEN_MODE_EXT
-  , pattern GL_TESS_GEN_POINT_MODE_EXT
-  , pattern GL_TESS_GEN_SPACING_EXT
-  , pattern GL_TESS_GEN_VERTEX_ORDER_EXT
-  , pattern GL_TRIANGLES
-) 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://www.khronos.org/registry/gles/extensions/EXT/EXT_tessellation_shader.txt GL_EXT_tessellation_shader> extension is available.
-
-gl_EXT_tessellation_shader :: Bool
-gl_EXT_tessellation_shader = member "GL_EXT_tessellation_shader" extensions
-{-# NOINLINE gl_EXT_tessellation_shader #-}
-
--- | Usage: @'glPatchParameteriEXT' pname value@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPatchParameteri'.
-
-
-glPatchParameteriEXT :: MonadIO m => GLenum -> GLint -> m ()
-glPatchParameteriEXT = ffienumintIOV glPatchParameteriEXTFunPtr
-
-glPatchParameteriEXTFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPatchParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glPatchParameteriEXT")
-
-{-# NOINLINE glPatchParameteriEXTFunPtr #-}
-
-pattern GL_FRACTIONAL_EVEN_EXT = 0x8E7C
-
-pattern GL_FRACTIONAL_ODD_EXT = 0x8E7B
-
-pattern GL_ISOLINES_EXT = 0x8E7A
-
-pattern GL_IS_PER_PATCH_EXT = 0x92E7
-
-pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E
-
-pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F
-
-pattern GL_MAX_PATCH_VERTICES_EXT = 0x8E7D
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD
-
-pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB
-
-pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C
-
-pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83
-
-pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8
-
-pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81
-
-pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE
-
-pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC
-
-pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D
-
-pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86
-
-pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9
-
-pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80
-
-pattern GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E
-
-pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84
-
-pattern GL_PATCHES_EXT = 0x000E
-
-pattern GL_PATCH_VERTICES_EXT = 0x8E72
-
-pattern GL_QUADS_EXT = 0x0007
-
-pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307
-
-pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308
-
-pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75
-
-pattern GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008
-
-pattern GL_TESS_CONTROL_SHADER_EXT = 0x8E88
-
-pattern GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010
-
-pattern GL_TESS_EVALUATION_SHADER_EXT = 0x8E87
-
-pattern GL_TESS_GEN_MODE_EXT = 0x8E76
-
-pattern GL_TESS_GEN_POINT_MODE_EXT = 0x8E79
-
-pattern GL_TESS_GEN_SPACING_EXT = 0x8E77
-
-pattern GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Texture.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Texture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Texture.hs
+++ /dev/null
@@ -1,133 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Texture (
-  -- * Extension Support
-    gl_EXT_texture
-
-  -- * GL_EXT_texture
-  , pattern GL_ALPHA12_EXT
-  , pattern GL_ALPHA16_EXT
-  , pattern GL_ALPHA4_EXT
-  , pattern GL_ALPHA8_EXT
-  , pattern GL_INTENSITY12_EXT
-  , pattern GL_INTENSITY16_EXT
-  , pattern GL_INTENSITY4_EXT
-  , pattern GL_INTENSITY8_EXT
-  , pattern GL_INTENSITY_EXT
-  , pattern GL_LUMINANCE12_ALPHA12_EXT
-  , pattern GL_LUMINANCE12_ALPHA4_EXT
-  , pattern GL_LUMINANCE12_EXT
-  , pattern GL_LUMINANCE16_ALPHA16_EXT
-  , pattern GL_LUMINANCE16_EXT
-  , pattern GL_LUMINANCE4_ALPHA4_EXT
-  , pattern GL_LUMINANCE4_EXT
-  , pattern GL_LUMINANCE6_ALPHA2_EXT
-  , pattern GL_LUMINANCE8_ALPHA8_EXT
-  , pattern GL_LUMINANCE8_EXT
-  , pattern GL_PROXY_TEXTURE_1D_EXT
-  , pattern GL_PROXY_TEXTURE_2D_EXT
-  , pattern GL_REPLACE_EXT
-  , pattern GL_RGB10_A2_EXT
-  , pattern GL_RGB10_EXT
-  , pattern GL_RGB12_EXT
-  , pattern GL_RGB16_EXT
-  , pattern GL_RGB2_EXT
-  , pattern GL_RGB4_EXT
-  , pattern GL_RGB5_A1_EXT
-  , pattern GL_RGB5_EXT
-  , pattern GL_RGB8_EXT
-  , pattern GL_RGBA12_EXT
-  , pattern GL_RGBA16_EXT
-  , pattern GL_RGBA2_EXT
-  , pattern GL_RGBA4_EXT
-  , pattern GL_RGBA8_EXT
-  , pattern GL_TEXTURE_ALPHA_SIZE_EXT
-  , pattern GL_TEXTURE_BLUE_SIZE_EXT
-  , pattern GL_TEXTURE_GREEN_SIZE_EXT
-  , pattern GL_TEXTURE_INTENSITY_SIZE_EXT
-  , pattern GL_TEXTURE_LUMINANCE_SIZE_EXT
-  , pattern GL_TEXTURE_RED_SIZE_EXT
-  , pattern GL_TEXTURE_TOO_LARGE_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture.txt GL_EXT_texture> extension is available.
-
-gl_EXT_texture :: Bool
-gl_EXT_texture = member "GL_EXT_texture" extensions
-{-# NOINLINE gl_EXT_texture #-}
-
-pattern GL_ALPHA12_EXT = 0x803D
-
-pattern GL_ALPHA16_EXT = 0x803E
-
-pattern GL_ALPHA4_EXT = 0x803B
-
-pattern GL_INTENSITY12_EXT = 0x804C
-
-pattern GL_INTENSITY16_EXT = 0x804D
-
-pattern GL_INTENSITY4_EXT = 0x804A
-
-pattern GL_INTENSITY8_EXT = 0x804B
-
-pattern GL_INTENSITY_EXT = 0x8049
-
-pattern GL_LUMINANCE12_ALPHA12_EXT = 0x8047
-
-pattern GL_LUMINANCE12_ALPHA4_EXT = 0x8046
-
-pattern GL_LUMINANCE12_EXT = 0x8041
-
-pattern GL_LUMINANCE16_ALPHA16_EXT = 0x8048
-
-pattern GL_LUMINANCE16_EXT = 0x8042
-
-pattern GL_LUMINANCE4_ALPHA4_EXT = 0x8043
-
-pattern GL_LUMINANCE4_EXT = 0x803F
-
-pattern GL_LUMINANCE6_ALPHA2_EXT = 0x8044
-
-pattern GL_PROXY_TEXTURE_1D_EXT = 0x8063
-
-pattern GL_PROXY_TEXTURE_2D_EXT = 0x8064
-
-pattern GL_REPLACE_EXT = 0x8062
-
-pattern GL_RGB12_EXT = 0x8053
-
-pattern GL_RGB2_EXT = 0x804E
-
-pattern GL_RGB4_EXT = 0x804F
-
-pattern GL_RGB5_A1_EXT = 0x8057
-
-pattern GL_RGB5_EXT = 0x8050
-
-pattern GL_RGB8_EXT = 0x8051
-
-pattern GL_RGBA12_EXT = 0x805A
-
-pattern GL_RGBA2_EXT = 0x8055
-
-pattern GL_RGBA4_EXT = 0x8056
-
-pattern GL_RGBA8_EXT = 0x8058
-
-pattern GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F
-
-pattern GL_TEXTURE_BLUE_SIZE_EXT = 0x805E
-
-pattern GL_TEXTURE_GREEN_SIZE_EXT = 0x805D
-
-pattern GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061
-
-pattern GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060
-
-pattern GL_TEXTURE_RED_SIZE_EXT = 0x805C
-
-pattern GL_TEXTURE_TOO_LARGE_EXT = 0x8065
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/Texture3D.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/Texture3D.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/Texture3D.hs
+++ /dev/null
@@ -1,107 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.Texture3D (
-  -- * Extension Support
-    gl_EXT_texture3D
-
-  -- * GL_EXT_texture3D
-  , glTexImage3DEXT
-  , glTexSubImage3DEXT
-  , pattern GL_MAX_3D_TEXTURE_SIZE_EXT
-  , pattern GL_PACK_IMAGE_HEIGHT_EXT
-  , pattern GL_PACK_SKIP_IMAGES_EXT
-  , pattern GL_PROXY_TEXTURE_3D_EXT
-  , pattern GL_TEXTURE_3D_EXT
-  , pattern GL_TEXTURE_DEPTH_EXT
-  , pattern GL_TEXTURE_WRAP_R_EXT
-  , pattern GL_UNPACK_IMAGE_HEIGHT_EXT
-  , pattern GL_UNPACK_SKIP_IMAGES_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture3D.txt GL_EXT_texture3D> extension is available.
-
-gl_EXT_texture3D :: Bool
-gl_EXT_texture3D = member "GL_EXT_texture3D" extensions
-{-# NOINLINE gl_EXT_texture3D #-}
-
--- | Usage: @'glTexImage3DEXT' target level internalformat width height depth border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexImage3D'.
-
-
-glTexImage3DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage3DEXT = ffienumintenumsizeisizeisizeiintenumenumPtrVIOV glTexImage3DEXTFunPtr
-
-glTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexImage3DEXT")
-
-{-# NOINLINE glTexImage3DEXTFunPtr #-}
-
--- | Usage: @'glTexSubImage3DEXT' target level xoffset yoffset zoffset width height depth format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage3D'.
-
-
-glTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage3DEXT = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DEXTFunPtr
-
-glTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3DEXT")
-
-{-# NOINLINE glTexSubImage3DEXTFunPtr #-}
-
-pattern GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073
-
-pattern GL_PACK_IMAGE_HEIGHT_EXT = 0x806C
-
-pattern GL_PACK_SKIP_IMAGES_EXT = 0x806B
-
-pattern GL_PROXY_TEXTURE_3D_EXT = 0x8070
-
-pattern GL_TEXTURE_3D_EXT = 0x806F
-
-pattern GL_TEXTURE_DEPTH_EXT = 0x8071
-
-pattern GL_TEXTURE_WRAP_R_EXT = 0x8072
-
-pattern GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E
-
-pattern GL_UNPACK_SKIP_IMAGES_EXT = 0x806D
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureArray.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureArray.hs
+++ /dev/null
@@ -1,44 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureArray (
-  -- * Extension Support
-    gl_EXT_texture_array
-
-  -- * GL_EXT_texture_array
-  , glFramebufferTextureLayerEXT
-  , pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
-  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT
-  , pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT
-  , pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT
-  , pattern GL_TEXTURE_1D_ARRAY_EXT
-  , pattern GL_TEXTURE_2D_ARRAY_EXT
-  , pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT
-  , pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_array.txt GL_EXT_texture_array> extension is available.
-
-gl_EXT_texture_array :: Bool
-gl_EXT_texture_array = member "GL_EXT_texture_array" extensions
-{-# NOINLINE gl_EXT_texture_array #-}
-
-pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E
-
-pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF
-
-pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19
-
-pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B
-
-pattern GL_TEXTURE_1D_ARRAY_EXT = 0x8C18
-
-pattern GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A
-
-pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C
-
-pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBorderClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBorderClamp.hs
+++ /dev/null
@@ -1,97 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureBorderClamp (
-  -- * Extension Support
-    gl_EXT_texture_border_clamp
-
-  -- * GL_EXT_texture_border_clamp
-  , glGetSamplerParameterIivEXT
-  , glGetSamplerParameterIuivEXT
-  , glGetTexParameterIivEXT
-  , glGetTexParameterIuivEXT
-  , glSamplerParameterIivEXT
-  , glSamplerParameterIuivEXT
-  , glTexParameterIivEXT
-  , glTexParameterIuivEXT
-  , pattern GL_CLAMP_TO_BORDER_EXT
-  , pattern GL_TEXTURE_BORDER_COLOR_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt GL_EXT_texture_border_clamp> extension is available.
-
-gl_EXT_texture_border_clamp :: Bool
-gl_EXT_texture_border_clamp = member "GL_EXT_texture_border_clamp" extensions
-{-# NOINLINE gl_EXT_texture_border_clamp #-}
-
--- | Usage: @'glGetSamplerParameterIivEXT' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIiv'.
-
-
-glGetSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameterIivEXT = ffiuintenumPtrintIOV glGetSamplerParameterIivEXTFunPtr
-
-glGetSamplerParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIivEXT")
-
-{-# NOINLINE glGetSamplerParameterIivEXTFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterIuivEXT' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIuiv'.
-
-
-glGetSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetSamplerParameterIuivEXT = ffiuintenumPtruintIOV glGetSamplerParameterIuivEXTFunPtr
-
-glGetSamplerParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetSamplerParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuivEXT")
-
-{-# NOINLINE glGetSamplerParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glSamplerParameterIivEXT' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIiv'.
-
-
-glSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameterIivEXT = ffiuintenumPtrintIOV glSamplerParameterIivEXTFunPtr
-
-glSamplerParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIivEXT")
-
-{-# NOINLINE glSamplerParameterIivEXTFunPtr #-}
-
--- | Usage: @'glSamplerParameterIuivEXT' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIuiv'.
-
-
-glSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glSamplerParameterIuivEXT = ffiuintenumPtruintIOV glSamplerParameterIuivEXTFunPtr
-
-glSamplerParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glSamplerParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuivEXT")
-
-{-# NOINLINE glSamplerParameterIuivEXTFunPtr #-}
-
-pattern GL_CLAMP_TO_BORDER_EXT = 0x812D
-
-pattern GL_TEXTURE_BORDER_COLOR_EXT = 0x1004
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBuffer.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureBuffer (
-  -- * Extension Support
-    gl_EXT_texture_buffer
-
-  -- * GL_EXT_texture_buffer
-  , glTexBufferEXT
-  , glTexBufferRangeEXT
-  , pattern GL_IMAGE_BUFFER_EXT
-  , pattern GL_INT_IMAGE_BUFFER_EXT
-  , pattern GL_INT_SAMPLER_BUFFER_EXT
-  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT
-  , pattern GL_SAMPLER_BUFFER_EXT
-  , pattern GL_TEXTURE_BINDING_BUFFER_EXT
-  , pattern GL_TEXTURE_BUFFER_BINDING_EXT
-  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
-  , pattern GL_TEXTURE_BUFFER_EXT
-  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT
-  , pattern GL_TEXTURE_BUFFER_OFFSET_EXT
-  , pattern GL_TEXTURE_BUFFER_SIZE_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT
-  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_buffer.txt GL_EXT_texture_buffer> extension is available.
-
-gl_EXT_texture_buffer :: Bool
-gl_EXT_texture_buffer = member "GL_EXT_texture_buffer" extensions
-{-# NOINLINE gl_EXT_texture_buffer #-}
-
--- | Usage: @'glTexBufferRangeEXT' target internalformat buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBufferRange'.
-
-
-glTexBufferRangeEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTexBufferRangeEXT = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeEXTFunPtr
-
-glTexBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTexBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferRangeEXT")
-
-{-# NOINLINE glTexBufferRangeEXTFunPtr #-}
-
-pattern GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A
-
-pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F
-
-pattern GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D
-
-pattern GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureBufferObject.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureBufferObject (
-  -- * Extension Support
-    gl_EXT_texture_buffer_object
-
-  -- * GL_EXT_texture_buffer_object
-  , glTexBufferEXT
-  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT
-  , pattern GL_TEXTURE_BINDING_BUFFER_EXT
-  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
-  , pattern GL_TEXTURE_BUFFER_EXT
-  , pattern GL_TEXTURE_BUFFER_FORMAT_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_buffer_object.txt GL_EXT_texture_buffer_object> extension is available.
-
-gl_EXT_texture_buffer_object :: Bool
-gl_EXT_texture_buffer_object = member "GL_EXT_texture_buffer_object" extensions
-{-# NOINLINE gl_EXT_texture_buffer_object #-}
-
-pattern GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionDxt1.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionDxt1.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionDxt1.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureCompressionDxt1 (
-  -- * Extension Support
-    gl_EXT_texture_compression_dxt1
-
-  -- * GL_EXT_texture_compression_dxt1
-  , pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
-  , pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_compression_dxt1.txt GL_EXT_texture_compression_dxt1> extension is available.
-
-gl_EXT_texture_compression_dxt1 :: Bool
-gl_EXT_texture_compression_dxt1 = member "GL_EXT_texture_compression_dxt1" extensions
-{-# NOINLINE gl_EXT_texture_compression_dxt1 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureCompressionLatc (
-  -- * Extension Support
-    gl_EXT_texture_compression_latc
-
-  -- * GL_EXT_texture_compression_latc
-  , pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT
-  , pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT
-  , pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT
-  , pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_latc.txt GL_EXT_texture_compression_latc> extension is available.
-
-gl_EXT_texture_compression_latc :: Bool
-gl_EXT_texture_compression_latc = member "GL_EXT_texture_compression_latc" extensions
-{-# NOINLINE gl_EXT_texture_compression_latc #-}
-
-pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72
-
-pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70
-
-pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73
-
-pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureCompressionRgtc (
-  -- * Extension Support
-    gl_EXT_texture_compression_rgtc
-
-  -- * GL_EXT_texture_compression_rgtc
-  , pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT
-  , pattern GL_COMPRESSED_RED_RGTC1_EXT
-  , pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
-  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_rgtc.txt GL_EXT_texture_compression_rgtc> extension is available.
-
-gl_EXT_texture_compression_rgtc :: Bool
-gl_EXT_texture_compression_rgtc = member "GL_EXT_texture_compression_rgtc" extensions
-{-# NOINLINE gl_EXT_texture_compression_rgtc #-}
-
-pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD
-
-pattern GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB
-
-pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE
-
-pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureCompressionS3tc (
-  -- * Extension Support
-    gl_EXT_texture_compression_s3tc
-
-  -- * GL_EXT_texture_compression_s3tc
-  , pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
-  , pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
-  , pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
-  , pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_compression_s3tc.txt GL_EXT_texture_compression_s3tc> extension is available.
-
-gl_EXT_texture_compression_s3tc :: Bool
-gl_EXT_texture_compression_s3tc = member "GL_EXT_texture_compression_s3tc" extensions
-{-# NOINLINE gl_EXT_texture_compression_s3tc #-}
-
-pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2
-
-pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCubeMap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCubeMap.hs
+++ /dev/null
@@ -1,53 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureCubeMap (
-  -- * Extension Support
-    gl_EXT_texture_cube_map
-
-  -- * GL_EXT_texture_cube_map
-  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT
-  , pattern GL_NORMAL_MAP_EXT
-  , pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT
-  , pattern GL_REFLECTION_MAP_EXT
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_EXT_texture_cube_map extension is available.
-
-gl_EXT_texture_cube_map :: Bool
-gl_EXT_texture_cube_map = member "GL_EXT_texture_cube_map" extensions
-{-# NOINLINE gl_EXT_texture_cube_map #-}
-
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C
-
-pattern GL_NORMAL_MAP_EXT = 0x8511
-
-pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B
-
-pattern GL_REFLECTION_MAP_EXT = 0x8512
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514
-
-pattern GL_TEXTURE_CUBE_MAP_EXT = 0x8513
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureCubeMapArray (
-  -- * Extension Support
-    gl_EXT_texture_cube_map_array
-
-  -- * GL_EXT_texture_cube_map_array
-  , pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT
-  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
-  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT
-  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_cube_map_array.txt GL_EXT_texture_cube_map_array> extension is available.
-
-gl_EXT_texture_cube_map_array :: Bool
-gl_EXT_texture_cube_map_array = member "GL_EXT_texture_cube_map_array" extensions
-{-# NOINLINE gl_EXT_texture_cube_map_array #-}
-
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A
-
-pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvAdd.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvAdd.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvAdd.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureEnvAdd (
-  -- * Extension Support
-    gl_EXT_texture_env_add
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_add.txt GL_EXT_texture_env_add> extension is available.
-
-gl_EXT_texture_env_add :: Bool
-gl_EXT_texture_env_add = member "GL_EXT_texture_env_add" extensions
-{-# NOINLINE gl_EXT_texture_env_add #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvCombine.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvCombine.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvCombine.hs
+++ /dev/null
@@ -1,80 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureEnvCombine (
-  -- * Extension Support
-    gl_EXT_texture_env_combine
-
-  -- * GL_EXT_texture_env_combine
-  , pattern GL_ADD_SIGNED_EXT
-  , pattern GL_COMBINE_ALPHA_EXT
-  , pattern GL_COMBINE_EXT
-  , pattern GL_COMBINE_RGB_EXT
-  , pattern GL_CONSTANT_EXT
-  , pattern GL_INTERPOLATE_EXT
-  , pattern GL_OPERAND0_ALPHA_EXT
-  , pattern GL_OPERAND0_RGB_EXT
-  , pattern GL_OPERAND1_ALPHA_EXT
-  , pattern GL_OPERAND1_RGB_EXT
-  , pattern GL_OPERAND2_ALPHA_EXT
-  , pattern GL_OPERAND2_RGB_EXT
-  , pattern GL_PREVIOUS_EXT
-  , pattern GL_PRIMARY_COLOR_EXT
-  , pattern GL_RGB_SCALE_EXT
-  , pattern GL_SOURCE0_ALPHA_EXT
-  , pattern GL_SOURCE0_RGB_EXT
-  , pattern GL_SOURCE1_ALPHA_EXT
-  , pattern GL_SOURCE1_RGB_EXT
-  , pattern GL_SOURCE2_ALPHA_EXT
-  , pattern GL_SOURCE2_RGB_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_combine.txt GL_EXT_texture_env_combine> extension is available.
-
-gl_EXT_texture_env_combine :: Bool
-gl_EXT_texture_env_combine = member "GL_EXT_texture_env_combine" extensions
-{-# NOINLINE gl_EXT_texture_env_combine #-}
-
-pattern GL_ADD_SIGNED_EXT = 0x8574
-
-pattern GL_COMBINE_ALPHA_EXT = 0x8572
-
-pattern GL_COMBINE_EXT = 0x8570
-
-pattern GL_COMBINE_RGB_EXT = 0x8571
-
-pattern GL_CONSTANT_EXT = 0x8576
-
-pattern GL_INTERPOLATE_EXT = 0x8575
-
-pattern GL_OPERAND0_ALPHA_EXT = 0x8598
-
-pattern GL_OPERAND0_RGB_EXT = 0x8590
-
-pattern GL_OPERAND1_ALPHA_EXT = 0x8599
-
-pattern GL_OPERAND1_RGB_EXT = 0x8591
-
-pattern GL_OPERAND2_ALPHA_EXT = 0x859A
-
-pattern GL_OPERAND2_RGB_EXT = 0x8592
-
-pattern GL_PREVIOUS_EXT = 0x8578
-
-pattern GL_PRIMARY_COLOR_EXT = 0x8577
-
-pattern GL_RGB_SCALE_EXT = 0x8573
-
-pattern GL_SOURCE0_ALPHA_EXT = 0x8588
-
-pattern GL_SOURCE0_RGB_EXT = 0x8580
-
-pattern GL_SOURCE1_ALPHA_EXT = 0x8589
-
-pattern GL_SOURCE1_RGB_EXT = 0x8581
-
-pattern GL_SOURCE2_ALPHA_EXT = 0x858A
-
-pattern GL_SOURCE2_RGB_EXT = 0x8582
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvDot3.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvDot3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureEnvDot3.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureEnvDot3 (
-  -- * Extension Support
-    gl_EXT_texture_env_dot3
-
-  -- * GL_EXT_texture_env_dot3
-  , pattern GL_DOT3_RGBA_EXT
-  , pattern GL_DOT3_RGB_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_dot3.txt GL_EXT_texture_env_dot3> extension is available.
-
-gl_EXT_texture_env_dot3 :: Bool
-gl_EXT_texture_env_dot3 = member "GL_EXT_texture_env_dot3" extensions
-{-# NOINLINE gl_EXT_texture_env_dot3 #-}
-
-pattern GL_DOT3_RGBA_EXT = 0x8741
-
-pattern GL_DOT3_RGB_EXT = 0x8740
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureFilterAnisotropic (
-  -- * Extension Support
-    gl_EXT_texture_filter_anisotropic
-
-  -- * GL_EXT_texture_filter_anisotropic
-  , pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
-  , pattern GL_TEXTURE_MAX_ANISOTROPY_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_filter_anisotropic.txt GL_EXT_texture_filter_anisotropic> extension is available.
-
-gl_EXT_texture_filter_anisotropic :: Bool
-gl_EXT_texture_filter_anisotropic = member "GL_EXT_texture_filter_anisotropic" extensions
-{-# NOINLINE gl_EXT_texture_filter_anisotropic #-}
-
-pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF
-
-pattern GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFilterMinmax.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFilterMinmax.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFilterMinmax.hs
+++ /dev/null
@@ -1,25 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureFilterMinmax (
-  -- * Extension Support
-    gl_EXT_texture_filter_minmax
-
-  -- * GL_EXT_texture_filter_minmax
-  , glRasterSamplesEXT
-  , pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT
-  , pattern GL_MAX_RASTER_SAMPLES_EXT
-  , pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
-  , pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
-  , pattern GL_RASTER_MULTISAMPLE_EXT
-  , pattern GL_RASTER_SAMPLES_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_filter_minmax.txt GL_EXT_texture_filter_minmax> extension is available.
-
-gl_EXT_texture_filter_minmax :: Bool
-gl_EXT_texture_filter_minmax = member "GL_EXT_texture_filter_minmax" extensions
-{-# NOINLINE gl_EXT_texture_filter_minmax #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFormatBGRA8888.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFormatBGRA8888.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureFormatBGRA8888.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureFormatBGRA8888 (
-  -- * Extension Support
-    gl_EXT_texture_format_BGRA8888
-
-  -- * GL_EXT_texture_format_BGRA8888
-  , pattern GL_BGRA_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_format_BGRA8888.txt GL_EXT_texture_format_BGRA8888> extension is available.
-
-gl_EXT_texture_format_BGRA8888 :: Bool
-gl_EXT_texture_format_BGRA8888 = member "GL_EXT_texture_format_BGRA8888" extensions
-{-# NOINLINE gl_EXT_texture_format_BGRA8888 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureInteger.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureInteger.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureInteger.hs
+++ /dev/null
@@ -1,192 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureInteger (
-  -- * Extension Support
-    gl_EXT_texture_integer
-
-  -- * GL_EXT_texture_integer
-  , glClearColorIiEXT
-  , glClearColorIuiEXT
-  , glGetTexParameterIivEXT
-  , glGetTexParameterIuivEXT
-  , glTexParameterIivEXT
-  , glTexParameterIuivEXT
-  , pattern GL_ALPHA16I_EXT
-  , pattern GL_ALPHA16UI_EXT
-  , pattern GL_ALPHA32I_EXT
-  , pattern GL_ALPHA32UI_EXT
-  , pattern GL_ALPHA8I_EXT
-  , pattern GL_ALPHA8UI_EXT
-  , pattern GL_ALPHA_INTEGER_EXT
-  , pattern GL_BGRA_INTEGER_EXT
-  , pattern GL_BGR_INTEGER_EXT
-  , pattern GL_BLUE_INTEGER_EXT
-  , pattern GL_GREEN_INTEGER_EXT
-  , pattern GL_INTENSITY16I_EXT
-  , pattern GL_INTENSITY16UI_EXT
-  , pattern GL_INTENSITY32I_EXT
-  , pattern GL_INTENSITY32UI_EXT
-  , pattern GL_INTENSITY8I_EXT
-  , pattern GL_INTENSITY8UI_EXT
-  , pattern GL_LUMINANCE16I_EXT
-  , pattern GL_LUMINANCE16UI_EXT
-  , pattern GL_LUMINANCE32I_EXT
-  , pattern GL_LUMINANCE32UI_EXT
-  , pattern GL_LUMINANCE8I_EXT
-  , pattern GL_LUMINANCE8UI_EXT
-  , pattern GL_LUMINANCE_ALPHA16I_EXT
-  , pattern GL_LUMINANCE_ALPHA16UI_EXT
-  , pattern GL_LUMINANCE_ALPHA32I_EXT
-  , pattern GL_LUMINANCE_ALPHA32UI_EXT
-  , pattern GL_LUMINANCE_ALPHA8I_EXT
-  , pattern GL_LUMINANCE_ALPHA8UI_EXT
-  , pattern GL_LUMINANCE_ALPHA_INTEGER_EXT
-  , pattern GL_LUMINANCE_INTEGER_EXT
-  , pattern GL_RED_INTEGER_EXT
-  , pattern GL_RGB16I_EXT
-  , pattern GL_RGB16UI_EXT
-  , pattern GL_RGB32I_EXT
-  , pattern GL_RGB32UI_EXT
-  , pattern GL_RGB8I_EXT
-  , pattern GL_RGB8UI_EXT
-  , pattern GL_RGBA16I_EXT
-  , pattern GL_RGBA16UI_EXT
-  , pattern GL_RGBA32I_EXT
-  , pattern GL_RGBA32UI_EXT
-  , pattern GL_RGBA8I_EXT
-  , pattern GL_RGBA8UI_EXT
-  , pattern GL_RGBA_INTEGER_EXT
-  , pattern GL_RGBA_INTEGER_MODE_EXT
-  , pattern GL_RGB_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/texture_integer.txt GL_EXT_texture_integer> extension is available.
-
-gl_EXT_texture_integer :: Bool
-gl_EXT_texture_integer = member "GL_EXT_texture_integer" extensions
-{-# NOINLINE gl_EXT_texture_integer #-}
-
--- | Usage: @'glClearColorIiEXT' red green blue alpha@
-
-
-glClearColorIiEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glClearColorIiEXT = ffiintintintintIOV glClearColorIiEXTFunPtr
-
-glClearColorIiEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glClearColorIiEXTFunPtr = unsafePerformIO (getProcAddress "glClearColorIiEXT")
-
-{-# NOINLINE glClearColorIiEXTFunPtr #-}
-
--- | Usage: @'glClearColorIuiEXT' red green blue alpha@
-
-
-glClearColorIuiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glClearColorIuiEXT = ffiuintuintuintuintIOV glClearColorIuiEXTFunPtr
-
-glClearColorIuiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glClearColorIuiEXTFunPtr = unsafePerformIO (getProcAddress "glClearColorIuiEXT")
-
-{-# NOINLINE glClearColorIuiEXTFunPtr #-}
-
-pattern GL_ALPHA16I_EXT = 0x8D8A
-
-pattern GL_ALPHA16UI_EXT = 0x8D78
-
-pattern GL_ALPHA32I_EXT = 0x8D84
-
-pattern GL_ALPHA32UI_EXT = 0x8D72
-
-pattern GL_ALPHA8I_EXT = 0x8D90
-
-pattern GL_ALPHA8UI_EXT = 0x8D7E
-
-pattern GL_ALPHA_INTEGER_EXT = 0x8D97
-
-pattern GL_BGRA_INTEGER_EXT = 0x8D9B
-
-pattern GL_BGR_INTEGER_EXT = 0x8D9A
-
-pattern GL_BLUE_INTEGER_EXT = 0x8D96
-
-pattern GL_GREEN_INTEGER_EXT = 0x8D95
-
-pattern GL_INTENSITY16I_EXT = 0x8D8B
-
-pattern GL_INTENSITY16UI_EXT = 0x8D79
-
-pattern GL_INTENSITY32I_EXT = 0x8D85
-
-pattern GL_INTENSITY32UI_EXT = 0x8D73
-
-pattern GL_INTENSITY8I_EXT = 0x8D91
-
-pattern GL_INTENSITY8UI_EXT = 0x8D7F
-
-pattern GL_LUMINANCE16I_EXT = 0x8D8C
-
-pattern GL_LUMINANCE16UI_EXT = 0x8D7A
-
-pattern GL_LUMINANCE32I_EXT = 0x8D86
-
-pattern GL_LUMINANCE32UI_EXT = 0x8D74
-
-pattern GL_LUMINANCE8I_EXT = 0x8D92
-
-pattern GL_LUMINANCE8UI_EXT = 0x8D80
-
-pattern GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D
-
-pattern GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B
-
-pattern GL_LUMINANCE_ALPHA32I_EXT = 0x8D87
-
-pattern GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75
-
-pattern GL_LUMINANCE_ALPHA8I_EXT = 0x8D93
-
-pattern GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81
-
-pattern GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D
-
-pattern GL_LUMINANCE_INTEGER_EXT = 0x8D9C
-
-pattern GL_RED_INTEGER_EXT = 0x8D94
-
-pattern GL_RGB16I_EXT = 0x8D89
-
-pattern GL_RGB16UI_EXT = 0x8D77
-
-pattern GL_RGB32I_EXT = 0x8D83
-
-pattern GL_RGB32UI_EXT = 0x8D71
-
-pattern GL_RGB8I_EXT = 0x8D8F
-
-pattern GL_RGB8UI_EXT = 0x8D7D
-
-pattern GL_RGBA16I_EXT = 0x8D88
-
-pattern GL_RGBA16UI_EXT = 0x8D76
-
-pattern GL_RGBA32I_EXT = 0x8D82
-
-pattern GL_RGBA32UI_EXT = 0x8D70
-
-pattern GL_RGBA8I_EXT = 0x8D8E
-
-pattern GL_RGBA8UI_EXT = 0x8D7C
-
-pattern GL_RGBA_INTEGER_EXT = 0x8D99
-
-pattern GL_RGBA_INTEGER_MODE_EXT = 0x8D9E
-
-pattern GL_RGB_INTEGER_EXT = 0x8D98
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureLodBias.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureLodBias.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureLodBias.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureLodBias (
-  -- * Extension Support
-    gl_EXT_texture_lod_bias
-
-  -- * GL_EXT_texture_lod_bias
-  , pattern GL_MAX_TEXTURE_LOD_BIAS_EXT
-  , pattern GL_TEXTURE_FILTER_CONTROL_EXT
-  , pattern GL_TEXTURE_LOD_BIAS_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_lod_bias.txt GL_EXT_texture_lod_bias> extension is available.
-
-gl_EXT_texture_lod_bias :: Bool
-gl_EXT_texture_lod_bias = member "GL_EXT_texture_lod_bias" extensions
-{-# NOINLINE gl_EXT_texture_lod_bias #-}
-
-pattern GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD
-
-pattern GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500
-
-pattern GL_TEXTURE_LOD_BIAS_EXT = 0x8501
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureMirrorClamp (
-  -- * Extension Support
-    gl_EXT_texture_mirror_clamp
-
-  -- * GL_EXT_texture_mirror_clamp
-  , pattern GL_MIRROR_CLAMP_EXT
-  , pattern GL_MIRROR_CLAMP_TO_BORDER_EXT
-  , pattern GL_MIRROR_CLAMP_TO_EDGE_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_mirror_clamp.txt GL_EXT_texture_mirror_clamp> extension is available.
-
-gl_EXT_texture_mirror_clamp :: Bool
-gl_EXT_texture_mirror_clamp = member "GL_EXT_texture_mirror_clamp" extensions
-{-# NOINLINE gl_EXT_texture_mirror_clamp #-}
-
-pattern GL_MIRROR_CLAMP_EXT = 0x8742
-
-pattern GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912
-
-pattern GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureNorm16.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureNorm16.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureNorm16.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureNorm16 (
-  -- * Extension Support
-    gl_EXT_texture_norm16
-
-  -- * GL_EXT_texture_norm16
-  , pattern GL_R16_EXT
-  , pattern GL_R16_SNORM_EXT
-  , pattern GL_RG16_EXT
-  , pattern GL_RG16_SNORM_EXT
-  , pattern GL_RGB16_EXT
-  , pattern GL_RGB16_SNORM_EXT
-  , pattern GL_RGBA16_EXT
-  , pattern GL_RGBA16_SNORM_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the GL_EXT_texture_norm16 extension is available.
-
-gl_EXT_texture_norm16 :: Bool
-gl_EXT_texture_norm16 = member "GL_EXT_texture_norm16" extensions
-{-# NOINLINE gl_EXT_texture_norm16 #-}
-
-pattern GL_R16_EXT = 0x822A
-
-pattern GL_RG16_EXT = 0x822C
-
-pattern GL_RGB16_SNORM_EXT = 0x8F9A
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureObject.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureObject.hs
+++ /dev/null
@@ -1,143 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureObject (
-  -- * Extension Support
-    gl_EXT_texture_object
-
-  -- * GL_EXT_texture_object
-  , glAreTexturesResidentEXT
-  , glBindTextureEXT
-  , glDeleteTexturesEXT
-  , glGenTexturesEXT
-  , glIsTextureEXT
-  , glPrioritizeTexturesEXT
-  , pattern GL_TEXTURE_1D_BINDING_EXT
-  , pattern GL_TEXTURE_2D_BINDING_EXT
-  , pattern GL_TEXTURE_3D_BINDING_EXT
-  , pattern GL_TEXTURE_PRIORITY_EXT
-  , pattern GL_TEXTURE_RESIDENT_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_object.txt GL_EXT_texture_object> extension is available.
-
-gl_EXT_texture_object :: Bool
-gl_EXT_texture_object = member "GL_EXT_texture_object" extensions
-{-# NOINLINE gl_EXT_texture_object #-}
-
--- | Usage: @'glAreTexturesResidentEXT' n textures residences@
---
--- The parameter @textures@ is a @Texture@.
---
--- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @textures@ should be @n@.
---
--- The length of @residences@ should be @n@.
-
-
-glAreTexturesResidentEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
-glAreTexturesResidentEXT = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentEXTFunPtr
-
-glAreTexturesResidentEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-glAreTexturesResidentEXTFunPtr = unsafePerformIO (getProcAddress "glAreTexturesResidentEXT")
-
-{-# NOINLINE glAreTexturesResidentEXTFunPtr #-}
-
--- | Usage: @'glBindTextureEXT' target texture@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @texture@ is a @Texture@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindTexture'.
-
-
-glBindTextureEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTextureEXT = ffienumuintIOV glBindTextureEXTFunPtr
-
-glBindTextureEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindTextureEXT")
-
-{-# NOINLINE glBindTextureEXTFunPtr #-}
-
--- | Usage: @'glDeleteTexturesEXT' n textures@
---
--- The parameter @textures@ is a @Texture@.
---
--- The length of @textures@ should be @n@.
-
-
-glDeleteTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTexturesEXT = ffisizeiPtruintIOV glDeleteTexturesEXTFunPtr
-
-glDeleteTexturesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTexturesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteTexturesEXT")
-
-{-# NOINLINE glDeleteTexturesEXTFunPtr #-}
-
--- | Usage: @'glGenTexturesEXT' n textures@
---
--- The parameter @textures@ is a @Texture@.
---
--- The length of @textures@ should be @n@.
-
-
-glGenTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTexturesEXT = ffisizeiPtruintIOV glGenTexturesEXTFunPtr
-
-glGenTexturesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTexturesEXTFunPtr = unsafePerformIO (getProcAddress "glGenTexturesEXT")
-
-{-# NOINLINE glGenTexturesEXTFunPtr #-}
-
--- | Usage: @'glIsTextureEXT' texture@
---
--- The parameter @texture@ is a @Texture@.
-
-
-glIsTextureEXT :: MonadIO m => GLuint -> m GLboolean
-glIsTextureEXT = ffiuintIOboolean glIsTextureEXTFunPtr
-
-glIsTextureEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTextureEXTFunPtr = unsafePerformIO (getProcAddress "glIsTextureEXT")
-
-{-# NOINLINE glIsTextureEXTFunPtr #-}
-
--- | Usage: @'glPrioritizeTexturesEXT' n textures priorities@
---
--- The parameter @textures@ is a @Texture@.
---
--- The parameter @priorities@ is a @ClampedFloat32@.
---
--- The length of @textures@ should be @n@.
---
--- The length of @priorities@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPrioritizeTextures'.
-
-
-glPrioritizeTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()
-glPrioritizeTexturesEXT = ffisizeiPtruintPtrclampfIOV glPrioritizeTexturesEXTFunPtr
-
-glPrioritizeTexturesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ())
-glPrioritizeTexturesEXTFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTexturesEXT")
-
-{-# NOINLINE glPrioritizeTexturesEXTFunPtr #-}
-
-pattern GL_TEXTURE_1D_BINDING_EXT = 0x8068
-
-pattern GL_TEXTURE_2D_BINDING_EXT = 0x8069
-
-pattern GL_TEXTURE_3D_BINDING_EXT = 0x806A
-
-pattern GL_TEXTURE_PRIORITY_EXT = 0x8066
-
-pattern GL_TEXTURE_RESIDENT_EXT = 0x8067
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TexturePerturbNormal (
-  -- * Extension Support
-    gl_EXT_texture_perturb_normal
-
-  -- * GL_EXT_texture_perturb_normal
-  , glTextureNormalEXT
-  , pattern GL_PERTURB_EXT
-  , pattern GL_TEXTURE_NORMAL_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_perturb_normal.txt GL_EXT_texture_perturb_normal> extension is available.
-
-gl_EXT_texture_perturb_normal :: Bool
-gl_EXT_texture_perturb_normal = member "GL_EXT_texture_perturb_normal" extensions
-{-# NOINLINE gl_EXT_texture_perturb_normal #-}
-
--- | Usage: @'glTextureNormalEXT' mode@
---
--- The parameter @mode@ is a @TextureNormalModeEXT@.
-
-
-glTextureNormalEXT :: MonadIO m => GLenum -> m ()
-glTextureNormalEXT = ffienumIOV glTextureNormalEXTFunPtr
-
-glTextureNormalEXTFunPtr :: FunPtr (GLenum -> IO ())
-glTextureNormalEXTFunPtr = unsafePerformIO (getProcAddress "glTextureNormalEXT")
-
-{-# NOINLINE glTextureNormalEXTFunPtr #-}
-
-pattern GL_PERTURB_EXT = 0x85AE
-
-pattern GL_TEXTURE_NORMAL_EXT = 0x85AF
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureRg.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureRg.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureRg.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureRg (
-  -- * Extension Support
-    gl_EXT_texture_rg
-
-  -- * GL_EXT_texture_rg
-  , pattern GL_R8_EXT
-  , pattern GL_RED_EXT
-  , pattern GL_RG8_EXT
-  , pattern GL_RG_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt GL_EXT_texture_rg> extension is available.
-
-gl_EXT_texture_rg :: Bool
-gl_EXT_texture_rg = member "GL_EXT_texture_rg" extensions
-{-# NOINLINE gl_EXT_texture_rg #-}
-
-pattern GL_RED_EXT = 0x1903
-
-pattern GL_RG_EXT = 0x8227
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGB.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGB.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGB.hs
+++ /dev/null
@@ -1,60 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureSRGB (
-  -- * Extension Support
-    gl_EXT_texture_sRGB
-
-  -- * GL_EXT_texture_sRGB
-  , pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
-  , pattern GL_COMPRESSED_SLUMINANCE_EXT
-  , pattern GL_COMPRESSED_SRGB_ALPHA_EXT
-  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
-  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
-  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
-  , pattern GL_COMPRESSED_SRGB_EXT
-  , pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
-  , pattern GL_SLUMINANCE8_ALPHA8_EXT
-  , pattern GL_SLUMINANCE8_EXT
-  , pattern GL_SLUMINANCE_ALPHA_EXT
-  , pattern GL_SLUMINANCE_EXT
-  , pattern GL_SRGB8_ALPHA8_EXT
-  , pattern GL_SRGB8_EXT
-  , pattern GL_SRGB_ALPHA_EXT
-  , pattern GL_SRGB_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB.txt GL_EXT_texture_sRGB> extension is available.
-
-gl_EXT_texture_sRGB :: Bool
-gl_EXT_texture_sRGB = member "GL_EXT_texture_sRGB" extensions
-{-# NOINLINE gl_EXT_texture_sRGB #-}
-
-pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B
-
-pattern GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A
-
-pattern GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49
-
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D
-
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E
-
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F
-
-pattern GL_COMPRESSED_SRGB_EXT = 0x8C48
-
-pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C
-
-pattern GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45
-
-pattern GL_SLUMINANCE8_EXT = 0x8C47
-
-pattern GL_SLUMINANCE_ALPHA_EXT = 0x8C44
-
-pattern GL_SLUMINANCE_EXT = 0x8C46
-
-pattern GL_SRGB8_EXT = 0x8C41
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureSRGBDecode (
-  -- * Extension Support
-    gl_EXT_texture_sRGB_decode
-
-  -- * GL_EXT_texture_sRGB_decode
-  , pattern GL_DECODE_EXT
-  , pattern GL_SKIP_DECODE_EXT
-  , pattern GL_TEXTURE_SRGB_DECODE_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB_decode.txt GL_EXT_texture_sRGB_decode> extension is available.
-
-gl_EXT_texture_sRGB_decode :: Bool
-gl_EXT_texture_sRGB_decode = member "GL_EXT_texture_sRGB_decode" extensions
-{-# NOINLINE gl_EXT_texture_sRGB_decode #-}
-
-pattern GL_DECODE_EXT = 0x8A49
-
-pattern GL_SKIP_DECODE_EXT = 0x8A4A
-
-pattern GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBR8.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBR8.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBR8.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureSRGBR8 (
-  -- * Extension Support
-    gl_EXT_texture_sRGB_R8
-
-  -- * GL_EXT_texture_sRGB_R8
-  , pattern GL_SR8_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_sRGB_R8.txt GL_EXT_texture_sRGB_R8> extension is available.
-
-gl_EXT_texture_sRGB_R8 :: Bool
-gl_EXT_texture_sRGB_R8 = member "GL_EXT_texture_sRGB_R8" extensions
-{-# NOINLINE gl_EXT_texture_sRGB_R8 #-}
-
-pattern GL_SR8_EXT = 0x8FBD
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureSRGBRG8 (
-  -- * Extension Support
-    gl_EXT_texture_sRGB_RG8
-
-  -- * GL_EXT_texture_sRGB_RG8
-  , pattern GL_SRG8_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_sRGB_RG8.txt GL_EXT_texture_sRGB_RG8> extension is available.
-
-gl_EXT_texture_sRGB_RG8 :: Bool
-gl_EXT_texture_sRGB_RG8 = member "GL_EXT_texture_sRGB_RG8" extensions
-{-# NOINLINE gl_EXT_texture_sRGB_RG8 #-}
-
-pattern GL_SRG8_EXT = 0x8FBE
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSharedExponent.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSharedExponent.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSharedExponent.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureSharedExponent (
-  -- * Extension Support
-    gl_EXT_texture_shared_exponent
-
-  -- * GL_EXT_texture_shared_exponent
-  , pattern GL_RGB9_E5_EXT
-  , pattern GL_TEXTURE_SHARED_SIZE_EXT
-  , pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_shared_exponent.txt GL_EXT_texture_shared_exponent> extension is available.
-
-gl_EXT_texture_shared_exponent :: Bool
-gl_EXT_texture_shared_exponent = member "GL_EXT_texture_shared_exponent" extensions
-{-# NOINLINE gl_EXT_texture_shared_exponent #-}
-
-pattern GL_RGB9_E5_EXT = 0x8C3D
-
-pattern GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F
-
-pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSnorm.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSnorm.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSnorm.hs
+++ /dev/null
@@ -1,75 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureSnorm (
-  -- * Extension Support
-    gl_EXT_texture_snorm
-
-  -- * GL_EXT_texture_snorm
-  , pattern GL_ALPHA16_SNORM
-  , pattern GL_ALPHA8_SNORM
-  , pattern GL_ALPHA_SNORM
-  , pattern GL_INTENSITY16_SNORM
-  , pattern GL_INTENSITY8_SNORM
-  , pattern GL_INTENSITY_SNORM
-  , pattern GL_LUMINANCE16_ALPHA16_SNORM
-  , pattern GL_LUMINANCE16_SNORM
-  , pattern GL_LUMINANCE8_ALPHA8_SNORM
-  , pattern GL_LUMINANCE8_SNORM
-  , pattern GL_LUMINANCE_ALPHA_SNORM
-  , pattern GL_LUMINANCE_SNORM
-  , pattern GL_R16_SNORM
-  , pattern GL_R8_SNORM
-  , pattern GL_RED_SNORM
-  , pattern GL_RG16_SNORM
-  , pattern GL_RG8_SNORM
-  , pattern GL_RGB16_SNORM
-  , pattern GL_RGB8_SNORM
-  , pattern GL_RGBA16_SNORM
-  , pattern GL_RGBA8_SNORM
-  , pattern GL_RGBA_SNORM
-  , pattern GL_RGB_SNORM
-  , pattern GL_RG_SNORM
-  , pattern GL_SIGNED_NORMALIZED
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_snorm.txt GL_EXT_texture_snorm> extension is available.
-
-gl_EXT_texture_snorm :: Bool
-gl_EXT_texture_snorm = member "GL_EXT_texture_snorm" extensions
-{-# NOINLINE gl_EXT_texture_snorm #-}
-
-pattern GL_ALPHA16_SNORM = 0x9018
-
-pattern GL_ALPHA8_SNORM = 0x9014
-
-pattern GL_ALPHA_SNORM = 0x9010
-
-pattern GL_INTENSITY16_SNORM = 0x901B
-
-pattern GL_INTENSITY8_SNORM = 0x9017
-
-pattern GL_INTENSITY_SNORM = 0x9013
-
-pattern GL_LUMINANCE16_ALPHA16_SNORM = 0x901A
-
-pattern GL_LUMINANCE16_SNORM = 0x9019
-
-pattern GL_LUMINANCE8_ALPHA8_SNORM = 0x9016
-
-pattern GL_LUMINANCE8_SNORM = 0x9015
-
-pattern GL_LUMINANCE_ALPHA_SNORM = 0x9012
-
-pattern GL_LUMINANCE_SNORM = 0x9011
-
-pattern GL_RED_SNORM = 0x8F90
-
-pattern GL_RGBA_SNORM = 0x8F93
-
-pattern GL_RGB_SNORM = 0x8F92
-
-pattern GL_RG_SNORM = 0x8F91
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureStorage.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureStorage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureStorage.hs
+++ /dev/null
@@ -1,113 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureStorage (
-  -- * Extension Support
-    gl_EXT_texture_storage
-
-  -- * GL_EXT_texture_storage
-  , glTexStorage1DEXT
-  , glTexStorage2DEXT
-  , glTexStorage3DEXT
-  , glTextureStorage1DEXT
-  , glTextureStorage2DEXT
-  , glTextureStorage3DEXT
-  , pattern GL_ALPHA16F_EXT
-  , pattern GL_ALPHA32F_EXT
-  , pattern GL_ALPHA8_EXT
-  , pattern GL_BGRA8_EXT
-  , pattern GL_LUMINANCE16F_EXT
-  , pattern GL_LUMINANCE32F_EXT
-  , pattern GL_LUMINANCE8_ALPHA8_EXT
-  , pattern GL_LUMINANCE8_EXT
-  , pattern GL_LUMINANCE_ALPHA16F_EXT
-  , pattern GL_LUMINANCE_ALPHA32F_EXT
-  , pattern GL_R16F_EXT
-  , pattern GL_R32F_EXT
-  , pattern GL_R8_EXT
-  , pattern GL_RG16F_EXT
-  , pattern GL_RG32F_EXT
-  , pattern GL_RG8_EXT
-  , pattern GL_RGB10_A2_EXT
-  , pattern GL_RGB10_EXT
-  , pattern GL_RGB16F_EXT
-  , pattern GL_RGB32F_EXT
-  , pattern GL_RGBA16F_EXT
-  , pattern GL_RGBA32F_EXT
-  , pattern GL_TEXTURE_IMMUTABLE_FORMAT_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt GL_EXT_texture_storage> extension is available.
-
-gl_EXT_texture_storage :: Bool
-gl_EXT_texture_storage = member "GL_EXT_texture_storage" extensions
-{-# NOINLINE gl_EXT_texture_storage #-}
-
--- | Usage: @'glTexStorage1DEXT' target levels internalformat width@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage1D'.
-
-
-glTexStorage1DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-glTexStorage1DEXT = ffienumsizeienumsizeiIOV glTexStorage1DEXTFunPtr
-
-glTexStorage1DEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTexStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTexStorage1DEXT")
-
-{-# NOINLINE glTexStorage1DEXTFunPtr #-}
-
--- | Usage: @'glTexStorage2DEXT' target levels internalformat width height@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage2D'.
-
-
-glTexStorage2DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTexStorage2DEXT = ffienumsizeienumsizeisizeiIOV glTexStorage2DEXTFunPtr
-
-glTexStorage2DEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTexStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DEXT")
-
-{-# NOINLINE glTexStorage2DEXTFunPtr #-}
-
--- | Usage: @'glTexStorage3DEXT' target levels internalformat width height depth@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage3D'.
-
-
-glTexStorage3DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTexStorage3DEXT = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DEXTFunPtr
-
-glTexStorage3DEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTexStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DEXT")
-
-{-# NOINLINE glTexStorage3DEXTFunPtr #-}
-
-pattern GL_ALPHA16F_EXT = 0x881C
-
-pattern GL_ALPHA32F_EXT = 0x8816
-
-pattern GL_LUMINANCE16F_EXT = 0x881E
-
-pattern GL_LUMINANCE32F_EXT = 0x8818
-
-pattern GL_LUMINANCE_ALPHA16F_EXT = 0x881F
-
-pattern GL_LUMINANCE_ALPHA32F_EXT = 0x8819
-
-pattern GL_R32F_EXT = 0x822E
-
-pattern GL_RG32F_EXT = 0x8230
-
-pattern GL_RGB32F_EXT = 0x8815
-
-pattern GL_RGBA32F_EXT = 0x8814
-
-pattern GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSwizzle.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSwizzle.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureSwizzle.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureSwizzle (
-  -- * Extension Support
-    gl_EXT_texture_swizzle
-
-  -- * GL_EXT_texture_swizzle
-  , pattern GL_TEXTURE_SWIZZLE_A_EXT
-  , pattern GL_TEXTURE_SWIZZLE_B_EXT
-  , pattern GL_TEXTURE_SWIZZLE_G_EXT
-  , pattern GL_TEXTURE_SWIZZLE_RGBA_EXT
-  , pattern GL_TEXTURE_SWIZZLE_R_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_swizzle.txt GL_EXT_texture_swizzle> extension is available.
-
-gl_EXT_texture_swizzle :: Bool
-gl_EXT_texture_swizzle = member "GL_EXT_texture_swizzle" extensions
-{-# NOINLINE gl_EXT_texture_swizzle #-}
-
-pattern GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45
-
-pattern GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44
-
-pattern GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43
-
-pattern GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46
-
-pattern GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureType2101010REV.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureType2101010REV.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureType2101010REV.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureType2101010REV (
-  -- * Extension Support
-    gl_EXT_texture_type_2_10_10_10_REV
-
-  -- * GL_EXT_texture_type_2_10_10_10_REV
-  , pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_type_2_10_10_10_REV.txt GL_EXT_texture_type_2_10_10_10_REV> extension is available.
-
-gl_EXT_texture_type_2_10_10_10_REV :: Bool
-gl_EXT_texture_type_2_10_10_10_REV = member "GL_EXT_texture_type_2_10_10_10_REV" extensions
-{-# NOINLINE gl_EXT_texture_type_2_10_10_10_REV #-}
-
-pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureView.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TextureView.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TextureView.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TextureView (
-  -- * Extension Support
-    gl_EXT_texture_view
-
-  -- * GL_EXT_texture_view
-  , glTextureViewEXT
-  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
-  , pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT
-  , pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT
-  , pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT
-  , pattern GL_TEXTURE_VIEW_NUM_LEVELS_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_view.txt GL_EXT_texture_view> extension is available.
-
-gl_EXT_texture_view :: Bool
-gl_EXT_texture_view = member "GL_EXT_texture_view" extensions
-{-# NOINLINE gl_EXT_texture_view #-}
-
--- | Usage: @'glTextureViewEXT' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTextureView'.
-
-
-glTextureViewEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glTextureViewEXT = ffiuintenumuintenumuintuintuintuintIOV glTextureViewEXTFunPtr
-
-glTextureViewEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glTextureViewEXTFunPtr = unsafePerformIO (getProcAddress "glTextureViewEXT")
-
-{-# NOINLINE glTextureViewEXTFunPtr #-}
-
-pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD
-
-pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB
-
-pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE
-
-pattern GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TimerQuery.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TimerQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TimerQuery.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TimerQuery (
-  -- * Extension Support
-    gl_EXT_timer_query
-
-  -- * GL_EXT_timer_query
-  , glGetQueryObjecti64vEXT
-  , glGetQueryObjectui64vEXT
-  , pattern GL_TIME_ELAPSED_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/timer_query.txt GL_EXT_timer_query> extension is available.
-
-gl_EXT_timer_query :: Bool
-gl_EXT_timer_query = member "GL_EXT_timer_query" extensions
-{-# NOINLINE gl_EXT_timer_query #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/TransformFeedback.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/TransformFeedback.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/TransformFeedback.hs
+++ /dev/null
@@ -1,178 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.TransformFeedback (
-  -- * Extension Support
-    gl_EXT_transform_feedback
-
-  -- * GL_EXT_transform_feedback
-  , glBeginTransformFeedbackEXT
-  , glBindBufferBaseEXT
-  , glBindBufferOffsetEXT
-  , glBindBufferRangeEXT
-  , glEndTransformFeedbackEXT
-  , glGetTransformFeedbackVaryingEXT
-  , glTransformFeedbackVaryingsEXT
-  , pattern GL_INTERLEAVED_ATTRIBS_EXT
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
-  , pattern GL_PRIMITIVES_GENERATED_EXT
-  , pattern GL_RASTERIZER_DISCARD_EXT
-  , pattern GL_SEPARATE_ATTRIBS_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
-  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_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/transform_feedback.txt GL_EXT_transform_feedback> extension is available.
-
-gl_EXT_transform_feedback :: Bool
-gl_EXT_transform_feedback = member "GL_EXT_transform_feedback" extensions
-{-# NOINLINE gl_EXT_transform_feedback #-}
-
--- | Usage: @'glBeginTransformFeedbackEXT' primitiveMode@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginTransformFeedback'.
-
-
-glBeginTransformFeedbackEXT :: MonadIO m => GLenum -> m ()
-glBeginTransformFeedbackEXT = ffienumIOV glBeginTransformFeedbackEXTFunPtr
-
-glBeginTransformFeedbackEXTFunPtr :: FunPtr (GLenum -> IO ())
-glBeginTransformFeedbackEXTFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedbackEXT")
-
-{-# NOINLINE glBeginTransformFeedbackEXTFunPtr #-}
-
--- | Usage: @'glBindBufferBaseEXT' target index buffer@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferBase'.
-
-
-glBindBufferBaseEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBindBufferBaseEXT = ffienumuintuintIOV glBindBufferBaseEXTFunPtr
-
-glBindBufferBaseEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBindBufferBaseEXTFunPtr = unsafePerformIO (getProcAddress "glBindBufferBaseEXT")
-
-{-# NOINLINE glBindBufferBaseEXTFunPtr #-}
-
--- | Usage: @'glBindBufferOffsetEXT' target index buffer offset@
---
--- The parameter @offset@ is a @BufferOffset@.
-
-
-glBindBufferOffsetEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()
-glBindBufferOffsetEXT = ffienumuintuintintptrIOV glBindBufferOffsetEXTFunPtr
-
-glBindBufferOffsetEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
-glBindBufferOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glBindBufferOffsetEXT")
-
-{-# NOINLINE glBindBufferOffsetEXTFunPtr #-}
-
--- | Usage: @'glBindBufferRangeEXT' target index buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferRange'.
-
-
-glBindBufferRangeEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glBindBufferRangeEXT = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeEXTFunPtr
-
-glBindBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glBindBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glBindBufferRangeEXT")
-
-{-# NOINLINE glBindBufferRangeEXTFunPtr #-}
-
--- | Usage: @'glEndTransformFeedbackEXT'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEndTransformFeedback'.
-
-
-glEndTransformFeedbackEXT :: MonadIO m => m ()
-glEndTransformFeedbackEXT = ffiIOV glEndTransformFeedbackEXTFunPtr
-
-glEndTransformFeedbackEXTFunPtr :: FunPtr (IO ())
-glEndTransformFeedbackEXTFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedbackEXT")
-
-{-# NOINLINE glEndTransformFeedbackEXTFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbackVaryingEXT' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTransformFeedbackVarying'.
-
-
-glGetTransformFeedbackVaryingEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetTransformFeedbackVaryingEXT = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingEXTFunPtr
-
-glGetTransformFeedbackVaryingEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetTransformFeedbackVaryingEXTFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVaryingEXT")
-
-{-# NOINLINE glGetTransformFeedbackVaryingEXTFunPtr #-}
-
--- | Usage: @'glTransformFeedbackVaryingsEXT' program count varyings bufferMode@
---
--- The length of @varyings@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTransformFeedbackVaryings'.
-
-
-glTransformFeedbackVaryingsEXT :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
-glTransformFeedbackVaryingsEXT = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsEXTFunPtr
-
-glTransformFeedbackVaryingsEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
-glTransformFeedbackVaryingsEXTFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryingsEXT")
-
-{-# NOINLINE glTransformFeedbackVaryingsEXTFunPtr #-}
-
-pattern GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80
-
-pattern GL_RASTERIZER_DISCARD_EXT = 0x8C89
-
-pattern GL_SEPARATE_ATTRIBS_EXT = 0x8C8D
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84
-
-pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88
-
-pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83
-
-pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/UnpackSubimage.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/UnpackSubimage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/UnpackSubimage.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.UnpackSubimage (
-  -- * Extension Support
-    gl_EXT_unpack_subimage
-
-  -- * GL_EXT_unpack_subimage
-  , pattern GL_UNPACK_ROW_LENGTH_EXT
-  , pattern GL_UNPACK_SKIP_PIXELS_EXT
-  , pattern GL_UNPACK_SKIP_ROWS_EXT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_unpack_subimage.txt GL_EXT_unpack_subimage> extension is available.
-
-gl_EXT_unpack_subimage :: Bool
-gl_EXT_unpack_subimage = member "GL_EXT_unpack_subimage" extensions
-{-# NOINLINE gl_EXT_unpack_subimage #-}
-
-pattern GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2
-
-pattern GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4
-
-pattern GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexArray.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/VertexArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexArray.hs
+++ /dev/null
@@ -1,262 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.VertexArray (
-  -- * Extension Support
-    gl_EXT_vertex_array
-
-  -- * GL_EXT_vertex_array
-  , glArrayElementEXT
-  , glColorPointerEXT
-  , glDrawArraysEXT
-  , glEdgeFlagPointerEXT
-  , glGetPointervEXT
-  , glIndexPointerEXT
-  , glNormalPointerEXT
-  , glTexCoordPointerEXT
-  , glVertexPointerEXT
-  , pattern GL_COLOR_ARRAY_COUNT_EXT
-  , pattern GL_COLOR_ARRAY_EXT
-  , pattern GL_COLOR_ARRAY_POINTER_EXT
-  , pattern GL_COLOR_ARRAY_SIZE_EXT
-  , pattern GL_COLOR_ARRAY_STRIDE_EXT
-  , pattern GL_COLOR_ARRAY_TYPE_EXT
-  , pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT
-  , pattern GL_EDGE_FLAG_ARRAY_EXT
-  , pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT
-  , pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT
-  , pattern GL_INDEX_ARRAY_COUNT_EXT
-  , pattern GL_INDEX_ARRAY_EXT
-  , pattern GL_INDEX_ARRAY_POINTER_EXT
-  , pattern GL_INDEX_ARRAY_STRIDE_EXT
-  , pattern GL_INDEX_ARRAY_TYPE_EXT
-  , pattern GL_NORMAL_ARRAY_COUNT_EXT
-  , pattern GL_NORMAL_ARRAY_EXT
-  , pattern GL_NORMAL_ARRAY_POINTER_EXT
-  , pattern GL_NORMAL_ARRAY_STRIDE_EXT
-  , pattern GL_NORMAL_ARRAY_TYPE_EXT
-  , pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT
-  , pattern GL_TEXTURE_COORD_ARRAY_EXT
-  , pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT
-  , pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT
-  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT
-  , pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT
-  , pattern GL_VERTEX_ARRAY_COUNT_EXT
-  , pattern GL_VERTEX_ARRAY_EXT
-  , pattern GL_VERTEX_ARRAY_POINTER_EXT
-  , pattern GL_VERTEX_ARRAY_SIZE_EXT
-  , pattern GL_VERTEX_ARRAY_STRIDE_EXT
-  , pattern GL_VERTEX_ARRAY_TYPE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array.txt GL_EXT_vertex_array> extension is available.
-
-gl_EXT_vertex_array :: Bool
-gl_EXT_vertex_array = member "GL_EXT_vertex_array" extensions
-{-# NOINLINE gl_EXT_vertex_array #-}
-
--- | Usage: @'glArrayElementEXT' i@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glArrayElement'.
-
-
-glArrayElementEXT :: MonadIO m => GLint -> m ()
-glArrayElementEXT = ffiintIOV glArrayElementEXTFunPtr
-
-glArrayElementEXTFunPtr :: FunPtr (GLint -> IO ())
-glArrayElementEXTFunPtr = unsafePerformIO (getProcAddress "glArrayElementEXT")
-
-{-# NOINLINE glArrayElementEXTFunPtr #-}
-
--- | Usage: @'glColorPointerEXT' size type stride count pointer@
---
--- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
-
-
-glColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
-glColorPointerEXT = ffiintenumsizeisizeiPtrVIOV glColorPointerEXTFunPtr
-
-glColorPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glColorPointerEXTFunPtr = unsafePerformIO (getProcAddress "glColorPointerEXT")
-
-{-# NOINLINE glColorPointerEXTFunPtr #-}
-
--- | Usage: @'glDrawArraysEXT' mode first count@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArrays'.
-
-
-glDrawArraysEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
-glDrawArraysEXT = ffienumintsizeiIOV glDrawArraysEXTFunPtr
-
-glDrawArraysEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
-glDrawArraysEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysEXT")
-
-{-# NOINLINE glDrawArraysEXTFunPtr #-}
-
--- | Usage: @'glEdgeFlagPointerEXT' stride count pointer@
---
--- The parameter @pointer@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @pointer@ should be @COMPSIZE(stride,count)@.
-
-
-glEdgeFlagPointerEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLboolean -> m ()
-glEdgeFlagPointerEXT = ffisizeisizeiPtrbooleanIOV glEdgeFlagPointerEXTFunPtr
-
-glEdgeFlagPointerEXTFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ())
-glEdgeFlagPointerEXTFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointerEXT")
-
-{-# NOINLINE glEdgeFlagPointerEXTFunPtr #-}
-
--- | Usage: @'glGetPointervEXT' pname params@
---
--- The parameter @pname@ is a @GetPointervPName@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_POINTER_EXT', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_BUFFER_POINTER_SGIX', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_POINTER_EXT'.
---
--- The length of @params@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetPointerv'.
-
-
-glGetPointervEXT :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
-glGetPointervEXT = ffienumPtrPtrVIOV glGetPointervEXTFunPtr
-
-glGetPointervEXTFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-glGetPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointervEXT")
-
-{-# NOINLINE glGetPointervEXTFunPtr #-}
-
--- | Usage: @'glIndexPointerEXT' type stride count pointer@
---
--- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride,count)@.
-
-
-glIndexPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
-glIndexPointerEXT = ffienumsizeisizeiPtrVIOV glIndexPointerEXTFunPtr
-
-glIndexPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glIndexPointerEXTFunPtr = unsafePerformIO (getProcAddress "glIndexPointerEXT")
-
-{-# NOINLINE glIndexPointerEXTFunPtr #-}
-
--- | Usage: @'glNormalPointerEXT' type stride count pointer@
---
--- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride,count)@.
-
-
-glNormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
-glNormalPointerEXT = ffienumsizeisizeiPtrVIOV glNormalPointerEXTFunPtr
-
-glNormalPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glNormalPointerEXTFunPtr = unsafePerformIO (getProcAddress "glNormalPointerEXT")
-
-{-# NOINLINE glNormalPointerEXTFunPtr #-}
-
--- | Usage: @'glTexCoordPointerEXT' size type stride count pointer@
---
--- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
-
-
-glTexCoordPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
-glTexCoordPointerEXT = ffiintenumsizeisizeiPtrVIOV glTexCoordPointerEXTFunPtr
-
-glTexCoordPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glTexCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointerEXT")
-
-{-# NOINLINE glTexCoordPointerEXTFunPtr #-}
-
--- | Usage: @'glVertexPointerEXT' size type stride count pointer@
---
--- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
-
-
-glVertexPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
-glVertexPointerEXT = ffiintenumsizeisizeiPtrVIOV glVertexPointerEXTFunPtr
-
-glVertexPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glVertexPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexPointerEXT")
-
-{-# NOINLINE glVertexPointerEXTFunPtr #-}
-
-pattern GL_COLOR_ARRAY_COUNT_EXT = 0x8084
-
-pattern GL_COLOR_ARRAY_EXT = 0x8076
-
-pattern GL_COLOR_ARRAY_POINTER_EXT = 0x8090
-
-pattern GL_COLOR_ARRAY_SIZE_EXT = 0x8081
-
-pattern GL_COLOR_ARRAY_STRIDE_EXT = 0x8083
-
-pattern GL_COLOR_ARRAY_TYPE_EXT = 0x8082
-
-pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D
-
-pattern GL_EDGE_FLAG_ARRAY_EXT = 0x8079
-
-pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093
-
-pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C
-
-pattern GL_INDEX_ARRAY_COUNT_EXT = 0x8087
-
-pattern GL_INDEX_ARRAY_EXT = 0x8077
-
-pattern GL_INDEX_ARRAY_POINTER_EXT = 0x8091
-
-pattern GL_INDEX_ARRAY_STRIDE_EXT = 0x8086
-
-pattern GL_INDEX_ARRAY_TYPE_EXT = 0x8085
-
-pattern GL_NORMAL_ARRAY_COUNT_EXT = 0x8080
-
-pattern GL_NORMAL_ARRAY_EXT = 0x8075
-
-pattern GL_NORMAL_ARRAY_POINTER_EXT = 0x808F
-
-pattern GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F
-
-pattern GL_NORMAL_ARRAY_TYPE_EXT = 0x807E
-
-pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B
-
-pattern GL_TEXTURE_COORD_ARRAY_EXT = 0x8078
-
-pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092
-
-pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088
-
-pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A
-
-pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089
-
-pattern GL_VERTEX_ARRAY_COUNT_EXT = 0x807D
-
-pattern GL_VERTEX_ARRAY_EXT = 0x8074
-
-pattern GL_VERTEX_ARRAY_POINTER_EXT = 0x808E
-
-pattern GL_VERTEX_ARRAY_SIZE_EXT = 0x807A
-
-pattern GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C
-
-pattern GL_VERTEX_ARRAY_TYPE_EXT = 0x807B
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexArrayBgra.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/VertexArrayBgra.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexArrayBgra.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.VertexArrayBgra (
-  -- * Extension Support
-    gl_EXT_vertex_array_bgra
-
-  -- * GL_EXT_vertex_array_bgra
-  , pattern GL_BGRA
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array_bgra.txt GL_EXT_vertex_array_bgra> extension is available.
-
-gl_EXT_vertex_array_bgra :: Bool
-gl_EXT_vertex_array_bgra = member "GL_EXT_vertex_array_bgra" extensions
-{-# NOINLINE gl_EXT_vertex_array_bgra #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs
+++ /dev/null
@@ -1,212 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.VertexAttrib64bit (
-  -- * Extension Support
-    gl_EXT_vertex_attrib_64bit
-
-  -- * GL_EXT_vertex_attrib_64bit
-  , glGetVertexAttribLdvEXT
-  , glVertexAttribL1dEXT
-  , glVertexAttribL1dvEXT
-  , glVertexAttribL2dEXT
-  , glVertexAttribL2dvEXT
-  , glVertexAttribL3dEXT
-  , glVertexAttribL3dvEXT
-  , glVertexAttribL4dEXT
-  , glVertexAttribL4dvEXT
-  , glVertexAttribLPointerEXT
-  , pattern GL_DOUBLE
-  , pattern GL_DOUBLE_MAT2_EXT
-  , pattern GL_DOUBLE_MAT2x3_EXT
-  , pattern GL_DOUBLE_MAT2x4_EXT
-  , pattern GL_DOUBLE_MAT3_EXT
-  , pattern GL_DOUBLE_MAT3x2_EXT
-  , pattern GL_DOUBLE_MAT3x4_EXT
-  , pattern GL_DOUBLE_MAT4_EXT
-  , pattern GL_DOUBLE_MAT4x2_EXT
-  , pattern GL_DOUBLE_MAT4x3_EXT
-  , pattern GL_DOUBLE_VEC2_EXT
-  , pattern GL_DOUBLE_VEC3_EXT
-  , pattern GL_DOUBLE_VEC4_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/vertex_attrib_64bit.txt GL_EXT_vertex_attrib_64bit> extension is available.
-
-gl_EXT_vertex_attrib_64bit :: Bool
-gl_EXT_vertex_attrib_64bit = member "GL_EXT_vertex_attrib_64bit" extensions
-{-# NOINLINE gl_EXT_vertex_attrib_64bit #-}
-
--- | Usage: @'glGetVertexAttribLdvEXT' index pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribLdv'.
-
-
-glGetVertexAttribLdvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribLdvEXT = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvEXTFunPtr
-
-glGetVertexAttribLdvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribLdvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdvEXT")
-
-{-# NOINLINE glGetVertexAttribLdvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL1dEXT' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL1d'.
-
-
-glVertexAttribL1dEXT :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttribL1dEXT = ffiuintdoubleIOV glVertexAttribL1dEXTFunPtr
-
-glVertexAttribL1dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttribL1dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dEXT")
-
-{-# NOINLINE glVertexAttribL1dEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL1dvEXT' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL1dv'.
-
-
-glVertexAttribL1dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL1dvEXT = ffiuintPtrdoubleIOV glVertexAttribL1dvEXTFunPtr
-
-glVertexAttribL1dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL1dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dvEXT")
-
-{-# NOINLINE glVertexAttribL1dvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL2dEXT' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL2d'.
-
-
-glVertexAttribL2dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttribL2dEXT = ffiuintdoubledoubleIOV glVertexAttribL2dEXTFunPtr
-
-glVertexAttribL2dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL2dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dEXT")
-
-{-# NOINLINE glVertexAttribL2dEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL2dvEXT' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL2dv'.
-
-
-glVertexAttribL2dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL2dvEXT = ffiuintPtrdoubleIOV glVertexAttribL2dvEXTFunPtr
-
-glVertexAttribL2dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL2dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dvEXT")
-
-{-# NOINLINE glVertexAttribL2dvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL3dEXT' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL3d'.
-
-
-glVertexAttribL3dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL3dEXT = ffiuintdoubledoubledoubleIOV glVertexAttribL3dEXTFunPtr
-
-glVertexAttribL3dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL3dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dEXT")
-
-{-# NOINLINE glVertexAttribL3dEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL3dvEXT' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL3dv'.
-
-
-glVertexAttribL3dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL3dvEXT = ffiuintPtrdoubleIOV glVertexAttribL3dvEXTFunPtr
-
-glVertexAttribL3dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL3dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dvEXT")
-
-{-# NOINLINE glVertexAttribL3dvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL4dEXT' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL4d'.
-
-
-glVertexAttribL4dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL4dEXT = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dEXTFunPtr
-
-glVertexAttribL4dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL4dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dEXT")
-
-{-# NOINLINE glVertexAttribL4dEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribL4dvEXT' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL4dv'.
-
-
-glVertexAttribL4dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL4dvEXT = ffiuintPtrdoubleIOV glVertexAttribL4dvEXTFunPtr
-
-glVertexAttribL4dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL4dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dvEXT")
-
-{-# NOINLINE glVertexAttribL4dvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribLPointerEXT' index size type stride pointer@
---
--- The length of @pointer@ should be @size@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribLPointer'.
-
-
-glVertexAttribLPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribLPointerEXT = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerEXTFunPtr
-
-glVertexAttribLPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribLPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointerEXT")
-
-{-# NOINLINE glVertexAttribLPointerEXTFunPtr #-}
-
-pattern GL_DOUBLE_MAT2_EXT = 0x8F46
-
-pattern GL_DOUBLE_MAT2x3_EXT = 0x8F49
-
-pattern GL_DOUBLE_MAT2x4_EXT = 0x8F4A
-
-pattern GL_DOUBLE_MAT3_EXT = 0x8F47
-
-pattern GL_DOUBLE_MAT3x2_EXT = 0x8F4B
-
-pattern GL_DOUBLE_MAT3x4_EXT = 0x8F4C
-
-pattern GL_DOUBLE_MAT4_EXT = 0x8F48
-
-pattern GL_DOUBLE_MAT4x2_EXT = 0x8F4D
-
-pattern GL_DOUBLE_MAT4x3_EXT = 0x8F4E
-
-pattern GL_DOUBLE_VEC2_EXT = 0x8FFC
-
-pattern GL_DOUBLE_VEC3_EXT = 0x8FFD
-
-pattern GL_DOUBLE_VEC4_EXT = 0x8FFE
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexShader.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/VertexShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexShader.hs
+++ /dev/null
@@ -1,980 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.VertexShader (
-  -- * Extension Support
-    gl_EXT_vertex_shader
-
-  -- * GL_EXT_vertex_shader
-  , glBeginVertexShaderEXT
-  , glBindLightParameterEXT
-  , glBindMaterialParameterEXT
-  , glBindParameterEXT
-  , glBindTexGenParameterEXT
-  , glBindTextureUnitParameterEXT
-  , glBindVertexShaderEXT
-  , glDeleteVertexShaderEXT
-  , glDisableVariantClientStateEXT
-  , glEnableVariantClientStateEXT
-  , glEndVertexShaderEXT
-  , glExtractComponentEXT
-  , glGenSymbolsEXT
-  , glGenVertexShadersEXT
-  , glGetInvariantBooleanvEXT
-  , glGetInvariantFloatvEXT
-  , glGetInvariantIntegervEXT
-  , glGetLocalConstantBooleanvEXT
-  , glGetLocalConstantFloatvEXT
-  , glGetLocalConstantIntegervEXT
-  , glGetVariantBooleanvEXT
-  , glGetVariantFloatvEXT
-  , glGetVariantIntegervEXT
-  , glGetVariantPointervEXT
-  , glInsertComponentEXT
-  , glIsVariantEnabledEXT
-  , glSetInvariantEXT
-  , glSetLocalConstantEXT
-  , glShaderOp1EXT
-  , glShaderOp2EXT
-  , glShaderOp3EXT
-  , glSwizzleEXT
-  , glVariantPointerEXT
-  , glVariantbvEXT
-  , glVariantdvEXT
-  , glVariantfvEXT
-  , glVariantivEXT
-  , glVariantsvEXT
-  , glVariantubvEXT
-  , glVariantuivEXT
-  , glVariantusvEXT
-  , glWriteMaskEXT
-  , pattern GL_CURRENT_VERTEX_EXT
-  , pattern GL_FULL_RANGE_EXT
-  , pattern GL_INVARIANT_DATATYPE_EXT
-  , pattern GL_INVARIANT_EXT
-  , pattern GL_INVARIANT_VALUE_EXT
-  , pattern GL_LOCAL_CONSTANT_DATATYPE_EXT
-  , pattern GL_LOCAL_CONSTANT_EXT
-  , pattern GL_LOCAL_CONSTANT_VALUE_EXT
-  , pattern GL_LOCAL_EXT
-  , pattern GL_MATRIX_EXT
-  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT
-  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT
-  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT
-  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
-  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT
-  , pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT
-  , pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT
-  , pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT
-  , pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
-  , pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT
-  , pattern GL_MVP_MATRIX_EXT
-  , pattern GL_NEGATIVE_ONE_EXT
-  , pattern GL_NEGATIVE_W_EXT
-  , pattern GL_NEGATIVE_X_EXT
-  , pattern GL_NEGATIVE_Y_EXT
-  , pattern GL_NEGATIVE_Z_EXT
-  , pattern GL_NORMALIZED_RANGE_EXT
-  , pattern GL_ONE_EXT
-  , pattern GL_OP_ADD_EXT
-  , pattern GL_OP_CLAMP_EXT
-  , pattern GL_OP_CROSS_PRODUCT_EXT
-  , pattern GL_OP_DOT3_EXT
-  , pattern GL_OP_DOT4_EXT
-  , pattern GL_OP_EXP_BASE_2_EXT
-  , pattern GL_OP_FLOOR_EXT
-  , pattern GL_OP_FRAC_EXT
-  , pattern GL_OP_INDEX_EXT
-  , pattern GL_OP_LOG_BASE_2_EXT
-  , pattern GL_OP_MADD_EXT
-  , pattern GL_OP_MAX_EXT
-  , pattern GL_OP_MIN_EXT
-  , pattern GL_OP_MOV_EXT
-  , pattern GL_OP_MULTIPLY_MATRIX_EXT
-  , pattern GL_OP_MUL_EXT
-  , pattern GL_OP_NEGATE_EXT
-  , pattern GL_OP_POWER_EXT
-  , pattern GL_OP_RECIP_EXT
-  , pattern GL_OP_RECIP_SQRT_EXT
-  , pattern GL_OP_ROUND_EXT
-  , pattern GL_OP_SET_GE_EXT
-  , pattern GL_OP_SET_LT_EXT
-  , pattern GL_OP_SUB_EXT
-  , pattern GL_OUTPUT_COLOR0_EXT
-  , pattern GL_OUTPUT_COLOR1_EXT
-  , pattern GL_OUTPUT_FOG_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD0_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD10_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD11_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD12_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD13_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD14_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD15_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD16_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD17_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD18_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD19_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD1_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD20_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD21_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD22_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD23_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD24_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD25_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD26_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD27_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD28_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD29_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD2_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD30_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD31_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD3_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD4_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD5_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD6_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD7_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD8_EXT
-  , pattern GL_OUTPUT_TEXTURE_COORD9_EXT
-  , pattern GL_OUTPUT_VERTEX_EXT
-  , pattern GL_SCALAR_EXT
-  , pattern GL_VARIANT_ARRAY_EXT
-  , pattern GL_VARIANT_ARRAY_POINTER_EXT
-  , pattern GL_VARIANT_ARRAY_STRIDE_EXT
-  , pattern GL_VARIANT_ARRAY_TYPE_EXT
-  , pattern GL_VARIANT_DATATYPE_EXT
-  , pattern GL_VARIANT_EXT
-  , pattern GL_VARIANT_VALUE_EXT
-  , pattern GL_VECTOR_EXT
-  , pattern GL_VERTEX_SHADER_BINDING_EXT
-  , pattern GL_VERTEX_SHADER_EXT
-  , pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT
-  , pattern GL_VERTEX_SHADER_INVARIANTS_EXT
-  , pattern GL_VERTEX_SHADER_LOCALS_EXT
-  , pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
-  , pattern GL_VERTEX_SHADER_OPTIMIZED_EXT
-  , pattern GL_VERTEX_SHADER_VARIANTS_EXT
-  , pattern GL_W_EXT
-  , pattern GL_X_EXT
-  , pattern GL_Y_EXT
-  , pattern GL_ZERO_EXT
-  , pattern GL_Z_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_shader.txt GL_EXT_vertex_shader> extension is available.
-
-gl_EXT_vertex_shader :: Bool
-gl_EXT_vertex_shader = member "GL_EXT_vertex_shader" extensions
-{-# NOINLINE gl_EXT_vertex_shader #-}
-
--- | Usage: @'glBeginVertexShaderEXT'@
-
-
-glBeginVertexShaderEXT :: MonadIO m => m ()
-glBeginVertexShaderEXT = ffiIOV glBeginVertexShaderEXTFunPtr
-
-glBeginVertexShaderEXTFunPtr :: FunPtr (IO ())
-glBeginVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glBeginVertexShaderEXT")
-
-{-# NOINLINE glBeginVertexShaderEXTFunPtr #-}
-
--- | Usage: @'glBindLightParameterEXT' light value@
---
--- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
---
--- The parameter @value@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
-
-
-glBindLightParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
-glBindLightParameterEXT = ffienumenumIOuint glBindLightParameterEXTFunPtr
-
-glBindLightParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
-glBindLightParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindLightParameterEXT")
-
-{-# NOINLINE glBindLightParameterEXTFunPtr #-}
-
--- | Usage: @'glBindMaterialParameterEXT' face value@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @value@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
-
-
-glBindMaterialParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
-glBindMaterialParameterEXT = ffienumenumIOuint glBindMaterialParameterEXTFunPtr
-
-glBindMaterialParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
-glBindMaterialParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindMaterialParameterEXT")
-
-{-# NOINLINE glBindMaterialParameterEXTFunPtr #-}
-
--- | Usage: @'glBindParameterEXT' value@
---
--- The parameter @value@ is a @VertexShaderParameterEXT@.
-
-
-glBindParameterEXT :: MonadIO m => GLenum -> m GLuint
-glBindParameterEXT = ffienumIOuint glBindParameterEXTFunPtr
-
-glBindParameterEXTFunPtr :: FunPtr (GLenum -> IO GLuint)
-glBindParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindParameterEXT")
-
-{-# NOINLINE glBindParameterEXTFunPtr #-}
-
--- | Usage: @'glBindTexGenParameterEXT' unit coord value@
---
--- The parameter @unit@ is a @TextureUnit@.
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @value@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
-
-
-glBindTexGenParameterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> m GLuint
-glBindTexGenParameterEXT = ffienumenumenumIOuint glBindTexGenParameterEXTFunPtr
-
-glBindTexGenParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint)
-glBindTexGenParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindTexGenParameterEXT")
-
-{-# NOINLINE glBindTexGenParameterEXTFunPtr #-}
-
--- | Usage: @'glBindTextureUnitParameterEXT' unit value@
---
--- The parameter @unit@ is a @TextureUnit@.
---
--- The parameter @value@ is a @VertexShaderTextureUnitParameter@.
-
-
-glBindTextureUnitParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
-glBindTextureUnitParameterEXT = ffienumenumIOuint glBindTextureUnitParameterEXTFunPtr
-
-glBindTextureUnitParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
-glBindTextureUnitParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnitParameterEXT")
-
-{-# NOINLINE glBindTextureUnitParameterEXTFunPtr #-}
-
--- | Usage: @'glBindVertexShaderEXT' id@
-
-
-glBindVertexShaderEXT :: MonadIO m => GLuint -> m ()
-glBindVertexShaderEXT = ffiuintIOV glBindVertexShaderEXTFunPtr
-
-glBindVertexShaderEXTFunPtr :: FunPtr (GLuint -> IO ())
-glBindVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glBindVertexShaderEXT")
-
-{-# NOINLINE glBindVertexShaderEXTFunPtr #-}
-
--- | Usage: @'glDeleteVertexShaderEXT' id@
-
-
-glDeleteVertexShaderEXT :: MonadIO m => GLuint -> m ()
-glDeleteVertexShaderEXT = ffiuintIOV glDeleteVertexShaderEXTFunPtr
-
-glDeleteVertexShaderEXTFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexShaderEXT")
-
-{-# NOINLINE glDeleteVertexShaderEXTFunPtr #-}
-
--- | Usage: @'glDisableVariantClientStateEXT' id@
-
-
-glDisableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
-glDisableVariantClientStateEXT = ffiuintIOV glDisableVariantClientStateEXTFunPtr
-
-glDisableVariantClientStateEXTFunPtr :: FunPtr (GLuint -> IO ())
-glDisableVariantClientStateEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVariantClientStateEXT")
-
-{-# NOINLINE glDisableVariantClientStateEXTFunPtr #-}
-
--- | Usage: @'glEnableVariantClientStateEXT' id@
-
-
-glEnableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
-glEnableVariantClientStateEXT = ffiuintIOV glEnableVariantClientStateEXTFunPtr
-
-glEnableVariantClientStateEXTFunPtr :: FunPtr (GLuint -> IO ())
-glEnableVariantClientStateEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVariantClientStateEXT")
-
-{-# NOINLINE glEnableVariantClientStateEXTFunPtr #-}
-
--- | Usage: @'glEndVertexShaderEXT'@
-
-
-glEndVertexShaderEXT :: MonadIO m => m ()
-glEndVertexShaderEXT = ffiIOV glEndVertexShaderEXTFunPtr
-
-glEndVertexShaderEXTFunPtr :: FunPtr (IO ())
-glEndVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glEndVertexShaderEXT")
-
-{-# NOINLINE glEndVertexShaderEXTFunPtr #-}
-
--- | Usage: @'glExtractComponentEXT' res src num@
-
-
-glExtractComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glExtractComponentEXT = ffiuintuintuintIOV glExtractComponentEXTFunPtr
-
-glExtractComponentEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glExtractComponentEXTFunPtr = unsafePerformIO (getProcAddress "glExtractComponentEXT")
-
-{-# NOINLINE glExtractComponentEXTFunPtr #-}
-
--- | Usage: @'glGenSymbolsEXT' datatype storagetype range components@
---
--- The parameter @datatype@ is a @DataTypeEXT@.
---
--- The parameter @storagetype@ is a @VertexShaderStorageTypeEXT@.
---
--- The parameter @range@ is a @ParameterRangeEXT@.
-
-
-glGenSymbolsEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
-glGenSymbolsEXT = ffienumenumenumuintIOuint glGenSymbolsEXTFunPtr
-
-glGenSymbolsEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint)
-glGenSymbolsEXTFunPtr = unsafePerformIO (getProcAddress "glGenSymbolsEXT")
-
-{-# NOINLINE glGenSymbolsEXTFunPtr #-}
-
--- | Usage: @'glGenVertexShadersEXT' range@
-
-
-glGenVertexShadersEXT :: MonadIO m => GLuint -> m GLuint
-glGenVertexShadersEXT = ffiuintIOuint glGenVertexShadersEXTFunPtr
-
-glGenVertexShadersEXTFunPtr :: FunPtr (GLuint -> IO GLuint)
-glGenVertexShadersEXTFunPtr = unsafePerformIO (getProcAddress "glGenVertexShadersEXT")
-
-{-# NOINLINE glGenVertexShadersEXTFunPtr #-}
-
--- | Usage: @'glGetInvariantBooleanvEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetInvariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
-glGetInvariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetInvariantBooleanvEXTFunPtr
-
-glGetInvariantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
-glGetInvariantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantBooleanvEXT")
-
-{-# NOINLINE glGetInvariantBooleanvEXTFunPtr #-}
-
--- | Usage: @'glGetInvariantFloatvEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetInvariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetInvariantFloatvEXT = ffiuintenumPtrfloatIOV glGetInvariantFloatvEXTFunPtr
-
-glGetInvariantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetInvariantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantFloatvEXT")
-
-{-# NOINLINE glGetInvariantFloatvEXTFunPtr #-}
-
--- | Usage: @'glGetInvariantIntegervEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetInvariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetInvariantIntegervEXT = ffiuintenumPtrintIOV glGetInvariantIntegervEXTFunPtr
-
-glGetInvariantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetInvariantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantIntegervEXT")
-
-{-# NOINLINE glGetInvariantIntegervEXTFunPtr #-}
-
--- | Usage: @'glGetLocalConstantBooleanvEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetLocalConstantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
-glGetLocalConstantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetLocalConstantBooleanvEXTFunPtr
-
-glGetLocalConstantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
-glGetLocalConstantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantBooleanvEXT")
-
-{-# NOINLINE glGetLocalConstantBooleanvEXTFunPtr #-}
-
--- | Usage: @'glGetLocalConstantFloatvEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetLocalConstantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetLocalConstantFloatvEXT = ffiuintenumPtrfloatIOV glGetLocalConstantFloatvEXTFunPtr
-
-glGetLocalConstantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetLocalConstantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantFloatvEXT")
-
-{-# NOINLINE glGetLocalConstantFloatvEXTFunPtr #-}
-
--- | Usage: @'glGetLocalConstantIntegervEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetLocalConstantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetLocalConstantIntegervEXT = ffiuintenumPtrintIOV glGetLocalConstantIntegervEXTFunPtr
-
-glGetLocalConstantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetLocalConstantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantIntegervEXT")
-
-{-# NOINLINE glGetLocalConstantIntegervEXTFunPtr #-}
-
--- | Usage: @'glGetVariantBooleanvEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetVariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
-glGetVariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetVariantBooleanvEXTFunPtr
-
-glGetVariantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
-glGetVariantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantBooleanvEXT")
-
-{-# NOINLINE glGetVariantBooleanvEXTFunPtr #-}
-
--- | Usage: @'glGetVariantFloatvEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetVariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVariantFloatvEXT = ffiuintenumPtrfloatIOV glGetVariantFloatvEXTFunPtr
-
-glGetVariantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVariantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantFloatvEXT")
-
-{-# NOINLINE glGetVariantFloatvEXTFunPtr #-}
-
--- | Usage: @'glGetVariantIntegervEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetVariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVariantIntegervEXT = ffiuintenumPtrintIOV glGetVariantIntegervEXTFunPtr
-
-glGetVariantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVariantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantIntegervEXT")
-
-{-# NOINLINE glGetVariantIntegervEXTFunPtr #-}
-
--- | Usage: @'glGetVariantPointervEXT' id value data@
---
--- The parameter @value@ is a @GetVariantValueEXT@.
---
--- The length of @data@ should be @COMPSIZE(id)@.
-
-
-glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVariantPointervEXT = ffiuintenumPtrPtrVIOV glGetVariantPointervEXTFunPtr
-
-glGetVariantPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVariantPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantPointervEXT")
-
-{-# NOINLINE glGetVariantPointervEXTFunPtr #-}
-
--- | Usage: @'glInsertComponentEXT' res src num@
-
-
-glInsertComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glInsertComponentEXT = ffiuintuintuintIOV glInsertComponentEXTFunPtr
-
-glInsertComponentEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glInsertComponentEXTFunPtr = unsafePerformIO (getProcAddress "glInsertComponentEXT")
-
-{-# NOINLINE glInsertComponentEXTFunPtr #-}
-
--- | Usage: @'glIsVariantEnabledEXT' id cap@
---
--- The parameter @cap@ is a @VariantCapEXT@.
-
-
-glIsVariantEnabledEXT :: MonadIO m => GLuint -> GLenum -> m GLboolean
-glIsVariantEnabledEXT = ffiuintenumIOboolean glIsVariantEnabledEXTFunPtr
-
-glIsVariantEnabledEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO GLboolean)
-glIsVariantEnabledEXTFunPtr = unsafePerformIO (getProcAddress "glIsVariantEnabledEXT")
-
-{-# NOINLINE glIsVariantEnabledEXTFunPtr #-}
-
--- | Usage: @'glSetInvariantEXT' id type addr@
---
--- The parameter @type@ is a @ScalarType@.
---
--- The length of @addr@ should be @COMPSIZE(id,type)@.
-
-
-glSetInvariantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glSetInvariantEXT = ffiuintenumPtrVIOV glSetInvariantEXTFunPtr
-
-glSetInvariantEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
-glSetInvariantEXTFunPtr = unsafePerformIO (getProcAddress "glSetInvariantEXT")
-
-{-# NOINLINE glSetInvariantEXTFunPtr #-}
-
--- | Usage: @'glSetLocalConstantEXT' id type addr@
---
--- The parameter @type@ is a @ScalarType@.
---
--- The length of @addr@ should be @COMPSIZE(id,type)@.
-
-
-glSetLocalConstantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
-glSetLocalConstantEXT = ffiuintenumPtrVIOV glSetLocalConstantEXTFunPtr
-
-glSetLocalConstantEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
-glSetLocalConstantEXTFunPtr = unsafePerformIO (getProcAddress "glSetLocalConstantEXT")
-
-{-# NOINLINE glSetLocalConstantEXTFunPtr #-}
-
--- | Usage: @'glShaderOp1EXT' op res arg1@
---
--- The parameter @op@ is a @VertexShaderOpEXT@.
-
-
-glShaderOp1EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glShaderOp1EXT = ffienumuintuintIOV glShaderOp1EXTFunPtr
-
-glShaderOp1EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glShaderOp1EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp1EXT")
-
-{-# NOINLINE glShaderOp1EXTFunPtr #-}
-
--- | Usage: @'glShaderOp2EXT' op res arg1 arg2@
---
--- The parameter @op@ is a @VertexShaderOpEXT@.
-
-
-glShaderOp2EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> m ()
-glShaderOp2EXT = ffienumuintuintuintIOV glShaderOp2EXTFunPtr
-
-glShaderOp2EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ())
-glShaderOp2EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp2EXT")
-
-{-# NOINLINE glShaderOp2EXTFunPtr #-}
-
--- | Usage: @'glShaderOp3EXT' op res arg1 arg2 arg3@
---
--- The parameter @op@ is a @VertexShaderOpEXT@.
-
-
-glShaderOp3EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glShaderOp3EXT = ffienumuintuintuintuintIOV glShaderOp3EXTFunPtr
-
-glShaderOp3EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glShaderOp3EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp3EXT")
-
-{-# NOINLINE glShaderOp3EXTFunPtr #-}
-
--- | Usage: @'glSwizzleEXT' res in outX outY outZ outW@
---
--- The parameter @outX@ is a @VertexShaderCoordOutEXT@.
---
--- The parameter @outY@ is a @VertexShaderCoordOutEXT@.
---
--- The parameter @outZ@ is a @VertexShaderCoordOutEXT@.
---
--- The parameter @outW@ is a @VertexShaderCoordOutEXT@.
-
-
-glSwizzleEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glSwizzleEXT = ffiuintuintenumenumenumenumIOV glSwizzleEXTFunPtr
-
-glSwizzleEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glSwizzleEXTFunPtr = unsafePerformIO (getProcAddress "glSwizzleEXT")
-
-{-# NOINLINE glSwizzleEXTFunPtr #-}
-
--- | Usage: @'glVariantPointerEXT' id type stride addr@
---
--- The parameter @type@ is a @ScalarType@.
---
--- The length of @addr@ should be @COMPSIZE(id,type,stride)@.
-
-
-glVariantPointerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr () -> m ()
-glVariantPointerEXT = ffiuintenumuintPtrVIOV glVariantPointerEXTFunPtr
-
-glVariantPointerEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ())
-glVariantPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVariantPointerEXT")
-
-{-# NOINLINE glVariantPointerEXTFunPtr #-}
-
--- | Usage: @'glVariantbvEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantbvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVariantbvEXT = ffiuintPtrbyteIOV glVariantbvEXTFunPtr
-
-glVariantbvEXTFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVariantbvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantbvEXT")
-
-{-# NOINLINE glVariantbvEXTFunPtr #-}
-
--- | Usage: @'glVariantdvEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantdvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVariantdvEXT = ffiuintPtrdoubleIOV glVariantdvEXTFunPtr
-
-glVariantdvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVariantdvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantdvEXT")
-
-{-# NOINLINE glVariantdvEXTFunPtr #-}
-
--- | Usage: @'glVariantfvEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantfvEXT :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVariantfvEXT = ffiuintPtrfloatIOV glVariantfvEXTFunPtr
-
-glVariantfvEXTFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVariantfvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantfvEXT")
-
-{-# NOINLINE glVariantfvEXTFunPtr #-}
-
--- | Usage: @'glVariantivEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVariantivEXT = ffiuintPtrintIOV glVariantivEXTFunPtr
-
-glVariantivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVariantivEXTFunPtr = unsafePerformIO (getProcAddress "glVariantivEXT")
-
-{-# NOINLINE glVariantivEXTFunPtr #-}
-
--- | Usage: @'glVariantsvEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantsvEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVariantsvEXT = ffiuintPtrshortIOV glVariantsvEXTFunPtr
-
-glVariantsvEXTFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVariantsvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantsvEXT")
-
-{-# NOINLINE glVariantsvEXTFunPtr #-}
-
--- | Usage: @'glVariantubvEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVariantubvEXT = ffiuintPtrubyteIOV glVariantubvEXTFunPtr
-
-glVariantubvEXTFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVariantubvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantubvEXT")
-
-{-# NOINLINE glVariantubvEXTFunPtr #-}
-
--- | Usage: @'glVariantuivEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantuivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVariantuivEXT = ffiuintPtruintIOV glVariantuivEXTFunPtr
-
-glVariantuivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVariantuivEXTFunPtr = unsafePerformIO (getProcAddress "glVariantuivEXT")
-
-{-# NOINLINE glVariantuivEXTFunPtr #-}
-
--- | Usage: @'glVariantusvEXT' id addr@
---
--- The length of @addr@ should be @COMPSIZE(id)@.
-
-
-glVariantusvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVariantusvEXT = ffiuintPtrushortIOV glVariantusvEXTFunPtr
-
-glVariantusvEXTFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVariantusvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantusvEXT")
-
-{-# NOINLINE glVariantusvEXTFunPtr #-}
-
--- | Usage: @'glWriteMaskEXT' res in outX outY outZ outW@
---
--- The parameter @outX@ is a @VertexShaderWriteMaskEXT@.
---
--- The parameter @outY@ is a @VertexShaderWriteMaskEXT@.
---
--- The parameter @outZ@ is a @VertexShaderWriteMaskEXT@.
---
--- The parameter @outW@ is a @VertexShaderWriteMaskEXT@.
-
-
-glWriteMaskEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glWriteMaskEXT = ffiuintuintenumenumenumenumIOV glWriteMaskEXTFunPtr
-
-glWriteMaskEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glWriteMaskEXTFunPtr = unsafePerformIO (getProcAddress "glWriteMaskEXT")
-
-{-# NOINLINE glWriteMaskEXTFunPtr #-}
-
-pattern GL_CURRENT_VERTEX_EXT = 0x87E2
-
-pattern GL_FULL_RANGE_EXT = 0x87E1
-
-pattern GL_INVARIANT_DATATYPE_EXT = 0x87EB
-
-pattern GL_INVARIANT_EXT = 0x87C2
-
-pattern GL_INVARIANT_VALUE_EXT = 0x87EA
-
-pattern GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED
-
-pattern GL_LOCAL_CONSTANT_EXT = 0x87C3
-
-pattern GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC
-
-pattern GL_LOCAL_EXT = 0x87C4
-
-pattern GL_MATRIX_EXT = 0x87C0
-
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA
-
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD
-
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE
-
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC
-
-pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB
-
-pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5
-
-pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7
-
-pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9
-
-pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8
-
-pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6
-
-pattern GL_MVP_MATRIX_EXT = 0x87E3
-
-pattern GL_NEGATIVE_ONE_EXT = 0x87DF
-
-pattern GL_NEGATIVE_W_EXT = 0x87DC
-
-pattern GL_NEGATIVE_X_EXT = 0x87D9
-
-pattern GL_NEGATIVE_Y_EXT = 0x87DA
-
-pattern GL_NEGATIVE_Z_EXT = 0x87DB
-
-pattern GL_NORMALIZED_RANGE_EXT = 0x87E0
-
-pattern GL_ONE_EXT = 0x87DE
-
-pattern GL_OP_ADD_EXT = 0x8787
-
-pattern GL_OP_CLAMP_EXT = 0x878E
-
-pattern GL_OP_CROSS_PRODUCT_EXT = 0x8797
-
-pattern GL_OP_DOT3_EXT = 0x8784
-
-pattern GL_OP_DOT4_EXT = 0x8785
-
-pattern GL_OP_EXP_BASE_2_EXT = 0x8791
-
-pattern GL_OP_FLOOR_EXT = 0x878F
-
-pattern GL_OP_FRAC_EXT = 0x8789
-
-pattern GL_OP_INDEX_EXT = 0x8782
-
-pattern GL_OP_LOG_BASE_2_EXT = 0x8792
-
-pattern GL_OP_MADD_EXT = 0x8788
-
-pattern GL_OP_MAX_EXT = 0x878A
-
-pattern GL_OP_MIN_EXT = 0x878B
-
-pattern GL_OP_MOV_EXT = 0x8799
-
-pattern GL_OP_MULTIPLY_MATRIX_EXT = 0x8798
-
-pattern GL_OP_MUL_EXT = 0x8786
-
-pattern GL_OP_NEGATE_EXT = 0x8783
-
-pattern GL_OP_POWER_EXT = 0x8793
-
-pattern GL_OP_RECIP_EXT = 0x8794
-
-pattern GL_OP_RECIP_SQRT_EXT = 0x8795
-
-pattern GL_OP_ROUND_EXT = 0x8790
-
-pattern GL_OP_SET_GE_EXT = 0x878C
-
-pattern GL_OP_SET_LT_EXT = 0x878D
-
-pattern GL_OP_SUB_EXT = 0x8796
-
-pattern GL_OUTPUT_COLOR0_EXT = 0x879B
-
-pattern GL_OUTPUT_COLOR1_EXT = 0x879C
-
-pattern GL_OUTPUT_FOG_EXT = 0x87BD
-
-pattern GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D
-
-pattern GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7
-
-pattern GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8
-
-pattern GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9
-
-pattern GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA
-
-pattern GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB
-
-pattern GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC
-
-pattern GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD
-
-pattern GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE
-
-pattern GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF
-
-pattern GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0
-
-pattern GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E
-
-pattern GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1
-
-pattern GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2
-
-pattern GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3
-
-pattern GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4
-
-pattern GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5
-
-pattern GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6
-
-pattern GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7
-
-pattern GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8
-
-pattern GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9
-
-pattern GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA
-
-pattern GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F
-
-pattern GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB
-
-pattern GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC
-
-pattern GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0
-
-pattern GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1
-
-pattern GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2
-
-pattern GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3
-
-pattern GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4
-
-pattern GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5
-
-pattern GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6
-
-pattern GL_OUTPUT_VERTEX_EXT = 0x879A
-
-pattern GL_SCALAR_EXT = 0x87BE
-
-pattern GL_VARIANT_ARRAY_EXT = 0x87E8
-
-pattern GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9
-
-pattern GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6
-
-pattern GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7
-
-pattern GL_VARIANT_DATATYPE_EXT = 0x87E5
-
-pattern GL_VARIANT_EXT = 0x87C1
-
-pattern GL_VARIANT_VALUE_EXT = 0x87E4
-
-pattern GL_VECTOR_EXT = 0x87BF
-
-pattern GL_VERTEX_SHADER_BINDING_EXT = 0x8781
-
-pattern GL_VERTEX_SHADER_EXT = 0x8780
-
-pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF
-
-pattern GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1
-
-pattern GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3
-
-pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2
-
-pattern GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4
-
-pattern GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0
-
-pattern GL_W_EXT = 0x87D8
-
-pattern GL_X_EXT = 0x87D5
-
-pattern GL_Y_EXT = 0x87D6
-
-pattern GL_ZERO_EXT = 0x87DD
-
-pattern GL_Z_EXT = 0x87D7
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexWeighting.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/VertexWeighting.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/VertexWeighting.hs
+++ /dev/null
@@ -1,105 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.VertexWeighting (
-  -- * Extension Support
-    gl_EXT_vertex_weighting
-
-  -- * GL_EXT_vertex_weighting
-  , glVertexWeightPointerEXT
-  , glVertexWeightfEXT
-  , glVertexWeightfvEXT
-  , pattern GL_CURRENT_VERTEX_WEIGHT_EXT
-  , pattern GL_MODELVIEW0_EXT
-  , pattern GL_MODELVIEW0_MATRIX_EXT
-  , pattern GL_MODELVIEW0_STACK_DEPTH_EXT
-  , pattern GL_MODELVIEW1_EXT
-  , pattern GL_MODELVIEW1_MATRIX_EXT
-  , pattern GL_MODELVIEW1_STACK_DEPTH_EXT
-  , pattern GL_VERTEX_WEIGHTING_EXT
-  , pattern GL_VERTEX_WEIGHT_ARRAY_EXT
-  , pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT
-  , pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT
-  , pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT
-  , pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_weighting.txt GL_EXT_vertex_weighting> extension is available.
-
-gl_EXT_vertex_weighting :: Bool
-gl_EXT_vertex_weighting = member "GL_EXT_vertex_weighting" extensions
-{-# NOINLINE gl_EXT_vertex_weighting #-}
-
--- | Usage: @'glVertexWeightPointerEXT' size type stride pointer@
---
--- The parameter @type@ is a @VertexWeightPointerTypeEXT@.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glVertexWeightPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexWeightPointerEXT = ffiintenumsizeiPtrVIOV glVertexWeightPointerEXTFunPtr
-
-glVertexWeightPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexWeightPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexWeightPointerEXT")
-
-{-# NOINLINE glVertexWeightPointerEXTFunPtr #-}
-
--- | Usage: @'glVertexWeightfEXT' weight@
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.VertexWeighting.glVertexWeightfvEXT'.
-
-
-glVertexWeightfEXT :: MonadIO m => GLfloat -> m ()
-glVertexWeightfEXT = ffifloatIOV glVertexWeightfEXTFunPtr
-
-glVertexWeightfEXTFunPtr :: FunPtr (GLfloat -> IO ())
-glVertexWeightfEXTFunPtr = unsafePerformIO (getProcAddress "glVertexWeightfEXT")
-
-{-# NOINLINE glVertexWeightfEXTFunPtr #-}
-
--- | Usage: @'glVertexWeightfvEXT' weight@
---
--- The length of @weight@ should be @1@.
-
-
-glVertexWeightfvEXT :: MonadIO m => Ptr GLfloat -> m ()
-glVertexWeightfvEXT = ffiPtrfloatIOV glVertexWeightfvEXTFunPtr
-
-glVertexWeightfvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glVertexWeightfvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexWeightfvEXT")
-
-{-# NOINLINE glVertexWeightfvEXTFunPtr #-}
-
-pattern GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B
-
-pattern GL_MODELVIEW0_EXT = 0x1700
-
-pattern GL_MODELVIEW0_MATRIX_EXT = 0x0BA6
-
-pattern GL_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3
-
-pattern GL_MODELVIEW1_EXT = 0x850A
-
-pattern GL_MODELVIEW1_MATRIX_EXT = 0x8506
-
-pattern GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502
-
-pattern GL_VERTEX_WEIGHTING_EXT = 0x8509
-
-pattern GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C
-
-pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510
-
-pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D
-
-pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F
-
-pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/WindowRectangles.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/WindowRectangles.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/WindowRectangles.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.WindowRectangles (
-  -- * Extension Support
-    gl_EXT_window_rectangles
-
-  -- * GL_EXT_window_rectangles
-  , glWindowRectanglesEXT
-  , pattern GL_EXCLUSIVE_EXT
-  , pattern GL_INCLUSIVE_EXT
-  , pattern GL_MAX_WINDOW_RECTANGLES_EXT
-  , pattern GL_NUM_WINDOW_RECTANGLES_EXT
-  , pattern GL_WINDOW_RECTANGLE_EXT
-  , pattern GL_WINDOW_RECTANGLE_MODE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/window_rectangles.txt GL_EXT_window_rectangles> extension is available.
-
-gl_EXT_window_rectangles :: Bool
-gl_EXT_window_rectangles = member "GL_EXT_window_rectangles" extensions
-{-# NOINLINE gl_EXT_window_rectangles #-}
-
--- | Usage: @'glWindowRectanglesEXT' mode count box@
---
--- The length of @box@ should be @COMPSIZE(count)@.
-
-
-glWindowRectanglesEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLint -> m ()
-glWindowRectanglesEXT = ffienumsizeiPtrintIOV glWindowRectanglesEXTFunPtr
-
-glWindowRectanglesEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ())
-glWindowRectanglesEXTFunPtr = unsafePerformIO (getProcAddress "glWindowRectanglesEXT")
-
-{-# NOINLINE glWindowRectanglesEXTFunPtr #-}
-
-pattern GL_EXCLUSIVE_EXT = 0x8F11
-
-pattern GL_INCLUSIVE_EXT = 0x8F10
-
-pattern GL_MAX_WINDOW_RECTANGLES_EXT = 0x8F14
-
-pattern GL_NUM_WINDOW_RECTANGLES_EXT = 0x8F15
-
-pattern GL_WINDOW_RECTANGLE_EXT = 0x8F12
-
-pattern GL_WINDOW_RECTANGLE_MODE_EXT = 0x8F13
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/X11SyncObject.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/X11SyncObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/X11SyncObject.hs
+++ /dev/null
@@ -1,37 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.X11SyncObject (
-  -- * Extension Support
-    gl_EXT_x11_sync_object
-
-  -- * GL_EXT_x11_sync_object
-  , glImportSyncEXT
-  , pattern GL_SYNC_X11_FENCE_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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/x11_sync_object.txt GL_EXT_x11_sync_object> extension is available.
-
-gl_EXT_x11_sync_object :: Bool
-gl_EXT_x11_sync_object = member "GL_EXT_x11_sync_object" extensions
-{-# NOINLINE gl_EXT_x11_sync_object #-}
-
--- | Usage: @'glImportSyncEXT' external_sync_type external_sync flags@
-
-
-glImportSyncEXT :: MonadIO m => GLenum -> GLintptr -> GLbitfield -> m GLsync
-glImportSyncEXT = ffienumintptrbitfieldIOsync glImportSyncEXTFunPtr
-
-glImportSyncEXTFunPtr :: FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync)
-glImportSyncEXTFunPtr = unsafePerformIO (getProcAddress "glImportSyncEXT")
-
-{-# NOINLINE glImportSyncEXTFunPtr #-}
-
-pattern GL_SYNC_X11_FENCE_EXT = 0x90E1
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/YUVTarget.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/YUVTarget.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/EXT/YUVTarget.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.EXT.YUVTarget (
-  -- * Extension Support
-    gl_EXT_YUV_target
-
-  -- * GL_EXT_YUV_target
-  , pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
-  , pattern GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT
-  , pattern GL_TEXTURE_BINDING_EXTERNAL_OES
-  , pattern GL_TEXTURE_EXTERNAL_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_YUV_target.txt GL_EXT_YUV_target> extension is available.
-
-gl_EXT_YUV_target :: Bool
-gl_EXT_YUV_target = member "GL_EXT_YUV_target" extensions
-{-# NOINLINE gl_EXT_YUV_target #-}
-
-pattern GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT = 0x8BE7
diff --git a/dist/build/autogen/Graphics/GL/Ext/FJ.hs b/dist/build/autogen/Graphics/GL/Ext/FJ.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/FJ.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.FJ (
-  -- * FJ Extensions
-    module Graphics.GL.Ext.FJ.ShaderBinaryGCCSO
-) where
-
-import Graphics.GL.Ext.FJ.ShaderBinaryGCCSO
diff --git a/dist/build/autogen/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs b/dist/build/autogen/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.FJ.ShaderBinaryGCCSO (
-  -- * Extension Support
-    gl_FJ_shader_binary_GCCSO
-
-  -- * GL_FJ_shader_binary_GCCSO
-  , pattern GL_GCCSO_SHADER_BINARY_FJ
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/FJ/FJ_shader_binary_GCCSO.txt GL_FJ_shader_binary_GCCSO> extension is available.
-
-gl_FJ_shader_binary_GCCSO :: Bool
-gl_FJ_shader_binary_GCCSO = member "GL_FJ_shader_binary_GCCSO" extensions
-{-# NOINLINE gl_FJ_shader_binary_GCCSO #-}
-
-pattern GL_GCCSO_SHADER_BINARY_FJ = 0x9260
diff --git a/dist/build/autogen/Graphics/GL/Ext/GREMEDY.hs b/dist/build/autogen/Graphics/GL/Ext/GREMEDY.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/GREMEDY.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.GREMEDY (
-  -- * GREMEDY Extensions
-    module Graphics.GL.Ext.GREMEDY.FrameTerminator
-  , module Graphics.GL.Ext.GREMEDY.StringMarker
-) where
-
-import Graphics.GL.Ext.GREMEDY.FrameTerminator
-import Graphics.GL.Ext.GREMEDY.StringMarker
diff --git a/dist/build/autogen/Graphics/GL/Ext/GREMEDY/FrameTerminator.hs b/dist/build/autogen/Graphics/GL/Ext/GREMEDY/FrameTerminator.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/GREMEDY/FrameTerminator.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.GREMEDY.FrameTerminator (
-  -- * Extension Support
-    gl_GREMEDY_frame_terminator
-
-  -- * GL_GREMEDY_frame_terminator
-  , glFrameTerminatorGREMEDY
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/frame_terminator.txt GL_GREMEDY_frame_terminator> extension is available.
-
-gl_GREMEDY_frame_terminator :: Bool
-gl_GREMEDY_frame_terminator = member "GL_GREMEDY_frame_terminator" extensions
-{-# NOINLINE gl_GREMEDY_frame_terminator #-}
-
--- | Usage: @'glFrameTerminatorGREMEDY'@
-
-
-glFrameTerminatorGREMEDY :: MonadIO m => m ()
-glFrameTerminatorGREMEDY = ffiIOV glFrameTerminatorGREMEDYFunPtr
-
-glFrameTerminatorGREMEDYFunPtr :: FunPtr (IO ())
-glFrameTerminatorGREMEDYFunPtr = unsafePerformIO (getProcAddress "glFrameTerminatorGREMEDY")
-
-{-# NOINLINE glFrameTerminatorGREMEDYFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/GREMEDY/StringMarker.hs b/dist/build/autogen/Graphics/GL/Ext/GREMEDY/StringMarker.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/GREMEDY/StringMarker.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.GREMEDY.StringMarker (
-  -- * Extension Support
-    gl_GREMEDY_string_marker
-
-  -- * GL_GREMEDY_string_marker
-  , glStringMarkerGREMEDY
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/string_marker.txt GL_GREMEDY_string_marker> extension is available.
-
-gl_GREMEDY_string_marker :: Bool
-gl_GREMEDY_string_marker = member "GL_GREMEDY_string_marker" extensions
-{-# NOINLINE gl_GREMEDY_string_marker #-}
-
--- | Usage: @'glStringMarkerGREMEDY' len string@
---
--- The length of @string@ should be @len@.
-
-
-glStringMarkerGREMEDY :: MonadIO m => GLsizei -> Ptr () -> m ()
-glStringMarkerGREMEDY = ffisizeiPtrVIOV glStringMarkerGREMEDYFunPtr
-
-glStringMarkerGREMEDYFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
-glStringMarkerGREMEDYFunPtr = unsafePerformIO (getProcAddress "glStringMarkerGREMEDY")
-
-{-# NOINLINE glStringMarkerGREMEDYFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/HP.hs b/dist/build/autogen/Graphics/GL/Ext/HP.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/HP.hs
+++ /dev/null
@@ -1,14 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.HP (
-  -- * HP Extensions
-    module Graphics.GL.Ext.HP.ConvolutionBorderModes
-  , module Graphics.GL.Ext.HP.ImageTransform
-  , module Graphics.GL.Ext.HP.OcclusionTest
-  , module Graphics.GL.Ext.HP.TextureLighting
-) where
-
-import Graphics.GL.Ext.HP.ConvolutionBorderModes
-import Graphics.GL.Ext.HP.ImageTransform
-import Graphics.GL.Ext.HP.OcclusionTest
-import Graphics.GL.Ext.HP.TextureLighting
diff --git a/dist/build/autogen/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs b/dist/build/autogen/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.HP.ConvolutionBorderModes (
-  -- * Extension Support
-    gl_HP_convolution_border_modes
-
-  -- * GL_HP_convolution_border_modes
-  , pattern GL_CONSTANT_BORDER_HP
-  , pattern GL_CONVOLUTION_BORDER_COLOR_HP
-  , pattern GL_IGNORE_BORDER_HP
-  , pattern GL_REPLICATE_BORDER_HP
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/convolution_border_modes.txt GL_HP_convolution_border_modes> extension is available.
-
-gl_HP_convolution_border_modes :: Bool
-gl_HP_convolution_border_modes = member "GL_HP_convolution_border_modes" extensions
-{-# NOINLINE gl_HP_convolution_border_modes #-}
-
-pattern GL_CONSTANT_BORDER_HP = 0x8151
-
-pattern GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154
-
-pattern GL_IGNORE_BORDER_HP = 0x8150
-
-pattern GL_REPLICATE_BORDER_HP = 0x8153
diff --git a/dist/build/autogen/Graphics/GL/Ext/HP/ImageTransform.hs b/dist/build/autogen/Graphics/GL/Ext/HP/ImageTransform.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/HP/ImageTransform.hs
+++ /dev/null
@@ -1,171 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.HP.ImageTransform (
-  -- * Extension Support
-    gl_HP_image_transform
-
-  -- * GL_HP_image_transform
-  , glGetImageTransformParameterfvHP
-  , glGetImageTransformParameterivHP
-  , glImageTransformParameterfHP
-  , glImageTransformParameterfvHP
-  , glImageTransformParameteriHP
-  , glImageTransformParameterivHP
-  , pattern GL_AVERAGE_HP
-  , pattern GL_CUBIC_HP
-  , pattern GL_IMAGE_CUBIC_WEIGHT_HP
-  , pattern GL_IMAGE_MAG_FILTER_HP
-  , pattern GL_IMAGE_MIN_FILTER_HP
-  , pattern GL_IMAGE_ROTATE_ANGLE_HP
-  , pattern GL_IMAGE_ROTATE_ORIGIN_X_HP
-  , pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP
-  , pattern GL_IMAGE_SCALE_X_HP
-  , pattern GL_IMAGE_SCALE_Y_HP
-  , pattern GL_IMAGE_TRANSFORM_2D_HP
-  , pattern GL_IMAGE_TRANSLATE_X_HP
-  , pattern GL_IMAGE_TRANSLATE_Y_HP
-  , pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
-  , pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/image_transform.txt GL_HP_image_transform> extension is available.
-
-gl_HP_image_transform :: Bool
-gl_HP_image_transform = member "GL_HP_image_transform" extensions
-{-# NOINLINE gl_HP_image_transform #-}
-
--- | Usage: @'glGetImageTransformParameterfvHP' target pname params@
---
--- The parameter @target@ is a @ImageTransformTargetHP@.
---
--- The parameter @pname@ is a @ImageTransformPNameHP@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetImageTransformParameterfvHP = ffienumenumPtrfloatIOV glGetImageTransformParameterfvHPFunPtr
-
-glGetImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetImageTransformParameterfvHPFunPtr = unsafePerformIO (getProcAddress "glGetImageTransformParameterfvHP")
-
-{-# NOINLINE glGetImageTransformParameterfvHPFunPtr #-}
-
--- | Usage: @'glGetImageTransformParameterivHP' target pname params@
---
--- The parameter @target@ is a @ImageTransformTargetHP@.
---
--- The parameter @pname@ is a @ImageTransformPNameHP@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetImageTransformParameterivHP = ffienumenumPtrintIOV glGetImageTransformParameterivHPFunPtr
-
-glGetImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetImageTransformParameterivHPFunPtr = unsafePerformIO (getProcAddress "glGetImageTransformParameterivHP")
-
-{-# NOINLINE glGetImageTransformParameterivHPFunPtr #-}
-
--- | Usage: @'glImageTransformParameterfHP' target pname param@
---
--- The parameter @target@ is a @ImageTransformTargetHP@.
---
--- The parameter @pname@ is a @ImageTransformPNameHP@.
-
-
-glImageTransformParameterfHP :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glImageTransformParameterfHP = ffienumenumfloatIOV glImageTransformParameterfHPFunPtr
-
-glImageTransformParameterfHPFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glImageTransformParameterfHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameterfHP")
-
-{-# NOINLINE glImageTransformParameterfHPFunPtr #-}
-
--- | Usage: @'glImageTransformParameterfvHP' target pname params@
---
--- The parameter @target@ is a @ImageTransformTargetHP@.
---
--- The parameter @pname@ is a @ImageTransformPNameHP@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glImageTransformParameterfvHP = ffienumenumPtrfloatIOV glImageTransformParameterfvHPFunPtr
-
-glImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glImageTransformParameterfvHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameterfvHP")
-
-{-# NOINLINE glImageTransformParameterfvHPFunPtr #-}
-
--- | Usage: @'glImageTransformParameteriHP' target pname param@
---
--- The parameter @target@ is a @ImageTransformTargetHP@.
---
--- The parameter @pname@ is a @ImageTransformPNameHP@.
-
-
-glImageTransformParameteriHP :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glImageTransformParameteriHP = ffienumenumintIOV glImageTransformParameteriHPFunPtr
-
-glImageTransformParameteriHPFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glImageTransformParameteriHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameteriHP")
-
-{-# NOINLINE glImageTransformParameteriHPFunPtr #-}
-
--- | Usage: @'glImageTransformParameterivHP' target pname params@
---
--- The parameter @target@ is a @ImageTransformTargetHP@.
---
--- The parameter @pname@ is a @ImageTransformPNameHP@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glImageTransformParameterivHP = ffienumenumPtrintIOV glImageTransformParameterivHPFunPtr
-
-glImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glImageTransformParameterivHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameterivHP")
-
-{-# NOINLINE glImageTransformParameterivHPFunPtr #-}
-
-pattern GL_AVERAGE_HP = 0x8160
-
-pattern GL_CUBIC_HP = 0x815F
-
-pattern GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E
-
-pattern GL_IMAGE_MAG_FILTER_HP = 0x815C
-
-pattern GL_IMAGE_MIN_FILTER_HP = 0x815D
-
-pattern GL_IMAGE_ROTATE_ANGLE_HP = 0x8159
-
-pattern GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A
-
-pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B
-
-pattern GL_IMAGE_SCALE_X_HP = 0x8155
-
-pattern GL_IMAGE_SCALE_Y_HP = 0x8156
-
-pattern GL_IMAGE_TRANSFORM_2D_HP = 0x8161
-
-pattern GL_IMAGE_TRANSLATE_X_HP = 0x8157
-
-pattern GL_IMAGE_TRANSLATE_Y_HP = 0x8158
-
-pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162
-
-pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163
diff --git a/dist/build/autogen/Graphics/GL/Ext/HP/OcclusionTest.hs b/dist/build/autogen/Graphics/GL/Ext/HP/OcclusionTest.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/HP/OcclusionTest.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.HP.OcclusionTest (
-  -- * Extension Support
-    gl_HP_occlusion_test
-
-  -- * GL_HP_occlusion_test
-  , pattern GL_OCCLUSION_TEST_HP
-  , pattern GL_OCCLUSION_TEST_RESULT_HP
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/occlusion_test.txt GL_HP_occlusion_test> extension is available.
-
-gl_HP_occlusion_test :: Bool
-gl_HP_occlusion_test = member "GL_HP_occlusion_test" extensions
-{-# NOINLINE gl_HP_occlusion_test #-}
-
-pattern GL_OCCLUSION_TEST_HP = 0x8165
-
-pattern GL_OCCLUSION_TEST_RESULT_HP = 0x8166
diff --git a/dist/build/autogen/Graphics/GL/Ext/HP/TextureLighting.hs b/dist/build/autogen/Graphics/GL/Ext/HP/TextureLighting.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/HP/TextureLighting.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.HP.TextureLighting (
-  -- * Extension Support
-    gl_HP_texture_lighting
-
-  -- * GL_HP_texture_lighting
-  , pattern GL_TEXTURE_LIGHTING_MODE_HP
-  , pattern GL_TEXTURE_POST_SPECULAR_HP
-  , pattern GL_TEXTURE_PRE_SPECULAR_HP
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/texture_lighting.txt GL_HP_texture_lighting> extension is available.
-
-gl_HP_texture_lighting :: Bool
-gl_HP_texture_lighting = member "GL_HP_texture_lighting" extensions
-{-# NOINLINE gl_HP_texture_lighting #-}
-
-pattern GL_TEXTURE_LIGHTING_MODE_HP = 0x8167
-
-pattern GL_TEXTURE_POST_SPECULAR_HP = 0x8168
-
-pattern GL_TEXTURE_PRE_SPECULAR_HP = 0x8169
diff --git a/dist/build/autogen/Graphics/GL/Ext/IBM.hs b/dist/build/autogen/Graphics/GL/Ext/IBM.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IBM.hs
+++ /dev/null
@@ -1,18 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IBM (
-  -- * IBM Extensions
-    module Graphics.GL.Ext.IBM.CullVertex
-  , module Graphics.GL.Ext.IBM.MultimodeDrawArrays
-  , module Graphics.GL.Ext.IBM.RasterposClip
-  , module Graphics.GL.Ext.IBM.StaticData
-  , module Graphics.GL.Ext.IBM.TextureMirroredRepeat
-  , module Graphics.GL.Ext.IBM.VertexArrayLists
-) where
-
-import Graphics.GL.Ext.IBM.CullVertex
-import Graphics.GL.Ext.IBM.MultimodeDrawArrays
-import Graphics.GL.Ext.IBM.RasterposClip
-import Graphics.GL.Ext.IBM.StaticData
-import Graphics.GL.Ext.IBM.TextureMirroredRepeat
-import Graphics.GL.Ext.IBM.VertexArrayLists
diff --git a/dist/build/autogen/Graphics/GL/Ext/IBM/CullVertex.hs b/dist/build/autogen/Graphics/GL/Ext/IBM/CullVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IBM/CullVertex.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IBM.CullVertex (
-  -- * Extension Support
-    gl_IBM_cull_vertex
-
-  -- * GL_IBM_cull_vertex
-  , pattern GL_CULL_VERTEX_IBM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/cull_vertex.txt GL_IBM_cull_vertex> extension is available.
-
-gl_IBM_cull_vertex :: Bool
-gl_IBM_cull_vertex = member "GL_IBM_cull_vertex" extensions
-{-# NOINLINE gl_IBM_cull_vertex #-}
-
-pattern GL_CULL_VERTEX_IBM = 103050
diff --git a/dist/build/autogen/Graphics/GL/Ext/IBM/MultimodeDrawArrays.hs b/dist/build/autogen/Graphics/GL/Ext/IBM/MultimodeDrawArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IBM/MultimodeDrawArrays.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IBM.MultimodeDrawArrays (
-  -- * Extension Support
-    gl_IBM_multimode_draw_arrays
-
-  -- * GL_IBM_multimode_draw_arrays
-  , glMultiModeDrawArraysIBM
-  , glMultiModeDrawElementsIBM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/multimode_draw_arrays.txt GL_IBM_multimode_draw_arrays> extension is available.
-
-gl_IBM_multimode_draw_arrays :: Bool
-gl_IBM_multimode_draw_arrays = member "GL_IBM_multimode_draw_arrays" extensions
-{-# NOINLINE gl_IBM_multimode_draw_arrays #-}
-
--- | Usage: @'glMultiModeDrawArraysIBM' mode first count primcount modestride@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @mode@ should be @COMPSIZE(primcount)@.
---
--- The length of @first@ should be @COMPSIZE(primcount)@.
---
--- The length of @count@ should be @COMPSIZE(primcount)@.
-
-
-glMultiModeDrawArraysIBM :: MonadIO m => Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
-glMultiModeDrawArraysIBM = ffiPtrenumPtrintPtrsizeisizeiintIOV glMultiModeDrawArraysIBMFunPtr
-
-glMultiModeDrawArraysIBMFunPtr :: FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ())
-glMultiModeDrawArraysIBMFunPtr = unsafePerformIO (getProcAddress "glMultiModeDrawArraysIBM")
-
-{-# NOINLINE glMultiModeDrawArraysIBMFunPtr #-}
-
--- | Usage: @'glMultiModeDrawElementsIBM' mode count type indices primcount modestride@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @mode@ should be @COMPSIZE(primcount)@.
---
--- The length of @count@ should be @COMPSIZE(primcount)@.
---
--- The length of @indices@ should be @COMPSIZE(primcount)@.
-
-
-glMultiModeDrawElementsIBM :: MonadIO m => Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()
-glMultiModeDrawElementsIBM = ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV glMultiModeDrawElementsIBMFunPtr
-
-glMultiModeDrawElementsIBMFunPtr :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ())
-glMultiModeDrawElementsIBMFunPtr = unsafePerformIO (getProcAddress "glMultiModeDrawElementsIBM")
-
-{-# NOINLINE glMultiModeDrawElementsIBMFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/IBM/RasterposClip.hs b/dist/build/autogen/Graphics/GL/Ext/IBM/RasterposClip.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IBM/RasterposClip.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IBM.RasterposClip (
-  -- * Extension Support
-    gl_IBM_rasterpos_clip
-
-  -- * GL_IBM_rasterpos_clip
-  , pattern GL_RASTER_POSITION_UNCLIPPED_IBM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/rasterpos_clip.txt GL_IBM_rasterpos_clip> extension is available.
-
-gl_IBM_rasterpos_clip :: Bool
-gl_IBM_rasterpos_clip = member "GL_IBM_rasterpos_clip" extensions
-{-# NOINLINE gl_IBM_rasterpos_clip #-}
-
-pattern GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262
diff --git a/dist/build/autogen/Graphics/GL/Ext/IBM/StaticData.hs b/dist/build/autogen/Graphics/GL/Ext/IBM/StaticData.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IBM/StaticData.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IBM.StaticData (
-  -- * Extension Support
-    gl_IBM_static_data
-
-  -- * GL_IBM_static_data
-  , glFlushStaticDataIBM
-  , pattern GL_ALL_STATIC_DATA_IBM
-  , pattern GL_STATIC_VERTEX_ARRAY_IBM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/static_data.txt GL_IBM_static_data> extension is available.
-
-gl_IBM_static_data :: Bool
-gl_IBM_static_data = member "GL_IBM_static_data" extensions
-{-# NOINLINE gl_IBM_static_data #-}
-
--- | Usage: @'glFlushStaticDataIBM' target@
-
-
-glFlushStaticDataIBM :: MonadIO m => GLenum -> m ()
-glFlushStaticDataIBM = ffienumIOV glFlushStaticDataIBMFunPtr
-
-glFlushStaticDataIBMFunPtr :: FunPtr (GLenum -> IO ())
-glFlushStaticDataIBMFunPtr = unsafePerformIO (getProcAddress "glFlushStaticDataIBM")
-
-{-# NOINLINE glFlushStaticDataIBMFunPtr #-}
-
-pattern GL_ALL_STATIC_DATA_IBM = 103060
-
-pattern GL_STATIC_VERTEX_ARRAY_IBM = 103061
diff --git a/dist/build/autogen/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IBM.TextureMirroredRepeat (
-  -- * Extension Support
-    gl_IBM_texture_mirrored_repeat
-
-  -- * GL_IBM_texture_mirrored_repeat
-  , pattern GL_MIRRORED_REPEAT_IBM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/texture_mirrored_repeat.txt GL_IBM_texture_mirrored_repeat> extension is available.
-
-gl_IBM_texture_mirrored_repeat :: Bool
-gl_IBM_texture_mirrored_repeat = member "GL_IBM_texture_mirrored_repeat" extensions
-{-# NOINLINE gl_IBM_texture_mirrored_repeat #-}
-
-pattern GL_MIRRORED_REPEAT_IBM = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Ext/IBM/VertexArrayLists.hs b/dist/build/autogen/Graphics/GL/Ext/IBM/VertexArrayLists.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IBM/VertexArrayLists.hs
+++ /dev/null
@@ -1,198 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IBM.VertexArrayLists (
-  -- * Extension Support
-    gl_IBM_vertex_array_lists
-
-  -- * GL_IBM_vertex_array_lists
-  , glColorPointerListIBM
-  , glEdgeFlagPointerListIBM
-  , glFogCoordPointerListIBM
-  , glIndexPointerListIBM
-  , glNormalPointerListIBM
-  , glSecondaryColorPointerListIBM
-  , glTexCoordPointerListIBM
-  , glVertexPointerListIBM
-  , pattern GL_COLOR_ARRAY_LIST_IBM
-  , pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM
-  , pattern GL_EDGE_FLAG_ARRAY_LIST_IBM
-  , pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM
-  , pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM
-  , pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM
-  , pattern GL_INDEX_ARRAY_LIST_IBM
-  , pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM
-  , pattern GL_NORMAL_ARRAY_LIST_IBM
-  , pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM
-  , pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM
-  , pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM
-  , pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM
-  , pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM
-  , pattern GL_VERTEX_ARRAY_LIST_IBM
-  , pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/vertex_array_lists.txt GL_IBM_vertex_array_lists> extension is available.
-
-gl_IBM_vertex_array_lists :: Bool
-gl_IBM_vertex_array_lists = member "GL_IBM_vertex_array_lists" extensions
-{-# NOINLINE gl_IBM_vertex_array_lists #-}
-
--- | Usage: @'glColorPointerListIBM' size type stride pointer ptrstride@
---
--- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-glColorPointerListIBM = ffiintenumintPtrPtrVintIOV glColorPointerListIBMFunPtr
-
-glColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
-glColorPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glColorPointerListIBM")
-
-{-# NOINLINE glColorPointerListIBMFunPtr #-}
-
--- | Usage: @'glEdgeFlagPointerListIBM' stride pointer ptrstride@
---
--- The parameter @pointer@ is a @BooleanPointer@.
---
--- The length of @pointer@ should be @COMPSIZE(stride)@.
-
-
-glEdgeFlagPointerListIBM :: MonadIO m => GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
-glEdgeFlagPointerListIBM = ffiintPtrPtrbooleanintIOV glEdgeFlagPointerListIBMFunPtr
-
-glEdgeFlagPointerListIBMFunPtr :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ())
-glEdgeFlagPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointerListIBM")
-
-{-# NOINLINE glEdgeFlagPointerListIBMFunPtr #-}
-
--- | Usage: @'glFogCoordPointerListIBM' type stride pointer ptrstride@
---
--- The parameter @type@ is a @FogPointerTypeIBM@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glFogCoordPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-glFogCoordPointerListIBM = ffienumintPtrPtrVintIOV glFogCoordPointerListIBMFunPtr
-
-glFogCoordPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
-glFogCoordPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointerListIBM")
-
-{-# NOINLINE glFogCoordPointerListIBMFunPtr #-}
-
--- | Usage: @'glIndexPointerListIBM' type stride pointer ptrstride@
---
--- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glIndexPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-glIndexPointerListIBM = ffienumintPtrPtrVintIOV glIndexPointerListIBMFunPtr
-
-glIndexPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
-glIndexPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glIndexPointerListIBM")
-
-{-# NOINLINE glIndexPointerListIBMFunPtr #-}
-
--- | Usage: @'glNormalPointerListIBM' type stride pointer ptrstride@
---
--- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glNormalPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-glNormalPointerListIBM = ffienumintPtrPtrVintIOV glNormalPointerListIBMFunPtr
-
-glNormalPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
-glNormalPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glNormalPointerListIBM")
-
-{-# NOINLINE glNormalPointerListIBMFunPtr #-}
-
--- | Usage: @'glSecondaryColorPointerListIBM' size type stride pointer ptrstride@
---
--- The parameter @type@ is a @SecondaryColorPointerTypeIBM@.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glSecondaryColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-glSecondaryColorPointerListIBM = ffiintenumintPtrPtrVintIOV glSecondaryColorPointerListIBMFunPtr
-
-glSecondaryColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
-glSecondaryColorPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointerListIBM")
-
-{-# NOINLINE glSecondaryColorPointerListIBMFunPtr #-}
-
--- | Usage: @'glTexCoordPointerListIBM' size type stride pointer ptrstride@
---
--- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glTexCoordPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-glTexCoordPointerListIBM = ffiintenumintPtrPtrVintIOV glTexCoordPointerListIBMFunPtr
-
-glTexCoordPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
-glTexCoordPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointerListIBM")
-
-{-# NOINLINE glTexCoordPointerListIBMFunPtr #-}
-
--- | Usage: @'glVertexPointerListIBM' size type stride pointer ptrstride@
---
--- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glVertexPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-glVertexPointerListIBM = ffiintenumintPtrPtrVintIOV glVertexPointerListIBMFunPtr
-
-glVertexPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
-glVertexPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glVertexPointerListIBM")
-
-{-# NOINLINE glVertexPointerListIBMFunPtr #-}
-
-pattern GL_COLOR_ARRAY_LIST_IBM = 103072
-
-pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082
-
-pattern GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075
-
-pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085
-
-pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076
-
-pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086
-
-pattern GL_INDEX_ARRAY_LIST_IBM = 103073
-
-pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083
-
-pattern GL_NORMAL_ARRAY_LIST_IBM = 103071
-
-pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081
-
-pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077
-
-pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087
-
-pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074
-
-pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084
-
-pattern GL_VERTEX_ARRAY_LIST_IBM = 103070
-
-pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG.hs b/dist/build/autogen/Graphics/GL/Ext/IMG.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG (
-  -- * IMG Extensions
-    module Graphics.GL.Ext.IMG.BindlessTexture
-  , module Graphics.GL.Ext.IMG.FramebufferDownsample
-  , module Graphics.GL.Ext.IMG.MultisampledRenderToTexture
-  , module Graphics.GL.Ext.IMG.ProgramBinary
-  , module Graphics.GL.Ext.IMG.ReadFormat
-  , module Graphics.GL.Ext.IMG.ShaderBinary
-  , module Graphics.GL.Ext.IMG.TextureCompressionPvrtc
-  , module Graphics.GL.Ext.IMG.TextureCompressionPvrtc2
-  , module Graphics.GL.Ext.IMG.TextureEnvEnhancedFixedFunction
-  , module Graphics.GL.Ext.IMG.TextureFilterCubic
-  , module Graphics.GL.Ext.IMG.UserClipPlane
-) where
-
-import Graphics.GL.Ext.IMG.BindlessTexture
-import Graphics.GL.Ext.IMG.FramebufferDownsample
-import Graphics.GL.Ext.IMG.MultisampledRenderToTexture
-import Graphics.GL.Ext.IMG.ProgramBinary
-import Graphics.GL.Ext.IMG.ReadFormat
-import Graphics.GL.Ext.IMG.ShaderBinary
-import Graphics.GL.Ext.IMG.TextureCompressionPvrtc
-import Graphics.GL.Ext.IMG.TextureCompressionPvrtc2
-import Graphics.GL.Ext.IMG.TextureEnvEnhancedFixedFunction
-import Graphics.GL.Ext.IMG.TextureFilterCubic
-import Graphics.GL.Ext.IMG.UserClipPlane
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/BindlessTexture.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/BindlessTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/BindlessTexture.hs
+++ /dev/null
@@ -1,110 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.BindlessTexture (
-  -- * Extension Support
-    gl_IMG_bindless_texture
-
-  -- * GL_IMG_bindless_texture
-  , glGetTextureHandleIMG
-  , glGetTextureSamplerHandleIMG
-  , glProgramUniformHandleui64IMG
-  , glProgramUniformHandleui64vIMG
-  , glUniformHandleui64IMG
-  , glUniformHandleui64vIMG
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_bindless_texture.txt GL_IMG_bindless_texture> extension is available.
-
-gl_IMG_bindless_texture :: Bool
-gl_IMG_bindless_texture = member "GL_IMG_bindless_texture" extensions
-{-# NOINLINE gl_IMG_bindless_texture #-}
-
--- | Usage: @'glGetTextureHandleIMG' texture@
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glGetTextureHandleARB'.
-
-
-glGetTextureHandleIMG :: MonadIO m => GLuint -> m GLuint64
-glGetTextureHandleIMG = ffiuintIOuint64 glGetTextureHandleIMGFunPtr
-
-glGetTextureHandleIMGFunPtr :: FunPtr (GLuint -> IO GLuint64)
-glGetTextureHandleIMGFunPtr = unsafePerformIO (getProcAddress "glGetTextureHandleIMG")
-
-{-# NOINLINE glGetTextureHandleIMGFunPtr #-}
-
--- | Usage: @'glGetTextureSamplerHandleIMG' texture sampler@
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glGetTextureSamplerHandleARB'.
-
-
-glGetTextureSamplerHandleIMG :: MonadIO m => GLuint -> GLuint -> m GLuint64
-glGetTextureSamplerHandleIMG = ffiuintuintIOuint64 glGetTextureSamplerHandleIMGFunPtr
-
-glGetTextureSamplerHandleIMGFunPtr :: FunPtr (GLuint -> GLuint -> IO GLuint64)
-glGetTextureSamplerHandleIMGFunPtr = unsafePerformIO (getProcAddress "glGetTextureSamplerHandleIMG")
-
-{-# NOINLINE glGetTextureSamplerHandleIMGFunPtr #-}
-
--- | Usage: @'glProgramUniformHandleui64IMG' program location value@
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glProgramUniformHandleui64ARB'.
-
-
-glProgramUniformHandleui64IMG :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
-glProgramUniformHandleui64IMG = ffiuintintuint64IOV glProgramUniformHandleui64IMGFunPtr
-
-glProgramUniformHandleui64IMGFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
-glProgramUniformHandleui64IMGFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64IMG")
-
-{-# NOINLINE glProgramUniformHandleui64IMGFunPtr #-}
-
--- | Usage: @'glProgramUniformHandleui64vIMG' program location count values@
---
--- The length of @values@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glProgramUniformHandleui64vARB'.
-
-
-glProgramUniformHandleui64vIMG :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glProgramUniformHandleui64vIMG = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vIMGFunPtr
-
-glProgramUniformHandleui64vIMGFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glProgramUniformHandleui64vIMGFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64vIMG")
-
-{-# NOINLINE glProgramUniformHandleui64vIMGFunPtr #-}
-
--- | Usage: @'glUniformHandleui64IMG' location value@
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glUniformHandleui64ARB'.
-
-
-glUniformHandleui64IMG :: MonadIO m => GLint -> GLuint64 -> m ()
-glUniformHandleui64IMG = ffiintuint64IOV glUniformHandleui64IMGFunPtr
-
-glUniformHandleui64IMGFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
-glUniformHandleui64IMGFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64IMG")
-
-{-# NOINLINE glUniformHandleui64IMGFunPtr #-}
-
--- | Usage: @'glUniformHandleui64vIMG' location count value@
---
--- The length of @value@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glUniformHandleui64vARB'.
-
-
-glUniformHandleui64vIMG :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glUniformHandleui64vIMG = ffiintsizeiPtruint64IOV glUniformHandleui64vIMGFunPtr
-
-glUniformHandleui64vIMGFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glUniformHandleui64vIMGFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64vIMG")
-
-{-# NOINLINE glUniformHandleui64vIMGFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/FramebufferDownsample.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/FramebufferDownsample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/FramebufferDownsample.hs
+++ /dev/null
@@ -1,68 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.FramebufferDownsample (
-  -- * Extension Support
-    gl_IMG_framebuffer_downsample
-
-  -- * GL_IMG_framebuffer_downsample
-  , glFramebufferTexture2DDownsampleIMG
-  , glFramebufferTextureLayerDownsampleIMG
-  , pattern GL_DOWNSAMPLE_SCALES_IMG
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG
-  , pattern GL_NUM_DOWNSAMPLE_SCALES_IMG
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_framebuffer_downsample.txt GL_IMG_framebuffer_downsample> extension is available.
-
-gl_IMG_framebuffer_downsample :: Bool
-gl_IMG_framebuffer_downsample = member "GL_IMG_framebuffer_downsample" extensions
-{-# NOINLINE gl_IMG_framebuffer_downsample #-}
-
--- | Usage: @'glFramebufferTexture2DDownsampleIMG' target attachment textarget texture level xscale yscale@
-
-
-glFramebufferTexture2DDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> m ()
-glFramebufferTexture2DDownsampleIMG = ffienumenumenumuintintintintIOV glFramebufferTexture2DDownsampleIMGFunPtr
-
-glFramebufferTexture2DDownsampleIMGFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ())
-glFramebufferTexture2DDownsampleIMGFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DDownsampleIMG")
-
-{-# NOINLINE glFramebufferTexture2DDownsampleIMGFunPtr #-}
-
--- | Usage: @'glFramebufferTextureLayerDownsampleIMG' target attachment texture level layer xscale yscale@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @layer@ is a @CheckedInt32@.
-
-
-glFramebufferTextureLayerDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glFramebufferTextureLayerDownsampleIMG = ffienumenumuintintintintintIOV glFramebufferTextureLayerDownsampleIMGFunPtr
-
-glFramebufferTextureLayerDownsampleIMGFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerDownsampleIMGFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerDownsampleIMG")
-
-{-# NOINLINE glFramebufferTextureLayerDownsampleIMGFunPtr #-}
-
-pattern GL_DOWNSAMPLE_SCALES_IMG = 0x913E
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG = 0x913F
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG = 0x913C
-
-pattern GL_NUM_DOWNSAMPLE_SCALES_IMG = 0x913D
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.MultisampledRenderToTexture (
-  -- * Extension Support
-    gl_IMG_multisampled_render_to_texture
-
-  -- * GL_IMG_multisampled_render_to_texture
-  , glFramebufferTexture2DMultisampleIMG
-  , glRenderbufferStorageMultisampleIMG
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG
-  , pattern GL_MAX_SAMPLES_IMG
-  , pattern GL_RENDERBUFFER_SAMPLES_IMG
-  , pattern GL_TEXTURE_SAMPLES_IMG
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_multisampled_render_to_texture.txt GL_IMG_multisampled_render_to_texture> extension is available.
-
-gl_IMG_multisampled_render_to_texture :: Bool
-gl_IMG_multisampled_render_to_texture = member "GL_IMG_multisampled_render_to_texture" extensions
-{-# NOINLINE gl_IMG_multisampled_render_to_texture #-}
-
--- | Usage: @'glFramebufferTexture2DMultisampleIMG' target attachment textarget texture level samples@
-
-
-glFramebufferTexture2DMultisampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
-glFramebufferTexture2DMultisampleIMG = ffienumenumenumuintintsizeiIOV glFramebufferTexture2DMultisampleIMGFunPtr
-
-glFramebufferTexture2DMultisampleIMGFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ())
-glFramebufferTexture2DMultisampleIMGFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DMultisampleIMG")
-
-{-# NOINLINE glFramebufferTexture2DMultisampleIMGFunPtr #-}
-
--- | Usage: @'glRenderbufferStorageMultisampleIMG' target samples internalformat width height@
-
-
-glRenderbufferStorageMultisampleIMG :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleIMG = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleIMGFunPtr
-
-glRenderbufferStorageMultisampleIMGFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleIMGFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleIMG")
-
-{-# NOINLINE glRenderbufferStorageMultisampleIMGFunPtr #-}
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134
-
-pattern GL_MAX_SAMPLES_IMG = 0x9135
-
-pattern GL_RENDERBUFFER_SAMPLES_IMG = 0x9133
-
-pattern GL_TEXTURE_SAMPLES_IMG = 0x9136
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/ProgramBinary.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/ProgramBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/ProgramBinary.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.ProgramBinary (
-  -- * Extension Support
-    gl_IMG_program_binary
-
-  -- * GL_IMG_program_binary
-  , pattern GL_SGX_PROGRAM_BINARY_IMG
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_program_binary.txt GL_IMG_program_binary> extension is available.
-
-gl_IMG_program_binary :: Bool
-gl_IMG_program_binary = member "GL_IMG_program_binary" extensions
-{-# NOINLINE gl_IMG_program_binary #-}
-
-pattern GL_SGX_PROGRAM_BINARY_IMG = 0x9130
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/ReadFormat.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/ReadFormat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/ReadFormat.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.ReadFormat (
-  -- * Extension Support
-    gl_IMG_read_format
-
-  -- * GL_IMG_read_format
-  , pattern GL_BGRA_IMG
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_read_format.txt GL_IMG_read_format> extension is available.
-
-gl_IMG_read_format :: Bool
-gl_IMG_read_format = member "GL_IMG_read_format" extensions
-{-# NOINLINE gl_IMG_read_format #-}
-
-pattern GL_BGRA_IMG = 0x80E1
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/ShaderBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/ShaderBinary.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.ShaderBinary (
-  -- * Extension Support
-    gl_IMG_shader_binary
-
-  -- * GL_IMG_shader_binary
-  , pattern GL_SGX_BINARY_IMG
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_shader_binary.txt GL_IMG_shader_binary> extension is available.
-
-gl_IMG_shader_binary :: Bool
-gl_IMG_shader_binary = member "GL_IMG_shader_binary" extensions
-{-# NOINLINE gl_IMG_shader_binary #-}
-
-pattern GL_SGX_BINARY_IMG = 0x8C0A
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.TextureCompressionPvrtc (
-  -- * Extension Support
-    gl_IMG_texture_compression_pvrtc
-
-  -- * GL_IMG_texture_compression_pvrtc
-  , pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
-  , pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
-  , pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
-  , pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc.txt GL_IMG_texture_compression_pvrtc> extension is available.
-
-gl_IMG_texture_compression_pvrtc :: Bool
-gl_IMG_texture_compression_pvrtc = member "GL_IMG_texture_compression_pvrtc" extensions
-{-# NOINLINE gl_IMG_texture_compression_pvrtc #-}
-
-pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03
-
-pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02
-
-pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01
-
-pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.TextureCompressionPvrtc2 (
-  -- * Extension Support
-    gl_IMG_texture_compression_pvrtc2
-
-  -- * GL_IMG_texture_compression_pvrtc2
-  , pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG
-  , pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc2.txt GL_IMG_texture_compression_pvrtc2> extension is available.
-
-gl_IMG_texture_compression_pvrtc2 :: Bool
-gl_IMG_texture_compression_pvrtc2 = member "GL_IMG_texture_compression_pvrtc2" extensions
-{-# NOINLINE gl_IMG_texture_compression_pvrtc2 #-}
-
-pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137
-
-pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.TextureEnvEnhancedFixedFunction (
-  -- * Extension Support
-    gl_IMG_texture_env_enhanced_fixed_function
-
-  -- * GL_IMG_texture_env_enhanced_fixed_function
-  , pattern GL_ADD_BLEND_IMG
-  , pattern GL_DOT3_RGBA_IMG
-  , pattern GL_FACTOR_ALPHA_MODULATE_IMG
-  , pattern GL_FRAGMENT_ALPHA_MODULATE_IMG
-  , pattern GL_MODULATE_COLOR_IMG
-  , pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG
-  , pattern GL_TEXTURE_ALPHA_MODULATE_IMG
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_env_enhanced_fixed_function.txt GL_IMG_texture_env_enhanced_fixed_function> extension is available.
-
-gl_IMG_texture_env_enhanced_fixed_function :: Bool
-gl_IMG_texture_env_enhanced_fixed_function = member "GL_IMG_texture_env_enhanced_fixed_function" extensions
-{-# NOINLINE gl_IMG_texture_env_enhanced_fixed_function #-}
-
-pattern GL_ADD_BLEND_IMG = 0x8C09
-
-pattern GL_DOT3_RGBA_IMG = 0x86AF
-
-pattern GL_FACTOR_ALPHA_MODULATE_IMG = 0x8C07
-
-pattern GL_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08
-
-pattern GL_MODULATE_COLOR_IMG = 0x8C04
-
-pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05
-
-pattern GL_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureFilterCubic.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/TextureFilterCubic.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/TextureFilterCubic.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.TextureFilterCubic (
-  -- * Extension Support
-    gl_IMG_texture_filter_cubic
-
-  -- * GL_IMG_texture_filter_cubic
-  , pattern GL_CUBIC_IMG
-  , pattern GL_CUBIC_MIPMAP_LINEAR_IMG
-  , pattern GL_CUBIC_MIPMAP_NEAREST_IMG
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_filter_cubic.txt GL_IMG_texture_filter_cubic> extension is available.
-
-gl_IMG_texture_filter_cubic :: Bool
-gl_IMG_texture_filter_cubic = member "GL_IMG_texture_filter_cubic" extensions
-{-# NOINLINE gl_IMG_texture_filter_cubic #-}
-
-pattern GL_CUBIC_IMG = 0x9139
-
-pattern GL_CUBIC_MIPMAP_LINEAR_IMG = 0x913B
-
-pattern GL_CUBIC_MIPMAP_NEAREST_IMG = 0x913A
diff --git a/dist/build/autogen/Graphics/GL/Ext/IMG/UserClipPlane.hs b/dist/build/autogen/Graphics/GL/Ext/IMG/UserClipPlane.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/IMG/UserClipPlane.hs
+++ /dev/null
@@ -1,71 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.IMG.UserClipPlane (
-  -- * Extension Support
-    gl_IMG_user_clip_plane
-
-  -- * GL_IMG_user_clip_plane
-  , glClipPlanefIMG
-  , glClipPlanexIMG
-  , pattern GL_CLIP_PLANE0_IMG
-  , pattern GL_CLIP_PLANE1_IMG
-  , pattern GL_CLIP_PLANE2_IMG
-  , pattern GL_CLIP_PLANE3_IMG
-  , pattern GL_CLIP_PLANE4_IMG
-  , pattern GL_CLIP_PLANE5_IMG
-  , pattern GL_MAX_CLIP_PLANES_IMG
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_user_clip_plane.txt GL_IMG_user_clip_plane> extension is available.
-
-gl_IMG_user_clip_plane :: Bool
-gl_IMG_user_clip_plane = member "GL_IMG_user_clip_plane" extensions
-{-# NOINLINE gl_IMG_user_clip_plane #-}
-
--- | Usage: @'glClipPlanefIMG' p eqn@
---
--- The length of @eqn@ should be @4@.
-
-
-glClipPlanefIMG :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glClipPlanefIMG = ffienumPtrfloatIOV glClipPlanefIMGFunPtr
-
-glClipPlanefIMGFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glClipPlanefIMGFunPtr = unsafePerformIO (getProcAddress "glClipPlanefIMG")
-
-{-# NOINLINE glClipPlanefIMGFunPtr #-}
-
--- | Usage: @'glClipPlanexIMG' p eqn@
---
--- The length of @eqn@ should be @4@.
-
-
-glClipPlanexIMG :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glClipPlanexIMG = ffienumPtrfixedIOV glClipPlanexIMGFunPtr
-
-glClipPlanexIMGFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glClipPlanexIMGFunPtr = unsafePerformIO (getProcAddress "glClipPlanexIMG")
-
-{-# NOINLINE glClipPlanexIMGFunPtr #-}
-
-pattern GL_CLIP_PLANE0_IMG = 0x3000
-
-pattern GL_CLIP_PLANE1_IMG = 0x3001
-
-pattern GL_CLIP_PLANE2_IMG = 0x3002
-
-pattern GL_CLIP_PLANE3_IMG = 0x3003
-
-pattern GL_CLIP_PLANE4_IMG = 0x3004
-
-pattern GL_CLIP_PLANE5_IMG = 0x3005
-
-pattern GL_MAX_CLIP_PLANES_IMG = 0x0D32
diff --git a/dist/build/autogen/Graphics/GL/Ext/INGR.hs b/dist/build/autogen/Graphics/GL/Ext/INGR.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INGR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INGR (
-  -- * INGR Extensions
-    module Graphics.GL.Ext.INGR.BlendFuncSeparate
-  , module Graphics.GL.Ext.INGR.ColorClamp
-  , module Graphics.GL.Ext.INGR.InterlaceRead
-) where
-
-import Graphics.GL.Ext.INGR.BlendFuncSeparate
-import Graphics.GL.Ext.INGR.ColorClamp
-import Graphics.GL.Ext.INGR.InterlaceRead
diff --git a/dist/build/autogen/Graphics/GL/Ext/INGR/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Ext/INGR/BlendFuncSeparate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INGR/BlendFuncSeparate.hs
+++ /dev/null
@@ -1,44 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INGR.BlendFuncSeparate (
-  -- * Extension Support
-    gl_INGR_blend_func_separate
-
-  -- * GL_INGR_blend_func_separate
-  , glBlendFuncSeparateINGR
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_INGR_blend_func_separate extension is available.
-
-gl_INGR_blend_func_separate :: Bool
-gl_INGR_blend_func_separate = member "GL_INGR_blend_func_separate" extensions
-{-# NOINLINE gl_INGR_blend_func_separate #-}
-
--- | Usage: @'glBlendFuncSeparateINGR' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
---
--- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparate'.
-
-
-glBlendFuncSeparateINGR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparateINGR = ffienumenumenumenumIOV glBlendFuncSeparateINGRFunPtr
-
-glBlendFuncSeparateINGRFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateINGRFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateINGR")
-
-{-# NOINLINE glBlendFuncSeparateINGRFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/INGR/ColorClamp.hs b/dist/build/autogen/Graphics/GL/Ext/INGR/ColorClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INGR/ColorClamp.hs
+++ /dev/null
@@ -1,41 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INGR.ColorClamp (
-  -- * Extension Support
-    gl_INGR_color_clamp
-
-  -- * GL_INGR_color_clamp
-  , pattern GL_ALPHA_MAX_CLAMP_INGR
-  , pattern GL_ALPHA_MIN_CLAMP_INGR
-  , pattern GL_BLUE_MAX_CLAMP_INGR
-  , pattern GL_BLUE_MIN_CLAMP_INGR
-  , pattern GL_GREEN_MAX_CLAMP_INGR
-  , pattern GL_GREEN_MIN_CLAMP_INGR
-  , pattern GL_RED_MAX_CLAMP_INGR
-  , pattern GL_RED_MIN_CLAMP_INGR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/color_clamp.txt GL_INGR_color_clamp> extension is available.
-
-gl_INGR_color_clamp :: Bool
-gl_INGR_color_clamp = member "GL_INGR_color_clamp" extensions
-{-# NOINLINE gl_INGR_color_clamp #-}
-
-pattern GL_ALPHA_MAX_CLAMP_INGR = 0x8567
-
-pattern GL_ALPHA_MIN_CLAMP_INGR = 0x8563
-
-pattern GL_BLUE_MAX_CLAMP_INGR = 0x8566
-
-pattern GL_BLUE_MIN_CLAMP_INGR = 0x8562
-
-pattern GL_GREEN_MAX_CLAMP_INGR = 0x8565
-
-pattern GL_GREEN_MIN_CLAMP_INGR = 0x8561
-
-pattern GL_RED_MAX_CLAMP_INGR = 0x8564
-
-pattern GL_RED_MIN_CLAMP_INGR = 0x8560
diff --git a/dist/build/autogen/Graphics/GL/Ext/INGR/InterlaceRead.hs b/dist/build/autogen/Graphics/GL/Ext/INGR/InterlaceRead.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INGR/InterlaceRead.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INGR.InterlaceRead (
-  -- * Extension Support
-    gl_INGR_interlace_read
-
-  -- * GL_INGR_interlace_read
-  , pattern GL_INTERLACE_READ_INGR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/interlace_read.txt GL_INGR_interlace_read> extension is available.
-
-gl_INGR_interlace_read :: Bool
-gl_INGR_interlace_read = member "GL_INGR_interlace_read" extensions
-{-# NOINLINE gl_INGR_interlace_read #-}
-
-pattern GL_INTERLACE_READ_INGR = 0x8568
diff --git a/dist/build/autogen/Graphics/GL/Ext/INTEL.hs b/dist/build/autogen/Graphics/GL/Ext/INTEL.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INTEL.hs
+++ /dev/null
@@ -1,18 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INTEL (
-  -- * INTEL Extensions
-    module Graphics.GL.Ext.INTEL.ConservativeRasterization
-  , module Graphics.GL.Ext.INTEL.FragmentShaderOrdering
-  , module Graphics.GL.Ext.INTEL.FramebufferCMAA
-  , module Graphics.GL.Ext.INTEL.MapTexture
-  , module Graphics.GL.Ext.INTEL.ParallelArrays
-  , module Graphics.GL.Ext.INTEL.PerformanceQuery
-) where
-
-import Graphics.GL.Ext.INTEL.ConservativeRasterization
-import Graphics.GL.Ext.INTEL.FragmentShaderOrdering
-import Graphics.GL.Ext.INTEL.FramebufferCMAA
-import Graphics.GL.Ext.INTEL.MapTexture
-import Graphics.GL.Ext.INTEL.ParallelArrays
-import Graphics.GL.Ext.INTEL.PerformanceQuery
diff --git a/dist/build/autogen/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs b/dist/build/autogen/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INTEL.ConservativeRasterization (
-  -- * Extension Support
-    gl_INTEL_conservative_rasterization
-
-  -- * GL_INTEL_conservative_rasterization
-  , pattern GL_CONSERVATIVE_RASTERIZATION_INTEL
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/conservative_rasterization.txt GL_INTEL_conservative_rasterization> extension is available.
-
-gl_INTEL_conservative_rasterization :: Bool
-gl_INTEL_conservative_rasterization = member "GL_INTEL_conservative_rasterization" extensions
-{-# NOINLINE gl_INTEL_conservative_rasterization #-}
-
-pattern GL_CONSERVATIVE_RASTERIZATION_INTEL = 0x83FE
diff --git a/dist/build/autogen/Graphics/GL/Ext/INTEL/FragmentShaderOrdering.hs b/dist/build/autogen/Graphics/GL/Ext/INTEL/FragmentShaderOrdering.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INTEL/FragmentShaderOrdering.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INTEL.FragmentShaderOrdering (
-  -- * Extension Support
-    gl_INTEL_fragment_shader_ordering
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/fragment_shader_ordering.txt GL_INTEL_fragment_shader_ordering> extension is available.
-
-gl_INTEL_fragment_shader_ordering :: Bool
-gl_INTEL_fragment_shader_ordering = member "GL_INTEL_fragment_shader_ordering" extensions
-{-# NOINLINE gl_INTEL_fragment_shader_ordering #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/INTEL/FramebufferCMAA.hs b/dist/build/autogen/Graphics/GL/Ext/INTEL/FramebufferCMAA.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INTEL/FramebufferCMAA.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INTEL.FramebufferCMAA (
-  -- * Extension Support
-    gl_INTEL_framebuffer_CMAA
-
-  -- * GL_INTEL_framebuffer_CMAA
-  , glApplyFramebufferAttachmentCMAAINTEL
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/framebuffer_CMAA.txt GL_INTEL_framebuffer_CMAA> extension is available.
-
-gl_INTEL_framebuffer_CMAA :: Bool
-gl_INTEL_framebuffer_CMAA = member "GL_INTEL_framebuffer_CMAA" extensions
-{-# NOINLINE gl_INTEL_framebuffer_CMAA #-}
-
--- | Usage: @'glApplyFramebufferAttachmentCMAAINTEL'@
-
-
-glApplyFramebufferAttachmentCMAAINTEL :: MonadIO m => m ()
-glApplyFramebufferAttachmentCMAAINTEL = ffiIOV glApplyFramebufferAttachmentCMAAINTELFunPtr
-
-glApplyFramebufferAttachmentCMAAINTELFunPtr :: FunPtr (IO ())
-glApplyFramebufferAttachmentCMAAINTELFunPtr = unsafePerformIO (getProcAddress "glApplyFramebufferAttachmentCMAAINTEL")
-
-{-# NOINLINE glApplyFramebufferAttachmentCMAAINTELFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/INTEL/MapTexture.hs b/dist/build/autogen/Graphics/GL/Ext/INTEL/MapTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INTEL/MapTexture.hs
+++ /dev/null
@@ -1,74 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INTEL.MapTexture (
-  -- * Extension Support
-    gl_INTEL_map_texture
-
-  -- * GL_INTEL_map_texture
-  , glMapTexture2DINTEL
-  , glSyncTextureINTEL
-  , glUnmapTexture2DINTEL
-  , pattern GL_LAYOUT_DEFAULT_INTEL
-  , pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL
-  , pattern GL_LAYOUT_LINEAR_INTEL
-  , pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/map_texture.txt GL_INTEL_map_texture> extension is available.
-
-gl_INTEL_map_texture :: Bool
-gl_INTEL_map_texture = member "GL_INTEL_map_texture" extensions
-{-# NOINLINE gl_INTEL_map_texture #-}
-
--- | Usage: @'glMapTexture2DINTEL' texture level access stride layout@
---
--- The length of @stride@ should be @1@.
---
--- The length of @layout@ should be @1@.
-
-
-glMapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr ())
-glMapTexture2DINTEL = ffiuintintbitfieldPtrintPtrenumIOPtrV glMapTexture2DINTELFunPtr
-
-glMapTexture2DINTELFunPtr :: FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ()))
-glMapTexture2DINTELFunPtr = unsafePerformIO (getProcAddress "glMapTexture2DINTEL")
-
-{-# NOINLINE glMapTexture2DINTELFunPtr #-}
-
--- | Usage: @'glSyncTextureINTEL' texture@
-
-
-glSyncTextureINTEL :: MonadIO m => GLuint -> m ()
-glSyncTextureINTEL = ffiuintIOV glSyncTextureINTELFunPtr
-
-glSyncTextureINTELFunPtr :: FunPtr (GLuint -> IO ())
-glSyncTextureINTELFunPtr = unsafePerformIO (getProcAddress "glSyncTextureINTEL")
-
-{-# NOINLINE glSyncTextureINTELFunPtr #-}
-
--- | Usage: @'glUnmapTexture2DINTEL' texture level@
-
-
-glUnmapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> m ()
-glUnmapTexture2DINTEL = ffiuintintIOV glUnmapTexture2DINTELFunPtr
-
-glUnmapTexture2DINTELFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glUnmapTexture2DINTELFunPtr = unsafePerformIO (getProcAddress "glUnmapTexture2DINTEL")
-
-{-# NOINLINE glUnmapTexture2DINTELFunPtr #-}
-
-pattern GL_LAYOUT_DEFAULT_INTEL = 0
-
-pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2
-
-pattern GL_LAYOUT_LINEAR_INTEL = 1
-
-pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF
diff --git a/dist/build/autogen/Graphics/GL/Ext/INTEL/ParallelArrays.hs b/dist/build/autogen/Graphics/GL/Ext/INTEL/ParallelArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INTEL/ParallelArrays.hs
+++ /dev/null
@@ -1,101 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INTEL.ParallelArrays (
-  -- * Extension Support
-    gl_INTEL_parallel_arrays
-
-  -- * GL_INTEL_parallel_arrays
-  , glColorPointervINTEL
-  , glNormalPointervINTEL
-  , glTexCoordPointervINTEL
-  , glVertexPointervINTEL
-  , pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL
-  , pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL
-  , pattern GL_PARALLEL_ARRAYS_INTEL
-  , pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL
-  , pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/parallel_arrays.txt GL_INTEL_parallel_arrays> extension is available.
-
-gl_INTEL_parallel_arrays :: Bool
-gl_INTEL_parallel_arrays = member "GL_INTEL_parallel_arrays" extensions
-{-# NOINLINE gl_INTEL_parallel_arrays #-}
-
--- | Usage: @'glColorPointervINTEL' size type pointer@
---
--- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @4@.
-
-
-glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
-glColorPointervINTEL = ffiintenumPtrPtrVIOV glColorPointervINTELFunPtr
-
-glColorPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glColorPointervINTELFunPtr = unsafePerformIO (getProcAddress "glColorPointervINTEL")
-
-{-# NOINLINE glColorPointervINTELFunPtr #-}
-
--- | Usage: @'glNormalPointervINTEL' type pointer@
---
--- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @4@.
-
-
-glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
-glNormalPointervINTEL = ffienumPtrPtrVIOV glNormalPointervINTELFunPtr
-
-glNormalPointervINTELFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-glNormalPointervINTELFunPtr = unsafePerformIO (getProcAddress "glNormalPointervINTEL")
-
-{-# NOINLINE glNormalPointervINTELFunPtr #-}
-
--- | Usage: @'glTexCoordPointervINTEL' size type pointer@
---
--- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @4@.
-
-
-glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
-glTexCoordPointervINTEL = ffiintenumPtrPtrVIOV glTexCoordPointervINTELFunPtr
-
-glTexCoordPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glTexCoordPointervINTELFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointervINTEL")
-
-{-# NOINLINE glTexCoordPointervINTELFunPtr #-}
-
--- | Usage: @'glVertexPointervINTEL' size type pointer@
---
--- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @4@.
-
-
-glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
-glVertexPointervINTEL = ffiintenumPtrPtrVIOV glVertexPointervINTELFunPtr
-
-glVertexPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glVertexPointervINTELFunPtr = unsafePerformIO (getProcAddress "glVertexPointervINTEL")
-
-{-# NOINLINE glVertexPointervINTELFunPtr #-}
-
-pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7
-
-pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6
-
-pattern GL_PARALLEL_ARRAYS_INTEL = 0x83F4
-
-pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8
-
-pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5
diff --git a/dist/build/autogen/Graphics/GL/Ext/INTEL/PerformanceQuery.hs b/dist/build/autogen/Graphics/GL/Ext/INTEL/PerformanceQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/INTEL/PerformanceQuery.hs
+++ /dev/null
@@ -1,202 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.INTEL.PerformanceQuery (
-  -- * Extension Support
-    gl_INTEL_performance_query
-
-  -- * GL_INTEL_performance_query
-  , glBeginPerfQueryINTEL
-  , glCreatePerfQueryINTEL
-  , glDeletePerfQueryINTEL
-  , glEndPerfQueryINTEL
-  , glGetFirstPerfQueryIdINTEL
-  , glGetNextPerfQueryIdINTEL
-  , glGetPerfCounterInfoINTEL
-  , glGetPerfQueryDataINTEL
-  , glGetPerfQueryIdByNameINTEL
-  , glGetPerfQueryInfoINTEL
-  , pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL
-  , pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL
-  , pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL
-  , pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL
-  , pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL
-  , pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL
-  , pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL
-  , pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL
-  , pattern GL_PERFQUERY_COUNTER_EVENT_INTEL
-  , pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL
-  , pattern GL_PERFQUERY_COUNTER_RAW_INTEL
-  , pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL
-  , pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL
-  , pattern GL_PERFQUERY_DONOT_FLUSH_INTEL
-  , pattern GL_PERFQUERY_FLUSH_INTEL
-  , pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL
-  , pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL
-  , pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL
-  , pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL
-  , pattern GL_PERFQUERY_WAIT_INTEL
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/INTEL/INTEL_performance_query.txt GL_INTEL_performance_query> extension is available.
-
-gl_INTEL_performance_query :: Bool
-gl_INTEL_performance_query = member "GL_INTEL_performance_query" extensions
-{-# NOINLINE gl_INTEL_performance_query #-}
-
--- | Usage: @'glBeginPerfQueryINTEL' queryHandle@
-
-
-glBeginPerfQueryINTEL :: MonadIO m => GLuint -> m ()
-glBeginPerfQueryINTEL = ffiuintIOV glBeginPerfQueryINTELFunPtr
-
-glBeginPerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
-glBeginPerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glBeginPerfQueryINTEL")
-
-{-# NOINLINE glBeginPerfQueryINTELFunPtr #-}
-
--- | Usage: @'glCreatePerfQueryINTEL' queryId queryHandle@
-
-
-glCreatePerfQueryINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glCreatePerfQueryINTEL = ffiuintPtruintIOV glCreatePerfQueryINTELFunPtr
-
-glCreatePerfQueryINTELFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glCreatePerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glCreatePerfQueryINTEL")
-
-{-# NOINLINE glCreatePerfQueryINTELFunPtr #-}
-
--- | Usage: @'glDeletePerfQueryINTEL' queryHandle@
-
-
-glDeletePerfQueryINTEL :: MonadIO m => GLuint -> m ()
-glDeletePerfQueryINTEL = ffiuintIOV glDeletePerfQueryINTELFunPtr
-
-glDeletePerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
-glDeletePerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glDeletePerfQueryINTEL")
-
-{-# NOINLINE glDeletePerfQueryINTELFunPtr #-}
-
--- | Usage: @'glEndPerfQueryINTEL' queryHandle@
-
-
-glEndPerfQueryINTEL :: MonadIO m => GLuint -> m ()
-glEndPerfQueryINTEL = ffiuintIOV glEndPerfQueryINTELFunPtr
-
-glEndPerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
-glEndPerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glEndPerfQueryINTEL")
-
-{-# NOINLINE glEndPerfQueryINTELFunPtr #-}
-
--- | Usage: @'glGetFirstPerfQueryIdINTEL' queryId@
-
-
-glGetFirstPerfQueryIdINTEL :: MonadIO m => Ptr GLuint -> m ()
-glGetFirstPerfQueryIdINTEL = ffiPtruintIOV glGetFirstPerfQueryIdINTELFunPtr
-
-glGetFirstPerfQueryIdINTELFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glGetFirstPerfQueryIdINTELFunPtr = unsafePerformIO (getProcAddress "glGetFirstPerfQueryIdINTEL")
-
-{-# NOINLINE glGetFirstPerfQueryIdINTELFunPtr #-}
-
--- | Usage: @'glGetNextPerfQueryIdINTEL' queryId nextQueryId@
-
-
-glGetNextPerfQueryIdINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glGetNextPerfQueryIdINTEL = ffiuintPtruintIOV glGetNextPerfQueryIdINTELFunPtr
-
-glGetNextPerfQueryIdINTELFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glGetNextPerfQueryIdINTELFunPtr = unsafePerformIO (getProcAddress "glGetNextPerfQueryIdINTEL")
-
-{-# NOINLINE glGetNextPerfQueryIdINTELFunPtr #-}
-
--- | Usage: @'glGetPerfCounterInfoINTEL' queryId counterId counterNameLength counterName counterDescLength counterDesc counterOffset counterDataSize counterTypeEnum counterDataTypeEnum rawCounterMaxValue@
-
-
-glGetPerfCounterInfoINTEL :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
-glGetPerfCounterInfoINTEL = ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV glGetPerfCounterInfoINTELFunPtr
-
-glGetPerfCounterInfoINTELFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ())
-glGetPerfCounterInfoINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfCounterInfoINTEL")
-
-{-# NOINLINE glGetPerfCounterInfoINTELFunPtr #-}
-
--- | Usage: @'glGetPerfQueryDataINTEL' queryHandle flags dataSize data bytesWritten@
-
-
-glGetPerfQueryDataINTEL :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()
-glGetPerfQueryDataINTEL = ffiuintuintsizeiPtrVPtruintIOV glGetPerfQueryDataINTELFunPtr
-
-glGetPerfQueryDataINTELFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ())
-glGetPerfQueryDataINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryDataINTEL")
-
-{-# NOINLINE glGetPerfQueryDataINTELFunPtr #-}
-
--- | Usage: @'glGetPerfQueryIdByNameINTEL' queryName queryId@
-
-
-glGetPerfQueryIdByNameINTEL :: MonadIO m => Ptr GLchar -> Ptr GLuint -> m ()
-glGetPerfQueryIdByNameINTEL = ffiPtrcharPtruintIOV glGetPerfQueryIdByNameINTELFunPtr
-
-glGetPerfQueryIdByNameINTELFunPtr :: FunPtr (Ptr GLchar -> Ptr GLuint -> IO ())
-glGetPerfQueryIdByNameINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryIdByNameINTEL")
-
-{-# NOINLINE glGetPerfQueryIdByNameINTELFunPtr #-}
-
--- | Usage: @'glGetPerfQueryInfoINTEL' queryId queryNameLength queryName dataSize noCounters noInstances capsMask@
-
-
-glGetPerfQueryInfoINTEL :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
-glGetPerfQueryInfoINTEL = ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV glGetPerfQueryInfoINTELFunPtr
-
-glGetPerfQueryInfoINTELFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
-glGetPerfQueryInfoINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryInfoINTEL")
-
-{-# NOINLINE glGetPerfQueryInfoINTELFunPtr #-}
-
-pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC
-
-pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB
-
-pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA
-
-pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8
-
-pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9
-
-pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF
-
-pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1
-
-pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2
-
-pattern GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0
-
-pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE
-
-pattern GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4
-
-pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3
-
-pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5
-
-pattern GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9
-
-pattern GL_PERFQUERY_FLUSH_INTEL = 0x83FA
-
-pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001
-
-pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500
-
-pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD
-
-pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000
-
-pattern GL_PERFQUERY_WAIT_INTEL = 0x83FB
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR.hs b/dist/build/autogen/Graphics/GL/Ext/KHR.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR (
-  -- * KHR Extensions
-    module Graphics.GL.Ext.KHR.BlendEquationAdvanced
-  , module Graphics.GL.Ext.KHR.BlendEquationAdvancedCoherent
-  , module Graphics.GL.Ext.KHR.ContextFlushControl
-  , module Graphics.GL.Ext.KHR.Debug
-  , module Graphics.GL.Ext.KHR.NoError
-  , module Graphics.GL.Ext.KHR.RobustBufferAccessBehavior
-  , module Graphics.GL.Ext.KHR.Robustness
-  , module Graphics.GL.Ext.KHR.TextureCompressionAstcHdr
-  , module Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
-  , module Graphics.GL.Ext.KHR.TextureCompressionAstcSliced3d
-) where
-
-import Graphics.GL.Ext.KHR.BlendEquationAdvanced
-import Graphics.GL.Ext.KHR.BlendEquationAdvancedCoherent
-import Graphics.GL.Ext.KHR.ContextFlushControl
-import Graphics.GL.Ext.KHR.Debug
-import Graphics.GL.Ext.KHR.NoError
-import Graphics.GL.Ext.KHR.RobustBufferAccessBehavior
-import Graphics.GL.Ext.KHR.Robustness
-import Graphics.GL.Ext.KHR.TextureCompressionAstcHdr
-import Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
-import Graphics.GL.Ext.KHR.TextureCompressionAstcSliced3d
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs
+++ /dev/null
@@ -1,80 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.BlendEquationAdvanced (
-  -- * Extension Support
-    gl_KHR_blend_equation_advanced
-
-  -- * GL_KHR_blend_equation_advanced
-  , glBlendBarrierKHR
-  , pattern GL_COLORBURN_KHR
-  , pattern GL_COLORDODGE_KHR
-  , pattern GL_DARKEN_KHR
-  , pattern GL_DIFFERENCE_KHR
-  , pattern GL_EXCLUSION_KHR
-  , pattern GL_HARDLIGHT_KHR
-  , pattern GL_HSL_COLOR_KHR
-  , pattern GL_HSL_HUE_KHR
-  , pattern GL_HSL_LUMINOSITY_KHR
-  , pattern GL_HSL_SATURATION_KHR
-  , pattern GL_LIGHTEN_KHR
-  , pattern GL_MULTIPLY_KHR
-  , pattern GL_OVERLAY_KHR
-  , pattern GL_SCREEN_KHR
-  , pattern GL_SOFTLIGHT_KHR
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/blend_equation_advanced.txt GL_KHR_blend_equation_advanced> extension is available.
-
-gl_KHR_blend_equation_advanced :: Bool
-gl_KHR_blend_equation_advanced = member "GL_KHR_blend_equation_advanced" extensions
-{-# NOINLINE gl_KHR_blend_equation_advanced #-}
-
--- | Usage: @'glBlendBarrierKHR'@
---
--- This command is an alias for 'Graphics.GL.Embedded32.glBlendBarrier'.
-
-
-glBlendBarrierKHR :: MonadIO m => m ()
-glBlendBarrierKHR = ffiIOV glBlendBarrierKHRFunPtr
-
-glBlendBarrierKHRFunPtr :: FunPtr (IO ())
-glBlendBarrierKHRFunPtr = unsafePerformIO (getProcAddress "glBlendBarrierKHR")
-
-{-# NOINLINE glBlendBarrierKHRFunPtr #-}
-
-pattern GL_COLORBURN_KHR = 0x929A
-
-pattern GL_COLORDODGE_KHR = 0x9299
-
-pattern GL_DARKEN_KHR = 0x9297
-
-pattern GL_DIFFERENCE_KHR = 0x929E
-
-pattern GL_EXCLUSION_KHR = 0x92A0
-
-pattern GL_HARDLIGHT_KHR = 0x929B
-
-pattern GL_HSL_COLOR_KHR = 0x92AF
-
-pattern GL_HSL_HUE_KHR = 0x92AD
-
-pattern GL_HSL_LUMINOSITY_KHR = 0x92B0
-
-pattern GL_HSL_SATURATION_KHR = 0x92AE
-
-pattern GL_LIGHTEN_KHR = 0x9298
-
-pattern GL_MULTIPLY_KHR = 0x9294
-
-pattern GL_OVERLAY_KHR = 0x9296
-
-pattern GL_SCREEN_KHR = 0x9295
-
-pattern GL_SOFTLIGHT_KHR = 0x929C
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.BlendEquationAdvancedCoherent (
-  -- * Extension Support
-    gl_KHR_blend_equation_advanced_coherent
-
-  -- * GL_KHR_blend_equation_advanced_coherent
-  , pattern GL_BLEND_ADVANCED_COHERENT_KHR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/KHR_blend_equation_advanced_coherent.txt GL_KHR_blend_equation_advanced_coherent> extension is available.
-
-gl_KHR_blend_equation_advanced_coherent :: Bool
-gl_KHR_blend_equation_advanced_coherent = member "GL_KHR_blend_equation_advanced_coherent" extensions
-{-# NOINLINE gl_KHR_blend_equation_advanced_coherent #-}
-
-pattern GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/ContextFlushControl.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/ContextFlushControl.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/ContextFlushControl.hs
+++ /dev/null
@@ -1,27 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.ContextFlushControl (
-  -- * Extension Support
-    gl_KHR_context_flush_control
-
-  -- * GL_KHR_context_flush_control
-  , pattern GL_CONTEXT_RELEASE_BEHAVIOR
-  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH
-  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR
-  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR
-  , pattern GL_NONE
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/context_flush_control.txt GL_KHR_context_flush_control> extension is available.
-
-gl_KHR_context_flush_control :: Bool
-gl_KHR_context_flush_control = member "GL_KHR_context_flush_control" extensions
-{-# NOINLINE gl_KHR_context_flush_control #-}
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/Debug.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/Debug.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/Debug.hs
+++ /dev/null
@@ -1,367 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.Debug (
-  -- * Extension Support
-    gl_KHR_debug
-
-  -- * GL_KHR_debug
-  , glDebugMessageCallback
-  , glDebugMessageCallbackKHR
-  , glDebugMessageControl
-  , glDebugMessageControlKHR
-  , glDebugMessageInsert
-  , glDebugMessageInsertKHR
-  , glGetDebugMessageLog
-  , glGetDebugMessageLogKHR
-  , glGetObjectLabel
-  , glGetObjectLabelKHR
-  , glGetObjectPtrLabel
-  , glGetObjectPtrLabelKHR
-  , glGetPointerv
-  , glGetPointervKHR
-  , glObjectLabel
-  , glObjectLabelKHR
-  , glObjectPtrLabel
-  , glObjectPtrLabelKHR
-  , glPopDebugGroup
-  , glPopDebugGroupKHR
-  , glPushDebugGroup
-  , glPushDebugGroupKHR
-  , pattern GL_BUFFER
-  , pattern GL_BUFFER_KHR
-  , pattern GL_CONTEXT_FLAG_DEBUG_BIT
-  , pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR
-  , pattern GL_DEBUG_CALLBACK_FUNCTION
-  , pattern GL_DEBUG_CALLBACK_FUNCTION_KHR
-  , pattern GL_DEBUG_CALLBACK_USER_PARAM
-  , pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR
-  , pattern GL_DEBUG_GROUP_STACK_DEPTH
-  , pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR
-  , pattern GL_DEBUG_LOGGED_MESSAGES
-  , pattern GL_DEBUG_LOGGED_MESSAGES_KHR
-  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
-  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR
-  , pattern GL_DEBUG_OUTPUT
-  , pattern GL_DEBUG_OUTPUT_KHR
-  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS
-  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR
-  , pattern GL_DEBUG_SEVERITY_HIGH
-  , pattern GL_DEBUG_SEVERITY_HIGH_KHR
-  , pattern GL_DEBUG_SEVERITY_LOW
-  , pattern GL_DEBUG_SEVERITY_LOW_KHR
-  , pattern GL_DEBUG_SEVERITY_MEDIUM
-  , pattern GL_DEBUG_SEVERITY_MEDIUM_KHR
-  , pattern GL_DEBUG_SEVERITY_NOTIFICATION
-  , pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR
-  , pattern GL_DEBUG_SOURCE_API
-  , pattern GL_DEBUG_SOURCE_API_KHR
-  , pattern GL_DEBUG_SOURCE_APPLICATION
-  , pattern GL_DEBUG_SOURCE_APPLICATION_KHR
-  , pattern GL_DEBUG_SOURCE_OTHER
-  , pattern GL_DEBUG_SOURCE_OTHER_KHR
-  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER
-  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR
-  , pattern GL_DEBUG_SOURCE_THIRD_PARTY
-  , pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR
-  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM
-  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR
-  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
-  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR
-  , pattern GL_DEBUG_TYPE_ERROR
-  , pattern GL_DEBUG_TYPE_ERROR_KHR
-  , pattern GL_DEBUG_TYPE_MARKER
-  , pattern GL_DEBUG_TYPE_MARKER_KHR
-  , pattern GL_DEBUG_TYPE_OTHER
-  , pattern GL_DEBUG_TYPE_OTHER_KHR
-  , pattern GL_DEBUG_TYPE_PERFORMANCE
-  , pattern GL_DEBUG_TYPE_PERFORMANCE_KHR
-  , pattern GL_DEBUG_TYPE_POP_GROUP
-  , pattern GL_DEBUG_TYPE_POP_GROUP_KHR
-  , pattern GL_DEBUG_TYPE_PORTABILITY
-  , pattern GL_DEBUG_TYPE_PORTABILITY_KHR
-  , pattern GL_DEBUG_TYPE_PUSH_GROUP
-  , pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR
-  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
-  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR
-  , pattern GL_DISPLAY_LIST
-  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH
-  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR
-  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES
-  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR
-  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH
-  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR
-  , pattern GL_MAX_LABEL_LENGTH
-  , pattern GL_MAX_LABEL_LENGTH_KHR
-  , pattern GL_PROGRAM
-  , pattern GL_PROGRAM_KHR
-  , pattern GL_PROGRAM_PIPELINE
-  , pattern GL_PROGRAM_PIPELINE_KHR
-  , pattern GL_QUERY
-  , pattern GL_QUERY_KHR
-  , pattern GL_SAMPLER
-  , pattern GL_SAMPLER_KHR
-  , pattern GL_SHADER
-  , pattern GL_SHADER_KHR
-  , pattern GL_STACK_OVERFLOW
-  , pattern GL_STACK_OVERFLOW_KHR
-  , pattern GL_STACK_UNDERFLOW
-  , pattern GL_STACK_UNDERFLOW_KHR
-  , pattern GL_VERTEX_ARRAY
-  , pattern GL_VERTEX_ARRAY_KHR
-) 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://www.khronos.org/registry/gles/extensions/KHR/debug.txt GL_KHR_debug> extension is available.
-
-gl_KHR_debug :: Bool
-gl_KHR_debug = member "GL_KHR_debug" extensions
-{-# NOINLINE gl_KHR_debug #-}
-
--- | Usage: @'glDebugMessageCallbackKHR' callback userParam@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageCallback'.
-
-
-glDebugMessageCallbackKHR :: MonadIO m => GLDEBUGPROCKHR -> Ptr () -> m ()
-glDebugMessageCallbackKHR = ffiDEBUGPROCKHRPtrVIOV glDebugMessageCallbackKHRFunPtr
-
-glDebugMessageCallbackKHRFunPtr :: FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
-glDebugMessageCallbackKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallbackKHR")
-
-{-# NOINLINE glDebugMessageCallbackKHRFunPtr #-}
-
--- | Usage: @'glDebugMessageControlKHR' source type severity count ids enabled@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageControl'.
-
-
-glDebugMessageControlKHR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-glDebugMessageControlKHR = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlKHRFunPtr
-
-glDebugMessageControlKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
-glDebugMessageControlKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControlKHR")
-
-{-# NOINLINE glDebugMessageControlKHRFunPtr #-}
-
--- | Usage: @'glDebugMessageInsertKHR' source type id severity length buf@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageInsert'.
-
-
-glDebugMessageInsertKHR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
-glDebugMessageInsertKHR = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertKHRFunPtr
-
-glDebugMessageInsertKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-glDebugMessageInsertKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertKHR")
-
-{-# NOINLINE glDebugMessageInsertKHRFunPtr #-}
-
--- | Usage: @'glGetDebugMessageLogKHR' count bufSize sources types ids severities lengths messageLog@
---
--- The length of @sources@ should be @count@.
---
--- The length of @types@ should be @count@.
---
--- The length of @ids@ should be @count@.
---
--- The length of @severities@ should be @count@.
---
--- The length of @lengths@ should be @count@.
---
--- The length of @messageLog@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDebugMessageLog'.
-
-
-glGetDebugMessageLogKHR :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-glGetDebugMessageLogKHR = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogKHRFunPtr
-
-glGetDebugMessageLogKHRFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
-glGetDebugMessageLogKHRFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLogKHR")
-
-{-# NOINLINE glGetDebugMessageLogKHRFunPtr #-}
-
--- | Usage: @'glGetObjectLabelKHR' identifier name bufSize length label@
---
--- The length of @label@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetObjectLabel'.
-
-
-glGetObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectLabelKHR = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelKHRFunPtr
-
-glGetObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectLabelKHRFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabelKHR")
-
-{-# NOINLINE glGetObjectLabelKHRFunPtr #-}
-
--- | Usage: @'glGetObjectPtrLabelKHR' ptr bufSize length label@
---
--- The length of @length@ should be @1@.
---
--- The length of @label@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetObjectPtrLabel'.
-
-
-glGetObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectPtrLabelKHR = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelKHRFunPtr
-
-glGetObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectPtrLabelKHRFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabelKHR")
-
-{-# NOINLINE glGetObjectPtrLabelKHRFunPtr #-}
-
--- | Usage: @'glGetPointervKHR' pname params@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetPointerv'.
-
-
-glGetPointervKHR :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
-glGetPointervKHR = ffienumPtrPtrVIOV glGetPointervKHRFunPtr
-
-glGetPointervKHRFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-glGetPointervKHRFunPtr = unsafePerformIO (getProcAddress "glGetPointervKHR")
-
-{-# NOINLINE glGetPointervKHRFunPtr #-}
-
--- | Usage: @'glObjectLabelKHR' identifier name length label@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glObjectLabel'.
-
-
-glObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glObjectLabelKHR = ffienumuintsizeiPtrcharIOV glObjectLabelKHRFunPtr
-
-glObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glObjectLabelKHRFunPtr = unsafePerformIO (getProcAddress "glObjectLabelKHR")
-
-{-# NOINLINE glObjectLabelKHRFunPtr #-}
-
--- | Usage: @'glObjectPtrLabelKHR' ptr length label@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glObjectPtrLabel'.
-
-
-glObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
-glObjectPtrLabelKHR = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelKHRFunPtr
-
-glObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
-glObjectPtrLabelKHRFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabelKHR")
-
-{-# NOINLINE glObjectPtrLabelKHRFunPtr #-}
-
--- | Usage: @'glPopDebugGroupKHR'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPopDebugGroup'.
-
-
-glPopDebugGroupKHR :: MonadIO m => m ()
-glPopDebugGroupKHR = ffiIOV glPopDebugGroupKHRFunPtr
-
-glPopDebugGroupKHRFunPtr :: FunPtr (IO ())
-glPopDebugGroupKHRFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroupKHR")
-
-{-# NOINLINE glPopDebugGroupKHRFunPtr #-}
-
--- | Usage: @'glPushDebugGroupKHR' source id length message@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPushDebugGroup'.
-
-
-glPushDebugGroupKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glPushDebugGroupKHR = ffienumuintsizeiPtrcharIOV glPushDebugGroupKHRFunPtr
-
-glPushDebugGroupKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glPushDebugGroupKHRFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroupKHR")
-
-{-# NOINLINE glPushDebugGroupKHRFunPtr #-}
-
-pattern GL_BUFFER_KHR = 0x82E0
-
-pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002
-
-pattern GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244
-
-pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245
-
-pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D
-
-pattern GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145
-
-pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243
-
-pattern GL_DEBUG_OUTPUT_KHR = 0x92E0
-
-pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242
-
-pattern GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146
-
-pattern GL_DEBUG_SEVERITY_LOW_KHR = 0x9148
-
-pattern GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147
-
-pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B
-
-pattern GL_DEBUG_SOURCE_API_KHR = 0x8246
-
-pattern GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A
-
-pattern GL_DEBUG_SOURCE_OTHER_KHR = 0x824B
-
-pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248
-
-pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249
-
-pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247
-
-pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D
-
-pattern GL_DEBUG_TYPE_ERROR_KHR = 0x824C
-
-pattern GL_DEBUG_TYPE_MARKER_KHR = 0x8268
-
-pattern GL_DEBUG_TYPE_OTHER_KHR = 0x8251
-
-pattern GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250
-
-pattern GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A
-
-pattern GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F
-
-pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269
-
-pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E
-
-pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C
-
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144
-
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143
-
-pattern GL_MAX_LABEL_LENGTH_KHR = 0x82E8
-
-pattern GL_PROGRAM_KHR = 0x82E2
-
-pattern GL_PROGRAM_PIPELINE_KHR = 0x82E4
-
-pattern GL_QUERY_KHR = 0x82E3
-
-pattern GL_SAMPLER_KHR = 0x82E6
-
-pattern GL_SHADER_KHR = 0x82E1
-
-pattern GL_STACK_OVERFLOW_KHR = 0x0503
-
-pattern GL_STACK_UNDERFLOW_KHR = 0x0504
-
-pattern GL_VERTEX_ARRAY_KHR = 0x8074
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/NoError.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/NoError.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/NoError.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.NoError (
-  -- * Extension Support
-    gl_KHR_no_error
-
-  -- * GL_KHR_no_error
-  , pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/no_error.txt GL_KHR_no_error> extension is available.
-
-gl_KHR_no_error :: Bool
-gl_KHR_no_error = member "GL_KHR_no_error" extensions
-{-# NOINLINE gl_KHR_no_error #-}
-
-pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/RobustBufferAccessBehavior.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/RobustBufferAccessBehavior.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/RobustBufferAccessBehavior.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.RobustBufferAccessBehavior (
-  -- * Extension Support
-    gl_KHR_robust_buffer_access_behavior
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/robust_buffer_access_behavior.txt GL_KHR_robust_buffer_access_behavior> extension is available.
-
-gl_KHR_robust_buffer_access_behavior :: Bool
-gl_KHR_robust_buffer_access_behavior = member "GL_KHR_robust_buffer_access_behavior" extensions
-{-# NOINLINE gl_KHR_robust_buffer_access_behavior #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/Robustness.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/Robustness.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/Robustness.hs
+++ /dev/null
@@ -1,141 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.Robustness (
-  -- * Extension Support
-    gl_KHR_robustness
-
-  -- * GL_KHR_robustness
-  , glGetGraphicsResetStatus
-  , glGetGraphicsResetStatusKHR
-  , glGetnUniformfv
-  , glGetnUniformfvKHR
-  , glGetnUniformiv
-  , glGetnUniformivKHR
-  , glGetnUniformuiv
-  , glGetnUniformuivKHR
-  , glReadnPixels
-  , glReadnPixelsKHR
-  , pattern GL_CONTEXT_LOST
-  , pattern GL_CONTEXT_LOST_KHR
-  , pattern GL_CONTEXT_ROBUST_ACCESS
-  , pattern GL_CONTEXT_ROBUST_ACCESS_KHR
-  , pattern GL_GUILTY_CONTEXT_RESET
-  , pattern GL_GUILTY_CONTEXT_RESET_KHR
-  , pattern GL_INNOCENT_CONTEXT_RESET
-  , pattern GL_INNOCENT_CONTEXT_RESET_KHR
-  , pattern GL_LOSE_CONTEXT_ON_RESET
-  , pattern GL_LOSE_CONTEXT_ON_RESET_KHR
-  , pattern GL_NO_ERROR
-  , pattern GL_NO_RESET_NOTIFICATION
-  , pattern GL_NO_RESET_NOTIFICATION_KHR
-  , pattern GL_RESET_NOTIFICATION_STRATEGY
-  , pattern GL_RESET_NOTIFICATION_STRATEGY_KHR
-  , pattern GL_UNKNOWN_CONTEXT_RESET
-  , pattern GL_UNKNOWN_CONTEXT_RESET_KHR
-) 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://www.khronos.org/registry/gles/extensions/KHR/robustness.txt GL_KHR_robustness> extension is available.
-
-gl_KHR_robustness :: Bool
-gl_KHR_robustness = member "GL_KHR_robustness" extensions
-{-# NOINLINE gl_KHR_robustness #-}
-
--- | Usage: @'glGetGraphicsResetStatusKHR'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetGraphicsResetStatus'.
-
-
-glGetGraphicsResetStatusKHR :: MonadIO m => m GLenum
-glGetGraphicsResetStatusKHR = ffiIOenum glGetGraphicsResetStatusKHRFunPtr
-
-glGetGraphicsResetStatusKHRFunPtr :: FunPtr (IO GLenum)
-glGetGraphicsResetStatusKHRFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusKHR")
-
-{-# NOINLINE glGetGraphicsResetStatusKHRFunPtr #-}
-
--- | Usage: @'glGetnUniformfvKHR' program location bufSize params@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetnUniformfv'.
-
-
-glGetnUniformfvKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glGetnUniformfvKHR = ffiuintintsizeiPtrfloatIOV glGetnUniformfvKHRFunPtr
-
-glGetnUniformfvKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnUniformfvKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfvKHR")
-
-{-# NOINLINE glGetnUniformfvKHRFunPtr #-}
-
--- | Usage: @'glGetnUniformivKHR' program location bufSize params@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetnUniformiv'.
-
-
-glGetnUniformivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glGetnUniformivKHR = ffiuintintsizeiPtrintIOV glGetnUniformivKHRFunPtr
-
-glGetnUniformivKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glGetnUniformivKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivKHR")
-
-{-# NOINLINE glGetnUniformivKHRFunPtr #-}
-
--- | Usage: @'glGetnUniformuivKHR' program location bufSize params@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetnUniformuiv'.
-
-
-glGetnUniformuivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetnUniformuivKHR = ffiuintintsizeiPtruintIOV glGetnUniformuivKHRFunPtr
-
-glGetnUniformuivKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetnUniformuivKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivKHR")
-
-{-# NOINLINE glGetnUniformuivKHRFunPtr #-}
-
--- | Usage: @'glReadnPixelsKHR' x y width height format type bufSize data@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @data@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glReadnPixels'.
-
-
-glReadnPixelsKHR :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glReadnPixelsKHR = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsKHRFunPtr
-
-glReadnPixelsKHRFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glReadnPixelsKHRFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsKHR")
-
-{-# NOINLINE glReadnPixelsKHRFunPtr #-}
-
-pattern GL_CONTEXT_LOST_KHR = 0x0507
-
-pattern GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3
-
-pattern GL_GUILTY_CONTEXT_RESET_KHR = 0x8253
-
-pattern GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254
-
-pattern GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252
-
-pattern GL_NO_RESET_NOTIFICATION_KHR = 0x8261
-
-pattern GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256
-
-pattern GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcHdr.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcHdr.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcHdr.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.TextureCompressionAstcHdr (
-  -- * Extension Support
-    gl_KHR_texture_compression_astc_hdr
-
-  -- * GL_KHR_texture_compression_astc_hdr
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/texture_compression_astc_hdr.txt GL_KHR_texture_compression_astc_hdr> extension is available.
-
-gl_KHR_texture_compression_astc_hdr :: Bool
-gl_KHR_texture_compression_astc_hdr = member "GL_KHR_texture_compression_astc_hdr" extensions
-{-# NOINLINE gl_KHR_texture_compression_astc_hdr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcLdr.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcLdr.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcLdr.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.TextureCompressionAstcLdr (
-  -- * Extension Support
-    gl_KHR_texture_compression_astc_ldr
-
-  -- * GL_KHR_texture_compression_astc_ldr
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/KHR_texture_compression_astc_ldr.txt GL_KHR_texture_compression_astc_ldr> extension is available.
-
-gl_KHR_texture_compression_astc_ldr :: Bool
-gl_KHR_texture_compression_astc_ldr = member "GL_KHR_texture_compression_astc_ldr" extensions
-{-# NOINLINE gl_KHR_texture_compression_astc_ldr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcSliced3d.hs b/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcSliced3d.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/KHR/TextureCompressionAstcSliced3d.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.KHR.TextureCompressionAstcSliced3d (
-  -- * Extension Support
-    gl_KHR_texture_compression_astc_sliced_3d
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/texture_compression_astc_sliced_3d.txt GL_KHR_texture_compression_astc_sliced_3d> extension is available.
-
-gl_KHR_texture_compression_astc_sliced_3d :: Bool
-gl_KHR_texture_compression_astc_sliced_3d = member "GL_KHR_texture_compression_astc_sliced_3d" extensions
-{-# NOINLINE gl_KHR_texture_compression_astc_sliced_3d #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/MESA.hs b/dist/build/autogen/Graphics/GL/Ext/MESA.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/MESA.hs
+++ /dev/null
@@ -1,14 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.MESA (
-  -- * MESA Extensions
-    module Graphics.GL.Ext.MESA.PackInvert
-  , module Graphics.GL.Ext.MESA.ResizeBuffers
-  , module Graphics.GL.Ext.MESA.WindowPos
-  , module Graphics.GL.Ext.MESA.YcbcrTexture
-) where
-
-import Graphics.GL.Ext.MESA.PackInvert
-import Graphics.GL.Ext.MESA.ResizeBuffers
-import Graphics.GL.Ext.MESA.WindowPos
-import Graphics.GL.Ext.MESA.YcbcrTexture
diff --git a/dist/build/autogen/Graphics/GL/Ext/MESA/PackInvert.hs b/dist/build/autogen/Graphics/GL/Ext/MESA/PackInvert.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/MESA/PackInvert.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.MESA.PackInvert (
-  -- * Extension Support
-    gl_MESA_pack_invert
-
-  -- * GL_MESA_pack_invert
-  , pattern GL_PACK_INVERT_MESA
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/pack_invert.txt GL_MESA_pack_invert> extension is available.
-
-gl_MESA_pack_invert :: Bool
-gl_MESA_pack_invert = member "GL_MESA_pack_invert" extensions
-{-# NOINLINE gl_MESA_pack_invert #-}
-
-pattern GL_PACK_INVERT_MESA = 0x8758
diff --git a/dist/build/autogen/Graphics/GL/Ext/MESA/ResizeBuffers.hs b/dist/build/autogen/Graphics/GL/Ext/MESA/ResizeBuffers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/MESA/ResizeBuffers.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.MESA.ResizeBuffers (
-  -- * Extension Support
-    gl_MESA_resize_buffers
-
-  -- * GL_MESA_resize_buffers
-  , glResizeBuffersMESA
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/resize_buffers.txt GL_MESA_resize_buffers> extension is available.
-
-gl_MESA_resize_buffers :: Bool
-gl_MESA_resize_buffers = member "GL_MESA_resize_buffers" extensions
-{-# NOINLINE gl_MESA_resize_buffers #-}
-
--- | Usage: @'glResizeBuffersMESA'@
-
-
-glResizeBuffersMESA :: MonadIO m => m ()
-glResizeBuffersMESA = ffiIOV glResizeBuffersMESAFunPtr
-
-glResizeBuffersMESAFunPtr :: FunPtr (IO ())
-glResizeBuffersMESAFunPtr = unsafePerformIO (getProcAddress "glResizeBuffersMESA")
-
-{-# NOINLINE glResizeBuffersMESAFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/MESA/WindowPos.hs b/dist/build/autogen/Graphics/GL/Ext/MESA/WindowPos.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/MESA/WindowPos.hs
+++ /dev/null
@@ -1,486 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.MESA.WindowPos (
-  -- * Extension Support
-    gl_MESA_window_pos
-
-  -- * GL_MESA_window_pos
-  , glWindowPos2dMESA
-  , glWindowPos2dvMESA
-  , glWindowPos2fMESA
-  , glWindowPos2fvMESA
-  , glWindowPos2iMESA
-  , glWindowPos2ivMESA
-  , glWindowPos2sMESA
-  , glWindowPos2svMESA
-  , glWindowPos3dMESA
-  , glWindowPos3dvMESA
-  , glWindowPos3fMESA
-  , glWindowPos3fvMESA
-  , glWindowPos3iMESA
-  , glWindowPos3ivMESA
-  , glWindowPos3sMESA
-  , glWindowPos3svMESA
-  , glWindowPos4dMESA
-  , glWindowPos4dvMESA
-  , glWindowPos4fMESA
-  , glWindowPos4fvMESA
-  , glWindowPos4iMESA
-  , glWindowPos4ivMESA
-  , glWindowPos4sMESA
-  , glWindowPos4svMESA
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/window_pos.txt GL_MESA_window_pos> extension is available.
-
-gl_MESA_window_pos :: Bool
-gl_MESA_window_pos = member "GL_MESA_window_pos" extensions
-{-# NOINLINE gl_MESA_window_pos #-}
-
--- | Usage: @'glWindowPos2dMESA' x y@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2dvMESA'.
-
-
-glWindowPos2dMESA :: MonadIO m => GLdouble -> GLdouble -> m ()
-glWindowPos2dMESA = ffidoubledoubleIOV glWindowPos2dMESAFunPtr
-
-glWindowPos2dMESAFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glWindowPos2dMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dMESA")
-
-{-# NOINLINE glWindowPos2dMESAFunPtr #-}
-
--- | Usage: @'glWindowPos2dvMESA' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2dv'.
-
-
-glWindowPos2dvMESA :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos2dvMESA = ffiPtrdoubleIOV glWindowPos2dvMESAFunPtr
-
-glWindowPos2dvMESAFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos2dvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dvMESA")
-
-{-# NOINLINE glWindowPos2dvMESAFunPtr #-}
-
--- | Usage: @'glWindowPos2fMESA' x y@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2fvMESA'.
-
-
-glWindowPos2fMESA :: MonadIO m => GLfloat -> GLfloat -> m ()
-glWindowPos2fMESA = ffifloatfloatIOV glWindowPos2fMESAFunPtr
-
-glWindowPos2fMESAFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glWindowPos2fMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fMESA")
-
-{-# NOINLINE glWindowPos2fMESAFunPtr #-}
-
--- | Usage: @'glWindowPos2fvMESA' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2fv'.
-
-
-glWindowPos2fvMESA :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos2fvMESA = ffiPtrfloatIOV glWindowPos2fvMESAFunPtr
-
-glWindowPos2fvMESAFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos2fvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fvMESA")
-
-{-# NOINLINE glWindowPos2fvMESAFunPtr #-}
-
--- | Usage: @'glWindowPos2iMESA' x y@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2ivMESA'.
-
-
-glWindowPos2iMESA :: MonadIO m => GLint -> GLint -> m ()
-glWindowPos2iMESA = ffiintintIOV glWindowPos2iMESAFunPtr
-
-glWindowPos2iMESAFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glWindowPos2iMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iMESA")
-
-{-# NOINLINE glWindowPos2iMESAFunPtr #-}
-
--- | Usage: @'glWindowPos2ivMESA' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2iv'.
-
-
-glWindowPos2ivMESA :: MonadIO m => Ptr GLint -> m ()
-glWindowPos2ivMESA = ffiPtrintIOV glWindowPos2ivMESAFunPtr
-
-glWindowPos2ivMESAFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos2ivMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2ivMESA")
-
-{-# NOINLINE glWindowPos2ivMESAFunPtr #-}
-
--- | Usage: @'glWindowPos2sMESA' x y@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2svMESA'.
-
-
-glWindowPos2sMESA :: MonadIO m => GLshort -> GLshort -> m ()
-glWindowPos2sMESA = ffishortshortIOV glWindowPos2sMESAFunPtr
-
-glWindowPos2sMESAFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glWindowPos2sMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sMESA")
-
-{-# NOINLINE glWindowPos2sMESAFunPtr #-}
-
--- | Usage: @'glWindowPos2svMESA' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2sv'.
-
-
-glWindowPos2svMESA :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos2svMESA = ffiPtrshortIOV glWindowPos2svMESAFunPtr
-
-glWindowPos2svMESAFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos2svMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2svMESA")
-
-{-# NOINLINE glWindowPos2svMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3dMESA' x y z@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3dvMESA'.
-
-
-glWindowPos3dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glWindowPos3dMESA = ffidoubledoubledoubleIOV glWindowPos3dMESAFunPtr
-
-glWindowPos3dMESAFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glWindowPos3dMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dMESA")
-
-{-# NOINLINE glWindowPos3dMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3dvMESA' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3dv'.
-
-
-glWindowPos3dvMESA :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos3dvMESA = ffiPtrdoubleIOV glWindowPos3dvMESAFunPtr
-
-glWindowPos3dvMESAFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos3dvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dvMESA")
-
-{-# NOINLINE glWindowPos3dvMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3fMESA' x y z@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3fvMESA'.
-
-
-glWindowPos3fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glWindowPos3fMESA = ffifloatfloatfloatIOV glWindowPos3fMESAFunPtr
-
-glWindowPos3fMESAFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glWindowPos3fMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fMESA")
-
-{-# NOINLINE glWindowPos3fMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3fvMESA' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3fv'.
-
-
-glWindowPos3fvMESA :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos3fvMESA = ffiPtrfloatIOV glWindowPos3fvMESAFunPtr
-
-glWindowPos3fvMESAFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos3fvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fvMESA")
-
-{-# NOINLINE glWindowPos3fvMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3iMESA' x y z@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3ivMESA'.
-
-
-glWindowPos3iMESA :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glWindowPos3iMESA = ffiintintintIOV glWindowPos3iMESAFunPtr
-
-glWindowPos3iMESAFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glWindowPos3iMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iMESA")
-
-{-# NOINLINE glWindowPos3iMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3ivMESA' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3iv'.
-
-
-glWindowPos3ivMESA :: MonadIO m => Ptr GLint -> m ()
-glWindowPos3ivMESA = ffiPtrintIOV glWindowPos3ivMESAFunPtr
-
-glWindowPos3ivMESAFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos3ivMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3ivMESA")
-
-{-# NOINLINE glWindowPos3ivMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3sMESA' x y z@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3svMESA'.
-
-
-glWindowPos3sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glWindowPos3sMESA = ffishortshortshortIOV glWindowPos3sMESAFunPtr
-
-glWindowPos3sMESAFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glWindowPos3sMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sMESA")
-
-{-# NOINLINE glWindowPos3sMESAFunPtr #-}
-
--- | Usage: @'glWindowPos3svMESA' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3sv'.
-
-
-glWindowPos3svMESA :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos3svMESA = ffiPtrshortIOV glWindowPos3svMESAFunPtr
-
-glWindowPos3svMESAFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos3svMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3svMESA")
-
-{-# NOINLINE glWindowPos3svMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4dMESA' x y z w@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- The parameter @w@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4dvMESA'.
-
-
-glWindowPos4dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glWindowPos4dMESA = ffidoubledoubledoubledoubleIOV glWindowPos4dMESAFunPtr
-
-glWindowPos4dMESAFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glWindowPos4dMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4dMESA")
-
-{-# NOINLINE glWindowPos4dMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4dvMESA' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @4@.
-
-
-glWindowPos4dvMESA :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos4dvMESA = ffiPtrdoubleIOV glWindowPos4dvMESAFunPtr
-
-glWindowPos4dvMESAFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos4dvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4dvMESA")
-
-{-# NOINLINE glWindowPos4dvMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4fMESA' x y z w@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- The parameter @w@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4fvMESA'.
-
-
-glWindowPos4fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glWindowPos4fMESA = ffifloatfloatfloatfloatIOV glWindowPos4fMESAFunPtr
-
-glWindowPos4fMESAFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glWindowPos4fMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4fMESA")
-
-{-# NOINLINE glWindowPos4fMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4fvMESA' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @4@.
-
-
-glWindowPos4fvMESA :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos4fvMESA = ffiPtrfloatIOV glWindowPos4fvMESAFunPtr
-
-glWindowPos4fvMESAFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos4fvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4fvMESA")
-
-{-# NOINLINE glWindowPos4fvMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4iMESA' x y z w@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- The parameter @w@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4ivMESA'.
-
-
-glWindowPos4iMESA :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glWindowPos4iMESA = ffiintintintintIOV glWindowPos4iMESAFunPtr
-
-glWindowPos4iMESAFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glWindowPos4iMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4iMESA")
-
-{-# NOINLINE glWindowPos4iMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4ivMESA' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @4@.
-
-
-glWindowPos4ivMESA :: MonadIO m => Ptr GLint -> m ()
-glWindowPos4ivMESA = ffiPtrintIOV glWindowPos4ivMESAFunPtr
-
-glWindowPos4ivMESAFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos4ivMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4ivMESA")
-
-{-# NOINLINE glWindowPos4ivMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4sMESA' x y z w@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- The parameter @w@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4svMESA'.
-
-
-glWindowPos4sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glWindowPos4sMESA = ffishortshortshortshortIOV glWindowPos4sMESAFunPtr
-
-glWindowPos4sMESAFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glWindowPos4sMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4sMESA")
-
-{-# NOINLINE glWindowPos4sMESAFunPtr #-}
-
--- | Usage: @'glWindowPos4svMESA' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @4@.
-
-
-glWindowPos4svMESA :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos4svMESA = ffiPtrshortIOV glWindowPos4svMESAFunPtr
-
-glWindowPos4svMESAFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos4svMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4svMESA")
-
-{-# NOINLINE glWindowPos4svMESAFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/MESA/YcbcrTexture.hs b/dist/build/autogen/Graphics/GL/Ext/MESA/YcbcrTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/MESA/YcbcrTexture.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.MESA.YcbcrTexture (
-  -- * Extension Support
-    gl_MESA_ycbcr_texture
-
-  -- * GL_MESA_ycbcr_texture
-  , pattern GL_UNSIGNED_SHORT_8_8_MESA
-  , pattern GL_UNSIGNED_SHORT_8_8_REV_MESA
-  , pattern GL_YCBCR_MESA
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/ycbcr_texture.txt GL_MESA_ycbcr_texture> extension is available.
-
-gl_MESA_ycbcr_texture :: Bool
-gl_MESA_ycbcr_texture = member "GL_MESA_ycbcr_texture" extensions
-{-# NOINLINE gl_MESA_ycbcr_texture #-}
-
-pattern GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA
-
-pattern GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB
-
-pattern GL_YCBCR_MESA = 0x8757
diff --git a/dist/build/autogen/Graphics/GL/Ext/MESAX.hs b/dist/build/autogen/Graphics/GL/Ext/MESAX.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/MESAX.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.MESAX (
-  -- * MESAX Extensions
-    module Graphics.GL.Ext.MESAX.TextureStack
-) where
-
-import Graphics.GL.Ext.MESAX.TextureStack
diff --git a/dist/build/autogen/Graphics/GL/Ext/MESAX/TextureStack.hs b/dist/build/autogen/Graphics/GL/Ext/MESAX/TextureStack.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/MESAX/TextureStack.hs
+++ /dev/null
@@ -1,35 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.MESAX.TextureStack (
-  -- * Extension Support
-    gl_MESAX_texture_stack
-
-  -- * GL_MESAX_texture_stack
-  , pattern GL_PROXY_TEXTURE_1D_STACK_MESAX
-  , pattern GL_PROXY_TEXTURE_2D_STACK_MESAX
-  , pattern GL_TEXTURE_1D_STACK_BINDING_MESAX
-  , pattern GL_TEXTURE_1D_STACK_MESAX
-  , pattern GL_TEXTURE_2D_STACK_BINDING_MESAX
-  , pattern GL_TEXTURE_2D_STACK_MESAX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESAX/texture_stack.txt GL_MESAX_texture_stack> extension is available.
-
-gl_MESAX_texture_stack :: Bool
-gl_MESAX_texture_stack = member "GL_MESAX_texture_stack" extensions
-{-# NOINLINE gl_MESAX_texture_stack #-}
-
-pattern GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B
-
-pattern GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C
-
-pattern GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D
-
-pattern GL_TEXTURE_1D_STACK_MESAX = 0x8759
-
-pattern GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E
-
-pattern GL_TEXTURE_2D_STACK_MESAX = 0x875A
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV.hs b/dist/build/autogen/Graphics/GL/Ext/NV.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV.hs
+++ /dev/null
@@ -1,260 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV (
-  -- * NV Extensions
-    module Graphics.GL.Ext.NV.BindlessMultiDrawIndirect
-  , module Graphics.GL.Ext.NV.BindlessMultiDrawIndirectCount
-  , module Graphics.GL.Ext.NV.BindlessTexture
-  , module Graphics.GL.Ext.NV.BlendEquationAdvanced
-  , module Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent
-  , module Graphics.GL.Ext.NV.BlendSquare
-  , module Graphics.GL.Ext.NV.ClipSpaceWScaling
-  , module Graphics.GL.Ext.NV.CommandList
-  , module Graphics.GL.Ext.NV.ComputeProgram5
-  , module Graphics.GL.Ext.NV.ConditionalRender
-  , module Graphics.GL.Ext.NV.ConservativeRaster
-  , module Graphics.GL.Ext.NV.ConservativeRasterDilate
-  , module Graphics.GL.Ext.NV.ConservativeRasterPreSnapTriangles
-  , module Graphics.GL.Ext.NV.CopyBuffer
-  , module Graphics.GL.Ext.NV.CopyDepthToColor
-  , module Graphics.GL.Ext.NV.CopyImage
-  , module Graphics.GL.Ext.NV.CoverageSample
-  , module Graphics.GL.Ext.NV.DeepTexture3D
-  , module Graphics.GL.Ext.NV.DepthBufferFloat
-  , module Graphics.GL.Ext.NV.DepthClamp
-  , module Graphics.GL.Ext.NV.DepthNonlinear
-  , module Graphics.GL.Ext.NV.DrawBuffers
-  , module Graphics.GL.Ext.NV.DrawInstanced
-  , module Graphics.GL.Ext.NV.DrawTexture
-  , module Graphics.GL.Ext.NV.Evaluators
-  , module Graphics.GL.Ext.NV.ExplicitAttribLocation
-  , module Graphics.GL.Ext.NV.ExplicitMultisample
-  , module Graphics.GL.Ext.NV.FboColorAttachments
-  , module Graphics.GL.Ext.NV.Fence
-  , module Graphics.GL.Ext.NV.FillRectangle
-  , module Graphics.GL.Ext.NV.FloatBuffer
-  , module Graphics.GL.Ext.NV.FogDistance
-  , module Graphics.GL.Ext.NV.FragmentCoverageToColor
-  , module Graphics.GL.Ext.NV.FragmentProgram
-  , module Graphics.GL.Ext.NV.FragmentProgram2
-  , module Graphics.GL.Ext.NV.FragmentProgram4
-  , module Graphics.GL.Ext.NV.FragmentProgramOption
-  , module Graphics.GL.Ext.NV.FragmentShaderInterlock
-  , module Graphics.GL.Ext.NV.FramebufferBlit
-  , module Graphics.GL.Ext.NV.FramebufferMixedSamples
-  , module Graphics.GL.Ext.NV.FramebufferMultisample
-  , module Graphics.GL.Ext.NV.FramebufferMultisampleCoverage
-  , module Graphics.GL.Ext.NV.GenerateMipmapSRGB
-  , module Graphics.GL.Ext.NV.GeometryProgram4
-  , module Graphics.GL.Ext.NV.GeometryShader4
-  , module Graphics.GL.Ext.NV.GeometryShaderPassthrough
-  , module Graphics.GL.Ext.NV.GpuProgram4
-  , module Graphics.GL.Ext.NV.GpuProgram5
-  , module Graphics.GL.Ext.NV.GpuProgram5MemExtended
-  , module Graphics.GL.Ext.NV.GpuShader5
-  , module Graphics.GL.Ext.NV.HalfFloat
-  , module Graphics.GL.Ext.NV.ImageFormats
-  , module Graphics.GL.Ext.NV.InstancedArrays
-  , module Graphics.GL.Ext.NV.InternalformatSampleQuery
-  , module Graphics.GL.Ext.NV.LightMaxExponent
-  , module Graphics.GL.Ext.NV.MultisampleCoverage
-  , module Graphics.GL.Ext.NV.MultisampleFilterHint
-  , module Graphics.GL.Ext.NV.NonSquareMatrices
-  , module Graphics.GL.Ext.NV.OcclusionQuery
-  , module Graphics.GL.Ext.NV.PackedDepthStencil
-  , module Graphics.GL.Ext.NV.ParameterBufferObject
-  , module Graphics.GL.Ext.NV.ParameterBufferObject2
-  , module Graphics.GL.Ext.NV.PathRendering
-  , module Graphics.GL.Ext.NV.PathRenderingSharedEdge
-  , module Graphics.GL.Ext.NV.PixelDataRange
-  , module Graphics.GL.Ext.NV.PointSprite
-  , module Graphics.GL.Ext.NV.PolygonMode
-  , module Graphics.GL.Ext.NV.PresentVideo
-  , module Graphics.GL.Ext.NV.PrimitiveRestart
-  , module Graphics.GL.Ext.NV.ReadBuffer
-  , module Graphics.GL.Ext.NV.ReadBufferFront
-  , module Graphics.GL.Ext.NV.ReadDepth
-  , module Graphics.GL.Ext.NV.ReadDepthStencil
-  , module Graphics.GL.Ext.NV.ReadStencil
-  , module Graphics.GL.Ext.NV.RegisterCombiners
-  , module Graphics.GL.Ext.NV.RegisterCombiners2
-  , module Graphics.GL.Ext.NV.RobustnessVideoMemoryPurge
-  , module Graphics.GL.Ext.NV.SRGBFormats
-  , module Graphics.GL.Ext.NV.SampleLocations
-  , module Graphics.GL.Ext.NV.SampleMaskOverrideCoverage
-  , module Graphics.GL.Ext.NV.ShaderAtomicCounters
-  , module Graphics.GL.Ext.NV.ShaderAtomicFloat
-  , module Graphics.GL.Ext.NV.ShaderAtomicFloat64
-  , module Graphics.GL.Ext.NV.ShaderAtomicFp16Vector
-  , module Graphics.GL.Ext.NV.ShaderAtomicInt64
-  , module Graphics.GL.Ext.NV.ShaderBufferLoad
-  , module Graphics.GL.Ext.NV.ShaderBufferStore
-  , module Graphics.GL.Ext.NV.ShaderNoperspectiveInterpolation
-  , module Graphics.GL.Ext.NV.ShaderStorageBufferObject
-  , module Graphics.GL.Ext.NV.ShaderThreadGroup
-  , module Graphics.GL.Ext.NV.ShaderThreadShuffle
-  , module Graphics.GL.Ext.NV.ShadowSamplersArray
-  , module Graphics.GL.Ext.NV.ShadowSamplersCube
-  , module Graphics.GL.Ext.NV.StereoViewRendering
-  , module Graphics.GL.Ext.NV.TessellationProgram5
-  , module Graphics.GL.Ext.NV.TexgenEmboss
-  , module Graphics.GL.Ext.NV.TexgenReflection
-  , module Graphics.GL.Ext.NV.TextureBarrier
-  , module Graphics.GL.Ext.NV.TextureBorderClamp
-  , module Graphics.GL.Ext.NV.TextureCompressionS3tcUpdate
-  , module Graphics.GL.Ext.NV.TextureCompressionVtc
-  , module Graphics.GL.Ext.NV.TextureEnvCombine4
-  , module Graphics.GL.Ext.NV.TextureExpandNormal
-  , module Graphics.GL.Ext.NV.TextureMultisample
-  , module Graphics.GL.Ext.NV.TextureNpot2DMipmap
-  , module Graphics.GL.Ext.NV.TextureRectangle
-  , module Graphics.GL.Ext.NV.TextureShader
-  , module Graphics.GL.Ext.NV.TextureShader2
-  , module Graphics.GL.Ext.NV.TextureShader3
-  , module Graphics.GL.Ext.NV.TransformFeedback
-  , module Graphics.GL.Ext.NV.TransformFeedback2
-  , module Graphics.GL.Ext.NV.UniformBufferUnifiedMemory
-  , module Graphics.GL.Ext.NV.VdpauInterop
-  , module Graphics.GL.Ext.NV.VertexArrayRange
-  , module Graphics.GL.Ext.NV.VertexArrayRange2
-  , module Graphics.GL.Ext.NV.VertexAttribInteger64bit
-  , module Graphics.GL.Ext.NV.VertexBufferUnifiedMemory
-  , module Graphics.GL.Ext.NV.VertexProgram
-  , module Graphics.GL.Ext.NV.VertexProgram11
-  , module Graphics.GL.Ext.NV.VertexProgram2
-  , module Graphics.GL.Ext.NV.VertexProgram2Option
-  , module Graphics.GL.Ext.NV.VertexProgram3
-  , module Graphics.GL.Ext.NV.VertexProgram4
-  , module Graphics.GL.Ext.NV.VideoCapture
-  , module Graphics.GL.Ext.NV.ViewportArray
-  , module Graphics.GL.Ext.NV.ViewportArray2
-  , module Graphics.GL.Ext.NV.ViewportSwizzle
-) where
-
-import Graphics.GL.Ext.NV.BindlessMultiDrawIndirect
-import Graphics.GL.Ext.NV.BindlessMultiDrawIndirectCount
-import Graphics.GL.Ext.NV.BindlessTexture
-import Graphics.GL.Ext.NV.BlendEquationAdvanced
-import Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent
-import Graphics.GL.Ext.NV.BlendSquare
-import Graphics.GL.Ext.NV.ClipSpaceWScaling
-import Graphics.GL.Ext.NV.CommandList
-import Graphics.GL.Ext.NV.ComputeProgram5
-import Graphics.GL.Ext.NV.ConditionalRender
-import Graphics.GL.Ext.NV.ConservativeRaster
-import Graphics.GL.Ext.NV.ConservativeRasterDilate
-import Graphics.GL.Ext.NV.ConservativeRasterPreSnapTriangles
-import Graphics.GL.Ext.NV.CopyBuffer
-import Graphics.GL.Ext.NV.CopyDepthToColor
-import Graphics.GL.Ext.NV.CopyImage
-import Graphics.GL.Ext.NV.CoverageSample
-import Graphics.GL.Ext.NV.DeepTexture3D
-import Graphics.GL.Ext.NV.DepthBufferFloat
-import Graphics.GL.Ext.NV.DepthClamp
-import Graphics.GL.Ext.NV.DepthNonlinear
-import Graphics.GL.Ext.NV.DrawBuffers
-import Graphics.GL.Ext.NV.DrawInstanced
-import Graphics.GL.Ext.NV.DrawTexture
-import Graphics.GL.Ext.NV.Evaluators
-import Graphics.GL.Ext.NV.ExplicitAttribLocation
-import Graphics.GL.Ext.NV.ExplicitMultisample
-import Graphics.GL.Ext.NV.FboColorAttachments
-import Graphics.GL.Ext.NV.Fence
-import Graphics.GL.Ext.NV.FillRectangle
-import Graphics.GL.Ext.NV.FloatBuffer
-import Graphics.GL.Ext.NV.FogDistance
-import Graphics.GL.Ext.NV.FragmentCoverageToColor
-import Graphics.GL.Ext.NV.FragmentProgram
-import Graphics.GL.Ext.NV.FragmentProgram2
-import Graphics.GL.Ext.NV.FragmentProgram4
-import Graphics.GL.Ext.NV.FragmentProgramOption
-import Graphics.GL.Ext.NV.FragmentShaderInterlock
-import Graphics.GL.Ext.NV.FramebufferBlit
-import Graphics.GL.Ext.NV.FramebufferMixedSamples
-import Graphics.GL.Ext.NV.FramebufferMultisample
-import Graphics.GL.Ext.NV.FramebufferMultisampleCoverage
-import Graphics.GL.Ext.NV.GenerateMipmapSRGB
-import Graphics.GL.Ext.NV.GeometryProgram4
-import Graphics.GL.Ext.NV.GeometryShader4
-import Graphics.GL.Ext.NV.GeometryShaderPassthrough
-import Graphics.GL.Ext.NV.GpuProgram4
-import Graphics.GL.Ext.NV.GpuProgram5
-import Graphics.GL.Ext.NV.GpuProgram5MemExtended
-import Graphics.GL.Ext.NV.GpuShader5
-import Graphics.GL.Ext.NV.HalfFloat
-import Graphics.GL.Ext.NV.ImageFormats
-import Graphics.GL.Ext.NV.InstancedArrays
-import Graphics.GL.Ext.NV.InternalformatSampleQuery
-import Graphics.GL.Ext.NV.LightMaxExponent
-import Graphics.GL.Ext.NV.MultisampleCoverage
-import Graphics.GL.Ext.NV.MultisampleFilterHint
-import Graphics.GL.Ext.NV.NonSquareMatrices
-import Graphics.GL.Ext.NV.OcclusionQuery
-import Graphics.GL.Ext.NV.PackedDepthStencil
-import Graphics.GL.Ext.NV.ParameterBufferObject
-import Graphics.GL.Ext.NV.ParameterBufferObject2
-import Graphics.GL.Ext.NV.PathRendering
-import Graphics.GL.Ext.NV.PathRenderingSharedEdge
-import Graphics.GL.Ext.NV.PixelDataRange
-import Graphics.GL.Ext.NV.PointSprite
-import Graphics.GL.Ext.NV.PolygonMode
-import Graphics.GL.Ext.NV.PresentVideo
-import Graphics.GL.Ext.NV.PrimitiveRestart
-import Graphics.GL.Ext.NV.ReadBuffer
-import Graphics.GL.Ext.NV.ReadBufferFront
-import Graphics.GL.Ext.NV.ReadDepth
-import Graphics.GL.Ext.NV.ReadDepthStencil
-import Graphics.GL.Ext.NV.ReadStencil
-import Graphics.GL.Ext.NV.RegisterCombiners
-import Graphics.GL.Ext.NV.RegisterCombiners2
-import Graphics.GL.Ext.NV.RobustnessVideoMemoryPurge
-import Graphics.GL.Ext.NV.SRGBFormats
-import Graphics.GL.Ext.NV.SampleLocations
-import Graphics.GL.Ext.NV.SampleMaskOverrideCoverage
-import Graphics.GL.Ext.NV.ShaderAtomicCounters
-import Graphics.GL.Ext.NV.ShaderAtomicFloat
-import Graphics.GL.Ext.NV.ShaderAtomicFloat64
-import Graphics.GL.Ext.NV.ShaderAtomicFp16Vector
-import Graphics.GL.Ext.NV.ShaderAtomicInt64
-import Graphics.GL.Ext.NV.ShaderBufferLoad
-import Graphics.GL.Ext.NV.ShaderBufferStore
-import Graphics.GL.Ext.NV.ShaderNoperspectiveInterpolation
-import Graphics.GL.Ext.NV.ShaderStorageBufferObject
-import Graphics.GL.Ext.NV.ShaderThreadGroup
-import Graphics.GL.Ext.NV.ShaderThreadShuffle
-import Graphics.GL.Ext.NV.ShadowSamplersArray
-import Graphics.GL.Ext.NV.ShadowSamplersCube
-import Graphics.GL.Ext.NV.StereoViewRendering
-import Graphics.GL.Ext.NV.TessellationProgram5
-import Graphics.GL.Ext.NV.TexgenEmboss
-import Graphics.GL.Ext.NV.TexgenReflection
-import Graphics.GL.Ext.NV.TextureBarrier
-import Graphics.GL.Ext.NV.TextureBorderClamp
-import Graphics.GL.Ext.NV.TextureCompressionS3tcUpdate
-import Graphics.GL.Ext.NV.TextureCompressionVtc
-import Graphics.GL.Ext.NV.TextureEnvCombine4
-import Graphics.GL.Ext.NV.TextureExpandNormal
-import Graphics.GL.Ext.NV.TextureMultisample
-import Graphics.GL.Ext.NV.TextureNpot2DMipmap
-import Graphics.GL.Ext.NV.TextureRectangle
-import Graphics.GL.Ext.NV.TextureShader
-import Graphics.GL.Ext.NV.TextureShader2
-import Graphics.GL.Ext.NV.TextureShader3
-import Graphics.GL.Ext.NV.TransformFeedback
-import Graphics.GL.Ext.NV.TransformFeedback2
-import Graphics.GL.Ext.NV.UniformBufferUnifiedMemory
-import Graphics.GL.Ext.NV.VdpauInterop
-import Graphics.GL.Ext.NV.VertexArrayRange
-import Graphics.GL.Ext.NV.VertexArrayRange2
-import Graphics.GL.Ext.NV.VertexAttribInteger64bit
-import Graphics.GL.Ext.NV.VertexBufferUnifiedMemory
-import Graphics.GL.Ext.NV.VertexProgram
-import Graphics.GL.Ext.NV.VertexProgram11
-import Graphics.GL.Ext.NV.VertexProgram2
-import Graphics.GL.Ext.NV.VertexProgram2Option
-import Graphics.GL.Ext.NV.VertexProgram3
-import Graphics.GL.Ext.NV.VertexProgram4
-import Graphics.GL.Ext.NV.VideoCapture
-import Graphics.GL.Ext.NV.ViewportArray
-import Graphics.GL.Ext.NV.ViewportArray2
-import Graphics.GL.Ext.NV.ViewportSwizzle
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/BindlessMultiDrawIndirect.hs b/dist/build/autogen/Graphics/GL/Ext/NV/BindlessMultiDrawIndirect.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/BindlessMultiDrawIndirect.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.BindlessMultiDrawIndirect (
-  -- * Extension Support
-    gl_NV_bindless_multi_draw_indirect
-
-  -- * GL_NV_bindless_multi_draw_indirect
-  , glMultiDrawArraysIndirectBindlessNV
-  , glMultiDrawElementsIndirectBindlessNV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect.txt GL_NV_bindless_multi_draw_indirect> extension is available.
-
-gl_NV_bindless_multi_draw_indirect :: Bool
-gl_NV_bindless_multi_draw_indirect = member "GL_NV_bindless_multi_draw_indirect" extensions
-{-# NOINLINE gl_NV_bindless_multi_draw_indirect #-}
-
--- | Usage: @'glMultiDrawArraysIndirectBindlessNV' mode indirect drawCount stride vertexBufferCount@
-
-
-glMultiDrawArraysIndirectBindlessNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
-glMultiDrawArraysIndirectBindlessNV = ffienumPtrVsizeisizeiintIOV glMultiDrawArraysIndirectBindlessNVFunPtr
-
-glMultiDrawArraysIndirectBindlessNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ())
-glMultiDrawArraysIndirectBindlessNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectBindlessNV")
-
-{-# NOINLINE glMultiDrawArraysIndirectBindlessNVFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsIndirectBindlessNV' mode type indirect drawCount stride vertexBufferCount@
-
-
-glMultiDrawElementsIndirectBindlessNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
-glMultiDrawElementsIndirectBindlessNV = ffienumenumPtrVsizeisizeiintIOV glMultiDrawElementsIndirectBindlessNVFunPtr
-
-glMultiDrawElementsIndirectBindlessNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ())
-glMultiDrawElementsIndirectBindlessNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectBindlessNV")
-
-{-# NOINLINE glMultiDrawElementsIndirectBindlessNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/BindlessMultiDrawIndirectCount.hs b/dist/build/autogen/Graphics/GL/Ext/NV/BindlessMultiDrawIndirectCount.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/BindlessMultiDrawIndirectCount.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.BindlessMultiDrawIndirectCount (
-  -- * Extension Support
-    gl_NV_bindless_multi_draw_indirect_count
-
-  -- * GL_NV_bindless_multi_draw_indirect_count
-  , glMultiDrawArraysIndirectBindlessCountNV
-  , glMultiDrawElementsIndirectBindlessCountNV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect_count.txt GL_NV_bindless_multi_draw_indirect_count> extension is available.
-
-gl_NV_bindless_multi_draw_indirect_count :: Bool
-gl_NV_bindless_multi_draw_indirect_count = member "GL_NV_bindless_multi_draw_indirect_count" extensions
-{-# NOINLINE gl_NV_bindless_multi_draw_indirect_count #-}
-
--- | Usage: @'glMultiDrawArraysIndirectBindlessCountNV' mode indirect drawCount maxDrawCount stride vertexBufferCount@
-
-
-glMultiDrawArraysIndirectBindlessCountNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
-glMultiDrawArraysIndirectBindlessCountNV = ffienumPtrVsizeisizeisizeiintIOV glMultiDrawArraysIndirectBindlessCountNVFunPtr
-
-glMultiDrawArraysIndirectBindlessCountNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
-glMultiDrawArraysIndirectBindlessCountNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectBindlessCountNV")
-
-{-# NOINLINE glMultiDrawArraysIndirectBindlessCountNVFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsIndirectBindlessCountNV' mode type indirect drawCount maxDrawCount stride vertexBufferCount@
-
-
-glMultiDrawElementsIndirectBindlessCountNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
-glMultiDrawElementsIndirectBindlessCountNV = ffienumenumPtrVsizeisizeisizeiintIOV glMultiDrawElementsIndirectBindlessCountNVFunPtr
-
-glMultiDrawElementsIndirectBindlessCountNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
-glMultiDrawElementsIndirectBindlessCountNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectBindlessCountNV")
-
-{-# NOINLINE glMultiDrawElementsIndirectBindlessCountNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/BindlessTexture.hs b/dist/build/autogen/Graphics/GL/Ext/NV/BindlessTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/BindlessTexture.hs
+++ /dev/null
@@ -1,184 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.BindlessTexture (
-  -- * Extension Support
-    gl_NV_bindless_texture
-
-  -- * GL_NV_bindless_texture
-  , glGetImageHandleNV
-  , glGetTextureHandleNV
-  , glGetTextureSamplerHandleNV
-  , glIsImageHandleResidentNV
-  , glIsTextureHandleResidentNV
-  , glMakeImageHandleNonResidentNV
-  , glMakeImageHandleResidentNV
-  , glMakeTextureHandleNonResidentNV
-  , glMakeTextureHandleResidentNV
-  , glProgramUniformHandleui64NV
-  , glProgramUniformHandleui64vNV
-  , glUniformHandleui64NV
-  , glUniformHandleui64vNV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_texture.txt GL_NV_bindless_texture> extension is available.
-
-gl_NV_bindless_texture :: Bool
-gl_NV_bindless_texture = member "GL_NV_bindless_texture" extensions
-{-# NOINLINE gl_NV_bindless_texture #-}
-
--- | Usage: @'glGetImageHandleNV' texture level layered layer format@
---
--- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glGetImageHandleNV :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
-glGetImageHandleNV = ffiuintintbooleanintenumIOuint64 glGetImageHandleNVFunPtr
-
-glGetImageHandleNVFunPtr :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64)
-glGetImageHandleNVFunPtr = unsafePerformIO (getProcAddress "glGetImageHandleNV")
-
-{-# NOINLINE glGetImageHandleNVFunPtr #-}
-
--- | Usage: @'glGetTextureHandleNV' texture@
-
-
-glGetTextureHandleNV :: MonadIO m => GLuint -> m GLuint64
-glGetTextureHandleNV = ffiuintIOuint64 glGetTextureHandleNVFunPtr
-
-glGetTextureHandleNVFunPtr :: FunPtr (GLuint -> IO GLuint64)
-glGetTextureHandleNVFunPtr = unsafePerformIO (getProcAddress "glGetTextureHandleNV")
-
-{-# NOINLINE glGetTextureHandleNVFunPtr #-}
-
--- | Usage: @'glGetTextureSamplerHandleNV' texture sampler@
-
-
-glGetTextureSamplerHandleNV :: MonadIO m => GLuint -> GLuint -> m GLuint64
-glGetTextureSamplerHandleNV = ffiuintuintIOuint64 glGetTextureSamplerHandleNVFunPtr
-
-glGetTextureSamplerHandleNVFunPtr :: FunPtr (GLuint -> GLuint -> IO GLuint64)
-glGetTextureSamplerHandleNVFunPtr = unsafePerformIO (getProcAddress "glGetTextureSamplerHandleNV")
-
-{-# NOINLINE glGetTextureSamplerHandleNVFunPtr #-}
-
--- | Usage: @'glIsImageHandleResidentNV' handle@
-
-
-glIsImageHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
-glIsImageHandleResidentNV = ffiuint64IOboolean glIsImageHandleResidentNVFunPtr
-
-glIsImageHandleResidentNVFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
-glIsImageHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsImageHandleResidentNV")
-
-{-# NOINLINE glIsImageHandleResidentNVFunPtr #-}
-
--- | Usage: @'glIsTextureHandleResidentNV' handle@
-
-
-glIsTextureHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
-glIsTextureHandleResidentNV = ffiuint64IOboolean glIsTextureHandleResidentNVFunPtr
-
-glIsTextureHandleResidentNVFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
-glIsTextureHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsTextureHandleResidentNV")
-
-{-# NOINLINE glIsTextureHandleResidentNVFunPtr #-}
-
--- | Usage: @'glMakeImageHandleNonResidentNV' handle@
-
-
-glMakeImageHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
-glMakeImageHandleNonResidentNV = ffiuint64IOV glMakeImageHandleNonResidentNVFunPtr
-
-glMakeImageHandleNonResidentNVFunPtr :: FunPtr (GLuint64 -> IO ())
-glMakeImageHandleNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleNonResidentNV")
-
-{-# NOINLINE glMakeImageHandleNonResidentNVFunPtr #-}
-
--- | Usage: @'glMakeImageHandleResidentNV' handle access@
-
-
-glMakeImageHandleResidentNV :: MonadIO m => GLuint64 -> GLenum -> m ()
-glMakeImageHandleResidentNV = ffiuint64enumIOV glMakeImageHandleResidentNVFunPtr
-
-glMakeImageHandleResidentNVFunPtr :: FunPtr (GLuint64 -> GLenum -> IO ())
-glMakeImageHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleResidentNV")
-
-{-# NOINLINE glMakeImageHandleResidentNVFunPtr #-}
-
--- | Usage: @'glMakeTextureHandleNonResidentNV' handle@
-
-
-glMakeTextureHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
-glMakeTextureHandleNonResidentNV = ffiuint64IOV glMakeTextureHandleNonResidentNVFunPtr
-
-glMakeTextureHandleNonResidentNVFunPtr :: FunPtr (GLuint64 -> IO ())
-glMakeTextureHandleNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleNonResidentNV")
-
-{-# NOINLINE glMakeTextureHandleNonResidentNVFunPtr #-}
-
--- | Usage: @'glMakeTextureHandleResidentNV' handle@
-
-
-glMakeTextureHandleResidentNV :: MonadIO m => GLuint64 -> m ()
-glMakeTextureHandleResidentNV = ffiuint64IOV glMakeTextureHandleResidentNVFunPtr
-
-glMakeTextureHandleResidentNVFunPtr :: FunPtr (GLuint64 -> IO ())
-glMakeTextureHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleResidentNV")
-
-{-# NOINLINE glMakeTextureHandleResidentNVFunPtr #-}
-
--- | Usage: @'glProgramUniformHandleui64NV' program location value@
-
-
-glProgramUniformHandleui64NV :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
-glProgramUniformHandleui64NV = ffiuintintuint64IOV glProgramUniformHandleui64NVFunPtr
-
-glProgramUniformHandleui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
-glProgramUniformHandleui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64NV")
-
-{-# NOINLINE glProgramUniformHandleui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniformHandleui64vNV' program location count values@
---
--- The length of @values@ should be @count@.
-
-
-glProgramUniformHandleui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glProgramUniformHandleui64vNV = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vNVFunPtr
-
-glProgramUniformHandleui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glProgramUniformHandleui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64vNV")
-
-{-# NOINLINE glProgramUniformHandleui64vNVFunPtr #-}
-
--- | Usage: @'glUniformHandleui64NV' location value@
-
-
-glUniformHandleui64NV :: MonadIO m => GLint -> GLuint64 -> m ()
-glUniformHandleui64NV = ffiintuint64IOV glUniformHandleui64NVFunPtr
-
-glUniformHandleui64NVFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
-glUniformHandleui64NVFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64NV")
-
-{-# NOINLINE glUniformHandleui64NVFunPtr #-}
-
--- | Usage: @'glUniformHandleui64vNV' location count value@
---
--- The length of @value@ should be @count@.
-
-
-glUniformHandleui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
-glUniformHandleui64vNV = ffiintsizeiPtruint64IOV glUniformHandleui64vNVFunPtr
-
-glUniformHandleui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
-glUniformHandleui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64vNV")
-
-{-# NOINLINE glUniformHandleui64vNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs b/dist/build/autogen/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs
+++ /dev/null
@@ -1,198 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.BlendEquationAdvanced (
-  -- * Extension Support
-    gl_NV_blend_equation_advanced
-
-  -- * GL_NV_blend_equation_advanced
-  , glBlendBarrierNV
-  , glBlendParameteriNV
-  , pattern GL_BLEND_OVERLAP_NV
-  , pattern GL_BLEND_PREMULTIPLIED_SRC_NV
-  , pattern GL_BLUE_NV
-  , pattern GL_COLORBURN_NV
-  , pattern GL_COLORDODGE_NV
-  , pattern GL_CONJOINT_NV
-  , pattern GL_CONTRAST_NV
-  , pattern GL_DARKEN_NV
-  , pattern GL_DIFFERENCE_NV
-  , pattern GL_DISJOINT_NV
-  , pattern GL_DST_ATOP_NV
-  , pattern GL_DST_IN_NV
-  , pattern GL_DST_NV
-  , pattern GL_DST_OUT_NV
-  , pattern GL_DST_OVER_NV
-  , pattern GL_EXCLUSION_NV
-  , pattern GL_GREEN_NV
-  , pattern GL_HARDLIGHT_NV
-  , pattern GL_HARDMIX_NV
-  , pattern GL_HSL_COLOR_NV
-  , pattern GL_HSL_HUE_NV
-  , pattern GL_HSL_LUMINOSITY_NV
-  , pattern GL_HSL_SATURATION_NV
-  , pattern GL_INVERT
-  , pattern GL_INVERT_OVG_NV
-  , pattern GL_INVERT_RGB_NV
-  , pattern GL_LIGHTEN_NV
-  , pattern GL_LINEARBURN_NV
-  , pattern GL_LINEARDODGE_NV
-  , pattern GL_LINEARLIGHT_NV
-  , pattern GL_MINUS_CLAMPED_NV
-  , pattern GL_MINUS_NV
-  , pattern GL_MULTIPLY_NV
-  , pattern GL_OVERLAY_NV
-  , pattern GL_PINLIGHT_NV
-  , pattern GL_PLUS_CLAMPED_ALPHA_NV
-  , pattern GL_PLUS_CLAMPED_NV
-  , pattern GL_PLUS_DARKER_NV
-  , pattern GL_PLUS_NV
-  , pattern GL_RED_NV
-  , pattern GL_SCREEN_NV
-  , pattern GL_SOFTLIGHT_NV
-  , pattern GL_SRC_ATOP_NV
-  , pattern GL_SRC_IN_NV
-  , pattern GL_SRC_NV
-  , pattern GL_SRC_OUT_NV
-  , pattern GL_SRC_OVER_NV
-  , pattern GL_UNCORRELATED_NV
-  , pattern GL_VIVIDLIGHT_NV
-  , pattern GL_XOR_NV
-  , pattern GL_ZERO
-) 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/NV/blend_equation_advanced.txt GL_NV_blend_equation_advanced> extension is available.
-
-gl_NV_blend_equation_advanced :: Bool
-gl_NV_blend_equation_advanced = member "GL_NV_blend_equation_advanced" extensions
-{-# NOINLINE gl_NV_blend_equation_advanced #-}
-
--- | Usage: @'glBlendBarrierNV'@
---
--- This command is an alias for 'Graphics.GL.Embedded32.glBlendBarrier'.
-
-
-glBlendBarrierNV :: MonadIO m => m ()
-glBlendBarrierNV = ffiIOV glBlendBarrierNVFunPtr
-
-glBlendBarrierNVFunPtr :: FunPtr (IO ())
-glBlendBarrierNVFunPtr = unsafePerformIO (getProcAddress "glBlendBarrierNV")
-
-{-# NOINLINE glBlendBarrierNVFunPtr #-}
-
--- | Usage: @'glBlendParameteriNV' pname value@
-
-
-glBlendParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
-glBlendParameteriNV = ffienumintIOV glBlendParameteriNVFunPtr
-
-glBlendParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glBlendParameteriNVFunPtr = unsafePerformIO (getProcAddress "glBlendParameteriNV")
-
-{-# NOINLINE glBlendParameteriNVFunPtr #-}
-
-pattern GL_BLEND_OVERLAP_NV = 0x9281
-
-pattern GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280
-
-pattern GL_BLUE_NV = 0x1905
-
-pattern GL_COLORBURN_NV = 0x929A
-
-pattern GL_COLORDODGE_NV = 0x9299
-
-pattern GL_CONJOINT_NV = 0x9284
-
-pattern GL_CONTRAST_NV = 0x92A1
-
-pattern GL_DARKEN_NV = 0x9297
-
-pattern GL_DIFFERENCE_NV = 0x929E
-
-pattern GL_DISJOINT_NV = 0x9283
-
-pattern GL_DST_ATOP_NV = 0x928F
-
-pattern GL_DST_IN_NV = 0x928B
-
-pattern GL_DST_NV = 0x9287
-
-pattern GL_DST_OUT_NV = 0x928D
-
-pattern GL_DST_OVER_NV = 0x9289
-
-pattern GL_EXCLUSION_NV = 0x92A0
-
-pattern GL_GREEN_NV = 0x1904
-
-pattern GL_HARDLIGHT_NV = 0x929B
-
-pattern GL_HARDMIX_NV = 0x92A9
-
-pattern GL_HSL_COLOR_NV = 0x92AF
-
-pattern GL_HSL_HUE_NV = 0x92AD
-
-pattern GL_HSL_LUMINOSITY_NV = 0x92B0
-
-pattern GL_HSL_SATURATION_NV = 0x92AE
-
-pattern GL_INVERT_OVG_NV = 0x92B4
-
-pattern GL_INVERT_RGB_NV = 0x92A3
-
-pattern GL_LIGHTEN_NV = 0x9298
-
-pattern GL_LINEARBURN_NV = 0x92A5
-
-pattern GL_LINEARDODGE_NV = 0x92A4
-
-pattern GL_LINEARLIGHT_NV = 0x92A7
-
-pattern GL_MINUS_CLAMPED_NV = 0x92B3
-
-pattern GL_MINUS_NV = 0x929F
-
-pattern GL_MULTIPLY_NV = 0x9294
-
-pattern GL_OVERLAY_NV = 0x9296
-
-pattern GL_PINLIGHT_NV = 0x92A8
-
-pattern GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2
-
-pattern GL_PLUS_CLAMPED_NV = 0x92B1
-
-pattern GL_PLUS_DARKER_NV = 0x9292
-
-pattern GL_PLUS_NV = 0x9291
-
-pattern GL_RED_NV = 0x1903
-
-pattern GL_SCREEN_NV = 0x9295
-
-pattern GL_SOFTLIGHT_NV = 0x929C
-
-pattern GL_SRC_ATOP_NV = 0x928E
-
-pattern GL_SRC_IN_NV = 0x928A
-
-pattern GL_SRC_NV = 0x9286
-
-pattern GL_SRC_OUT_NV = 0x928C
-
-pattern GL_SRC_OVER_NV = 0x9288
-
-pattern GL_UNCORRELATED_NV = 0x9282
-
-pattern GL_VIVIDLIGHT_NV = 0x92A6
-
-pattern GL_XOR_NV = 0x1506
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs b/dist/build/autogen/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent (
-  -- * Extension Support
-    gl_NV_blend_equation_advanced_coherent
-
-  -- * GL_NV_blend_equation_advanced_coherent
-  , pattern GL_BLEND_ADVANCED_COHERENT_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_blend_equation_advanced_coherent.txt GL_NV_blend_equation_advanced_coherent> extension is available.
-
-gl_NV_blend_equation_advanced_coherent :: Bool
-gl_NV_blend_equation_advanced_coherent = member "GL_NV_blend_equation_advanced_coherent" extensions
-{-# NOINLINE gl_NV_blend_equation_advanced_coherent #-}
-
-pattern GL_BLEND_ADVANCED_COHERENT_NV = 0x9285
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/BlendSquare.hs b/dist/build/autogen/Graphics/GL/Ext/NV/BlendSquare.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/BlendSquare.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.BlendSquare (
-  -- * Extension Support
-    gl_NV_blend_square
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_square.txt GL_NV_blend_square> extension is available.
-
-gl_NV_blend_square :: Bool
-gl_NV_blend_square = member "GL_NV_blend_square" extensions
-{-# NOINLINE gl_NV_blend_square #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ClipSpaceWScaling (
-  -- * Extension Support
-    gl_NV_clip_space_w_scaling
-
-  -- * GL_NV_clip_space_w_scaling
-  , glViewportPositionWScaleNV
-  , pattern GL_VIEWPORT_POSITION_W_SCALE_NV
-  , pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV
-  , pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/clip_space_w_scaling.txt GL_NV_clip_space_w_scaling> extension is available.
-
-gl_NV_clip_space_w_scaling :: Bool
-gl_NV_clip_space_w_scaling = member "GL_NV_clip_space_w_scaling" extensions
-{-# NOINLINE gl_NV_clip_space_w_scaling #-}
-
--- | Usage: @'glViewportPositionWScaleNV' index xcoeff ycoeff@
-
-
-glViewportPositionWScaleNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glViewportPositionWScaleNV = ffiuintfloatfloatIOV glViewportPositionWScaleNVFunPtr
-
-glViewportPositionWScaleNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glViewportPositionWScaleNVFunPtr = unsafePerformIO (getProcAddress "glViewportPositionWScaleNV")
-
-{-# NOINLINE glViewportPositionWScaleNVFunPtr #-}
-
-pattern GL_VIEWPORT_POSITION_W_SCALE_NV = 0x937C
-
-pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV = 0x937D
-
-pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV = 0x937E
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/CommandList.hs b/dist/build/autogen/Graphics/GL/Ext/NV/CommandList.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/CommandList.hs
+++ /dev/null
@@ -1,283 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.CommandList (
-  -- * Extension Support
-    gl_NV_command_list
-
-  -- * GL_NV_command_list
-  , glCallCommandListNV
-  , glCommandListSegmentsNV
-  , glCompileCommandListNV
-  , glCreateCommandListsNV
-  , glCreateStatesNV
-  , glDeleteCommandListsNV
-  , glDeleteStatesNV
-  , glDrawCommandsAddressNV
-  , glDrawCommandsNV
-  , glDrawCommandsStatesAddressNV
-  , glDrawCommandsStatesNV
-  , glGetCommandHeaderNV
-  , glGetStageIndexNV
-  , glIsCommandListNV
-  , glIsStateNV
-  , glListDrawCommandsStatesClientNV
-  , glStateCaptureNV
-  , pattern GL_ALPHA_REF_COMMAND_NV
-  , pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV
-  , pattern GL_BLEND_COLOR_COMMAND_NV
-  , pattern GL_DRAW_ARRAYS_COMMAND_NV
-  , pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV
-  , pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV
-  , pattern GL_DRAW_ELEMENTS_COMMAND_NV
-  , pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV
-  , pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV
-  , pattern GL_ELEMENT_ADDRESS_COMMAND_NV
-  , pattern GL_FRONT_FACE_COMMAND_NV
-  , pattern GL_LINE_WIDTH_COMMAND_NV
-  , pattern GL_NOP_COMMAND_NV
-  , pattern GL_POLYGON_OFFSET_COMMAND_NV
-  , pattern GL_SCISSOR_COMMAND_NV
-  , pattern GL_STENCIL_REF_COMMAND_NV
-  , pattern GL_TERMINATE_SEQUENCE_COMMAND_NV
-  , pattern GL_UNIFORM_ADDRESS_COMMAND_NV
-  , pattern GL_VIEWPORT_COMMAND_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/command_list.txt GL_NV_command_list> extension is available.
-
-gl_NV_command_list :: Bool
-gl_NV_command_list = member "GL_NV_command_list" extensions
-{-# NOINLINE gl_NV_command_list #-}
-
--- | Usage: @'glCallCommandListNV' list@
-
-
-glCallCommandListNV :: MonadIO m => GLuint -> m ()
-glCallCommandListNV = ffiuintIOV glCallCommandListNVFunPtr
-
-glCallCommandListNVFunPtr :: FunPtr (GLuint -> IO ())
-glCallCommandListNVFunPtr = unsafePerformIO (getProcAddress "glCallCommandListNV")
-
-{-# NOINLINE glCallCommandListNVFunPtr #-}
-
--- | Usage: @'glCommandListSegmentsNV' list segments@
-
-
-glCommandListSegmentsNV :: MonadIO m => GLuint -> GLuint -> m ()
-glCommandListSegmentsNV = ffiuintuintIOV glCommandListSegmentsNVFunPtr
-
-glCommandListSegmentsNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glCommandListSegmentsNVFunPtr = unsafePerformIO (getProcAddress "glCommandListSegmentsNV")
-
-{-# NOINLINE glCommandListSegmentsNVFunPtr #-}
-
--- | Usage: @'glCompileCommandListNV' list@
-
-
-glCompileCommandListNV :: MonadIO m => GLuint -> m ()
-glCompileCommandListNV = ffiuintIOV glCompileCommandListNVFunPtr
-
-glCompileCommandListNVFunPtr :: FunPtr (GLuint -> IO ())
-glCompileCommandListNVFunPtr = unsafePerformIO (getProcAddress "glCompileCommandListNV")
-
-{-# NOINLINE glCompileCommandListNVFunPtr #-}
-
--- | Usage: @'glCreateCommandListsNV' n lists@
-
-
-glCreateCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateCommandListsNV = ffisizeiPtruintIOV glCreateCommandListsNVFunPtr
-
-glCreateCommandListsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateCommandListsNVFunPtr = unsafePerformIO (getProcAddress "glCreateCommandListsNV")
-
-{-# NOINLINE glCreateCommandListsNVFunPtr #-}
-
--- | Usage: @'glCreateStatesNV' n states@
-
-
-glCreateStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateStatesNV = ffisizeiPtruintIOV glCreateStatesNVFunPtr
-
-glCreateStatesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateStatesNVFunPtr = unsafePerformIO (getProcAddress "glCreateStatesNV")
-
-{-# NOINLINE glCreateStatesNVFunPtr #-}
-
--- | Usage: @'glDeleteCommandListsNV' n lists@
-
-
-glDeleteCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteCommandListsNV = ffisizeiPtruintIOV glDeleteCommandListsNVFunPtr
-
-glDeleteCommandListsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteCommandListsNVFunPtr = unsafePerformIO (getProcAddress "glDeleteCommandListsNV")
-
-{-# NOINLINE glDeleteCommandListsNVFunPtr #-}
-
--- | Usage: @'glDeleteStatesNV' n states@
-
-
-glDeleteStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteStatesNV = ffisizeiPtruintIOV glDeleteStatesNVFunPtr
-
-glDeleteStatesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteStatesNVFunPtr = unsafePerformIO (getProcAddress "glDeleteStatesNV")
-
-{-# NOINLINE glDeleteStatesNVFunPtr #-}
-
--- | Usage: @'glDrawCommandsAddressNV' primitiveMode indirects sizes count@
-
-
-glDrawCommandsAddressNV :: MonadIO m => GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
-glDrawCommandsAddressNV = ffienumPtruint64PtrsizeiuintIOV glDrawCommandsAddressNVFunPtr
-
-glDrawCommandsAddressNVFunPtr :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ())
-glDrawCommandsAddressNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsAddressNV")
-
-{-# NOINLINE glDrawCommandsAddressNVFunPtr #-}
-
--- | Usage: @'glDrawCommandsNV' primitiveMode buffer indirects sizes count@
-
-
-glDrawCommandsNV :: MonadIO m => GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
-glDrawCommandsNV = ffienumuintPtrintptrPtrsizeiuintIOV glDrawCommandsNVFunPtr
-
-glDrawCommandsNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ())
-glDrawCommandsNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsNV")
-
-{-# NOINLINE glDrawCommandsNVFunPtr #-}
-
--- | Usage: @'glDrawCommandsStatesAddressNV' indirects sizes states fbos count@
-
-
-glDrawCommandsStatesAddressNV :: MonadIO m => Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
-glDrawCommandsStatesAddressNV = ffiPtruint64PtrsizeiPtruintPtruintuintIOV glDrawCommandsStatesAddressNVFunPtr
-
-glDrawCommandsStatesAddressNVFunPtr :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
-glDrawCommandsStatesAddressNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsStatesAddressNV")
-
-{-# NOINLINE glDrawCommandsStatesAddressNVFunPtr #-}
-
--- | Usage: @'glDrawCommandsStatesNV' buffer indirects sizes states fbos count@
-
-
-glDrawCommandsStatesNV :: MonadIO m => GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
-glDrawCommandsStatesNV = ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV glDrawCommandsStatesNVFunPtr
-
-glDrawCommandsStatesNVFunPtr :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
-glDrawCommandsStatesNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsStatesNV")
-
-{-# NOINLINE glDrawCommandsStatesNVFunPtr #-}
-
--- | Usage: @'glGetCommandHeaderNV' tokenID size@
-
-
-glGetCommandHeaderNV :: MonadIO m => GLenum -> GLuint -> m GLuint
-glGetCommandHeaderNV = ffienumuintIOuint glGetCommandHeaderNVFunPtr
-
-glGetCommandHeaderNVFunPtr :: FunPtr (GLenum -> GLuint -> IO GLuint)
-glGetCommandHeaderNVFunPtr = unsafePerformIO (getProcAddress "glGetCommandHeaderNV")
-
-{-# NOINLINE glGetCommandHeaderNVFunPtr #-}
-
--- | Usage: @'glGetStageIndexNV' shadertype@
-
-
-glGetStageIndexNV :: MonadIO m => GLenum -> m GLushort
-glGetStageIndexNV = ffienumIOushort glGetStageIndexNVFunPtr
-
-glGetStageIndexNVFunPtr :: FunPtr (GLenum -> IO GLushort)
-glGetStageIndexNVFunPtr = unsafePerformIO (getProcAddress "glGetStageIndexNV")
-
-{-# NOINLINE glGetStageIndexNVFunPtr #-}
-
--- | Usage: @'glIsCommandListNV' list@
-
-
-glIsCommandListNV :: MonadIO m => GLuint -> m GLboolean
-glIsCommandListNV = ffiuintIOboolean glIsCommandListNVFunPtr
-
-glIsCommandListNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsCommandListNVFunPtr = unsafePerformIO (getProcAddress "glIsCommandListNV")
-
-{-# NOINLINE glIsCommandListNVFunPtr #-}
-
--- | Usage: @'glIsStateNV' state@
-
-
-glIsStateNV :: MonadIO m => GLuint -> m GLboolean
-glIsStateNV = ffiuintIOboolean glIsStateNVFunPtr
-
-glIsStateNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsStateNVFunPtr = unsafePerformIO (getProcAddress "glIsStateNV")
-
-{-# NOINLINE glIsStateNVFunPtr #-}
-
--- | Usage: @'glListDrawCommandsStatesClientNV' list segment indirects sizes states fbos count@
-
-
-glListDrawCommandsStatesClientNV :: MonadIO m => GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
-glListDrawCommandsStatesClientNV = ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV glListDrawCommandsStatesClientNVFunPtr
-
-glListDrawCommandsStatesClientNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
-glListDrawCommandsStatesClientNVFunPtr = unsafePerformIO (getProcAddress "glListDrawCommandsStatesClientNV")
-
-{-# NOINLINE glListDrawCommandsStatesClientNVFunPtr #-}
-
--- | Usage: @'glStateCaptureNV' state mode@
-
-
-glStateCaptureNV :: MonadIO m => GLuint -> GLenum -> m ()
-glStateCaptureNV = ffiuintenumIOV glStateCaptureNVFunPtr
-
-glStateCaptureNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glStateCaptureNVFunPtr = unsafePerformIO (getProcAddress "glStateCaptureNV")
-
-{-# NOINLINE glStateCaptureNVFunPtr #-}
-
-pattern GL_ALPHA_REF_COMMAND_NV = 0x000F
-
-pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV = 0x0009
-
-pattern GL_BLEND_COLOR_COMMAND_NV = 0x000B
-
-pattern GL_DRAW_ARRAYS_COMMAND_NV = 0x0003
-
-pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV = 0x0007
-
-pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV = 0x0005
-
-pattern GL_DRAW_ELEMENTS_COMMAND_NV = 0x0002
-
-pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV = 0x0006
-
-pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV = 0x0004
-
-pattern GL_ELEMENT_ADDRESS_COMMAND_NV = 0x0008
-
-pattern GL_FRONT_FACE_COMMAND_NV = 0x0012
-
-pattern GL_LINE_WIDTH_COMMAND_NV = 0x000D
-
-pattern GL_NOP_COMMAND_NV = 0x0001
-
-pattern GL_POLYGON_OFFSET_COMMAND_NV = 0x000E
-
-pattern GL_SCISSOR_COMMAND_NV = 0x0011
-
-pattern GL_STENCIL_REF_COMMAND_NV = 0x000C
-
-pattern GL_TERMINATE_SEQUENCE_COMMAND_NV = 0x0000
-
-pattern GL_UNIFORM_ADDRESS_COMMAND_NV = 0x000A
-
-pattern GL_VIEWPORT_COMMAND_NV = 0x0010
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ComputeProgram5.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ComputeProgram5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ComputeProgram5.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ComputeProgram5 (
-  -- * Extension Support
-    gl_NV_compute_program5
-
-  -- * GL_NV_compute_program5
-  , pattern GL_COMPUTE_PROGRAM_NV
-  , pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/compute_program5.txt GL_NV_compute_program5> extension is available.
-
-gl_NV_compute_program5 :: Bool
-gl_NV_compute_program5 = member "GL_NV_compute_program5" extensions
-{-# NOINLINE gl_NV_compute_program5 #-}
-
-pattern GL_COMPUTE_PROGRAM_NV = 0x90FB
-
-pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ConditionalRender.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ConditionalRender.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ConditionalRender.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ConditionalRender (
-  -- * Extension Support
-    gl_NV_conditional_render
-
-  -- * GL_NV_conditional_render
-  , glBeginConditionalRenderNV
-  , glEndConditionalRenderNV
-  , pattern GL_QUERY_BY_REGION_NO_WAIT_NV
-  , pattern GL_QUERY_BY_REGION_WAIT_NV
-  , pattern GL_QUERY_NO_WAIT_NV
-  , pattern GL_QUERY_WAIT_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conditional_render.txt GL_NV_conditional_render> extension is available.
-
-gl_NV_conditional_render :: Bool
-gl_NV_conditional_render = member "GL_NV_conditional_render" extensions
-{-# NOINLINE gl_NV_conditional_render #-}
-
--- | Usage: @'glBeginConditionalRenderNV' id mode@
---
--- The parameter @mode@ is a @TypeEnum@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginConditionalRender'.
-
-
-glBeginConditionalRenderNV :: MonadIO m => GLuint -> GLenum -> m ()
-glBeginConditionalRenderNV = ffiuintenumIOV glBeginConditionalRenderNVFunPtr
-
-glBeginConditionalRenderNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBeginConditionalRenderNVFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRenderNV")
-
-{-# NOINLINE glBeginConditionalRenderNVFunPtr #-}
-
--- | Usage: @'glEndConditionalRenderNV'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEndConditionalRender'.
-
-
-glEndConditionalRenderNV :: MonadIO m => m ()
-glEndConditionalRenderNV = ffiIOV glEndConditionalRenderNVFunPtr
-
-glEndConditionalRenderNVFunPtr :: FunPtr (IO ())
-glEndConditionalRenderNVFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRenderNV")
-
-{-# NOINLINE glEndConditionalRenderNVFunPtr #-}
-
-pattern GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16
-
-pattern GL_QUERY_BY_REGION_WAIT_NV = 0x8E15
-
-pattern GL_QUERY_NO_WAIT_NV = 0x8E14
-
-pattern GL_QUERY_WAIT_NV = 0x8E13
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRaster.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRaster.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRaster.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ConservativeRaster (
-  -- * Extension Support
-    gl_NV_conservative_raster
-
-  -- * GL_NV_conservative_raster
-  , glSubpixelPrecisionBiasNV
-  , pattern GL_CONSERVATIVE_RASTERIZATION_NV
-  , pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV
-  , pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV
-  , pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster.txt GL_NV_conservative_raster> extension is available.
-
-gl_NV_conservative_raster :: Bool
-gl_NV_conservative_raster = member "GL_NV_conservative_raster" extensions
-{-# NOINLINE gl_NV_conservative_raster #-}
-
--- | Usage: @'glSubpixelPrecisionBiasNV' xbits ybits@
-
-
-glSubpixelPrecisionBiasNV :: MonadIO m => GLuint -> GLuint -> m ()
-glSubpixelPrecisionBiasNV = ffiuintuintIOV glSubpixelPrecisionBiasNVFunPtr
-
-glSubpixelPrecisionBiasNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glSubpixelPrecisionBiasNVFunPtr = unsafePerformIO (getProcAddress "glSubpixelPrecisionBiasNV")
-
-{-# NOINLINE glSubpixelPrecisionBiasNVFunPtr #-}
-
-pattern GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346
-
-pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349
-
-pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347
-
-pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ConservativeRasterDilate (
-  -- * Extension Support
-    gl_NV_conservative_raster_dilate
-
-  -- * GL_NV_conservative_raster_dilate
-  , glConservativeRasterParameterfNV
-  , pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV
-  , pattern GL_CONSERVATIVE_RASTER_DILATE_NV
-  , pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster_dilate.txt GL_NV_conservative_raster_dilate> extension is available.
-
-gl_NV_conservative_raster_dilate :: Bool
-gl_NV_conservative_raster_dilate = member "GL_NV_conservative_raster_dilate" extensions
-{-# NOINLINE gl_NV_conservative_raster_dilate #-}
-
--- | Usage: @'glConservativeRasterParameterfNV' pname value@
-
-
-glConservativeRasterParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
-glConservativeRasterParameterfNV = ffienumfloatIOV glConservativeRasterParameterfNVFunPtr
-
-glConservativeRasterParameterfNVFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glConservativeRasterParameterfNVFunPtr = unsafePerformIO (getProcAddress "glConservativeRasterParameterfNV")
-
-{-# NOINLINE glConservativeRasterParameterfNVFunPtr #-}
-
-pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV = 0x937B
-
-pattern GL_CONSERVATIVE_RASTER_DILATE_NV = 0x9379
-
-pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV = 0x937A
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ConservativeRasterPreSnapTriangles (
-  -- * Extension Support
-    gl_NV_conservative_raster_pre_snap_triangles
-
-  -- * GL_NV_conservative_raster_pre_snap_triangles
-  , glConservativeRasterParameteriNV
-  , pattern GL_CONSERVATIVE_RASTER_MODE_NV
-  , pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV
-  , pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster_pre_snap_triangles.txt GL_NV_conservative_raster_pre_snap_triangles> extension is available.
-
-gl_NV_conservative_raster_pre_snap_triangles :: Bool
-gl_NV_conservative_raster_pre_snap_triangles = member "GL_NV_conservative_raster_pre_snap_triangles" extensions
-{-# NOINLINE gl_NV_conservative_raster_pre_snap_triangles #-}
-
--- | Usage: @'glConservativeRasterParameteriNV' pname param@
-
-
-glConservativeRasterParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
-glConservativeRasterParameteriNV = ffienumintIOV glConservativeRasterParameteriNVFunPtr
-
-glConservativeRasterParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glConservativeRasterParameteriNVFunPtr = unsafePerformIO (getProcAddress "glConservativeRasterParameteriNV")
-
-{-# NOINLINE glConservativeRasterParameteriNVFunPtr #-}
-
-pattern GL_CONSERVATIVE_RASTER_MODE_NV = 0x954D
-
-pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV = 0x954E
-
-pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV = 0x954F
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/CopyBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/NV/CopyBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/CopyBuffer.hs
+++ /dev/null
@@ -1,48 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.CopyBuffer (
-  -- * Extension Support
-    gl_NV_copy_buffer
-
-  -- * GL_NV_copy_buffer
-  , glCopyBufferSubDataNV
-  , pattern GL_COPY_READ_BUFFER_NV
-  , pattern GL_COPY_WRITE_BUFFER_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_copy_buffer.txt GL_NV_copy_buffer> extension is available.
-
-gl_NV_copy_buffer :: Bool
-gl_NV_copy_buffer = member "GL_NV_copy_buffer" extensions
-{-# NOINLINE gl_NV_copy_buffer #-}
-
--- | Usage: @'glCopyBufferSubDataNV' readTarget writeTarget readOffset writeOffset size@
---
--- The parameter @readOffset@ is a @BufferOffset@.
---
--- The parameter @writeOffset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyBufferSubData'.
-
-
-glCopyBufferSubDataNV :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glCopyBufferSubDataNV = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataNVFunPtr
-
-glCopyBufferSubDataNVFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glCopyBufferSubDataNVFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubDataNV")
-
-{-# NOINLINE glCopyBufferSubDataNVFunPtr #-}
-
-pattern GL_COPY_READ_BUFFER_NV = 0x8F36
-
-pattern GL_COPY_WRITE_BUFFER_NV = 0x8F37
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/CopyDepthToColor.hs b/dist/build/autogen/Graphics/GL/Ext/NV/CopyDepthToColor.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/CopyDepthToColor.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.CopyDepthToColor (
-  -- * Extension Support
-    gl_NV_copy_depth_to_color
-
-  -- * GL_NV_copy_depth_to_color
-  , pattern GL_DEPTH_STENCIL_TO_BGRA_NV
-  , pattern GL_DEPTH_STENCIL_TO_RGBA_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_depth_to_color.txt GL_NV_copy_depth_to_color> extension is available.
-
-gl_NV_copy_depth_to_color :: Bool
-gl_NV_copy_depth_to_color = member "GL_NV_copy_depth_to_color" extensions
-{-# NOINLINE gl_NV_copy_depth_to_color #-}
-
-pattern GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F
-
-pattern GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/CopyImage.hs b/dist/build/autogen/Graphics/GL/Ext/NV/CopyImage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/CopyImage.hs
+++ /dev/null
@@ -1,34 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.CopyImage (
-  -- * Extension Support
-    gl_NV_copy_image
-
-  -- * GL_NV_copy_image
-  , glCopyImageSubDataNV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_image.txt GL_NV_copy_image> extension is available.
-
-gl_NV_copy_image :: Bool
-gl_NV_copy_image = member "GL_NV_copy_image" extensions
-{-# NOINLINE gl_NV_copy_image #-}
-
--- | Usage: @'glCopyImageSubDataNV' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ width height depth@
-
-
-glCopyImageSubDataNV :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glCopyImageSubDataNV = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataNVFunPtr
-
-glCopyImageSubDataNVFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glCopyImageSubDataNVFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubDataNV")
-
-{-# NOINLINE glCopyImageSubDataNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/CoverageSample.hs b/dist/build/autogen/Graphics/GL/Ext/NV/CoverageSample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/CoverageSample.hs
+++ /dev/null
@@ -1,73 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.CoverageSample (
-  -- * Extension Support
-    gl_NV_coverage_sample
-
-  -- * GL_NV_coverage_sample
-  , glCoverageMaskNV
-  , glCoverageOperationNV
-  , pattern GL_COVERAGE_ALL_FRAGMENTS_NV
-  , pattern GL_COVERAGE_ATTACHMENT_NV
-  , pattern GL_COVERAGE_AUTOMATIC_NV
-  , pattern GL_COVERAGE_BUFFERS_NV
-  , pattern GL_COVERAGE_BUFFER_BIT_NV
-  , pattern GL_COVERAGE_COMPONENT4_NV
-  , pattern GL_COVERAGE_COMPONENT_NV
-  , pattern GL_COVERAGE_EDGE_FRAGMENTS_NV
-  , pattern GL_COVERAGE_SAMPLES_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_coverage_sample.txt GL_NV_coverage_sample> extension is available.
-
-gl_NV_coverage_sample :: Bool
-gl_NV_coverage_sample = member "GL_NV_coverage_sample" extensions
-{-# NOINLINE gl_NV_coverage_sample #-}
-
--- | Usage: @'glCoverageMaskNV' mask@
-
-
-glCoverageMaskNV :: MonadIO m => GLboolean -> m ()
-glCoverageMaskNV = ffibooleanIOV glCoverageMaskNVFunPtr
-
-glCoverageMaskNVFunPtr :: FunPtr (GLboolean -> IO ())
-glCoverageMaskNVFunPtr = unsafePerformIO (getProcAddress "glCoverageMaskNV")
-
-{-# NOINLINE glCoverageMaskNVFunPtr #-}
-
--- | Usage: @'glCoverageOperationNV' operation@
-
-
-glCoverageOperationNV :: MonadIO m => GLenum -> m ()
-glCoverageOperationNV = ffienumIOV glCoverageOperationNVFunPtr
-
-glCoverageOperationNVFunPtr :: FunPtr (GLenum -> IO ())
-glCoverageOperationNVFunPtr = unsafePerformIO (getProcAddress "glCoverageOperationNV")
-
-{-# NOINLINE glCoverageOperationNVFunPtr #-}
-
-pattern GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5
-
-pattern GL_COVERAGE_ATTACHMENT_NV = 0x8ED2
-
-pattern GL_COVERAGE_AUTOMATIC_NV = 0x8ED7
-
-pattern GL_COVERAGE_BUFFERS_NV = 0x8ED3
-
-pattern GL_COVERAGE_BUFFER_BIT_NV = 0x00008000
-
-pattern GL_COVERAGE_COMPONENT4_NV = 0x8ED1
-
-pattern GL_COVERAGE_COMPONENT_NV = 0x8ED0
-
-pattern GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6
-
-pattern GL_COVERAGE_SAMPLES_NV = 0x8ED4
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/DeepTexture3D.hs b/dist/build/autogen/Graphics/GL/Ext/NV/DeepTexture3D.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/DeepTexture3D.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.DeepTexture3D (
-  -- * Extension Support
-    gl_NV_deep_texture3D
-
-  -- * GL_NV_deep_texture3D
-  , pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV
-  , pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/deep_texture3D.txt GL_NV_deep_texture3D> extension is available.
-
-gl_NV_deep_texture3D :: Bool
-gl_NV_deep_texture3D = member "GL_NV_deep_texture3D" extensions
-{-# NOINLINE gl_NV_deep_texture3D #-}
-
-pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1
-
-pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/DepthBufferFloat.hs b/dist/build/autogen/Graphics/GL/Ext/NV/DepthBufferFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/DepthBufferFloat.hs
+++ /dev/null
@@ -1,70 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.DepthBufferFloat (
-  -- * Extension Support
-    gl_NV_depth_buffer_float
-
-  -- * GL_NV_depth_buffer_float
-  , glClearDepthdNV
-  , glDepthBoundsdNV
-  , glDepthRangedNV
-  , pattern GL_DEPTH32F_STENCIL8_NV
-  , pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV
-  , pattern GL_DEPTH_COMPONENT32F_NV
-  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_buffer_float.txt GL_NV_depth_buffer_float> extension is available.
-
-gl_NV_depth_buffer_float :: Bool
-gl_NV_depth_buffer_float = member "GL_NV_depth_buffer_float" extensions
-{-# NOINLINE gl_NV_depth_buffer_float #-}
-
--- | Usage: @'glClearDepthdNV' depth@
-
-
-glClearDepthdNV :: MonadIO m => GLdouble -> m ()
-glClearDepthdNV = ffidoubleIOV glClearDepthdNVFunPtr
-
-glClearDepthdNVFunPtr :: FunPtr (GLdouble -> IO ())
-glClearDepthdNVFunPtr = unsafePerformIO (getProcAddress "glClearDepthdNV")
-
-{-# NOINLINE glClearDepthdNVFunPtr #-}
-
--- | Usage: @'glDepthBoundsdNV' zmin zmax@
-
-
-glDepthBoundsdNV :: MonadIO m => GLdouble -> GLdouble -> m ()
-glDepthBoundsdNV = ffidoubledoubleIOV glDepthBoundsdNVFunPtr
-
-glDepthBoundsdNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glDepthBoundsdNVFunPtr = unsafePerformIO (getProcAddress "glDepthBoundsdNV")
-
-{-# NOINLINE glDepthBoundsdNVFunPtr #-}
-
--- | Usage: @'glDepthRangedNV' zNear zFar@
-
-
-glDepthRangedNV :: MonadIO m => GLdouble -> GLdouble -> m ()
-glDepthRangedNV = ffidoubledoubleIOV glDepthRangedNVFunPtr
-
-glDepthRangedNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glDepthRangedNVFunPtr = unsafePerformIO (getProcAddress "glDepthRangedNV")
-
-{-# NOINLINE glDepthRangedNVFunPtr #-}
-
-pattern GL_DEPTH32F_STENCIL8_NV = 0x8DAC
-
-pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF
-
-pattern GL_DEPTH_COMPONENT32F_NV = 0x8DAB
-
-pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/DepthClamp.hs b/dist/build/autogen/Graphics/GL/Ext/NV/DepthClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/DepthClamp.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.DepthClamp (
-  -- * Extension Support
-    gl_NV_depth_clamp
-
-  -- * GL_NV_depth_clamp
-  , pattern GL_DEPTH_CLAMP_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_clamp.txt GL_NV_depth_clamp> extension is available.
-
-gl_NV_depth_clamp :: Bool
-gl_NV_depth_clamp = member "GL_NV_depth_clamp" extensions
-{-# NOINLINE gl_NV_depth_clamp #-}
-
-pattern GL_DEPTH_CLAMP_NV = 0x864F
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/DepthNonlinear.hs b/dist/build/autogen/Graphics/GL/Ext/NV/DepthNonlinear.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/DepthNonlinear.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.DepthNonlinear (
-  -- * Extension Support
-    gl_NV_depth_nonlinear
-
-  -- * GL_NV_depth_nonlinear
-  , pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_depth_nonlinear.txt GL_NV_depth_nonlinear> extension is available.
-
-gl_NV_depth_nonlinear :: Bool
-gl_NV_depth_nonlinear = member "GL_NV_depth_nonlinear" extensions
-{-# NOINLINE gl_NV_depth_nonlinear #-}
-
-pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/DrawBuffers.hs b/dist/build/autogen/Graphics/GL/Ext/NV/DrawBuffers.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/DrawBuffers.hs
+++ /dev/null
@@ -1,104 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.DrawBuffers (
-  -- * Extension Support
-    gl_NV_draw_buffers
-
-  -- * GL_NV_draw_buffers
-  , glDrawBuffersNV
-  , pattern GL_COLOR_ATTACHMENT0_NV
-  , pattern GL_COLOR_ATTACHMENT10_NV
-  , pattern GL_COLOR_ATTACHMENT11_NV
-  , pattern GL_COLOR_ATTACHMENT12_NV
-  , pattern GL_COLOR_ATTACHMENT13_NV
-  , pattern GL_COLOR_ATTACHMENT14_NV
-  , pattern GL_COLOR_ATTACHMENT15_NV
-  , pattern GL_COLOR_ATTACHMENT1_NV
-  , pattern GL_COLOR_ATTACHMENT2_NV
-  , pattern GL_COLOR_ATTACHMENT3_NV
-  , pattern GL_COLOR_ATTACHMENT4_NV
-  , pattern GL_COLOR_ATTACHMENT5_NV
-  , pattern GL_COLOR_ATTACHMENT6_NV
-  , pattern GL_COLOR_ATTACHMENT7_NV
-  , pattern GL_COLOR_ATTACHMENT8_NV
-  , pattern GL_COLOR_ATTACHMENT9_NV
-  , pattern GL_DRAW_BUFFER0_NV
-  , pattern GL_DRAW_BUFFER10_NV
-  , pattern GL_DRAW_BUFFER11_NV
-  , pattern GL_DRAW_BUFFER12_NV
-  , pattern GL_DRAW_BUFFER13_NV
-  , pattern GL_DRAW_BUFFER14_NV
-  , pattern GL_DRAW_BUFFER15_NV
-  , pattern GL_DRAW_BUFFER1_NV
-  , pattern GL_DRAW_BUFFER2_NV
-  , pattern GL_DRAW_BUFFER3_NV
-  , pattern GL_DRAW_BUFFER4_NV
-  , pattern GL_DRAW_BUFFER5_NV
-  , pattern GL_DRAW_BUFFER6_NV
-  , pattern GL_DRAW_BUFFER7_NV
-  , pattern GL_DRAW_BUFFER8_NV
-  , pattern GL_DRAW_BUFFER9_NV
-  , pattern GL_MAX_DRAW_BUFFERS_NV
-) 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://www.khronos.org/registry/gles/extensions/NV/NV_draw_buffers.txt GL_NV_draw_buffers> extension is available.
-
-gl_NV_draw_buffers :: Bool
-gl_NV_draw_buffers = member "GL_NV_draw_buffers" extensions
-{-# NOINLINE gl_NV_draw_buffers #-}
-
--- | Usage: @'glDrawBuffersNV' n bufs@
---
--- The length of @bufs@ should be @n@.
-
-
-glDrawBuffersNV :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
-glDrawBuffersNV = ffisizeiPtrenumIOV glDrawBuffersNVFunPtr
-
-glDrawBuffersNVFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
-glDrawBuffersNVFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersNV")
-
-{-# NOINLINE glDrawBuffersNVFunPtr #-}
-
-pattern GL_DRAW_BUFFER0_NV = 0x8825
-
-pattern GL_DRAW_BUFFER10_NV = 0x882F
-
-pattern GL_DRAW_BUFFER11_NV = 0x8830
-
-pattern GL_DRAW_BUFFER12_NV = 0x8831
-
-pattern GL_DRAW_BUFFER13_NV = 0x8832
-
-pattern GL_DRAW_BUFFER14_NV = 0x8833
-
-pattern GL_DRAW_BUFFER15_NV = 0x8834
-
-pattern GL_DRAW_BUFFER1_NV = 0x8826
-
-pattern GL_DRAW_BUFFER2_NV = 0x8827
-
-pattern GL_DRAW_BUFFER3_NV = 0x8828
-
-pattern GL_DRAW_BUFFER4_NV = 0x8829
-
-pattern GL_DRAW_BUFFER5_NV = 0x882A
-
-pattern GL_DRAW_BUFFER6_NV = 0x882B
-
-pattern GL_DRAW_BUFFER7_NV = 0x882C
-
-pattern GL_DRAW_BUFFER8_NV = 0x882D
-
-pattern GL_DRAW_BUFFER9_NV = 0x882E
-
-pattern GL_MAX_DRAW_BUFFERS_NV = 0x8824
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/DrawInstanced.hs b/dist/build/autogen/Graphics/GL/Ext/NV/DrawInstanced.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/DrawInstanced.hs
+++ /dev/null
@@ -1,56 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.DrawInstanced (
-  -- * Extension Support
-    gl_NV_draw_instanced
-
-  -- * GL_NV_draw_instanced
-  , glDrawArraysInstancedNV
-  , glDrawElementsInstancedNV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_draw_instanced.txt GL_NV_draw_instanced> extension is available.
-
-gl_NV_draw_instanced :: Bool
-gl_NV_draw_instanced = member "GL_NV_draw_instanced" extensions
-{-# NOINLINE gl_NV_draw_instanced #-}
-
--- | Usage: @'glDrawArraysInstancedNV' mode first count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
-
-
-glDrawArraysInstancedNV :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstancedNV = ffienumintsizeisizeiIOV glDrawArraysInstancedNVFunPtr
-
-glDrawArraysInstancedNVFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedNVFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedNV")
-
-{-# NOINLINE glDrawArraysInstancedNVFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedNV' mode count type indices primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
-
-
-glDrawElementsInstancedNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstancedNV = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedNVFunPtr
-
-glDrawElementsInstancedNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedNVFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedNV")
-
-{-# NOINLINE glDrawElementsInstancedNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/DrawTexture.hs b/dist/build/autogen/Graphics/GL/Ext/NV/DrawTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/DrawTexture.hs
+++ /dev/null
@@ -1,34 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.DrawTexture (
-  -- * Extension Support
-    gl_NV_draw_texture
-
-  -- * GL_NV_draw_texture
-  , glDrawTextureNV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_draw_texture.txt GL_NV_draw_texture> extension is available.
-
-gl_NV_draw_texture :: Bool
-gl_NV_draw_texture = member "GL_NV_draw_texture" extensions
-{-# NOINLINE gl_NV_draw_texture #-}
-
--- | Usage: @'glDrawTextureNV' texture sampler x0 y0 x1 y1 z s0 t0 s1 t1@
-
-
-glDrawTextureNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glDrawTextureNV = ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glDrawTextureNVFunPtr
-
-glDrawTextureNVFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glDrawTextureNVFunPtr = unsafePerformIO (getProcAddress "glDrawTextureNV")
-
-{-# NOINLINE glDrawTextureNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/Evaluators.hs b/dist/build/autogen/Graphics/GL/Ext/NV/Evaluators.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/Evaluators.hs
+++ /dev/null
@@ -1,266 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.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.Internal.FFI
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/evaluators.txt GL_NV_evaluators> extension is available.
-
-gl_NV_evaluators :: Bool
-gl_NV_evaluators = member "GL_NV_evaluators" extensions
-{-# NOINLINE gl_NV_evaluators #-}
-
--- | Usage: @'glEvalMapsNV' target mode@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @mode@ is a @EvalMapsModeNV@.
-
-
-glEvalMapsNV :: MonadIO m => GLenum -> GLenum -> m ()
-glEvalMapsNV = ffienumenumIOV glEvalMapsNVFunPtr
-
-glEvalMapsNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glEvalMapsNVFunPtr = unsafePerformIO (getProcAddress "glEvalMapsNV")
-
-{-# NOINLINE glEvalMapsNVFunPtr #-}
-
--- | Usage: @'glGetMapAttribParameterfvNV' target index pname params@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @pname@ is a @MapAttribParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-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 #-}
-
--- | Usage: @'glGetMapAttribParameterivNV' target index pname params@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @pname@ is a @MapAttribParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-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 #-}
-
--- | Usage: @'glGetMapControlPointsNV' target index type ustride vstride packed points@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @type@ is a @MapTypeNV@.
---
--- The parameter @packed@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @points@ should be @COMPSIZE(target)@.
-
-
-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 #-}
-
--- | Usage: @'glGetMapParameterfvNV' target pname params@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @pname@ is a @MapParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(target,pname)@.
-
-
-glGetMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMapParameterfvNV = ffienumenumPtrfloatIOV glGetMapParameterfvNVFunPtr
-
-glGetMapParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMapParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetMapParameterfvNV")
-
-{-# NOINLINE glGetMapParameterfvNVFunPtr #-}
-
--- | Usage: @'glGetMapParameterivNV' target pname params@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @pname@ is a @MapParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(target,pname)@.
-
-
-glGetMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMapParameterivNV = ffienumenumPtrintIOV glGetMapParameterivNVFunPtr
-
-glGetMapParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMapParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetMapParameterivNV")
-
-{-# NOINLINE glGetMapParameterivNVFunPtr #-}
-
--- | Usage: @'glMapControlPointsNV' target index type ustride vstride uorder vorder packed points@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @type@ is a @MapTypeNV@.
---
--- The parameter @uorder@ is a @CheckedInt32@.
---
--- The parameter @vorder@ is a @CheckedInt32@.
---
--- The parameter @packed@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @points@ should be @COMPSIZE(target,uorder,vorder)@.
-
-
-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 #-}
-
--- | Usage: @'glMapParameterfvNV' target pname params@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @pname@ is a @MapParameterNV@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(target,pname)@.
-
-
-glMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMapParameterfvNV = ffienumenumPtrfloatIOV glMapParameterfvNVFunPtr
-
-glMapParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMapParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glMapParameterfvNV")
-
-{-# NOINLINE glMapParameterfvNVFunPtr #-}
-
--- | Usage: @'glMapParameterivNV' target pname params@
---
--- The parameter @target@ is a @EvalTargetNV@.
---
--- The parameter @pname@ is a @MapParameterNV@.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(target,pname)@.
-
-
-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
-
-pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5
-
-pattern GL_EVAL_TRIANGULAR_2D_NV = 0x86C1
-
-pattern GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6
-
-pattern GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0
-
-pattern GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1
-
-pattern GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2
-
-pattern GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3
-
-pattern GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4
-
-pattern GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5
-
-pattern GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7
-
-pattern GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8
-
-pattern GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9
-
-pattern GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA
-
-pattern GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB
-
-pattern GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC
-
-pattern GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD
-
-pattern GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE
-
-pattern GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF
-
-pattern GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3
-
-pattern GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4
-
-pattern GL_MAP_TESSELLATION_NV = 0x86C2
-
-pattern GL_MAX_MAP_TESSELLATION_NV = 0x86D6
-
-pattern GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ExplicitAttribLocation.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ExplicitAttribLocation.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ExplicitAttribLocation.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ExplicitAttribLocation (
-  -- * Extension Support
-    gl_NV_explicit_attrib_location
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_explicit_attrib_location.txt GL_NV_explicit_attrib_location> extension is available.
-
-gl_NV_explicit_attrib_location :: Bool
-gl_NV_explicit_attrib_location = member "GL_NV_explicit_attrib_location" extensions
-{-# NOINLINE gl_NV_explicit_attrib_location #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ExplicitMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ExplicitMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ExplicitMultisample.hs
+++ /dev/null
@@ -1,98 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ExplicitMultisample (
-  -- * Extension Support
-    gl_NV_explicit_multisample
-
-  -- * GL_NV_explicit_multisample
-  , glGetMultisamplefvNV
-  , glSampleMaskIndexedNV
-  , glTexRenderbufferNV
-  , pattern GL_INT_SAMPLER_RENDERBUFFER_NV
-  , pattern GL_MAX_SAMPLE_MASK_WORDS_NV
-  , pattern GL_SAMPLER_RENDERBUFFER_NV
-  , pattern GL_SAMPLE_MASK_NV
-  , pattern GL_SAMPLE_MASK_VALUE_NV
-  , pattern GL_SAMPLE_POSITION_NV
-  , pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV
-  , pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV
-  , pattern GL_TEXTURE_RENDERBUFFER_NV
-  , pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/explicit_multisample.txt GL_NV_explicit_multisample> extension is available.
-
-gl_NV_explicit_multisample :: Bool
-gl_NV_explicit_multisample = member "GL_NV_explicit_multisample" extensions
-{-# NOINLINE gl_NV_explicit_multisample #-}
-
--- | Usage: @'glGetMultisamplefvNV' pname index val@
---
--- The parameter @pname@ is a @GetMultisamplePNameNV@.
---
--- The length of @val@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetMultisamplefv'.
-
-
-glGetMultisamplefvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetMultisamplefvNV = ffienumuintPtrfloatIOV glGetMultisamplefvNVFunPtr
-
-glGetMultisamplefvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetMultisamplefvNVFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefvNV")
-
-{-# NOINLINE glGetMultisamplefvNVFunPtr #-}
-
--- | Usage: @'glSampleMaskIndexedNV' index mask@
---
--- The parameter @mask@ is a @SampleMaskNV@.
-
-
-glSampleMaskIndexedNV :: MonadIO m => GLuint -> GLbitfield -> m ()
-glSampleMaskIndexedNV = ffiuintbitfieldIOV glSampleMaskIndexedNVFunPtr
-
-glSampleMaskIndexedNVFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
-glSampleMaskIndexedNVFunPtr = unsafePerformIO (getProcAddress "glSampleMaskIndexedNV")
-
-{-# NOINLINE glSampleMaskIndexedNVFunPtr #-}
-
--- | Usage: @'glTexRenderbufferNV' target renderbuffer@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
-
-
-glTexRenderbufferNV :: MonadIO m => GLenum -> GLuint -> m ()
-glTexRenderbufferNV = ffienumuintIOV glTexRenderbufferNVFunPtr
-
-glTexRenderbufferNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexRenderbufferNVFunPtr = unsafePerformIO (getProcAddress "glTexRenderbufferNV")
-
-{-# NOINLINE glTexRenderbufferNVFunPtr #-}
-
-pattern GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57
-
-pattern GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59
-
-pattern GL_SAMPLER_RENDERBUFFER_NV = 0x8E56
-
-pattern GL_SAMPLE_MASK_NV = 0x8E51
-
-pattern GL_SAMPLE_MASK_VALUE_NV = 0x8E52
-
-pattern GL_SAMPLE_POSITION_NV = 0x8E50
-
-pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53
-
-pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54
-
-pattern GL_TEXTURE_RENDERBUFFER_NV = 0x8E55
-
-pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FboColorAttachments.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FboColorAttachments.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FboColorAttachments.hs
+++ /dev/null
@@ -1,37 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FboColorAttachments (
-  -- * Extension Support
-    gl_NV_fbo_color_attachments
-
-  -- * GL_NV_fbo_color_attachments
-  , pattern GL_COLOR_ATTACHMENT0_NV
-  , pattern GL_COLOR_ATTACHMENT10_NV
-  , pattern GL_COLOR_ATTACHMENT11_NV
-  , pattern GL_COLOR_ATTACHMENT12_NV
-  , pattern GL_COLOR_ATTACHMENT13_NV
-  , pattern GL_COLOR_ATTACHMENT14_NV
-  , pattern GL_COLOR_ATTACHMENT15_NV
-  , pattern GL_COLOR_ATTACHMENT1_NV
-  , pattern GL_COLOR_ATTACHMENT2_NV
-  , pattern GL_COLOR_ATTACHMENT3_NV
-  , pattern GL_COLOR_ATTACHMENT4_NV
-  , pattern GL_COLOR_ATTACHMENT5_NV
-  , pattern GL_COLOR_ATTACHMENT6_NV
-  , pattern GL_COLOR_ATTACHMENT7_NV
-  , pattern GL_COLOR_ATTACHMENT8_NV
-  , pattern GL_COLOR_ATTACHMENT9_NV
-  , pattern GL_MAX_COLOR_ATTACHMENTS_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_fbo_color_attachments.txt GL_NV_fbo_color_attachments> extension is available.
-
-gl_NV_fbo_color_attachments :: Bool
-gl_NV_fbo_color_attachments = member "GL_NV_fbo_color_attachments" extensions
-{-# NOINLINE gl_NV_fbo_color_attachments #-}
-
-pattern GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/Fence.hs b/dist/build/autogen/Graphics/GL/Ext/NV/Fence.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/Fence.hs
+++ /dev/null
@@ -1,139 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.Fence (
-  -- * Extension Support
-    gl_NV_fence
-
-  -- * GL_NV_fence
-  , glDeleteFencesNV
-  , glFinishFenceNV
-  , glGenFencesNV
-  , glGetFenceivNV
-  , glIsFenceNV
-  , glSetFenceNV
-  , glTestFenceNV
-  , pattern GL_ALL_COMPLETED_NV
-  , pattern GL_FENCE_CONDITION_NV
-  , pattern GL_FENCE_STATUS_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_fence.txt GL_NV_fence> extension is available.
-
-gl_NV_fence :: Bool
-gl_NV_fence = member "GL_NV_fence" extensions
-{-# NOINLINE gl_NV_fence #-}
-
--- | Usage: @'glDeleteFencesNV' n fences@
---
--- The parameter @fences@ is a @FenceNV@.
---
--- The length of @fences@ should be @n@.
-
-
-glDeleteFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteFencesNV = ffisizeiPtruintIOV glDeleteFencesNVFunPtr
-
-glDeleteFencesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteFencesNVFunPtr = unsafePerformIO (getProcAddress "glDeleteFencesNV")
-
-{-# NOINLINE glDeleteFencesNVFunPtr #-}
-
--- | Usage: @'glFinishFenceNV' fence@
---
--- The parameter @fence@ is a @FenceNV@.
-
-
-glFinishFenceNV :: MonadIO m => GLuint -> m ()
-glFinishFenceNV = ffiuintIOV glFinishFenceNVFunPtr
-
-glFinishFenceNVFunPtr :: FunPtr (GLuint -> IO ())
-glFinishFenceNVFunPtr = unsafePerformIO (getProcAddress "glFinishFenceNV")
-
-{-# NOINLINE glFinishFenceNVFunPtr #-}
-
--- | Usage: @'glGenFencesNV' n fences@
---
--- The parameter @fences@ is a @FenceNV@.
---
--- The length of @fences@ should be @n@.
-
-
-glGenFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenFencesNV = ffisizeiPtruintIOV glGenFencesNVFunPtr
-
-glGenFencesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenFencesNVFunPtr = unsafePerformIO (getProcAddress "glGenFencesNV")
-
-{-# NOINLINE glGenFencesNVFunPtr #-}
-
--- | Usage: @'glGetFenceivNV' fence pname params@
---
--- The parameter @fence@ is a @FenceNV@.
---
--- The parameter @pname@ is a @FenceParameterNameNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFenceivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetFenceivNV = ffiuintenumPtrintIOV glGetFenceivNVFunPtr
-
-glGetFenceivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetFenceivNVFunPtr = unsafePerformIO (getProcAddress "glGetFenceivNV")
-
-{-# NOINLINE glGetFenceivNVFunPtr #-}
-
--- | Usage: @'glIsFenceNV' fence@
---
--- The parameter @fence@ is a @FenceNV@.
-
-
-glIsFenceNV :: MonadIO m => GLuint -> m GLboolean
-glIsFenceNV = ffiuintIOboolean glIsFenceNVFunPtr
-
-glIsFenceNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsFenceNVFunPtr = unsafePerformIO (getProcAddress "glIsFenceNV")
-
-{-# NOINLINE glIsFenceNVFunPtr #-}
-
--- | Usage: @'glSetFenceNV' fence condition@
---
--- The parameter @fence@ is a @FenceNV@.
---
--- The parameter @condition@ is a @FenceConditionNV@.
-
-
-glSetFenceNV :: MonadIO m => GLuint -> GLenum -> m ()
-glSetFenceNV = ffiuintenumIOV glSetFenceNVFunPtr
-
-glSetFenceNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glSetFenceNVFunPtr = unsafePerformIO (getProcAddress "glSetFenceNV")
-
-{-# NOINLINE glSetFenceNVFunPtr #-}
-
--- | Usage: @'glTestFenceNV' fence@
---
--- The parameter @fence@ is a @FenceNV@.
-
-
-glTestFenceNV :: MonadIO m => GLuint -> m GLboolean
-glTestFenceNV = ffiuintIOboolean glTestFenceNVFunPtr
-
-glTestFenceNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glTestFenceNVFunPtr = unsafePerformIO (getProcAddress "glTestFenceNV")
-
-{-# NOINLINE glTestFenceNVFunPtr #-}
-
-pattern GL_ALL_COMPLETED_NV = 0x84F2
-
-pattern GL_FENCE_CONDITION_NV = 0x84F4
-
-pattern GL_FENCE_STATUS_NV = 0x84F3
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FillRectangle.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FillRectangle.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FillRectangle.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FillRectangle (
-  -- * Extension Support
-    gl_NV_fill_rectangle
-
-  -- * GL_NV_fill_rectangle
-  , pattern GL_FILL_RECTANGLE_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fill_rectangle.txt GL_NV_fill_rectangle> extension is available.
-
-gl_NV_fill_rectangle :: Bool
-gl_NV_fill_rectangle = member "GL_NV_fill_rectangle" extensions
-{-# NOINLINE gl_NV_fill_rectangle #-}
-
-pattern GL_FILL_RECTANGLE_NV = 0x933C
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FloatBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FloatBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FloatBuffer.hs
+++ /dev/null
@@ -1,62 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FloatBuffer (
-  -- * Extension Support
-    gl_NV_float_buffer
-
-  -- * GL_NV_float_buffer
-  , pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV
-  , pattern GL_FLOAT_R16_NV
-  , pattern GL_FLOAT_R32_NV
-  , pattern GL_FLOAT_RG16_NV
-  , pattern GL_FLOAT_RG32_NV
-  , pattern GL_FLOAT_RGB16_NV
-  , pattern GL_FLOAT_RGB32_NV
-  , pattern GL_FLOAT_RGBA16_NV
-  , pattern GL_FLOAT_RGBA32_NV
-  , pattern GL_FLOAT_RGBA_MODE_NV
-  , pattern GL_FLOAT_RGBA_NV
-  , pattern GL_FLOAT_RGB_NV
-  , pattern GL_FLOAT_RG_NV
-  , pattern GL_FLOAT_R_NV
-  , pattern GL_TEXTURE_FLOAT_COMPONENTS_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/float_buffer.txt GL_NV_float_buffer> extension is available.
-
-gl_NV_float_buffer :: Bool
-gl_NV_float_buffer = member "GL_NV_float_buffer" extensions
-{-# NOINLINE gl_NV_float_buffer #-}
-
-pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D
-
-pattern GL_FLOAT_R16_NV = 0x8884
-
-pattern GL_FLOAT_R32_NV = 0x8885
-
-pattern GL_FLOAT_RG16_NV = 0x8886
-
-pattern GL_FLOAT_RG32_NV = 0x8887
-
-pattern GL_FLOAT_RGB16_NV = 0x8888
-
-pattern GL_FLOAT_RGB32_NV = 0x8889
-
-pattern GL_FLOAT_RGBA16_NV = 0x888A
-
-pattern GL_FLOAT_RGBA32_NV = 0x888B
-
-pattern GL_FLOAT_RGBA_MODE_NV = 0x888E
-
-pattern GL_FLOAT_RGBA_NV = 0x8883
-
-pattern GL_FLOAT_RGB_NV = 0x8882
-
-pattern GL_FLOAT_RG_NV = 0x8881
-
-pattern GL_FLOAT_R_NV = 0x8880
-
-pattern GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FogDistance.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FogDistance.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FogDistance.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FogDistance (
-  -- * Extension Support
-    gl_NV_fog_distance
-
-  -- * GL_NV_fog_distance
-  , pattern GL_EYE_PLANE
-  , pattern GL_EYE_PLANE_ABSOLUTE_NV
-  , pattern GL_EYE_RADIAL_NV
-  , pattern GL_FOG_DISTANCE_MODE_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fog_distance.txt GL_NV_fog_distance> extension is available.
-
-gl_NV_fog_distance :: Bool
-gl_NV_fog_distance = member "GL_NV_fog_distance" extensions
-{-# NOINLINE gl_NV_fog_distance #-}
-
-pattern GL_EYE_PLANE_ABSOLUTE_NV = 0x855C
-
-pattern GL_EYE_RADIAL_NV = 0x855B
-
-pattern GL_FOG_DISTANCE_MODE_NV = 0x855A
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FragmentCoverageToColor (
-  -- * Extension Support
-    gl_NV_fragment_coverage_to_color
-
-  -- * GL_NV_fragment_coverage_to_color
-  , glFragmentCoverageColorNV
-  , pattern GL_FRAGMENT_COVERAGE_COLOR_NV
-  , pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_coverage_to_color.txt GL_NV_fragment_coverage_to_color> extension is available.
-
-gl_NV_fragment_coverage_to_color :: Bool
-gl_NV_fragment_coverage_to_color = member "GL_NV_fragment_coverage_to_color" extensions
-{-# NOINLINE gl_NV_fragment_coverage_to_color #-}
-
--- | Usage: @'glFragmentCoverageColorNV' color@
-
-
-glFragmentCoverageColorNV :: MonadIO m => GLuint -> m ()
-glFragmentCoverageColorNV = ffiuintIOV glFragmentCoverageColorNVFunPtr
-
-glFragmentCoverageColorNVFunPtr :: FunPtr (GLuint -> IO ())
-glFragmentCoverageColorNVFunPtr = unsafePerformIO (getProcAddress "glFragmentCoverageColorNV")
-
-{-# NOINLINE glFragmentCoverageColorNVFunPtr #-}
-
-pattern GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE
-
-pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram.hs
+++ /dev/null
@@ -1,136 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.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.Internal.FFI
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program.txt GL_NV_fragment_program> extension is available.
-
-gl_NV_fragment_program :: Bool
-gl_NV_fragment_program = member "GL_NV_fragment_program" extensions
-{-# NOINLINE gl_NV_fragment_program #-}
-
--- | Usage: @'glGetProgramNamedParameterdvNV' id len name params@
---
--- The length of @name@ should be @1@.
---
--- The length of @params@ should be @4@.
-
-
-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 #-}
-
--- | Usage: @'glGetProgramNamedParameterfvNV' id len name params@
---
--- The length of @name@ should be @1@.
---
--- The length of @params@ should be @4@.
-
-
-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 #-}
-
--- | Usage: @'glProgramNamedParameter4dNV' id len name x y z w@
---
--- The length of @name@ should be @1@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.FragmentProgram.glProgramNamedParameter4dvNV'.
-
-
-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 #-}
-
--- | Usage: @'glProgramNamedParameter4dvNV' id len name v@
---
--- The length of @name@ should be @1@.
---
--- The length of @v@ should be @4@.
-
-
-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 #-}
-
--- | Usage: @'glProgramNamedParameter4fNV' id len name x y z w@
---
--- The length of @name@ should be @1@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.FragmentProgram.glProgramNamedParameter4fvNV'.
-
-
-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 #-}
-
--- | Usage: @'glProgramNamedParameter4fvNV' id len name v@
---
--- The length of @name@ should be @1@.
---
--- The length of @v@ should be @4@.
-
-
-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
-
-pattern GL_FRAGMENT_PROGRAM_NV = 0x8870
-
-pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868
-
-pattern GL_MAX_TEXTURE_COORDS_NV = 0x8871
-
-pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872
-
-pattern GL_PROGRAM_ERROR_STRING_NV = 0x8874
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram2.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FragmentProgram2 (
-  -- * Extension Support
-    gl_NV_fragment_program2
-
-  -- * GL_NV_fragment_program2
-  , pattern GL_MAX_PROGRAM_CALL_DEPTH_NV
-  , pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
-  , pattern GL_MAX_PROGRAM_IF_DEPTH_NV
-  , pattern GL_MAX_PROGRAM_LOOP_COUNT_NV
-  , pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program2.txt GL_NV_fragment_program2> extension is available.
-
-gl_NV_fragment_program2 :: Bool
-gl_NV_fragment_program2 = member "GL_NV_fragment_program2" extensions
-{-# NOINLINE gl_NV_fragment_program2 #-}
-
-pattern GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6
-
-pattern GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8
-
-pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram4.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgram4.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FragmentProgram4 (
-  -- * Extension Support
-    gl_NV_fragment_program4
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program4.txt GL_NV_fragment_program4> extension is available.
-
-gl_NV_fragment_program4 :: Bool
-gl_NV_fragment_program4 = member "GL_NV_fragment_program4" extensions
-{-# NOINLINE gl_NV_fragment_program4 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgramOption.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgramOption.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentProgramOption.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FragmentProgramOption (
-  -- * Extension Support
-    gl_NV_fragment_program_option
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program_option.txt GL_NV_fragment_program_option> extension is available.
-
-gl_NV_fragment_program_option :: Bool
-gl_NV_fragment_program_option = member "GL_NV_fragment_program_option" extensions
-{-# NOINLINE gl_NV_fragment_program_option #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentShaderInterlock.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FragmentShaderInterlock.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FragmentShaderInterlock.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FragmentShaderInterlock (
-  -- * Extension Support
-    gl_NV_fragment_shader_interlock
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_shader_interlock.txt GL_NV_fragment_shader_interlock> extension is available.
-
-gl_NV_fragment_shader_interlock :: Bool
-gl_NV_fragment_shader_interlock = member "GL_NV_fragment_shader_interlock" extensions
-{-# NOINLINE gl_NV_fragment_shader_interlock #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferBlit.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferBlit.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferBlit.hs
+++ /dev/null
@@ -1,48 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FramebufferBlit (
-  -- * Extension Support
-    gl_NV_framebuffer_blit
-
-  -- * GL_NV_framebuffer_blit
-  , glBlitFramebufferNV
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING_NV
-  , pattern GL_DRAW_FRAMEBUFFER_NV
-  , pattern GL_READ_FRAMEBUFFER_BINDING_NV
-  , pattern GL_READ_FRAMEBUFFER_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_blit.txt GL_NV_framebuffer_blit> extension is available.
-
-gl_NV_framebuffer_blit :: Bool
-gl_NV_framebuffer_blit = member "GL_NV_framebuffer_blit" extensions
-{-# NOINLINE gl_NV_framebuffer_blit #-}
-
--- | Usage: @'glBlitFramebufferNV' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlitFramebuffer'.
-
-
-glBlitFramebufferNV :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitFramebufferNV = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferNVFunPtr
-
-glBlitFramebufferNVFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitFramebufferNVFunPtr = unsafePerformIO (getProcAddress "glBlitFramebufferNV")
-
-{-# NOINLINE glBlitFramebufferNVFunPtr #-}
-
-pattern GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6
-
-pattern GL_DRAW_FRAMEBUFFER_NV = 0x8CA9
-
-pattern GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA
-
-pattern GL_READ_FRAMEBUFFER_NV = 0x8CA8
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs
+++ /dev/null
@@ -1,88 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FramebufferMixedSamples (
-  -- * Extension Support
-    gl_NV_framebuffer_mixed_samples
-
-  -- * GL_NV_framebuffer_mixed_samples
-  , glCoverageModulationNV
-  , glCoverageModulationTableNV
-  , glGetCoverageModulationTableNV
-  , glRasterSamplesEXT
-  , pattern GL_COLOR_SAMPLES_NV
-  , pattern GL_COVERAGE_MODULATION_NV
-  , pattern GL_COVERAGE_MODULATION_TABLE_NV
-  , pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV
-  , pattern GL_DEPTH_SAMPLES_NV
-  , pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT
-  , pattern GL_MAX_RASTER_SAMPLES_EXT
-  , pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV
-  , pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV
-  , pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
-  , pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
-  , pattern GL_RASTER_MULTISAMPLE_EXT
-  , pattern GL_RASTER_SAMPLES_EXT
-  , pattern GL_STENCIL_SAMPLES_NV
-) 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/NV/framebuffer_mixed_samples.txt GL_NV_framebuffer_mixed_samples> extension is available.
-
-gl_NV_framebuffer_mixed_samples :: Bool
-gl_NV_framebuffer_mixed_samples = member "GL_NV_framebuffer_mixed_samples" extensions
-{-# NOINLINE gl_NV_framebuffer_mixed_samples #-}
-
--- | Usage: @'glCoverageModulationNV' components@
-
-
-glCoverageModulationNV :: MonadIO m => GLenum -> m ()
-glCoverageModulationNV = ffienumIOV glCoverageModulationNVFunPtr
-
-glCoverageModulationNVFunPtr :: FunPtr (GLenum -> IO ())
-glCoverageModulationNVFunPtr = unsafePerformIO (getProcAddress "glCoverageModulationNV")
-
-{-# NOINLINE glCoverageModulationNVFunPtr #-}
-
--- | Usage: @'glCoverageModulationTableNV' n v@
-
-
-glCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
-glCoverageModulationTableNV = ffisizeiPtrfloatIOV glCoverageModulationTableNVFunPtr
-
-glCoverageModulationTableNVFunPtr :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
-glCoverageModulationTableNVFunPtr = unsafePerformIO (getProcAddress "glCoverageModulationTableNV")
-
-{-# NOINLINE glCoverageModulationTableNVFunPtr #-}
-
--- | Usage: @'glGetCoverageModulationTableNV' bufsize v@
-
-
-glGetCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
-glGetCoverageModulationTableNV = ffisizeiPtrfloatIOV glGetCoverageModulationTableNVFunPtr
-
-glGetCoverageModulationTableNVFunPtr :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
-glGetCoverageModulationTableNVFunPtr = unsafePerformIO (getProcAddress "glGetCoverageModulationTableNV")
-
-{-# NOINLINE glGetCoverageModulationTableNVFunPtr #-}
-
-pattern GL_COVERAGE_MODULATION_NV = 0x9332
-
-pattern GL_COVERAGE_MODULATION_TABLE_NV = 0x9331
-
-pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333
-
-pattern GL_DEPTH_SAMPLES_NV = 0x932D
-
-pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F
-
-pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330
-
-pattern GL_STENCIL_SAMPLES_NV = 0x932E
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMultisample.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FramebufferMultisample (
-  -- * Extension Support
-    gl_NV_framebuffer_multisample
-
-  -- * GL_NV_framebuffer_multisample
-  , glRenderbufferStorageMultisampleNV
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV
-  , pattern GL_MAX_SAMPLES_NV
-  , pattern GL_RENDERBUFFER_SAMPLES_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_multisample.txt GL_NV_framebuffer_multisample> extension is available.
-
-gl_NV_framebuffer_multisample :: Bool
-gl_NV_framebuffer_multisample = member "GL_NV_framebuffer_multisample" extensions
-{-# NOINLINE gl_NV_framebuffer_multisample #-}
-
--- | Usage: @'glRenderbufferStorageMultisampleNV' target samples internalformat width height@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorageMultisample'.
-
-
-glRenderbufferStorageMultisampleNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleNV = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleNVFunPtr
-
-glRenderbufferStorageMultisampleNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleNV")
-
-{-# NOINLINE glRenderbufferStorageMultisampleNVFunPtr #-}
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56
-
-pattern GL_MAX_SAMPLES_NV = 0x8D57
-
-pattern GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs b/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.FramebufferMultisampleCoverage (
-  -- * Extension Support
-    gl_NV_framebuffer_multisample_coverage
-
-  -- * GL_NV_framebuffer_multisample_coverage
-  , glRenderbufferStorageMultisampleCoverageNV
-  , pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV
-  , pattern GL_MULTISAMPLE_COVERAGE_MODES_NV
-  , pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV
-  , pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/framebuffer_multisample_coverage.txt GL_NV_framebuffer_multisample_coverage> extension is available.
-
-gl_NV_framebuffer_multisample_coverage :: Bool
-gl_NV_framebuffer_multisample_coverage = member "GL_NV_framebuffer_multisample_coverage" extensions
-{-# NOINLINE gl_NV_framebuffer_multisample_coverage #-}
-
--- | Usage: @'glRenderbufferStorageMultisampleCoverageNV' target coverageSamples colorSamples internalformat width height@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
-
-
-glRenderbufferStorageMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleCoverageNV = ffienumsizeisizeienumsizeisizeiIOV glRenderbufferStorageMultisampleCoverageNVFunPtr
-
-glRenderbufferStorageMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleCoverageNV")
-
-{-# NOINLINE glRenderbufferStorageMultisampleCoverageNVFunPtr #-}
-
-pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11
-
-pattern GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12
-
-pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10
-
-pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GenerateMipmapSRGB.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GenerateMipmapSRGB.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GenerateMipmapSRGB.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GenerateMipmapSRGB (
-  -- * Extension Support
-    gl_NV_generate_mipmap_sRGB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_generate_mipmap_sRGB.txt GL_NV_generate_mipmap_sRGB> extension is available.
-
-gl_NV_generate_mipmap_sRGB :: Bool
-gl_NV_generate_mipmap_sRGB = member "GL_NV_generate_mipmap_sRGB" extensions
-{-# NOINLINE gl_NV_generate_mipmap_sRGB #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GeometryProgram4.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GeometryProgram4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GeometryProgram4.hs
+++ /dev/null
@@ -1,85 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GeometryProgram4 (
-  -- * Extension Support
-    gl_NV_geometry_program4
-
-  -- * GL_NV_geometry_program4
-  , glFramebufferTextureEXT
-  , glFramebufferTextureFaceEXT
-  , glFramebufferTextureLayerEXT
-  , glProgramVertexLimitNV
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
-  , pattern GL_GEOMETRY_INPUT_TYPE_EXT
-  , pattern GL_GEOMETRY_OUTPUT_TYPE_EXT
-  , pattern GL_GEOMETRY_PROGRAM_NV
-  , pattern GL_GEOMETRY_VERTICES_OUT_EXT
-  , pattern GL_LINES_ADJACENCY_EXT
-  , pattern GL_LINE_STRIP_ADJACENCY_EXT
-  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
-  , pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV
-  , pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV
-  , pattern GL_PROGRAM_POINT_SIZE_EXT
-  , pattern GL_TRIANGLES_ADJACENCY_EXT
-  , pattern GL_TRIANGLE_STRIP_ADJACENCY_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/NV/geometry_program4.txt GL_NV_geometry_program4> extension is available.
-
-gl_NV_geometry_program4 :: Bool
-gl_NV_geometry_program4 = member "GL_NV_geometry_program4" extensions
-{-# NOINLINE gl_NV_geometry_program4 #-}
-
--- | Usage: @'glFramebufferTextureFaceEXT' target attachment texture level face@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.GeometryShader4.glFramebufferTextureFaceARB'.
-
-
-glFramebufferTextureFaceEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
-glFramebufferTextureFaceEXT = ffienumenumuintintenumIOV glFramebufferTextureFaceEXTFunPtr
-
-glFramebufferTextureFaceEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
-glFramebufferTextureFaceEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureFaceEXT")
-
-{-# NOINLINE glFramebufferTextureFaceEXTFunPtr #-}
-
--- | Usage: @'glProgramVertexLimitNV' target limit@
---
--- The parameter @target@ is a @ProgramTarget@.
-
-
-glProgramVertexLimitNV :: MonadIO m => GLenum -> GLint -> m ()
-glProgramVertexLimitNV = ffienumintIOV glProgramVertexLimitNVFunPtr
-
-glProgramVertexLimitNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glProgramVertexLimitNVFunPtr = unsafePerformIO (getProcAddress "glProgramVertexLimitNV")
-
-{-# NOINLINE glProgramVertexLimitNVFunPtr #-}
-
-pattern GL_GEOMETRY_PROGRAM_NV = 0x8C26
-
-pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27
-
-pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GeometryShader4.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GeometryShader4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GeometryShader4.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GeometryShader4 (
-  -- * Extension Support
-    gl_NV_geometry_shader4
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader4.txt GL_NV_geometry_shader4> extension is available.
-
-gl_NV_geometry_shader4 :: Bool
-gl_NV_geometry_shader4 = member "GL_NV_geometry_shader4" extensions
-{-# NOINLINE gl_NV_geometry_shader4 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GeometryShaderPassthrough.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GeometryShaderPassthrough.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GeometryShaderPassthrough.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GeometryShaderPassthrough (
-  -- * Extension Support
-    gl_NV_geometry_shader_passthrough
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader_passthrough.txt GL_NV_geometry_shader_passthrough> extension is available.
-
-gl_NV_geometry_shader_passthrough :: Bool
-gl_NV_geometry_shader_passthrough = member "GL_NV_geometry_shader_passthrough" extensions
-{-# NOINLINE gl_NV_geometry_shader_passthrough #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram4.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram4.hs
+++ /dev/null
@@ -1,302 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GpuProgram4 (
-  -- * Extension Support
-    gl_NV_gpu_program4
-
-  -- * GL_NV_gpu_program4
-  , glGetProgramEnvParameterIivNV
-  , glGetProgramEnvParameterIuivNV
-  , glGetProgramLocalParameterIivNV
-  , glGetProgramLocalParameterIuivNV
-  , glProgramEnvParameterI4iNV
-  , glProgramEnvParameterI4ivNV
-  , glProgramEnvParameterI4uiNV
-  , glProgramEnvParameterI4uivNV
-  , glProgramEnvParametersI4ivNV
-  , glProgramEnvParametersI4uivNV
-  , glProgramLocalParameterI4iNV
-  , glProgramLocalParameterI4ivNV
-  , glProgramLocalParameterI4uiNV
-  , glProgramLocalParameterI4uivNV
-  , glProgramLocalParametersI4ivNV
-  , glProgramLocalParametersI4uivNV
-  , pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV
-  , pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV
-  , pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV
-  , pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV
-  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV
-  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV
-  , pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV
-  , pattern GL_PROGRAM_RESULT_COMPONENTS_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program4.txt GL_NV_gpu_program4> extension is available.
-
-gl_NV_gpu_program4 :: Bool
-gl_NV_gpu_program4 = member "GL_NV_gpu_program4" extensions
-{-# NOINLINE gl_NV_gpu_program4 #-}
-
--- | Usage: @'glGetProgramEnvParameterIivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramEnvParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetProgramEnvParameterIivNV = ffienumuintPtrintIOV glGetProgramEnvParameterIivNVFunPtr
-
-glGetProgramEnvParameterIivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetProgramEnvParameterIivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterIivNV")
-
-{-# NOINLINE glGetProgramEnvParameterIivNVFunPtr #-}
-
--- | Usage: @'glGetProgramEnvParameterIuivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramEnvParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
-glGetProgramEnvParameterIuivNV = ffienumuintPtruintIOV glGetProgramEnvParameterIuivNVFunPtr
-
-glGetProgramEnvParameterIuivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
-glGetProgramEnvParameterIuivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterIuivNV")
-
-{-# NOINLINE glGetProgramEnvParameterIuivNVFunPtr #-}
-
--- | Usage: @'glGetProgramLocalParameterIivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramLocalParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetProgramLocalParameterIivNV = ffienumuintPtrintIOV glGetProgramLocalParameterIivNVFunPtr
-
-glGetProgramLocalParameterIivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetProgramLocalParameterIivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterIivNV")
-
-{-# NOINLINE glGetProgramLocalParameterIivNVFunPtr #-}
-
--- | Usage: @'glGetProgramLocalParameterIuivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramLocalParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
-glGetProgramLocalParameterIuivNV = ffienumuintPtruintIOV glGetProgramLocalParameterIuivNVFunPtr
-
-glGetProgramLocalParameterIuivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
-glGetProgramLocalParameterIuivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterIuivNV")
-
-{-# NOINLINE glGetProgramLocalParameterIuivNVFunPtr #-}
-
--- | Usage: @'glProgramEnvParameterI4iNV' target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramEnvParameterI4ivNV'.
-
-
-glProgramEnvParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramEnvParameterI4iNV = ffienumuintintintintintIOV glProgramEnvParameterI4iNVFunPtr
-
-glProgramEnvParameterI4iNVFunPtr :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramEnvParameterI4iNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4iNV")
-
-{-# NOINLINE glProgramEnvParameterI4iNVFunPtr #-}
-
--- | Usage: @'glProgramEnvParameterI4ivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramEnvParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glProgramEnvParameterI4ivNV = ffienumuintPtrintIOV glProgramEnvParameterI4ivNVFunPtr
-
-glProgramEnvParameterI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glProgramEnvParameterI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4ivNV")
-
-{-# NOINLINE glProgramEnvParameterI4ivNVFunPtr #-}
-
--- | Usage: @'glProgramEnvParameterI4uiNV' target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramEnvParameterI4uivNV'.
-
-
-glProgramEnvParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramEnvParameterI4uiNV = ffienumuintuintuintuintuintIOV glProgramEnvParameterI4uiNVFunPtr
-
-glProgramEnvParameterI4uiNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramEnvParameterI4uiNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4uiNV")
-
-{-# NOINLINE glProgramEnvParameterI4uiNVFunPtr #-}
-
--- | Usage: @'glProgramEnvParameterI4uivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramEnvParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
-glProgramEnvParameterI4uivNV = ffienumuintPtruintIOV glProgramEnvParameterI4uivNVFunPtr
-
-glProgramEnvParameterI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
-glProgramEnvParameterI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4uivNV")
-
-{-# NOINLINE glProgramEnvParameterI4uivNVFunPtr #-}
-
--- | Usage: @'glProgramEnvParametersI4ivNV' target index count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count*4@.
-
-
-glProgramEnvParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
-glProgramEnvParametersI4ivNV = ffienumuintsizeiPtrintIOV glProgramEnvParametersI4ivNVFunPtr
-
-glProgramEnvParametersI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-glProgramEnvParametersI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParametersI4ivNV")
-
-{-# NOINLINE glProgramEnvParametersI4ivNVFunPtr #-}
-
--- | Usage: @'glProgramEnvParametersI4uivNV' target index count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count*4@.
-
-
-glProgramEnvParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glProgramEnvParametersI4uivNV = ffienumuintsizeiPtruintIOV glProgramEnvParametersI4uivNVFunPtr
-
-glProgramEnvParametersI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramEnvParametersI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParametersI4uivNV")
-
-{-# NOINLINE glProgramEnvParametersI4uivNVFunPtr #-}
-
--- | Usage: @'glProgramLocalParameterI4iNV' target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramLocalParameterI4ivNV'.
-
-
-glProgramLocalParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramLocalParameterI4iNV = ffienumuintintintintintIOV glProgramLocalParameterI4iNVFunPtr
-
-glProgramLocalParameterI4iNVFunPtr :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramLocalParameterI4iNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4iNV")
-
-{-# NOINLINE glProgramLocalParameterI4iNVFunPtr #-}
-
--- | Usage: @'glProgramLocalParameterI4ivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramLocalParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glProgramLocalParameterI4ivNV = ffienumuintPtrintIOV glProgramLocalParameterI4ivNVFunPtr
-
-glProgramLocalParameterI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glProgramLocalParameterI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4ivNV")
-
-{-# NOINLINE glProgramLocalParameterI4ivNVFunPtr #-}
-
--- | Usage: @'glProgramLocalParameterI4uiNV' target index x y z w@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramLocalParameterI4uivNV'.
-
-
-glProgramLocalParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramLocalParameterI4uiNV = ffienumuintuintuintuintuintIOV glProgramLocalParameterI4uiNVFunPtr
-
-glProgramLocalParameterI4uiNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramLocalParameterI4uiNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4uiNV")
-
-{-# NOINLINE glProgramLocalParameterI4uiNVFunPtr #-}
-
--- | Usage: @'glProgramLocalParameterI4uivNV' target index params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramLocalParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
-glProgramLocalParameterI4uivNV = ffienumuintPtruintIOV glProgramLocalParameterI4uivNVFunPtr
-
-glProgramLocalParameterI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
-glProgramLocalParameterI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4uivNV")
-
-{-# NOINLINE glProgramLocalParameterI4uivNVFunPtr #-}
-
--- | Usage: @'glProgramLocalParametersI4ivNV' target index count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count*4@.
-
-
-glProgramLocalParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
-glProgramLocalParametersI4ivNV = ffienumuintsizeiPtrintIOV glProgramLocalParametersI4ivNVFunPtr
-
-glProgramLocalParametersI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-glProgramLocalParametersI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParametersI4ivNV")
-
-{-# NOINLINE glProgramLocalParametersI4ivNVFunPtr #-}
-
--- | Usage: @'glProgramLocalParametersI4uivNV' target index count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count*4@.
-
-
-glProgramLocalParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glProgramLocalParametersI4uivNV = ffienumuintsizeiPtruintIOV glProgramLocalParametersI4uivNVFunPtr
-
-glProgramLocalParametersI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramLocalParametersI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParametersI4uivNV")
-
-{-# NOINLINE glProgramLocalParametersI4uivNVFunPtr #-}
-
-pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908
-
-pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5
-
-pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6
-
-pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909
-
-pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905
-
-pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904
-
-pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906
-
-pattern GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram5.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram5.hs
+++ /dev/null
@@ -1,74 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GpuProgram5 (
-  -- * Extension Support
-    gl_NV_gpu_program5
-
-  -- * GL_NV_gpu_program5
-  , glGetProgramSubroutineParameteruivNV
-  , glProgramSubroutineParametersuivNV
-  , pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV
-  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV
-  , pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV
-  , pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV
-  , pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV
-  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV
-  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV
-  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5.txt GL_NV_gpu_program5> extension is available.
-
-gl_NV_gpu_program5 :: Bool
-gl_NV_gpu_program5 = member "GL_NV_gpu_program5" extensions
-{-# NOINLINE gl_NV_gpu_program5 #-}
-
--- | Usage: @'glGetProgramSubroutineParameteruivNV' target index param@
---
--- The length of @param@ should be @COMPSIZE(target)@.
-
-
-glGetProgramSubroutineParameteruivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
-glGetProgramSubroutineParameteruivNV = ffienumuintPtruintIOV glGetProgramSubroutineParameteruivNVFunPtr
-
-glGetProgramSubroutineParameteruivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
-glGetProgramSubroutineParameteruivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramSubroutineParameteruivNV")
-
-{-# NOINLINE glGetProgramSubroutineParameteruivNVFunPtr #-}
-
--- | Usage: @'glProgramSubroutineParametersuivNV' target count params@
---
--- The length of @params@ should be @count@.
-
-
-glProgramSubroutineParametersuivNV :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glProgramSubroutineParametersuivNV = ffienumsizeiPtruintIOV glProgramSubroutineParametersuivNVFunPtr
-
-glProgramSubroutineParametersuivNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glProgramSubroutineParametersuivNVFunPtr = unsafePerformIO (getProcAddress "glProgramSubroutineParametersuivNV")
-
-{-# NOINLINE glProgramSubroutineParametersuivNVFunPtr #-}
-
-pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D
-
-pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C
-
-pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A
-
-pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45
-
-pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44
-
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F
-
-pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B
-
-pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram5MemExtended.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram5MemExtended.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GpuProgram5MemExtended.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GpuProgram5MemExtended (
-  -- * Extension Support
-    gl_NV_gpu_program5_mem_extended
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5_mem_extended.txt GL_NV_gpu_program5_mem_extended> extension is available.
-
-gl_NV_gpu_program5_mem_extended :: Bool
-gl_NV_gpu_program5_mem_extended = member "GL_NV_gpu_program5_mem_extended" extensions
-{-# NOINLINE gl_NV_gpu_program5_mem_extended #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Ext/NV/GpuShader5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/GpuShader5.hs
+++ /dev/null
@@ -1,80 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.GpuShader5 (
-  -- * Extension Support
-    gl_NV_gpu_shader5
-
-  -- * GL_NV_gpu_shader5
-  , glGetUniformi64vNV
-  , glProgramUniform1i64NV
-  , glProgramUniform1i64vNV
-  , glProgramUniform1ui64NV
-  , glProgramUniform1ui64vNV
-  , glProgramUniform2i64NV
-  , glProgramUniform2i64vNV
-  , glProgramUniform2ui64NV
-  , glProgramUniform2ui64vNV
-  , glProgramUniform3i64NV
-  , glProgramUniform3i64vNV
-  , glProgramUniform3ui64NV
-  , glProgramUniform3ui64vNV
-  , glProgramUniform4i64NV
-  , glProgramUniform4i64vNV
-  , glProgramUniform4ui64NV
-  , glProgramUniform4ui64vNV
-  , glUniform1i64NV
-  , glUniform1i64vNV
-  , glUniform1ui64NV
-  , glUniform1ui64vNV
-  , glUniform2i64NV
-  , glUniform2i64vNV
-  , glUniform2ui64NV
-  , glUniform2ui64vNV
-  , glUniform3i64NV
-  , glUniform3i64vNV
-  , glUniform3ui64NV
-  , glUniform3ui64vNV
-  , glUniform4i64NV
-  , glUniform4i64vNV
-  , glUniform4ui64NV
-  , glUniform4ui64vNV
-  , pattern GL_FLOAT16_NV
-  , pattern GL_FLOAT16_VEC2_NV
-  , pattern GL_FLOAT16_VEC3_NV
-  , pattern GL_FLOAT16_VEC4_NV
-  , pattern GL_INT16_NV
-  , pattern GL_INT16_VEC2_NV
-  , pattern GL_INT16_VEC3_NV
-  , pattern GL_INT16_VEC4_NV
-  , pattern GL_INT64_NV
-  , pattern GL_INT64_VEC2_NV
-  , pattern GL_INT64_VEC3_NV
-  , pattern GL_INT64_VEC4_NV
-  , pattern GL_INT8_NV
-  , pattern GL_INT8_VEC2_NV
-  , pattern GL_INT8_VEC3_NV
-  , pattern GL_INT8_VEC4_NV
-  , pattern GL_PATCHES
-  , pattern GL_UNSIGNED_INT16_NV
-  , pattern GL_UNSIGNED_INT16_VEC2_NV
-  , pattern GL_UNSIGNED_INT16_VEC3_NV
-  , pattern GL_UNSIGNED_INT16_VEC4_NV
-  , pattern GL_UNSIGNED_INT64_NV
-  , pattern GL_UNSIGNED_INT64_VEC2_NV
-  , pattern GL_UNSIGNED_INT64_VEC3_NV
-  , pattern GL_UNSIGNED_INT64_VEC4_NV
-  , pattern GL_UNSIGNED_INT8_NV
-  , pattern GL_UNSIGNED_INT8_VEC2_NV
-  , pattern GL_UNSIGNED_INT8_VEC3_NV
-  , pattern GL_UNSIGNED_INT8_VEC4_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_shader5.txt GL_NV_gpu_shader5> extension is available.
-
-gl_NV_gpu_shader5 :: Bool
-gl_NV_gpu_shader5 = member "GL_NV_gpu_shader5" extensions
-{-# NOINLINE gl_NV_gpu_shader5 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/HalfFloat.hs b/dist/build/autogen/Graphics/GL/Ext/NV/HalfFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/HalfFloat.hs
+++ /dev/null
@@ -1,843 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.HalfFloat (
-  -- * Extension Support
-    gl_NV_half_float
-
-  -- * GL_NV_half_float
-  , glColor3hNV
-  , glColor3hvNV
-  , glColor4hNV
-  , glColor4hvNV
-  , glFogCoordhNV
-  , glFogCoordhvNV
-  , glMultiTexCoord1hNV
-  , glMultiTexCoord1hvNV
-  , glMultiTexCoord2hNV
-  , glMultiTexCoord2hvNV
-  , glMultiTexCoord3hNV
-  , glMultiTexCoord3hvNV
-  , glMultiTexCoord4hNV
-  , glMultiTexCoord4hvNV
-  , glNormal3hNV
-  , glNormal3hvNV
-  , glSecondaryColor3hNV
-  , glSecondaryColor3hvNV
-  , glTexCoord1hNV
-  , glTexCoord1hvNV
-  , glTexCoord2hNV
-  , glTexCoord2hvNV
-  , glTexCoord3hNV
-  , glTexCoord3hvNV
-  , glTexCoord4hNV
-  , glTexCoord4hvNV
-  , glVertex2hNV
-  , glVertex2hvNV
-  , glVertex3hNV
-  , glVertex3hvNV
-  , glVertex4hNV
-  , glVertex4hvNV
-  , glVertexAttrib1hNV
-  , glVertexAttrib1hvNV
-  , glVertexAttrib2hNV
-  , glVertexAttrib2hvNV
-  , glVertexAttrib3hNV
-  , glVertexAttrib3hvNV
-  , glVertexAttrib4hNV
-  , glVertexAttrib4hvNV
-  , glVertexAttribs1hvNV
-  , glVertexAttribs2hvNV
-  , glVertexAttribs3hvNV
-  , glVertexAttribs4hvNV
-  , glVertexWeighthNV
-  , glVertexWeighthvNV
-  , pattern GL_HALF_FLOAT_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/half_float.txt GL_NV_half_float> extension is available.
-
-gl_NV_half_float :: Bool
-gl_NV_half_float = member "GL_NV_half_float" extensions
-{-# NOINLINE gl_NV_half_float #-}
-
--- | Usage: @'glColor3hNV' red green blue@
---
--- The parameter @red@ is a @Half16NV@.
---
--- The parameter @green@ is a @Half16NV@.
---
--- The parameter @blue@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glColor3hvNV'.
-
-
-glColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glColor3hNV = ffihalfNVhalfNVhalfNVIOV glColor3hNVFunPtr
-
-glColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glColor3hNVFunPtr = unsafePerformIO (getProcAddress "glColor3hNV")
-
-{-# NOINLINE glColor3hNVFunPtr #-}
-
--- | Usage: @'glColor3hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glColor3hvNV = ffiPtrhalfNVIOV glColor3hvNVFunPtr
-
-glColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glColor3hvNVFunPtr = unsafePerformIO (getProcAddress "glColor3hvNV")
-
-{-# NOINLINE glColor3hvNVFunPtr #-}
-
--- | Usage: @'glColor4hNV' red green blue alpha@
---
--- The parameter @red@ is a @Half16NV@.
---
--- The parameter @green@ is a @Half16NV@.
---
--- The parameter @blue@ is a @Half16NV@.
---
--- The parameter @alpha@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glColor4hvNV'.
-
-
-glColor4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glColor4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glColor4hNVFunPtr
-
-glColor4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glColor4hNVFunPtr = unsafePerformIO (getProcAddress "glColor4hNV")
-
-{-# NOINLINE glColor4hNVFunPtr #-}
-
--- | Usage: @'glColor4hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glColor4hvNV = ffiPtrhalfNVIOV glColor4hvNVFunPtr
-
-glColor4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glColor4hvNVFunPtr = unsafePerformIO (getProcAddress "glColor4hvNV")
-
-{-# NOINLINE glColor4hvNVFunPtr #-}
-
--- | Usage: @'glFogCoordhNV' fog@
---
--- The parameter @fog@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glFogCoordhvNV'.
-
-
-glFogCoordhNV :: MonadIO m => GLhalfNV -> m ()
-glFogCoordhNV = ffihalfNVIOV glFogCoordhNVFunPtr
-
-glFogCoordhNVFunPtr :: FunPtr (GLhalfNV -> IO ())
-glFogCoordhNVFunPtr = unsafePerformIO (getProcAddress "glFogCoordhNV")
-
-{-# NOINLINE glFogCoordhNVFunPtr #-}
-
--- | Usage: @'glFogCoordhvNV' fog@
---
--- The parameter @fog@ is a @Half16NV@.
---
--- The length of @fog@ should be @1@.
-
-
-glFogCoordhvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glFogCoordhvNV = ffiPtrhalfNVIOV glFogCoordhvNVFunPtr
-
-glFogCoordhvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glFogCoordhvNVFunPtr = unsafePerformIO (getProcAddress "glFogCoordhvNV")
-
-{-# NOINLINE glFogCoordhvNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1hNV' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord1hvNV'.
-
-
-glMultiTexCoord1hNV :: MonadIO m => GLenum -> GLhalfNV -> m ()
-glMultiTexCoord1hNV = ffienumhalfNVIOV glMultiTexCoord1hNVFunPtr
-
-glMultiTexCoord1hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> IO ())
-glMultiTexCoord1hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1hNV")
-
-{-# NOINLINE glMultiTexCoord1hNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1hvNV' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @1@.
-
-
-glMultiTexCoord1hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
-glMultiTexCoord1hvNV = ffienumPtrhalfNVIOV glMultiTexCoord1hvNVFunPtr
-
-glMultiTexCoord1hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-glMultiTexCoord1hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1hvNV")
-
-{-# NOINLINE glMultiTexCoord1hvNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2hNV' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @Half16NV@.
---
--- The parameter @t@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord2hvNV'.
-
-
-glMultiTexCoord2hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> m ()
-glMultiTexCoord2hNV = ffienumhalfNVhalfNVIOV glMultiTexCoord2hNVFunPtr
-
-glMultiTexCoord2hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
-glMultiTexCoord2hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2hNV")
-
-{-# NOINLINE glMultiTexCoord2hNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2hvNV' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @2@.
-
-
-glMultiTexCoord2hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
-glMultiTexCoord2hvNV = ffienumPtrhalfNVIOV glMultiTexCoord2hvNVFunPtr
-
-glMultiTexCoord2hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-glMultiTexCoord2hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2hvNV")
-
-{-# NOINLINE glMultiTexCoord2hvNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3hNV' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @Half16NV@.
---
--- The parameter @t@ is a @Half16NV@.
---
--- The parameter @r@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord3hvNV'.
-
-
-glMultiTexCoord3hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glMultiTexCoord3hNV = ffienumhalfNVhalfNVhalfNVIOV glMultiTexCoord3hNVFunPtr
-
-glMultiTexCoord3hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glMultiTexCoord3hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3hNV")
-
-{-# NOINLINE glMultiTexCoord3hNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3hvNV' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @3@.
-
-
-glMultiTexCoord3hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
-glMultiTexCoord3hvNV = ffienumPtrhalfNVIOV glMultiTexCoord3hvNVFunPtr
-
-glMultiTexCoord3hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-glMultiTexCoord3hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3hvNV")
-
-{-# NOINLINE glMultiTexCoord3hvNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4hNV' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @Half16NV@.
---
--- The parameter @t@ is a @Half16NV@.
---
--- The parameter @r@ is a @Half16NV@.
---
--- The parameter @q@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord4hvNV'.
-
-
-glMultiTexCoord4hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glMultiTexCoord4hNV = ffienumhalfNVhalfNVhalfNVhalfNVIOV glMultiTexCoord4hNVFunPtr
-
-glMultiTexCoord4hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glMultiTexCoord4hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4hNV")
-
-{-# NOINLINE glMultiTexCoord4hNVFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4hvNV' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @4@.
-
-
-glMultiTexCoord4hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
-glMultiTexCoord4hvNV = ffienumPtrhalfNVIOV glMultiTexCoord4hvNVFunPtr
-
-glMultiTexCoord4hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
-glMultiTexCoord4hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4hvNV")
-
-{-# NOINLINE glMultiTexCoord4hvNVFunPtr #-}
-
--- | Usage: @'glNormal3hNV' nx ny nz@
---
--- The parameter @nx@ is a @Half16NV@.
---
--- The parameter @ny@ is a @Half16NV@.
---
--- The parameter @nz@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glNormal3hvNV'.
-
-
-glNormal3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glNormal3hNV = ffihalfNVhalfNVhalfNVIOV glNormal3hNVFunPtr
-
-glNormal3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glNormal3hNVFunPtr = unsafePerformIO (getProcAddress "glNormal3hNV")
-
-{-# NOINLINE glNormal3hNVFunPtr #-}
-
--- | Usage: @'glNormal3hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @3@.
-
-
-glNormal3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glNormal3hvNV = ffiPtrhalfNVIOV glNormal3hvNVFunPtr
-
-glNormal3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glNormal3hvNVFunPtr = unsafePerformIO (getProcAddress "glNormal3hvNV")
-
-{-# NOINLINE glNormal3hvNVFunPtr #-}
-
--- | Usage: @'glSecondaryColor3hNV' red green blue@
---
--- The parameter @red@ is a @Half16NV@.
---
--- The parameter @green@ is a @Half16NV@.
---
--- The parameter @blue@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glSecondaryColor3hvNV'.
-
-
-glSecondaryColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glSecondaryColor3hNV = ffihalfNVhalfNVhalfNVIOV glSecondaryColor3hNVFunPtr
-
-glSecondaryColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glSecondaryColor3hNVFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3hNV")
-
-{-# NOINLINE glSecondaryColor3hNVFunPtr #-}
-
--- | Usage: @'glSecondaryColor3hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glSecondaryColor3hvNV = ffiPtrhalfNVIOV glSecondaryColor3hvNVFunPtr
-
-glSecondaryColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glSecondaryColor3hvNVFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3hvNV")
-
-{-# NOINLINE glSecondaryColor3hvNVFunPtr #-}
-
--- | Usage: @'glTexCoord1hNV' s@
---
--- The parameter @s@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord1hvNV'.
-
-
-glTexCoord1hNV :: MonadIO m => GLhalfNV -> m ()
-glTexCoord1hNV = ffihalfNVIOV glTexCoord1hNVFunPtr
-
-glTexCoord1hNVFunPtr :: FunPtr (GLhalfNV -> IO ())
-glTexCoord1hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord1hNV")
-
-{-# NOINLINE glTexCoord1hNVFunPtr #-}
-
--- | Usage: @'glTexCoord1hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @1@.
-
-
-glTexCoord1hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glTexCoord1hvNV = ffiPtrhalfNVIOV glTexCoord1hvNVFunPtr
-
-glTexCoord1hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glTexCoord1hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord1hvNV")
-
-{-# NOINLINE glTexCoord1hvNVFunPtr #-}
-
--- | Usage: @'glTexCoord2hNV' s t@
---
--- The parameter @s@ is a @Half16NV@.
---
--- The parameter @t@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord2hvNV'.
-
-
-glTexCoord2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
-glTexCoord2hNV = ffihalfNVhalfNVIOV glTexCoord2hNVFunPtr
-
-glTexCoord2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
-glTexCoord2hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord2hNV")
-
-{-# NOINLINE glTexCoord2hNVFunPtr #-}
-
--- | Usage: @'glTexCoord2hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @2@.
-
-
-glTexCoord2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glTexCoord2hvNV = ffiPtrhalfNVIOV glTexCoord2hvNVFunPtr
-
-glTexCoord2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glTexCoord2hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord2hvNV")
-
-{-# NOINLINE glTexCoord2hvNVFunPtr #-}
-
--- | Usage: @'glTexCoord3hNV' s t r@
---
--- The parameter @s@ is a @Half16NV@.
---
--- The parameter @t@ is a @Half16NV@.
---
--- The parameter @r@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord3hvNV'.
-
-
-glTexCoord3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glTexCoord3hNV = ffihalfNVhalfNVhalfNVIOV glTexCoord3hNVFunPtr
-
-glTexCoord3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glTexCoord3hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord3hNV")
-
-{-# NOINLINE glTexCoord3hNVFunPtr #-}
-
--- | Usage: @'glTexCoord3hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glTexCoord3hvNV = ffiPtrhalfNVIOV glTexCoord3hvNVFunPtr
-
-glTexCoord3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glTexCoord3hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord3hvNV")
-
-{-# NOINLINE glTexCoord3hvNVFunPtr #-}
-
--- | Usage: @'glTexCoord4hNV' s t r q@
---
--- The parameter @s@ is a @Half16NV@.
---
--- The parameter @t@ is a @Half16NV@.
---
--- The parameter @r@ is a @Half16NV@.
---
--- The parameter @q@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord4hvNV'.
-
-
-glTexCoord4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glTexCoord4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glTexCoord4hNVFunPtr
-
-glTexCoord4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glTexCoord4hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord4hNV")
-
-{-# NOINLINE glTexCoord4hNVFunPtr #-}
-
--- | Usage: @'glTexCoord4hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @4@.
-
-
-glTexCoord4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glTexCoord4hvNV = ffiPtrhalfNVIOV glTexCoord4hvNVFunPtr
-
-glTexCoord4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glTexCoord4hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord4hvNV")
-
-{-# NOINLINE glTexCoord4hvNVFunPtr #-}
-
--- | Usage: @'glVertex2hNV' x y@
---
--- The parameter @x@ is a @Half16NV@.
---
--- The parameter @y@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex2hvNV'.
-
-
-glVertex2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
-glVertex2hNV = ffihalfNVhalfNVIOV glVertex2hNVFunPtr
-
-glVertex2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
-glVertex2hNVFunPtr = unsafePerformIO (getProcAddress "glVertex2hNV")
-
-{-# NOINLINE glVertex2hNVFunPtr #-}
-
--- | Usage: @'glVertex2hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @2@.
-
-
-glVertex2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glVertex2hvNV = ffiPtrhalfNVIOV glVertex2hvNVFunPtr
-
-glVertex2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glVertex2hvNVFunPtr = unsafePerformIO (getProcAddress "glVertex2hvNV")
-
-{-# NOINLINE glVertex2hvNVFunPtr #-}
-
--- | Usage: @'glVertex3hNV' x y z@
---
--- The parameter @x@ is a @Half16NV@.
---
--- The parameter @y@ is a @Half16NV@.
---
--- The parameter @z@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex3hvNV'.
-
-
-glVertex3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glVertex3hNV = ffihalfNVhalfNVhalfNVIOV glVertex3hNVFunPtr
-
-glVertex3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glVertex3hNVFunPtr = unsafePerformIO (getProcAddress "glVertex3hNV")
-
-{-# NOINLINE glVertex3hNVFunPtr #-}
-
--- | Usage: @'glVertex3hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @3@.
-
-
-glVertex3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glVertex3hvNV = ffiPtrhalfNVIOV glVertex3hvNVFunPtr
-
-glVertex3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glVertex3hvNVFunPtr = unsafePerformIO (getProcAddress "glVertex3hvNV")
-
-{-# NOINLINE glVertex3hvNVFunPtr #-}
-
--- | Usage: @'glVertex4hNV' x y z w@
---
--- The parameter @x@ is a @Half16NV@.
---
--- The parameter @y@ is a @Half16NV@.
---
--- The parameter @z@ is a @Half16NV@.
---
--- The parameter @w@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex4hvNV'.
-
-
-glVertex4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glVertex4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glVertex4hNVFunPtr
-
-glVertex4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glVertex4hNVFunPtr = unsafePerformIO (getProcAddress "glVertex4hNV")
-
-{-# NOINLINE glVertex4hNVFunPtr #-}
-
--- | Usage: @'glVertex4hvNV' v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @4@.
-
-
-glVertex4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glVertex4hvNV = ffiPtrhalfNVIOV glVertex4hvNVFunPtr
-
-glVertex4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glVertex4hvNVFunPtr = unsafePerformIO (getProcAddress "glVertex4hvNV")
-
-{-# NOINLINE glVertex4hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1hNV' index x@
---
--- The parameter @x@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib1hvNV'.
-
-
-glVertexAttrib1hNV :: MonadIO m => GLuint -> GLhalfNV -> m ()
-glVertexAttrib1hNV = ffiuinthalfNVIOV glVertexAttrib1hNVFunPtr
-
-glVertexAttrib1hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> IO ())
-glVertexAttrib1hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1hNV")
-
-{-# NOINLINE glVertexAttrib1hNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1hvNV' index v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttrib1hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
-glVertexAttrib1hvNV = ffiuintPtrhalfNVIOV glVertexAttrib1hvNVFunPtr
-
-glVertexAttrib1hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
-glVertexAttrib1hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1hvNV")
-
-{-# NOINLINE glVertexAttrib1hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2hNV' index x y@
---
--- The parameter @x@ is a @Half16NV@.
---
--- The parameter @y@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib2hvNV'.
-
-
-glVertexAttrib2hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> m ()
-glVertexAttrib2hNV = ffiuinthalfNVhalfNVIOV glVertexAttrib2hNVFunPtr
-
-glVertexAttrib2hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ())
-glVertexAttrib2hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2hNV")
-
-{-# NOINLINE glVertexAttrib2hNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2hvNV' index v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttrib2hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
-glVertexAttrib2hvNV = ffiuintPtrhalfNVIOV glVertexAttrib2hvNVFunPtr
-
-glVertexAttrib2hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
-glVertexAttrib2hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2hvNV")
-
-{-# NOINLINE glVertexAttrib2hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3hNV' index x y z@
---
--- The parameter @x@ is a @Half16NV@.
---
--- The parameter @y@ is a @Half16NV@.
---
--- The parameter @z@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib3hvNV'.
-
-
-glVertexAttrib3hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glVertexAttrib3hNV = ffiuinthalfNVhalfNVhalfNVIOV glVertexAttrib3hNVFunPtr
-
-glVertexAttrib3hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glVertexAttrib3hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3hNV")
-
-{-# NOINLINE glVertexAttrib3hNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3hvNV' index v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttrib3hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
-glVertexAttrib3hvNV = ffiuintPtrhalfNVIOV glVertexAttrib3hvNVFunPtr
-
-glVertexAttrib3hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
-glVertexAttrib3hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3hvNV")
-
-{-# NOINLINE glVertexAttrib3hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4hNV' index x y z w@
---
--- The parameter @x@ is a @Half16NV@.
---
--- The parameter @y@ is a @Half16NV@.
---
--- The parameter @z@ is a @Half16NV@.
---
--- The parameter @w@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib4hvNV'.
-
-
-glVertexAttrib4hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-glVertexAttrib4hNV = ffiuinthalfNVhalfNVhalfNVhalfNVIOV glVertexAttrib4hNVFunPtr
-
-glVertexAttrib4hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
-glVertexAttrib4hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4hNV")
-
-{-# NOINLINE glVertexAttrib4hNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4hvNV' index v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
-glVertexAttrib4hvNV = ffiuintPtrhalfNVIOV glVertexAttrib4hvNVFunPtr
-
-glVertexAttrib4hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
-glVertexAttrib4hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4hvNV")
-
-{-# NOINLINE glVertexAttrib4hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs1hvNV' index n v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @n@.
-
-
-glVertexAttribs1hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
-glVertexAttribs1hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs1hvNVFunPtr
-
-glVertexAttribs1hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
-glVertexAttribs1hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1hvNV")
-
-{-# NOINLINE glVertexAttribs1hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs2hvNV' index n v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @n@.
-
-
-glVertexAttribs2hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
-glVertexAttribs2hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs2hvNVFunPtr
-
-glVertexAttribs2hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
-glVertexAttribs2hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2hvNV")
-
-{-# NOINLINE glVertexAttribs2hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs3hvNV' index n v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @n@.
-
-
-glVertexAttribs3hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
-glVertexAttribs3hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs3hvNVFunPtr
-
-glVertexAttribs3hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
-glVertexAttribs3hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3hvNV")
-
-{-# NOINLINE glVertexAttribs3hvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs4hvNV' index n v@
---
--- The parameter @v@ is a @Half16NV@.
---
--- The length of @v@ should be @n@.
-
-
-glVertexAttribs4hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
-glVertexAttribs4hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs4hvNVFunPtr
-
-glVertexAttribs4hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
-glVertexAttribs4hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4hvNV")
-
-{-# NOINLINE glVertexAttribs4hvNVFunPtr #-}
-
--- | Usage: @'glVertexWeighthNV' weight@
---
--- The parameter @weight@ is a @Half16NV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexWeighthvNV'.
-
-
-glVertexWeighthNV :: MonadIO m => GLhalfNV -> m ()
-glVertexWeighthNV = ffihalfNVIOV glVertexWeighthNVFunPtr
-
-glVertexWeighthNVFunPtr :: FunPtr (GLhalfNV -> IO ())
-glVertexWeighthNVFunPtr = unsafePerformIO (getProcAddress "glVertexWeighthNV")
-
-{-# NOINLINE glVertexWeighthNVFunPtr #-}
-
--- | Usage: @'glVertexWeighthvNV' weight@
---
--- The parameter @weight@ is a @Half16NV@.
---
--- The length of @weight@ should be @1@.
-
-
-glVertexWeighthvNV :: MonadIO m => Ptr GLhalfNV -> m ()
-glVertexWeighthvNV = ffiPtrhalfNVIOV glVertexWeighthvNVFunPtr
-
-glVertexWeighthvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
-glVertexWeighthvNVFunPtr = unsafePerformIO (getProcAddress "glVertexWeighthvNV")
-
-{-# NOINLINE glVertexWeighthvNVFunPtr #-}
-
-pattern GL_HALF_FLOAT_NV = 0x140B
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ImageFormats.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ImageFormats.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ImageFormats.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ImageFormats (
-  -- * Extension Support
-    gl_NV_image_formats
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_NV_image_formats extension is available.
-
-gl_NV_image_formats :: Bool
-gl_NV_image_formats = member "GL_NV_image_formats" extensions
-{-# NOINLINE gl_NV_image_formats #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/InstancedArrays.hs b/dist/build/autogen/Graphics/GL/Ext/NV/InstancedArrays.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/InstancedArrays.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.InstancedArrays (
-  -- * Extension Support
-    gl_NV_instanced_arrays
-
-  -- * GL_NV_instanced_arrays
-  , glVertexAttribDivisorNV
-  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_instanced_arrays.txt GL_NV_instanced_arrays> extension is available.
-
-gl_NV_instanced_arrays :: Bool
-gl_NV_instanced_arrays = member "GL_NV_instanced_arrays" extensions
-{-# NOINLINE gl_NV_instanced_arrays #-}
-
--- | Usage: @'glVertexAttribDivisorNV' index divisor@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
-
-
-glVertexAttribDivisorNV :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribDivisorNV = ffiuintuintIOV glVertexAttribDivisorNVFunPtr
-
-glVertexAttribDivisorNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribDivisorNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorNV")
-
-{-# NOINLINE glVertexAttribDivisorNVFunPtr #-}
-
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs b/dist/build/autogen/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs
+++ /dev/null
@@ -1,52 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.InternalformatSampleQuery (
-  -- * Extension Support
-    gl_NV_internalformat_sample_query
-
-  -- * GL_NV_internalformat_sample_query
-  , glGetInternalformatSampleivNV
-  , pattern GL_CONFORMANT_NV
-  , pattern GL_MULTISAMPLES_NV
-  , pattern GL_RENDERBUFFER
-  , pattern GL_SUPERSAMPLE_SCALE_X_NV
-  , pattern GL_SUPERSAMPLE_SCALE_Y_NV
-  , pattern GL_TEXTURE_2D_MULTISAMPLE
-  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
-) 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://www.khronos.org/registry/gles/extensions/NV/NV_internalformat_sample_query.txt GL_NV_internalformat_sample_query> extension is available.
-
-gl_NV_internalformat_sample_query :: Bool
-gl_NV_internalformat_sample_query = member "GL_NV_internalformat_sample_query" extensions
-{-# NOINLINE gl_NV_internalformat_sample_query #-}
-
--- | Usage: @'glGetInternalformatSampleivNV' target internalformat samples pname bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetInternalformatSampleivNV :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()
-glGetInternalformatSampleivNV = ffienumenumsizeienumsizeiPtrintIOV glGetInternalformatSampleivNVFunPtr
-
-glGetInternalformatSampleivNVFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ())
-glGetInternalformatSampleivNVFunPtr = unsafePerformIO (getProcAddress "glGetInternalformatSampleivNV")
-
-{-# NOINLINE glGetInternalformatSampleivNVFunPtr #-}
-
-pattern GL_CONFORMANT_NV = 0x9374
-
-pattern GL_MULTISAMPLES_NV = 0x9371
-
-pattern GL_SUPERSAMPLE_SCALE_X_NV = 0x9372
-
-pattern GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/LightMaxExponent.hs b/dist/build/autogen/Graphics/GL/Ext/NV/LightMaxExponent.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/LightMaxExponent.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.LightMaxExponent (
-  -- * Extension Support
-    gl_NV_light_max_exponent
-
-  -- * GL_NV_light_max_exponent
-  , pattern GL_MAX_SHININESS_NV
-  , pattern GL_MAX_SPOT_EXPONENT_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/light_max_exponent.txt GL_NV_light_max_exponent> extension is available.
-
-gl_NV_light_max_exponent :: Bool
-gl_NV_light_max_exponent = member "GL_NV_light_max_exponent" extensions
-{-# NOINLINE gl_NV_light_max_exponent #-}
-
-pattern GL_MAX_SHININESS_NV = 0x8504
-
-pattern GL_MAX_SPOT_EXPONENT_NV = 0x8505
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/MultisampleCoverage.hs b/dist/build/autogen/Graphics/GL/Ext/NV/MultisampleCoverage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/MultisampleCoverage.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.MultisampleCoverage (
-  -- * Extension Support
-    gl_NV_multisample_coverage
-
-  -- * GL_NV_multisample_coverage
-  , pattern GL_COLOR_SAMPLES_NV
-  , pattern GL_SAMPLES_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_coverage.txt GL_NV_multisample_coverage> extension is available.
-
-gl_NV_multisample_coverage :: Bool
-gl_NV_multisample_coverage = member "GL_NV_multisample_coverage" extensions
-{-# NOINLINE gl_NV_multisample_coverage #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/MultisampleFilterHint.hs b/dist/build/autogen/Graphics/GL/Ext/NV/MultisampleFilterHint.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/MultisampleFilterHint.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.MultisampleFilterHint (
-  -- * Extension Support
-    gl_NV_multisample_filter_hint
-
-  -- * GL_NV_multisample_filter_hint
-  , pattern GL_MULTISAMPLE_FILTER_HINT_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_filter_hint.txt GL_NV_multisample_filter_hint> extension is available.
-
-gl_NV_multisample_filter_hint :: Bool
-gl_NV_multisample_filter_hint = member "GL_NV_multisample_filter_hint" extensions
-{-# NOINLINE gl_NV_multisample_filter_hint #-}
-
-pattern GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/NonSquareMatrices.hs b/dist/build/autogen/Graphics/GL/Ext/NV/NonSquareMatrices.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/NonSquareMatrices.hs
+++ /dev/null
@@ -1,148 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.NonSquareMatrices (
-  -- * Extension Support
-    gl_NV_non_square_matrices
-
-  -- * GL_NV_non_square_matrices
-  , glUniformMatrix2x3fvNV
-  , glUniformMatrix2x4fvNV
-  , glUniformMatrix3x2fvNV
-  , glUniformMatrix3x4fvNV
-  , glUniformMatrix4x2fvNV
-  , glUniformMatrix4x3fvNV
-  , pattern GL_FLOAT_MAT2x3_NV
-  , pattern GL_FLOAT_MAT2x4_NV
-  , pattern GL_FLOAT_MAT3x2_NV
-  , pattern GL_FLOAT_MAT3x4_NV
-  , pattern GL_FLOAT_MAT4x2_NV
-  , pattern GL_FLOAT_MAT4x3_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt GL_NV_non_square_matrices> extension is available.
-
-gl_NV_non_square_matrices :: Bool
-gl_NV_non_square_matrices = member "GL_NV_non_square_matrices" extensions
-{-# NOINLINE gl_NV_non_square_matrices #-}
-
--- | Usage: @'glUniformMatrix2x3fvNV' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix2x3fv'.
-
-
-glUniformMatrix2x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x3fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvNVFunPtr
-
-glUniformMatrix2x3fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x3fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fvNV")
-
-{-# NOINLINE glUniformMatrix2x3fvNVFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x4fvNV' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix2x4fv'.
-
-
-glUniformMatrix2x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x4fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvNVFunPtr
-
-glUniformMatrix2x4fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x4fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fvNV")
-
-{-# NOINLINE glUniformMatrix2x4fvNVFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x2fvNV' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix3x2fv'.
-
-
-glUniformMatrix3x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x2fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvNVFunPtr
-
-glUniformMatrix3x2fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x2fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fvNV")
-
-{-# NOINLINE glUniformMatrix3x2fvNVFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x4fvNV' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix3x4fv'.
-
-
-glUniformMatrix3x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x4fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvNVFunPtr
-
-glUniformMatrix3x4fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x4fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fvNV")
-
-{-# NOINLINE glUniformMatrix3x4fvNVFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x2fvNV' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix4x2fv'.
-
-
-glUniformMatrix4x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x2fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvNVFunPtr
-
-glUniformMatrix4x2fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x2fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fvNV")
-
-{-# NOINLINE glUniformMatrix4x2fvNVFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x3fvNV' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix4x3fv'.
-
-
-glUniformMatrix4x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x3fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvNVFunPtr
-
-glUniformMatrix4x3fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x3fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fvNV")
-
-{-# NOINLINE glUniformMatrix4x3fvNVFunPtr #-}
-
-pattern GL_FLOAT_MAT2x3_NV = 0x8B65
-
-pattern GL_FLOAT_MAT2x4_NV = 0x8B66
-
-pattern GL_FLOAT_MAT3x2_NV = 0x8B67
-
-pattern GL_FLOAT_MAT3x4_NV = 0x8B68
-
-pattern GL_FLOAT_MAT4x2_NV = 0x8B69
-
-pattern GL_FLOAT_MAT4x3_NV = 0x8B6A
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/OcclusionQuery.hs b/dist/build/autogen/Graphics/GL/Ext/NV/OcclusionQuery.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/OcclusionQuery.hs
+++ /dev/null
@@ -1,130 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.OcclusionQuery (
-  -- * Extension Support
-    gl_NV_occlusion_query
-
-  -- * GL_NV_occlusion_query
-  , glBeginOcclusionQueryNV
-  , glDeleteOcclusionQueriesNV
-  , glEndOcclusionQueryNV
-  , glGenOcclusionQueriesNV
-  , glGetOcclusionQueryivNV
-  , glGetOcclusionQueryuivNV
-  , glIsOcclusionQueryNV
-  , pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV
-  , pattern GL_PIXEL_COUNTER_BITS_NV
-  , pattern GL_PIXEL_COUNT_AVAILABLE_NV
-  , pattern GL_PIXEL_COUNT_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/occlusion_query.txt GL_NV_occlusion_query> extension is available.
-
-gl_NV_occlusion_query :: Bool
-gl_NV_occlusion_query = member "GL_NV_occlusion_query" extensions
-{-# NOINLINE gl_NV_occlusion_query #-}
-
--- | Usage: @'glBeginOcclusionQueryNV' id@
-
-
-glBeginOcclusionQueryNV :: MonadIO m => GLuint -> m ()
-glBeginOcclusionQueryNV = ffiuintIOV glBeginOcclusionQueryNVFunPtr
-
-glBeginOcclusionQueryNVFunPtr :: FunPtr (GLuint -> IO ())
-glBeginOcclusionQueryNVFunPtr = unsafePerformIO (getProcAddress "glBeginOcclusionQueryNV")
-
-{-# NOINLINE glBeginOcclusionQueryNVFunPtr #-}
-
--- | Usage: @'glDeleteOcclusionQueriesNV' n ids@
---
--- The length of @ids@ should be @n@.
-
-
-glDeleteOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteOcclusionQueriesNV = ffisizeiPtruintIOV glDeleteOcclusionQueriesNVFunPtr
-
-glDeleteOcclusionQueriesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteOcclusionQueriesNVFunPtr = unsafePerformIO (getProcAddress "glDeleteOcclusionQueriesNV")
-
-{-# NOINLINE glDeleteOcclusionQueriesNVFunPtr #-}
-
--- | Usage: @'glEndOcclusionQueryNV'@
-
-
-glEndOcclusionQueryNV :: MonadIO m => m ()
-glEndOcclusionQueryNV = ffiIOV glEndOcclusionQueryNVFunPtr
-
-glEndOcclusionQueryNVFunPtr :: FunPtr (IO ())
-glEndOcclusionQueryNVFunPtr = unsafePerformIO (getProcAddress "glEndOcclusionQueryNV")
-
-{-# NOINLINE glEndOcclusionQueryNVFunPtr #-}
-
--- | Usage: @'glGenOcclusionQueriesNV' n ids@
---
--- The length of @ids@ should be @n@.
-
-
-glGenOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenOcclusionQueriesNV = ffisizeiPtruintIOV glGenOcclusionQueriesNVFunPtr
-
-glGenOcclusionQueriesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenOcclusionQueriesNVFunPtr = unsafePerformIO (getProcAddress "glGenOcclusionQueriesNV")
-
-{-# NOINLINE glGenOcclusionQueriesNVFunPtr #-}
-
--- | Usage: @'glGetOcclusionQueryivNV' id pname params@
---
--- The parameter @pname@ is a @OcclusionQueryParameterNameNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetOcclusionQueryivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetOcclusionQueryivNV = ffiuintenumPtrintIOV glGetOcclusionQueryivNVFunPtr
-
-glGetOcclusionQueryivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetOcclusionQueryivNVFunPtr = unsafePerformIO (getProcAddress "glGetOcclusionQueryivNV")
-
-{-# NOINLINE glGetOcclusionQueryivNVFunPtr #-}
-
--- | Usage: @'glGetOcclusionQueryuivNV' id pname params@
---
--- The parameter @pname@ is a @OcclusionQueryParameterNameNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetOcclusionQueryuivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetOcclusionQueryuivNV = ffiuintenumPtruintIOV glGetOcclusionQueryuivNVFunPtr
-
-glGetOcclusionQueryuivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetOcclusionQueryuivNVFunPtr = unsafePerformIO (getProcAddress "glGetOcclusionQueryuivNV")
-
-{-# NOINLINE glGetOcclusionQueryuivNVFunPtr #-}
-
--- | Usage: @'glIsOcclusionQueryNV' id@
-
-
-glIsOcclusionQueryNV :: MonadIO m => GLuint -> m GLboolean
-glIsOcclusionQueryNV = ffiuintIOboolean glIsOcclusionQueryNVFunPtr
-
-glIsOcclusionQueryNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsOcclusionQueryNVFunPtr = unsafePerformIO (getProcAddress "glIsOcclusionQueryNV")
-
-{-# NOINLINE glIsOcclusionQueryNVFunPtr #-}
-
-pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865
-
-pattern GL_PIXEL_COUNTER_BITS_NV = 0x8864
-
-pattern GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867
-
-pattern GL_PIXEL_COUNT_NV = 0x8866
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PackedDepthStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PackedDepthStencil.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PackedDepthStencil (
-  -- * Extension Support
-    gl_NV_packed_depth_stencil
-
-  -- * GL_NV_packed_depth_stencil
-  , pattern GL_DEPTH_STENCIL_NV
-  , pattern GL_UNSIGNED_INT_24_8_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/packed_depth_stencil.txt GL_NV_packed_depth_stencil> extension is available.
-
-gl_NV_packed_depth_stencil :: Bool
-gl_NV_packed_depth_stencil = member "GL_NV_packed_depth_stencil" extensions
-{-# NOINLINE gl_NV_packed_depth_stencil #-}
-
-pattern GL_DEPTH_STENCIL_NV = 0x84F9
-
-pattern GL_UNSIGNED_INT_24_8_NV = 0x84FA
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ParameterBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ParameterBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ParameterBufferObject.hs
+++ /dev/null
@@ -1,85 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ParameterBufferObject (
-  -- * Extension Support
-    gl_NV_parameter_buffer_object
-
-  -- * GL_NV_parameter_buffer_object
-  , glProgramBufferParametersIivNV
-  , glProgramBufferParametersIuivNV
-  , glProgramBufferParametersfvNV
-  , pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV
-  , pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV
-  , pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV
-  , pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV
-  , pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object.txt GL_NV_parameter_buffer_object> extension is available.
-
-gl_NV_parameter_buffer_object :: Bool
-gl_NV_parameter_buffer_object = member "GL_NV_parameter_buffer_object" extensions
-{-# NOINLINE gl_NV_parameter_buffer_object #-}
-
--- | Usage: @'glProgramBufferParametersIivNV' target bindingIndex wordIndex count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count@.
-
-
-glProgramBufferParametersIivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
-glProgramBufferParametersIivNV = ffienumuintuintsizeiPtrintIOV glProgramBufferParametersIivNVFunPtr
-
-glProgramBufferParametersIivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-glProgramBufferParametersIivNVFunPtr = unsafePerformIO (getProcAddress "glProgramBufferParametersIivNV")
-
-{-# NOINLINE glProgramBufferParametersIivNVFunPtr #-}
-
--- | Usage: @'glProgramBufferParametersIuivNV' target bindingIndex wordIndex count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count@.
-
-
-glProgramBufferParametersIuivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glProgramBufferParametersIuivNV = ffienumuintuintsizeiPtruintIOV glProgramBufferParametersIuivNVFunPtr
-
-glProgramBufferParametersIuivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramBufferParametersIuivNVFunPtr = unsafePerformIO (getProcAddress "glProgramBufferParametersIuivNV")
-
-{-# NOINLINE glProgramBufferParametersIuivNVFunPtr #-}
-
--- | Usage: @'glProgramBufferParametersfvNV' target bindingIndex wordIndex count params@
---
--- The parameter @target@ is a @ProgramTarget@.
---
--- The length of @params@ should be @count@.
-
-
-glProgramBufferParametersfvNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramBufferParametersfvNV = ffienumuintuintsizeiPtrfloatIOV glProgramBufferParametersfvNVFunPtr
-
-glProgramBufferParametersfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramBufferParametersfvNVFunPtr = unsafePerformIO (getProcAddress "glProgramBufferParametersfvNV")
-
-{-# NOINLINE glProgramBufferParametersfvNVFunPtr #-}
-
-pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4
-
-pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3
-
-pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0
-
-pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1
-
-pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ParameterBufferObject2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ParameterBufferObject2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ParameterBufferObject2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ParameterBufferObject2 (
-  -- * Extension Support
-    gl_NV_parameter_buffer_object2
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object2.txt GL_NV_parameter_buffer_object2> extension is available.
-
-gl_NV_parameter_buffer_object2 :: Bool
-gl_NV_parameter_buffer_object2 = member "GL_NV_parameter_buffer_object2" extensions
-{-# NOINLINE gl_NV_parameter_buffer_object2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PathRendering.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PathRendering.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PathRendering.hs
+++ /dev/null
@@ -1,1601 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PathRendering (
-  -- * Extension Support
-    gl_NV_path_rendering
-
-  -- * GL_NV_path_rendering
-  , glCopyPathNV
-  , glCoverFillPathInstancedNV
-  , glCoverFillPathNV
-  , glCoverStrokePathInstancedNV
-  , glCoverStrokePathNV
-  , glDeletePathsNV
-  , glGenPathsNV
-  , glGetPathColorGenfvNV
-  , glGetPathColorGenivNV
-  , glGetPathCommandsNV
-  , glGetPathCoordsNV
-  , glGetPathDashArrayNV
-  , glGetPathLengthNV
-  , glGetPathMetricRangeNV
-  , glGetPathMetricsNV
-  , glGetPathParameterfvNV
-  , glGetPathParameterivNV
-  , glGetPathSpacingNV
-  , glGetPathTexGenfvNV
-  , glGetPathTexGenivNV
-  , glGetProgramResourcefvNV
-  , glInterpolatePathsNV
-  , glIsPathNV
-  , glIsPointInFillPathNV
-  , glIsPointInStrokePathNV
-  , glMatrixLoad3x2fNV
-  , glMatrixLoad3x3fNV
-  , glMatrixLoadTranspose3x3fNV
-  , glMatrixMult3x2fNV
-  , glMatrixMult3x3fNV
-  , glMatrixMultTranspose3x3fNV
-  , glPathColorGenNV
-  , glPathCommandsNV
-  , glPathCoordsNV
-  , glPathCoverDepthFuncNV
-  , glPathDashArrayNV
-  , glPathFogGenNV
-  , glPathGlyphIndexArrayNV
-  , glPathGlyphIndexRangeNV
-  , glPathGlyphRangeNV
-  , glPathGlyphsNV
-  , glPathMemoryGlyphIndexArrayNV
-  , glPathParameterfNV
-  , glPathParameterfvNV
-  , glPathParameteriNV
-  , glPathParameterivNV
-  , glPathStencilDepthOffsetNV
-  , glPathStencilFuncNV
-  , glPathStringNV
-  , glPathSubCommandsNV
-  , glPathSubCoordsNV
-  , glPathTexGenNV
-  , glPointAlongPathNV
-  , glProgramPathFragmentInputGenNV
-  , glStencilFillPathInstancedNV
-  , glStencilFillPathNV
-  , glStencilStrokePathInstancedNV
-  , glStencilStrokePathNV
-  , glStencilThenCoverFillPathInstancedNV
-  , glStencilThenCoverFillPathNV
-  , glStencilThenCoverStrokePathInstancedNV
-  , glStencilThenCoverStrokePathNV
-  , glTransformPathNV
-  , glWeightPathsNV
-  , pattern GL_2_BYTES_NV
-  , pattern GL_3_BYTES_NV
-  , pattern GL_4_BYTES_NV
-  , pattern GL_ACCUM_ADJACENT_PAIRS_NV
-  , pattern GL_ADJACENT_PAIRS_NV
-  , pattern GL_AFFINE_2D_NV
-  , pattern GL_AFFINE_3D_NV
-  , pattern GL_ARC_TO_NV
-  , pattern GL_BEVEL_NV
-  , pattern GL_BOLD_BIT_NV
-  , pattern GL_BOUNDING_BOX_NV
-  , pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV
-  , pattern GL_CIRCULAR_CCW_ARC_TO_NV
-  , pattern GL_CIRCULAR_CW_ARC_TO_NV
-  , pattern GL_CIRCULAR_TANGENT_ARC_TO_NV
-  , pattern GL_CLOSE_PATH_NV
-  , pattern GL_CONIC_CURVE_TO_NV
-  , pattern GL_CONSTANT_NV
-  , pattern GL_CONVEX_HULL_NV
-  , pattern GL_COUNT_DOWN_NV
-  , pattern GL_COUNT_UP_NV
-  , pattern GL_CUBIC_CURVE_TO_NV
-  , pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV
-  , pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV
-  , pattern GL_EYE_LINEAR_NV
-  , pattern GL_FILE_NAME_NV
-  , pattern GL_FIRST_TO_REST_NV
-  , pattern GL_FONT_ASCENDER_BIT_NV
-  , pattern GL_FONT_DESCENDER_BIT_NV
-  , pattern GL_FONT_GLYPHS_AVAILABLE_NV
-  , pattern GL_FONT_HAS_KERNING_BIT_NV
-  , pattern GL_FONT_HEIGHT_BIT_NV
-  , pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV
-  , pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV
-  , pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV
-  , pattern GL_FONT_TARGET_UNAVAILABLE_NV
-  , pattern GL_FONT_UNAVAILABLE_NV
-  , pattern GL_FONT_UNDERLINE_POSITION_BIT_NV
-  , pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV
-  , pattern GL_FONT_UNINTELLIGIBLE_NV
-  , pattern GL_FONT_UNITS_PER_EM_BIT_NV
-  , pattern GL_FONT_X_MAX_BOUNDS_BIT_NV
-  , pattern GL_FONT_X_MIN_BOUNDS_BIT_NV
-  , pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV
-  , pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV
-  , pattern GL_FRAGMENT_INPUT_NV
-  , pattern GL_GLYPH_HAS_KERNING_BIT_NV
-  , pattern GL_GLYPH_HEIGHT_BIT_NV
-  , pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV
-  , pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV
-  , pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV
-  , pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV
-  , pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV
-  , pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV
-  , pattern GL_GLYPH_WIDTH_BIT_NV
-  , pattern GL_HORIZONTAL_LINE_TO_NV
-  , pattern GL_ITALIC_BIT_NV
-  , pattern GL_LARGE_CCW_ARC_TO_NV
-  , pattern GL_LARGE_CW_ARC_TO_NV
-  , pattern GL_LINE_TO_NV
-  , pattern GL_MITER_REVERT_NV
-  , pattern GL_MITER_TRUNCATE_NV
-  , pattern GL_MOVE_TO_CONTINUES_NV
-  , pattern GL_MOVE_TO_NV
-  , pattern GL_MOVE_TO_RESETS_NV
-  , pattern GL_OBJECT_LINEAR_NV
-  , pattern GL_PATH_CLIENT_LENGTH_NV
-  , pattern GL_PATH_COMMAND_COUNT_NV
-  , pattern GL_PATH_COMPUTED_LENGTH_NV
-  , pattern GL_PATH_COORD_COUNT_NV
-  , pattern GL_PATH_COVER_DEPTH_FUNC_NV
-  , pattern GL_PATH_DASH_ARRAY_COUNT_NV
-  , pattern GL_PATH_DASH_CAPS_NV
-  , pattern GL_PATH_DASH_OFFSET_NV
-  , pattern GL_PATH_DASH_OFFSET_RESET_NV
-  , pattern GL_PATH_END_CAPS_NV
-  , pattern GL_PATH_ERROR_POSITION_NV
-  , pattern GL_PATH_FILL_BOUNDING_BOX_NV
-  , pattern GL_PATH_FILL_COVER_MODE_NV
-  , pattern GL_PATH_FILL_MASK_NV
-  , pattern GL_PATH_FILL_MODE_NV
-  , pattern GL_PATH_FOG_GEN_MODE_NV
-  , pattern GL_PATH_FORMAT_PS_NV
-  , pattern GL_PATH_FORMAT_SVG_NV
-  , pattern GL_PATH_GEN_COEFF_NV
-  , pattern GL_PATH_GEN_COLOR_FORMAT_NV
-  , pattern GL_PATH_GEN_COMPONENTS_NV
-  , pattern GL_PATH_GEN_MODE_NV
-  , pattern GL_PATH_INITIAL_DASH_CAP_NV
-  , pattern GL_PATH_INITIAL_END_CAP_NV
-  , pattern GL_PATH_JOIN_STYLE_NV
-  , pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV
-  , pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV
-  , pattern GL_PATH_MITER_LIMIT_NV
-  , pattern GL_PATH_MODELVIEW_MATRIX_NV
-  , pattern GL_PATH_MODELVIEW_NV
-  , pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV
-  , pattern GL_PATH_OBJECT_BOUNDING_BOX_NV
-  , pattern GL_PATH_PROJECTION_MATRIX_NV
-  , pattern GL_PATH_PROJECTION_NV
-  , pattern GL_PATH_PROJECTION_STACK_DEPTH_NV
-  , pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV
-  , pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV
-  , pattern GL_PATH_STENCIL_FUNC_NV
-  , pattern GL_PATH_STENCIL_REF_NV
-  , pattern GL_PATH_STENCIL_VALUE_MASK_NV
-  , pattern GL_PATH_STROKE_BOUNDING_BOX_NV
-  , pattern GL_PATH_STROKE_COVER_MODE_NV
-  , pattern GL_PATH_STROKE_MASK_NV
-  , pattern GL_PATH_STROKE_WIDTH_NV
-  , pattern GL_PATH_TERMINAL_DASH_CAP_NV
-  , pattern GL_PATH_TERMINAL_END_CAP_NV
-  , pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV
-  , pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV
-  , pattern GL_PRIMARY_COLOR
-  , pattern GL_PRIMARY_COLOR_NV
-  , pattern GL_QUADRATIC_CURVE_TO_NV
-  , pattern GL_RECT_NV
-  , pattern GL_RELATIVE_ARC_TO_NV
-  , pattern GL_RELATIVE_CONIC_CURVE_TO_NV
-  , pattern GL_RELATIVE_CUBIC_CURVE_TO_NV
-  , pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV
-  , pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV
-  , pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV
-  , pattern GL_RELATIVE_LINE_TO_NV
-  , pattern GL_RELATIVE_MOVE_TO_NV
-  , pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV
-  , pattern GL_RELATIVE_RECT_NV
-  , pattern GL_RELATIVE_ROUNDED_RECT2_NV
-  , pattern GL_RELATIVE_ROUNDED_RECT4_NV
-  , pattern GL_RELATIVE_ROUNDED_RECT8_NV
-  , pattern GL_RELATIVE_ROUNDED_RECT_NV
-  , pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV
-  , pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV
-  , pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV
-  , pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV
-  , pattern GL_RELATIVE_VERTICAL_LINE_TO_NV
-  , pattern GL_RESTART_PATH_NV
-  , pattern GL_ROUNDED_RECT2_NV
-  , pattern GL_ROUNDED_RECT4_NV
-  , pattern GL_ROUNDED_RECT8_NV
-  , pattern GL_ROUNDED_RECT_NV
-  , pattern GL_ROUND_NV
-  , pattern GL_SECONDARY_COLOR_NV
-  , pattern GL_SKIP_MISSING_GLYPH_NV
-  , pattern GL_SMALL_CCW_ARC_TO_NV
-  , pattern GL_SMALL_CW_ARC_TO_NV
-  , pattern GL_SMOOTH_CUBIC_CURVE_TO_NV
-  , pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV
-  , pattern GL_SQUARE_NV
-  , pattern GL_STANDARD_FONT_FORMAT_NV
-  , pattern GL_STANDARD_FONT_NAME_NV
-  , pattern GL_SYSTEM_FONT_NAME_NV
-  , pattern GL_TRANSLATE_2D_NV
-  , pattern GL_TRANSLATE_3D_NV
-  , pattern GL_TRANSLATE_X_NV
-  , pattern GL_TRANSLATE_Y_NV
-  , pattern GL_TRANSPOSE_AFFINE_2D_NV
-  , pattern GL_TRANSPOSE_AFFINE_3D_NV
-  , pattern GL_TRIANGULAR_NV
-  , pattern GL_USE_MISSING_GLYPH_NV
-  , pattern GL_UTF16_NV
-  , pattern GL_UTF8_NV
-  , pattern GL_VERTICAL_LINE_TO_NV
-) 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/NV/path_rendering.txt GL_NV_path_rendering> extension is available.
-
-gl_NV_path_rendering :: Bool
-gl_NV_path_rendering = member "GL_NV_path_rendering" extensions
-{-# NOINLINE gl_NV_path_rendering #-}
-
--- | Usage: @'glCopyPathNV' resultPath srcPath@
---
--- The parameter @resultPath@ is a @Path@.
---
--- The parameter @srcPath@ is a @Path@.
-
-
-glCopyPathNV :: MonadIO m => GLuint -> GLuint -> m ()
-glCopyPathNV = ffiuintuintIOV glCopyPathNVFunPtr
-
-glCopyPathNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glCopyPathNVFunPtr = unsafePerformIO (getProcAddress "glCopyPathNV")
-
-{-# NOINLINE glCopyPathNVFunPtr #-}
-
--- | Usage: @'glCoverFillPathInstancedNV' numPaths pathNameType paths pathBase coverMode transformType transformValues@
---
--- The parameter @pathNameType@ is a @PathElementType@.
---
--- The parameter @paths@ is a @PathElement@.
---
--- The parameter @pathBase@ is a @Path@.
---
--- The parameter @coverMode@ is a @PathCoverMode@.
---
--- The parameter @transformType@ is a @PathTransformType@.
---
--- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
---
--- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
-
-
-glCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glCoverFillPathInstancedNV = ffisizeienumPtrVuintenumenumPtrfloatIOV glCoverFillPathInstancedNVFunPtr
-
-glCoverFillPathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glCoverFillPathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glCoverFillPathInstancedNV")
-
-{-# NOINLINE glCoverFillPathInstancedNVFunPtr #-}
-
--- | Usage: @'glCoverFillPathNV' path coverMode@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @coverMode@ is a @PathCoverMode@.
-
-
-glCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> m ()
-glCoverFillPathNV = ffiuintenumIOV glCoverFillPathNVFunPtr
-
-glCoverFillPathNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glCoverFillPathNVFunPtr = unsafePerformIO (getProcAddress "glCoverFillPathNV")
-
-{-# NOINLINE glCoverFillPathNVFunPtr #-}
-
--- | Usage: @'glCoverStrokePathInstancedNV' numPaths pathNameType paths pathBase coverMode transformType transformValues@
---
--- The parameter @pathNameType@ is a @PathElementType@.
---
--- The parameter @paths@ is a @PathElement@.
---
--- The parameter @pathBase@ is a @Path@.
---
--- The parameter @coverMode@ is a @PathCoverMode@.
---
--- The parameter @transformType@ is a @PathTransformType@.
---
--- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
---
--- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
-
-
-glCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glCoverStrokePathInstancedNV = ffisizeienumPtrVuintenumenumPtrfloatIOV glCoverStrokePathInstancedNVFunPtr
-
-glCoverStrokePathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glCoverStrokePathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glCoverStrokePathInstancedNV")
-
-{-# NOINLINE glCoverStrokePathInstancedNVFunPtr #-}
-
--- | Usage: @'glCoverStrokePathNV' path coverMode@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @coverMode@ is a @PathCoverMode@.
-
-
-glCoverStrokePathNV :: MonadIO m => GLuint -> GLenum -> m ()
-glCoverStrokePathNV = ffiuintenumIOV glCoverStrokePathNVFunPtr
-
-glCoverStrokePathNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glCoverStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glCoverStrokePathNV")
-
-{-# NOINLINE glCoverStrokePathNVFunPtr #-}
-
--- | Usage: @'glDeletePathsNV' path range@
---
--- The parameter @path@ is a @Path@.
-
-
-glDeletePathsNV :: MonadIO m => GLuint -> GLsizei -> m ()
-glDeletePathsNV = ffiuintsizeiIOV glDeletePathsNVFunPtr
-
-glDeletePathsNVFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
-glDeletePathsNVFunPtr = unsafePerformIO (getProcAddress "glDeletePathsNV")
-
-{-# NOINLINE glDeletePathsNVFunPtr #-}
-
--- | Usage: @'glGenPathsNV' range@
-
-
-glGenPathsNV :: MonadIO m => GLsizei -> m GLuint
-glGenPathsNV = ffisizeiIOuint glGenPathsNVFunPtr
-
-glGenPathsNVFunPtr :: FunPtr (GLsizei -> IO GLuint)
-glGenPathsNVFunPtr = unsafePerformIO (getProcAddress "glGenPathsNV")
-
-{-# NOINLINE glGenPathsNVFunPtr #-}
-
--- | Usage: @'glGetPathColorGenfvNV' color pname value@
---
--- The parameter @color@ is a @PathColor@.
---
--- The parameter @pname@ is a @PathGenMode@.
---
--- The length of @value@ should be @COMPSIZE(pname)@.
-
-
-glGetPathColorGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetPathColorGenfvNV = ffienumenumPtrfloatIOV glGetPathColorGenfvNVFunPtr
-
-glGetPathColorGenfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetPathColorGenfvNVFunPtr = unsafePerformIO (getProcAddress "glGetPathColorGenfvNV")
-
-{-# NOINLINE glGetPathColorGenfvNVFunPtr #-}
-
--- | Usage: @'glGetPathColorGenivNV' color pname value@
---
--- The parameter @color@ is a @PathColor@.
---
--- The parameter @pname@ is a @PathGenMode@.
---
--- The length of @value@ should be @COMPSIZE(pname)@.
-
-
-glGetPathColorGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetPathColorGenivNV = ffienumenumPtrintIOV glGetPathColorGenivNVFunPtr
-
-glGetPathColorGenivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetPathColorGenivNVFunPtr = unsafePerformIO (getProcAddress "glGetPathColorGenivNV")
-
-{-# NOINLINE glGetPathColorGenivNVFunPtr #-}
-
--- | Usage: @'glGetPathCommandsNV' path commands@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @commands@ is a @PathCommand@.
---
--- The length of @commands@ should be @COMPSIZE(path)@.
-
-
-glGetPathCommandsNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glGetPathCommandsNV = ffiuintPtrubyteIOV glGetPathCommandsNVFunPtr
-
-glGetPathCommandsNVFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glGetPathCommandsNVFunPtr = unsafePerformIO (getProcAddress "glGetPathCommandsNV")
-
-{-# NOINLINE glGetPathCommandsNVFunPtr #-}
-
--- | Usage: @'glGetPathCoordsNV' path coords@
---
--- The parameter @path@ is a @Path@.
---
--- The length of @coords@ should be @COMPSIZE(path)@.
-
-
-glGetPathCoordsNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glGetPathCoordsNV = ffiuintPtrfloatIOV glGetPathCoordsNVFunPtr
-
-glGetPathCoordsNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glGetPathCoordsNVFunPtr = unsafePerformIO (getProcAddress "glGetPathCoordsNV")
-
-{-# NOINLINE glGetPathCoordsNVFunPtr #-}
-
--- | Usage: @'glGetPathDashArrayNV' path dashArray@
---
--- The parameter @path@ is a @Path@.
---
--- The length of @dashArray@ should be @COMPSIZE(path)@.
-
-
-glGetPathDashArrayNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glGetPathDashArrayNV = ffiuintPtrfloatIOV glGetPathDashArrayNVFunPtr
-
-glGetPathDashArrayNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glGetPathDashArrayNVFunPtr = unsafePerformIO (getProcAddress "glGetPathDashArrayNV")
-
-{-# NOINLINE glGetPathDashArrayNVFunPtr #-}
-
--- | Usage: @'glGetPathLengthNV' path startSegment numSegments@
---
--- The parameter @path@ is a @Path@.
-
-
-glGetPathLengthNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> m GLfloat
-glGetPathLengthNV = ffiuintsizeisizeiIOfloat glGetPathLengthNVFunPtr
-
-glGetPathLengthNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat)
-glGetPathLengthNVFunPtr = unsafePerformIO (getProcAddress "glGetPathLengthNV")
-
-{-# NOINLINE glGetPathLengthNVFunPtr #-}
-
--- | Usage: @'glGetPathMetricRangeNV' metricQueryMask firstPathName numPaths stride metrics@
---
--- The parameter @metricQueryMask@ is a @PathMetricMask@.
---
--- The parameter @firstPathName@ is a @Path@.
---
--- The length of @metrics@ should be @COMPSIZE(metricQueryMask,numPaths,stride)@.
-
-
-glGetPathMetricRangeNV :: MonadIO m => GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
-glGetPathMetricRangeNV = ffibitfielduintsizeisizeiPtrfloatIOV glGetPathMetricRangeNVFunPtr
-
-glGetPathMetricRangeNVFunPtr :: FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
-glGetPathMetricRangeNVFunPtr = unsafePerformIO (getProcAddress "glGetPathMetricRangeNV")
-
-{-# NOINLINE glGetPathMetricRangeNVFunPtr #-}
-
--- | Usage: @'glGetPathMetricsNV' metricQueryMask numPaths pathNameType paths pathBase stride metrics@
---
--- The parameter @metricQueryMask@ is a @PathMetricMask@.
---
--- The parameter @pathNameType@ is a @PathElementType@.
---
--- The parameter @paths@ is a @PathElement@.
---
--- The parameter @pathBase@ is a @Path@.
---
--- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
---
--- The length of @metrics@ should be @COMPSIZE(metricQueryMask,numPaths,stride)@.
-
-
-glGetPathMetricsNV :: MonadIO m => GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glGetPathMetricsNV = ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV glGetPathMetricsNVFunPtr
-
-glGetPathMetricsNVFunPtr :: FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetPathMetricsNVFunPtr = unsafePerformIO (getProcAddress "glGetPathMetricsNV")
-
-{-# NOINLINE glGetPathMetricsNVFunPtr #-}
-
--- | Usage: @'glGetPathParameterfvNV' path pname value@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @pname@ is a @PathParameter@.
---
--- The length of @value@ should be @4@.
-
-
-glGetPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetPathParameterfvNV = ffiuintenumPtrfloatIOV glGetPathParameterfvNVFunPtr
-
-glGetPathParameterfvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetPathParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetPathParameterfvNV")
-
-{-# NOINLINE glGetPathParameterfvNVFunPtr #-}
-
--- | Usage: @'glGetPathParameterivNV' path pname value@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @pname@ is a @PathParameter@.
---
--- The length of @value@ should be @4@.
-
-
-glGetPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetPathParameterivNV = ffiuintenumPtrintIOV glGetPathParameterivNVFunPtr
-
-glGetPathParameterivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetPathParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetPathParameterivNV")
-
-{-# NOINLINE glGetPathParameterivNVFunPtr #-}
-
--- | Usage: @'glGetPathSpacingNV' pathListMode numPaths pathNameType paths pathBase advanceScale kerningScale transformType returnedSpacing@
---
--- The parameter @pathListMode@ is a @PathListMode@.
---
--- The parameter @pathNameType@ is a @PathElementType@.
---
--- The parameter @paths@ is a @PathElement@.
---
--- The parameter @pathBase@ is a @Path@.
---
--- The parameter @transformType@ is a @PathTransformType@.
---
--- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
---
--- The length of @returnedSpacing@ should be @COMPSIZE(pathListMode,numPaths)@.
-
-
-glGetPathSpacingNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
-glGetPathSpacingNV = ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV glGetPathSpacingNVFunPtr
-
-glGetPathSpacingNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ())
-glGetPathSpacingNVFunPtr = unsafePerformIO (getProcAddress "glGetPathSpacingNV")
-
-{-# NOINLINE glGetPathSpacingNVFunPtr #-}
-
--- | Usage: @'glGetPathTexGenfvNV' texCoordSet pname value@
---
--- The parameter @texCoordSet@ is a @TextureUnit@.
---
--- The parameter @pname@ is a @PathGenMode@.
---
--- The length of @value@ should be @COMPSIZE(pname)@.
-
-
-glGetPathTexGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetPathTexGenfvNV = ffienumenumPtrfloatIOV glGetPathTexGenfvNVFunPtr
-
-glGetPathTexGenfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetPathTexGenfvNVFunPtr = unsafePerformIO (getProcAddress "glGetPathTexGenfvNV")
-
-{-# NOINLINE glGetPathTexGenfvNVFunPtr #-}
-
--- | Usage: @'glGetPathTexGenivNV' texCoordSet pname value@
---
--- The parameter @texCoordSet@ is a @TextureUnit@.
---
--- The parameter @pname@ is a @PathGenMode@.
---
--- The length of @value@ should be @COMPSIZE(pname)@.
-
-
-glGetPathTexGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetPathTexGenivNV = ffienumenumPtrintIOV glGetPathTexGenivNVFunPtr
-
-glGetPathTexGenivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetPathTexGenivNVFunPtr = unsafePerformIO (getProcAddress "glGetPathTexGenivNV")
-
-{-# NOINLINE glGetPathTexGenivNVFunPtr #-}
-
--- | Usage: @'glGetProgramResourcefvNV' program programInterface index propCount props bufSize length params@
-
-
-glGetProgramResourcefvNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
-glGetProgramResourcefvNV = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV glGetProgramResourcefvNVFunPtr
-
-glGetProgramResourcefvNVFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ())
-glGetProgramResourcefvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourcefvNV")
-
-{-# NOINLINE glGetProgramResourcefvNVFunPtr #-}
-
--- | Usage: @'glInterpolatePathsNV' resultPath pathA pathB weight@
---
--- The parameter @resultPath@ is a @Path@.
---
--- The parameter @pathA@ is a @Path@.
---
--- The parameter @pathB@ is a @Path@.
-
-
-glInterpolatePathsNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> m ()
-glInterpolatePathsNV = ffiuintuintuintfloatIOV glInterpolatePathsNVFunPtr
-
-glInterpolatePathsNVFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ())
-glInterpolatePathsNVFunPtr = unsafePerformIO (getProcAddress "glInterpolatePathsNV")
-
-{-# NOINLINE glInterpolatePathsNVFunPtr #-}
-
--- | Usage: @'glIsPathNV' path@
---
--- The parameter @path@ is a @Path@.
-
-
-glIsPathNV :: MonadIO m => GLuint -> m GLboolean
-glIsPathNV = ffiuintIOboolean glIsPathNVFunPtr
-
-glIsPathNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsPathNVFunPtr = unsafePerformIO (getProcAddress "glIsPathNV")
-
-{-# NOINLINE glIsPathNVFunPtr #-}
-
--- | Usage: @'glIsPointInFillPathNV' path mask x y@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
-
-
-glIsPointInFillPathNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
-glIsPointInFillPathNV = ffiuintuintfloatfloatIOboolean glIsPointInFillPathNVFunPtr
-
-glIsPointInFillPathNVFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean)
-glIsPointInFillPathNVFunPtr = unsafePerformIO (getProcAddress "glIsPointInFillPathNV")
-
-{-# NOINLINE glIsPointInFillPathNVFunPtr #-}
-
--- | Usage: @'glIsPointInStrokePathNV' path x y@
---
--- The parameter @path@ is a @Path@.
-
-
-glIsPointInStrokePathNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m GLboolean
-glIsPointInStrokePathNV = ffiuintfloatfloatIOboolean glIsPointInStrokePathNVFunPtr
-
-glIsPointInStrokePathNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean)
-glIsPointInStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glIsPointInStrokePathNV")
-
-{-# NOINLINE glIsPointInStrokePathNVFunPtr #-}
-
--- | Usage: @'glMatrixLoad3x2fNV' matrixMode m@
-
-
-glMatrixLoad3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixLoad3x2fNV = ffienumPtrfloatIOV glMatrixLoad3x2fNVFunPtr
-
-glMatrixLoad3x2fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixLoad3x2fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixLoad3x2fNV")
-
-{-# NOINLINE glMatrixLoad3x2fNVFunPtr #-}
-
--- | Usage: @'glMatrixLoad3x3fNV' matrixMode m@
-
-
-glMatrixLoad3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixLoad3x3fNV = ffienumPtrfloatIOV glMatrixLoad3x3fNVFunPtr
-
-glMatrixLoad3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixLoad3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixLoad3x3fNV")
-
-{-# NOINLINE glMatrixLoad3x3fNVFunPtr #-}
-
--- | Usage: @'glMatrixLoadTranspose3x3fNV' matrixMode m@
-
-
-glMatrixLoadTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixLoadTranspose3x3fNV = ffienumPtrfloatIOV glMatrixLoadTranspose3x3fNVFunPtr
-
-glMatrixLoadTranspose3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixLoadTranspose3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTranspose3x3fNV")
-
-{-# NOINLINE glMatrixLoadTranspose3x3fNVFunPtr #-}
-
--- | Usage: @'glMatrixMult3x2fNV' matrixMode m@
-
-
-glMatrixMult3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixMult3x2fNV = ffienumPtrfloatIOV glMatrixMult3x2fNVFunPtr
-
-glMatrixMult3x2fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixMult3x2fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixMult3x2fNV")
-
-{-# NOINLINE glMatrixMult3x2fNVFunPtr #-}
-
--- | Usage: @'glMatrixMult3x3fNV' matrixMode m@
-
-
-glMatrixMult3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixMult3x3fNV = ffienumPtrfloatIOV glMatrixMult3x3fNVFunPtr
-
-glMatrixMult3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixMult3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixMult3x3fNV")
-
-{-# NOINLINE glMatrixMult3x3fNVFunPtr #-}
-
--- | Usage: @'glMatrixMultTranspose3x3fNV' matrixMode m@
-
-
-glMatrixMultTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMatrixMultTranspose3x3fNV = ffienumPtrfloatIOV glMatrixMultTranspose3x3fNVFunPtr
-
-glMatrixMultTranspose3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMatrixMultTranspose3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTranspose3x3fNV")
-
-{-# NOINLINE glMatrixMultTranspose3x3fNVFunPtr #-}
-
--- | Usage: @'glPathColorGenNV' color genMode colorFormat coeffs@
---
--- The parameter @color@ is a @PathColor@.
---
--- The parameter @genMode@ is a @PathGenMode@.
---
--- The parameter @colorFormat@ is a @PathColorFormat@.
---
--- The length of @coeffs@ should be @COMPSIZE(genMode,colorFormat)@.
-
-
-glPathColorGenNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glPathColorGenNV = ffienumenumenumPtrfloatIOV glPathColorGenNVFunPtr
-
-glPathColorGenNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glPathColorGenNVFunPtr = unsafePerformIO (getProcAddress "glPathColorGenNV")
-
-{-# NOINLINE glPathColorGenNVFunPtr #-}
-
--- | Usage: @'glPathCommandsNV' path numCommands commands numCoords coordType coords@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @commands@ is a @PathCommand@.
---
--- The parameter @coordType@ is a @PathCoordType@.
---
--- The length of @commands@ should be @numCommands@.
---
--- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
-
-
-glPathCommandsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
-glPathCommandsNV = ffiuintsizeiPtrubytesizeienumPtrVIOV glPathCommandsNVFunPtr
-
-glPathCommandsNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ())
-glPathCommandsNVFunPtr = unsafePerformIO (getProcAddress "glPathCommandsNV")
-
-{-# NOINLINE glPathCommandsNVFunPtr #-}
-
--- | Usage: @'glPathCoordsNV' path numCoords coordType coords@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @coordType@ is a @PathCoordType@.
---
--- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
-
-
-glPathCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
-glPathCoordsNV = ffiuintsizeienumPtrVIOV glPathCoordsNVFunPtr
-
-glPathCoordsNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
-glPathCoordsNVFunPtr = unsafePerformIO (getProcAddress "glPathCoordsNV")
-
-{-# NOINLINE glPathCoordsNVFunPtr #-}
-
--- | Usage: @'glPathCoverDepthFuncNV' func@
---
--- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
-
-
-glPathCoverDepthFuncNV :: MonadIO m => GLenum -> m ()
-glPathCoverDepthFuncNV = ffienumIOV glPathCoverDepthFuncNVFunPtr
-
-glPathCoverDepthFuncNVFunPtr :: FunPtr (GLenum -> IO ())
-glPathCoverDepthFuncNVFunPtr = unsafePerformIO (getProcAddress "glPathCoverDepthFuncNV")
-
-{-# NOINLINE glPathCoverDepthFuncNVFunPtr #-}
-
--- | Usage: @'glPathDashArrayNV' path dashCount dashArray@
---
--- The parameter @path@ is a @Path@.
---
--- The length of @dashArray@ should be @dashCount@.
-
-
-glPathDashArrayNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glPathDashArrayNV = ffiuintsizeiPtrfloatIOV glPathDashArrayNVFunPtr
-
-glPathDashArrayNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glPathDashArrayNVFunPtr = unsafePerformIO (getProcAddress "glPathDashArrayNV")
-
-{-# NOINLINE glPathDashArrayNVFunPtr #-}
-
--- | Usage: @'glPathFogGenNV' genMode@
---
--- The parameter @genMode@ is a @PathGenMode@.
-
-
-glPathFogGenNV :: MonadIO m => GLenum -> m ()
-glPathFogGenNV = ffienumIOV glPathFogGenNVFunPtr
-
-glPathFogGenNVFunPtr :: FunPtr (GLenum -> IO ())
-glPathFogGenNVFunPtr = unsafePerformIO (getProcAddress "glPathFogGenNV")
-
-{-# NOINLINE glPathFogGenNVFunPtr #-}
-
--- | Usage: @'glPathGlyphIndexArrayNV' firstPathName fontTarget fontName fontStyle firstGlyphIndex numGlyphs pathParameterTemplate emScale@
-
-
-glPathGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
-glPathGlyphIndexArrayNV = ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum glPathGlyphIndexArrayNVFunPtr
-
-glPathGlyphIndexArrayNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
-glPathGlyphIndexArrayNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphIndexArrayNV")
-
-{-# NOINLINE glPathGlyphIndexArrayNVFunPtr #-}
-
--- | Usage: @'glPathGlyphIndexRangeNV' fontTarget fontName fontStyle pathParameterTemplate emScale baseAndCount@
-
-
-glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
-glPathGlyphIndexRangeNV = ffienumPtrVbitfielduintfloatPtruintIOenum glPathGlyphIndexRangeNVFunPtr
-
-glPathGlyphIndexRangeNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum)
-glPathGlyphIndexRangeNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphIndexRangeNV")
-
-{-# NOINLINE glPathGlyphIndexRangeNVFunPtr #-}
-
--- | Usage: @'glPathGlyphRangeNV' firstPathName fontTarget fontName fontStyle firstGlyph numGlyphs handleMissingGlyphs pathParameterTemplate emScale@
---
--- The parameter @firstPathName@ is a @Path@.
---
--- The parameter @fontTarget@ is a @PathFontTarget@.
---
--- The parameter @fontStyle@ is a @PathFontStyle@.
---
--- The parameter @handleMissingGlyphs@ is a @PathHandleMissingGlyphs@.
---
--- The parameter @pathParameterTemplate@ is a @Path@.
---
--- The length of @fontName@ should be @COMPSIZE(fontTarget,fontName)@.
-
-
-glPathGlyphRangeNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
-glPathGlyphRangeNV = ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV glPathGlyphRangeNVFunPtr
-
-glPathGlyphRangeNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ())
-glPathGlyphRangeNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphRangeNV")
-
-{-# NOINLINE glPathGlyphRangeNVFunPtr #-}
-
--- | Usage: @'glPathGlyphsNV' firstPathName fontTarget fontName fontStyle numGlyphs type charcodes handleMissingGlyphs pathParameterTemplate emScale@
---
--- The parameter @firstPathName@ is a @Path@.
---
--- The parameter @fontTarget@ is a @PathFontTarget@.
---
--- The parameter @fontStyle@ is a @PathFontStyle@.
---
--- The parameter @type@ is a @PathElementType@.
---
--- The parameter @handleMissingGlyphs@ is a @PathHandleMissingGlyphs@.
---
--- The parameter @pathParameterTemplate@ is a @Path@.
---
--- The length of @fontName@ should be @COMPSIZE(fontTarget,fontName)@.
---
--- The length of @charcodes@ should be @COMPSIZE(numGlyphs,type,charcodes)@.
-
-
-glPathGlyphsNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> m ()
-glPathGlyphsNV = ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV glPathGlyphsNVFunPtr
-
-glPathGlyphsNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ())
-glPathGlyphsNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphsNV")
-
-{-# NOINLINE glPathGlyphsNVFunPtr #-}
-
--- | Usage: @'glPathMemoryGlyphIndexArrayNV' firstPathName fontTarget fontSize fontData faceIndex firstGlyphIndex numGlyphs pathParameterTemplate emScale@
-
-
-glPathMemoryGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
-glPathMemoryGlyphIndexArrayNV = ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum glPathMemoryGlyphIndexArrayNVFunPtr
-
-glPathMemoryGlyphIndexArrayNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
-glPathMemoryGlyphIndexArrayNVFunPtr = unsafePerformIO (getProcAddress "glPathMemoryGlyphIndexArrayNV")
-
-{-# NOINLINE glPathMemoryGlyphIndexArrayNVFunPtr #-}
-
--- | Usage: @'glPathParameterfNV' path pname value@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @pname@ is a @PathParameter@.
-
-
-glPathParameterfNV :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glPathParameterfNV = ffiuintenumfloatIOV glPathParameterfNVFunPtr
-
-glPathParameterfNVFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glPathParameterfNVFunPtr = unsafePerformIO (getProcAddress "glPathParameterfNV")
-
-{-# NOINLINE glPathParameterfNVFunPtr #-}
-
--- | Usage: @'glPathParameterfvNV' path pname value@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @pname@ is a @PathParameter@.
---
--- The length of @value@ should be @COMPSIZE(pname)@.
-
-
-glPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glPathParameterfvNV = ffiuintenumPtrfloatIOV glPathParameterfvNVFunPtr
-
-glPathParameterfvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glPathParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glPathParameterfvNV")
-
-{-# NOINLINE glPathParameterfvNVFunPtr #-}
-
--- | Usage: @'glPathParameteriNV' path pname value@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @pname@ is a @PathParameter@.
-
-
-glPathParameteriNV :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glPathParameteriNV = ffiuintenumintIOV glPathParameteriNVFunPtr
-
-glPathParameteriNVFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glPathParameteriNVFunPtr = unsafePerformIO (getProcAddress "glPathParameteriNV")
-
-{-# NOINLINE glPathParameteriNVFunPtr #-}
-
--- | Usage: @'glPathParameterivNV' path pname value@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @pname@ is a @PathParameter@.
---
--- The length of @value@ should be @COMPSIZE(pname)@.
-
-
-glPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glPathParameterivNV = ffiuintenumPtrintIOV glPathParameterivNVFunPtr
-
-glPathParameterivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glPathParameterivNVFunPtr = unsafePerformIO (getProcAddress "glPathParameterivNV")
-
-{-# NOINLINE glPathParameterivNVFunPtr #-}
-
--- | Usage: @'glPathStencilDepthOffsetNV' factor units@
-
-
-glPathStencilDepthOffsetNV :: MonadIO m => GLfloat -> GLfloat -> m ()
-glPathStencilDepthOffsetNV = ffifloatfloatIOV glPathStencilDepthOffsetNVFunPtr
-
-glPathStencilDepthOffsetNVFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glPathStencilDepthOffsetNVFunPtr = unsafePerformIO (getProcAddress "glPathStencilDepthOffsetNV")
-
-{-# NOINLINE glPathStencilDepthOffsetNVFunPtr #-}
-
--- | Usage: @'glPathStencilFuncNV' func ref mask@
---
--- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- The parameter @ref@ is a @ClampedStencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
-
-
-glPathStencilFuncNV :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
-glPathStencilFuncNV = ffienumintuintIOV glPathStencilFuncNVFunPtr
-
-glPathStencilFuncNVFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
-glPathStencilFuncNVFunPtr = unsafePerformIO (getProcAddress "glPathStencilFuncNV")
-
-{-# NOINLINE glPathStencilFuncNVFunPtr #-}
-
--- | Usage: @'glPathStringNV' path format length pathString@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @format@ is a @PathStringFormat@.
---
--- The length of @pathString@ should be @length@.
-
-
-glPathStringNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr () -> m ()
-glPathStringNV = ffiuintenumsizeiPtrVIOV glPathStringNVFunPtr
-
-glPathStringNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glPathStringNVFunPtr = unsafePerformIO (getProcAddress "glPathStringNV")
-
-{-# NOINLINE glPathStringNVFunPtr #-}
-
--- | Usage: @'glPathSubCommandsNV' path commandStart commandsToDelete numCommands commands numCoords coordType coords@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @commands@ is a @PathCommand@.
---
--- The parameter @coordType@ is a @PathCoordType@.
---
--- The length of @commands@ should be @numCommands@.
---
--- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
-
-
-glPathSubCommandsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
-glPathSubCommandsNV = ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV glPathSubCommandsNVFunPtr
-
-glPathSubCommandsNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ())
-glPathSubCommandsNVFunPtr = unsafePerformIO (getProcAddress "glPathSubCommandsNV")
-
-{-# NOINLINE glPathSubCommandsNVFunPtr #-}
-
--- | Usage: @'glPathSubCoordsNV' path coordStart numCoords coordType coords@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @coordType@ is a @PathCoordType@.
---
--- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
-
-
-glPathSubCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> m ()
-glPathSubCoordsNV = ffiuintsizeisizeienumPtrVIOV glPathSubCoordsNVFunPtr
-
-glPathSubCoordsNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ())
-glPathSubCoordsNVFunPtr = unsafePerformIO (getProcAddress "glPathSubCoordsNV")
-
-{-# NOINLINE glPathSubCoordsNVFunPtr #-}
-
--- | Usage: @'glPathTexGenNV' texCoordSet genMode components coeffs@
---
--- The parameter @texCoordSet@ is a @PathColor@.
---
--- The parameter @genMode@ is a @PathGenMode@.
---
--- The length of @coeffs@ should be @COMPSIZE(genMode,components)@.
-
-
-glPathTexGenNV :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()
-glPathTexGenNV = ffienumenumintPtrfloatIOV glPathTexGenNVFunPtr
-
-glPathTexGenNVFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ())
-glPathTexGenNVFunPtr = unsafePerformIO (getProcAddress "glPathTexGenNV")
-
-{-# NOINLINE glPathTexGenNVFunPtr #-}
-
--- | Usage: @'glPointAlongPathNV' path startSegment numSegments distance x y tangentX tangentY@
---
--- The parameter @path@ is a @Path@.
---
--- The length of @x@ should be @1@.
---
--- The length of @y@ should be @1@.
---
--- The length of @tangentX@ should be @1@.
---
--- The length of @tangentY@ should be @1@.
-
-
-glPointAlongPathNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
-glPointAlongPathNV = ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean glPointAlongPathNVFunPtr
-
-glPointAlongPathNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean)
-glPointAlongPathNVFunPtr = unsafePerformIO (getProcAddress "glPointAlongPathNV")
-
-{-# NOINLINE glPointAlongPathNVFunPtr #-}
-
--- | Usage: @'glProgramPathFragmentInputGenNV' program location genMode components coeffs@
-
-
-glProgramPathFragmentInputGenNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
-glProgramPathFragmentInputGenNV = ffiuintintenumintPtrfloatIOV glProgramPathFragmentInputGenNVFunPtr
-
-glProgramPathFragmentInputGenNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
-glProgramPathFragmentInputGenNVFunPtr = unsafePerformIO (getProcAddress "glProgramPathFragmentInputGenNV")
-
-{-# NOINLINE glProgramPathFragmentInputGenNVFunPtr #-}
-
--- | Usage: @'glStencilFillPathInstancedNV' numPaths pathNameType paths pathBase fillMode mask transformType transformValues@
---
--- The parameter @pathNameType@ is a @PathElementType@.
---
--- The parameter @paths@ is a @PathElement@.
---
--- The parameter @pathBase@ is a @Path@.
---
--- The parameter @fillMode@ is a @PathFillMode@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- The parameter @transformType@ is a @PathTransformType@.
---
--- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
---
--- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
-
-
-glStencilFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-glStencilFillPathInstancedNV = ffisizeienumPtrVuintenumuintenumPtrfloatIOV glStencilFillPathInstancedNVFunPtr
-
-glStencilFillPathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glStencilFillPathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilFillPathInstancedNV")
-
-{-# NOINLINE glStencilFillPathInstancedNVFunPtr #-}
-
--- | Usage: @'glStencilFillPathNV' path fillMode mask@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @fillMode@ is a @PathFillMode@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
-
-
-glStencilFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
-glStencilFillPathNV = ffiuintenumuintIOV glStencilFillPathNVFunPtr
-
-glStencilFillPathNVFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
-glStencilFillPathNVFunPtr = unsafePerformIO (getProcAddress "glStencilFillPathNV")
-
-{-# NOINLINE glStencilFillPathNVFunPtr #-}
-
--- | Usage: @'glStencilStrokePathInstancedNV' numPaths pathNameType paths pathBase reference mask transformType transformValues@
---
--- The parameter @pathNameType@ is a @PathElementType@.
---
--- The parameter @paths@ is a @PathElement@.
---
--- The parameter @pathBase@ is a @Path@.
---
--- The parameter @reference@ is a @StencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- The parameter @transformType@ is a @PathTransformType@.
---
--- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
---
--- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
-
-
-glStencilStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-glStencilStrokePathInstancedNV = ffisizeienumPtrVuintintuintenumPtrfloatIOV glStencilStrokePathInstancedNVFunPtr
-
-glStencilStrokePathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glStencilStrokePathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilStrokePathInstancedNV")
-
-{-# NOINLINE glStencilStrokePathInstancedNVFunPtr #-}
-
--- | Usage: @'glStencilStrokePathNV' path reference mask@
---
--- The parameter @path@ is a @Path@.
---
--- The parameter @reference@ is a @StencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
-
-
-glStencilStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glStencilStrokePathNV = ffiuintintuintIOV glStencilStrokePathNVFunPtr
-
-glStencilStrokePathNVFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glStencilStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glStencilStrokePathNV")
-
-{-# NOINLINE glStencilStrokePathNVFunPtr #-}
-
--- | Usage: @'glStencilThenCoverFillPathInstancedNV' numPaths pathNameType paths pathBase fillMode mask coverMode transformType transformValues@
-
-
-glStencilThenCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glStencilThenCoverFillPathInstancedNV = ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV glStencilThenCoverFillPathInstancedNVFunPtr
-
-glStencilThenCoverFillPathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glStencilThenCoverFillPathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverFillPathInstancedNV")
-
-{-# NOINLINE glStencilThenCoverFillPathInstancedNVFunPtr #-}
-
--- | Usage: @'glStencilThenCoverFillPathNV' path fillMode mask coverMode@
-
-
-glStencilThenCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> m ()
-glStencilThenCoverFillPathNV = ffiuintenumuintenumIOV glStencilThenCoverFillPathNVFunPtr
-
-glStencilThenCoverFillPathNVFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ())
-glStencilThenCoverFillPathNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverFillPathNV")
-
-{-# NOINLINE glStencilThenCoverFillPathNVFunPtr #-}
-
--- | Usage: @'glStencilThenCoverStrokePathInstancedNV' numPaths pathNameType paths pathBase reference mask coverMode transformType transformValues@
-
-
-glStencilThenCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glStencilThenCoverStrokePathInstancedNV = ffisizeienumPtrVuintintuintenumenumPtrfloatIOV glStencilThenCoverStrokePathInstancedNVFunPtr
-
-glStencilThenCoverStrokePathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glStencilThenCoverStrokePathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverStrokePathInstancedNV")
-
-{-# NOINLINE glStencilThenCoverStrokePathInstancedNVFunPtr #-}
-
--- | Usage: @'glStencilThenCoverStrokePathNV' path reference mask coverMode@
-
-
-glStencilThenCoverStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> GLenum -> m ()
-glStencilThenCoverStrokePathNV = ffiuintintuintenumIOV glStencilThenCoverStrokePathNVFunPtr
-
-glStencilThenCoverStrokePathNVFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ())
-glStencilThenCoverStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverStrokePathNV")
-
-{-# NOINLINE glStencilThenCoverStrokePathNVFunPtr #-}
-
--- | Usage: @'glTransformPathNV' resultPath srcPath transformType transformValues@
---
--- The parameter @resultPath@ is a @Path@.
---
--- The parameter @srcPath@ is a @Path@.
---
--- The parameter @transformType@ is a @PathTransformType@.
---
--- The length of @transformValues@ should be @COMPSIZE(transformType)@.
-
-
-glTransformPathNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-glTransformPathNV = ffiuintuintenumPtrfloatIOV glTransformPathNVFunPtr
-
-glTransformPathNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glTransformPathNVFunPtr = unsafePerformIO (getProcAddress "glTransformPathNV")
-
-{-# NOINLINE glTransformPathNVFunPtr #-}
-
--- | Usage: @'glWeightPathsNV' resultPath numPaths paths weights@
---
--- The parameter @resultPath@ is a @Path@.
---
--- The parameter @paths@ is a @Path@.
---
--- The length of @paths@ should be @numPaths@.
---
--- The length of @weights@ should be @numPaths@.
-
-
-glWeightPathsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
-glWeightPathsNV = ffiuintsizeiPtruintPtrfloatIOV glWeightPathsNVFunPtr
-
-glWeightPathsNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
-glWeightPathsNVFunPtr = unsafePerformIO (getProcAddress "glWeightPathsNV")
-
-{-# NOINLINE glWeightPathsNVFunPtr #-}
-
-pattern GL_2_BYTES_NV = 0x1407
-
-pattern GL_3_BYTES_NV = 0x1408
-
-pattern GL_4_BYTES_NV = 0x1409
-
-pattern GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD
-
-pattern GL_ADJACENT_PAIRS_NV = 0x90AE
-
-pattern GL_AFFINE_2D_NV = 0x9092
-
-pattern GL_AFFINE_3D_NV = 0x9094
-
-pattern GL_ARC_TO_NV = 0xFE
-
-pattern GL_BEVEL_NV = 0x90A6
-
-pattern GL_BOLD_BIT_NV = 0x01
-
-pattern GL_BOUNDING_BOX_NV = 0x908D
-
-pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C
-
-pattern GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8
-
-pattern GL_CIRCULAR_CW_ARC_TO_NV = 0xFA
-
-pattern GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC
-
-pattern GL_CLOSE_PATH_NV = 0x00
-
-pattern GL_CONIC_CURVE_TO_NV = 0x1A
-
-pattern GL_CONSTANT_NV = 0x8576
-
-pattern GL_CONVEX_HULL_NV = 0x908B
-
-pattern GL_COUNT_DOWN_NV = 0x9089
-
-pattern GL_COUNT_UP_NV = 0x9088
-
-pattern GL_CUBIC_CURVE_TO_NV = 0x0C
-
-pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2
-
-pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4
-
-pattern GL_EYE_LINEAR_NV = 0x2400
-
-pattern GL_FILE_NAME_NV = 0x9074
-
-pattern GL_FIRST_TO_REST_NV = 0x90AF
-
-pattern GL_FONT_ASCENDER_BIT_NV = 0x00200000
-
-pattern GL_FONT_DESCENDER_BIT_NV = 0x00400000
-
-pattern GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368
-
-pattern GL_FONT_HAS_KERNING_BIT_NV = 0x10000000
-
-pattern GL_FONT_HEIGHT_BIT_NV = 0x00800000
-
-pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000
-
-pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000
-
-pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000
-
-pattern GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369
-
-pattern GL_FONT_UNAVAILABLE_NV = 0x936A
-
-pattern GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000
-
-pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000
-
-pattern GL_FONT_UNINTELLIGIBLE_NV = 0x936B
-
-pattern GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000
-
-pattern GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000
-
-pattern GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000
-
-pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000
-
-pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000
-
-pattern GL_FRAGMENT_INPUT_NV = 0x936D
-
-pattern GL_GLYPH_HAS_KERNING_BIT_NV = 0x100
-
-pattern GL_GLYPH_HEIGHT_BIT_NV = 0x02
-
-pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10
-
-pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04
-
-pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08
-
-pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80
-
-pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20
-
-pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40
-
-pattern GL_GLYPH_WIDTH_BIT_NV = 0x01
-
-pattern GL_HORIZONTAL_LINE_TO_NV = 0x06
-
-pattern GL_ITALIC_BIT_NV = 0x02
-
-pattern GL_LARGE_CCW_ARC_TO_NV = 0x16
-
-pattern GL_LARGE_CW_ARC_TO_NV = 0x18
-
-pattern GL_LINE_TO_NV = 0x04
-
-pattern GL_MITER_REVERT_NV = 0x90A7
-
-pattern GL_MITER_TRUNCATE_NV = 0x90A8
-
-pattern GL_MOVE_TO_CONTINUES_NV = 0x90B6
-
-pattern GL_MOVE_TO_NV = 0x02
-
-pattern GL_MOVE_TO_RESETS_NV = 0x90B5
-
-pattern GL_OBJECT_LINEAR_NV = 0x2401
-
-pattern GL_PATH_CLIENT_LENGTH_NV = 0x907F
-
-pattern GL_PATH_COMMAND_COUNT_NV = 0x909D
-
-pattern GL_PATH_COMPUTED_LENGTH_NV = 0x90A0
-
-pattern GL_PATH_COORD_COUNT_NV = 0x909E
-
-pattern GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF
-
-pattern GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F
-
-pattern GL_PATH_DASH_CAPS_NV = 0x907B
-
-pattern GL_PATH_DASH_OFFSET_NV = 0x907E
-
-pattern GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4
-
-pattern GL_PATH_END_CAPS_NV = 0x9076
-
-pattern GL_PATH_ERROR_POSITION_NV = 0x90AB
-
-pattern GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1
-
-pattern GL_PATH_FILL_COVER_MODE_NV = 0x9082
-
-pattern GL_PATH_FILL_MASK_NV = 0x9081
-
-pattern GL_PATH_FILL_MODE_NV = 0x9080
-
-pattern GL_PATH_FOG_GEN_MODE_NV = 0x90AC
-
-pattern GL_PATH_FORMAT_PS_NV = 0x9071
-
-pattern GL_PATH_FORMAT_SVG_NV = 0x9070
-
-pattern GL_PATH_GEN_COEFF_NV = 0x90B1
-
-pattern GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2
-
-pattern GL_PATH_GEN_COMPONENTS_NV = 0x90B3
-
-pattern GL_PATH_GEN_MODE_NV = 0x90B0
-
-pattern GL_PATH_INITIAL_DASH_CAP_NV = 0x907C
-
-pattern GL_PATH_INITIAL_END_CAP_NV = 0x9077
-
-pattern GL_PATH_JOIN_STYLE_NV = 0x9079
-
-pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36
-
-pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38
-
-pattern GL_PATH_MITER_LIMIT_NV = 0x907A
-
-pattern GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6
-
-pattern GL_PATH_MODELVIEW_NV = 0x1700
-
-pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3
-
-pattern GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A
-
-pattern GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7
-
-pattern GL_PATH_PROJECTION_NV = 0x1701
-
-pattern GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4
-
-pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD
-
-pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE
-
-pattern GL_PATH_STENCIL_FUNC_NV = 0x90B7
-
-pattern GL_PATH_STENCIL_REF_NV = 0x90B8
-
-pattern GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9
-
-pattern GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2
-
-pattern GL_PATH_STROKE_COVER_MODE_NV = 0x9083
-
-pattern GL_PATH_STROKE_MASK_NV = 0x9084
-
-pattern GL_PATH_STROKE_WIDTH_NV = 0x9075
-
-pattern GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D
-
-pattern GL_PATH_TERMINAL_END_CAP_NV = 0x9078
-
-pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3
-
-pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4
-
-pattern GL_QUADRATIC_CURVE_TO_NV = 0x0A
-
-pattern GL_RECT_NV = 0xF6
-
-pattern GL_RELATIVE_ARC_TO_NV = 0xFF
-
-pattern GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B
-
-pattern GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D
-
-pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07
-
-pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17
-
-pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19
-
-pattern GL_RELATIVE_LINE_TO_NV = 0x05
-
-pattern GL_RELATIVE_MOVE_TO_NV = 0x03
-
-pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B
-
-pattern GL_RELATIVE_RECT_NV = 0xF7
-
-pattern GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB
-
-pattern GL_RELATIVE_ROUNDED_RECT4_NV = 0xED
-
-pattern GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF
-
-pattern GL_RELATIVE_ROUNDED_RECT_NV = 0xE9
-
-pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13
-
-pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15
-
-pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11
-
-pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F
-
-pattern GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09
-
-pattern GL_RESTART_PATH_NV = 0xF0
-
-pattern GL_ROUNDED_RECT2_NV = 0xEA
-
-pattern GL_ROUNDED_RECT4_NV = 0xEC
-
-pattern GL_ROUNDED_RECT8_NV = 0xEE
-
-pattern GL_ROUNDED_RECT_NV = 0xE8
-
-pattern GL_ROUND_NV = 0x90A4
-
-pattern GL_SKIP_MISSING_GLYPH_NV = 0x90A9
-
-pattern GL_SMALL_CCW_ARC_TO_NV = 0x12
-
-pattern GL_SMALL_CW_ARC_TO_NV = 0x14
-
-pattern GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10
-
-pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E
-
-pattern GL_SQUARE_NV = 0x90A3
-
-pattern GL_STANDARD_FONT_FORMAT_NV = 0x936C
-
-pattern GL_STANDARD_FONT_NAME_NV = 0x9072
-
-pattern GL_SYSTEM_FONT_NAME_NV = 0x9073
-
-pattern GL_TRANSLATE_2D_NV = 0x9090
-
-pattern GL_TRANSLATE_3D_NV = 0x9091
-
-pattern GL_TRANSLATE_X_NV = 0x908E
-
-pattern GL_TRANSLATE_Y_NV = 0x908F
-
-pattern GL_TRANSPOSE_AFFINE_2D_NV = 0x9096
-
-pattern GL_TRANSPOSE_AFFINE_3D_NV = 0x9098
-
-pattern GL_TRIANGULAR_NV = 0x90A5
-
-pattern GL_USE_MISSING_GLYPH_NV = 0x90AA
-
-pattern GL_UTF16_NV = 0x909B
-
-pattern GL_UTF8_NV = 0x909A
-
-pattern GL_VERTICAL_LINE_TO_NV = 0x08
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PathRenderingSharedEdge (
-  -- * Extension Support
-    gl_NV_path_rendering_shared_edge
-
-  -- * GL_NV_path_rendering_shared_edge
-  , pattern GL_SHARED_EDGE_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/path_rendering_shared_edge.txt GL_NV_path_rendering_shared_edge> extension is available.
-
-gl_NV_path_rendering_shared_edge :: Bool
-gl_NV_path_rendering_shared_edge = member "GL_NV_path_rendering_shared_edge" extensions
-{-# NOINLINE gl_NV_path_rendering_shared_edge #-}
-
-pattern GL_SHARED_EDGE_NV = 0xC0
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PixelDataRange.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PixelDataRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PixelDataRange.hs
+++ /dev/null
@@ -1,70 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PixelDataRange (
-  -- * Extension Support
-    gl_NV_pixel_data_range
-
-  -- * GL_NV_pixel_data_range
-  , glFlushPixelDataRangeNV
-  , glPixelDataRangeNV
-  , pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV
-  , pattern GL_READ_PIXEL_DATA_RANGE_NV
-  , pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV
-  , pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV
-  , pattern GL_WRITE_PIXEL_DATA_RANGE_NV
-  , pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/pixel_data_range.txt GL_NV_pixel_data_range> extension is available.
-
-gl_NV_pixel_data_range :: Bool
-gl_NV_pixel_data_range = member "GL_NV_pixel_data_range" extensions
-{-# NOINLINE gl_NV_pixel_data_range #-}
-
--- | Usage: @'glFlushPixelDataRangeNV' target@
---
--- The parameter @target@ is a @PixelDataRangeTargetNV@.
-
-
-glFlushPixelDataRangeNV :: MonadIO m => GLenum -> m ()
-glFlushPixelDataRangeNV = ffienumIOV glFlushPixelDataRangeNVFunPtr
-
-glFlushPixelDataRangeNVFunPtr :: FunPtr (GLenum -> IO ())
-glFlushPixelDataRangeNVFunPtr = unsafePerformIO (getProcAddress "glFlushPixelDataRangeNV")
-
-{-# NOINLINE glFlushPixelDataRangeNVFunPtr #-}
-
--- | Usage: @'glPixelDataRangeNV' target length pointer@
---
--- The parameter @target@ is a @PixelDataRangeTargetNV@.
---
--- The length of @pointer@ should be @length@.
-
-
-glPixelDataRangeNV :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glPixelDataRangeNV = ffienumsizeiPtrVIOV glPixelDataRangeNVFunPtr
-
-glPixelDataRangeNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glPixelDataRangeNVFunPtr = unsafePerformIO (getProcAddress "glPixelDataRangeNV")
-
-{-# NOINLINE glPixelDataRangeNVFunPtr #-}
-
-pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B
-
-pattern GL_READ_PIXEL_DATA_RANGE_NV = 0x8879
-
-pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D
-
-pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A
-
-pattern GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878
-
-pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PointSprite.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PointSprite.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PointSprite.hs
+++ /dev/null
@@ -1,65 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PointSprite (
-  -- * Extension Support
-    gl_NV_point_sprite
-
-  -- * GL_NV_point_sprite
-  , glPointParameteriNV
-  , glPointParameterivNV
-  , pattern GL_COORD_REPLACE_NV
-  , pattern GL_POINT_SPRITE_NV
-  , pattern GL_POINT_SPRITE_R_MODE_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/point_sprite.txt GL_NV_point_sprite> extension is available.
-
-gl_NV_point_sprite :: Bool
-gl_NV_point_sprite = member "GL_NV_point_sprite" extensions
-{-# NOINLINE gl_NV_point_sprite #-}
-
--- | Usage: @'glPointParameteriNV' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameteri'.
-
-
-glPointParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
-glPointParameteriNV = ffienumintIOV glPointParameteriNVFunPtr
-
-glPointParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPointParameteriNVFunPtr = unsafePerformIO (getProcAddress "glPointParameteriNV")
-
-{-# NOINLINE glPointParameteriNVFunPtr #-}
-
--- | Usage: @'glPointParameterivNV' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameteriv'.
-
-
-glPointParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glPointParameterivNV = ffienumPtrintIOV glPointParameterivNVFunPtr
-
-glPointParameterivNVFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glPointParameterivNVFunPtr = unsafePerformIO (getProcAddress "glPointParameterivNV")
-
-{-# NOINLINE glPointParameterivNVFunPtr #-}
-
-pattern GL_COORD_REPLACE_NV = 0x8862
-
-pattern GL_POINT_SPRITE_NV = 0x8861
-
-pattern GL_POINT_SPRITE_R_MODE_NV = 0x8863
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PolygonMode.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PolygonMode.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PolygonMode.hs
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PolygonMode (
-  -- * Extension Support
-    gl_NV_polygon_mode
-
-  -- * GL_NV_polygon_mode
-  , glPolygonModeNV
-  , pattern GL_FILL_NV
-  , pattern GL_LINE_NV
-  , pattern GL_POINT_NV
-  , pattern GL_POLYGON_MODE_NV
-  , pattern GL_POLYGON_OFFSET_LINE_NV
-  , pattern GL_POLYGON_OFFSET_POINT_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_polygon_mode.txt GL_NV_polygon_mode> extension is available.
-
-gl_NV_polygon_mode :: Bool
-gl_NV_polygon_mode = member "GL_NV_polygon_mode" extensions
-{-# NOINLINE gl_NV_polygon_mode #-}
-
--- | Usage: @'glPolygonModeNV' face mode@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPolygonMode'.
-
-
-glPolygonModeNV :: MonadIO m => GLenum -> GLenum -> m ()
-glPolygonModeNV = ffienumenumIOV glPolygonModeNVFunPtr
-
-glPolygonModeNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glPolygonModeNVFunPtr = unsafePerformIO (getProcAddress "glPolygonModeNV")
-
-{-# NOINLINE glPolygonModeNVFunPtr #-}
-
-pattern GL_FILL_NV = 0x1B02
-
-pattern GL_LINE_NV = 0x1B01
-
-pattern GL_POINT_NV = 0x1B00
-
-pattern GL_POLYGON_MODE_NV = 0x0B40
-
-pattern GL_POLYGON_OFFSET_LINE_NV = 0x2A02
-
-pattern GL_POLYGON_OFFSET_POINT_NV = 0x2A01
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PresentVideo.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PresentVideo.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PresentVideo.hs
+++ /dev/null
@@ -1,120 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PresentVideo (
-  -- * Extension Support
-    gl_NV_present_video
-
-  -- * GL_NV_present_video
-  , glGetVideoi64vNV
-  , glGetVideoivNV
-  , glGetVideoui64vNV
-  , glGetVideouivNV
-  , glPresentFrameDualFillNV
-  , glPresentFrameKeyedNV
-  , pattern GL_CURRENT_TIME_NV
-  , pattern GL_FIELDS_NV
-  , pattern GL_FRAME_NV
-  , pattern GL_NUM_FILL_STREAMS_NV
-  , pattern GL_PRESENT_DURATION_NV
-  , pattern GL_PRESENT_TIME_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/present_video.txt GL_NV_present_video> extension is available.
-
-gl_NV_present_video :: Bool
-gl_NV_present_video = member "GL_NV_present_video" extensions
-{-# NOINLINE gl_NV_present_video #-}
-
--- | Usage: @'glGetVideoi64vNV' video_slot pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideoi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
-glGetVideoi64vNV = ffiuintenumPtrint64EXTIOV glGetVideoi64vNVFunPtr
-
-glGetVideoi64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
-glGetVideoi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoi64vNV")
-
-{-# NOINLINE glGetVideoi64vNVFunPtr #-}
-
--- | Usage: @'glGetVideoivNV' video_slot pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideoivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVideoivNV = ffiuintenumPtrintIOV glGetVideoivNVFunPtr
-
-glGetVideoivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVideoivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoivNV")
-
-{-# NOINLINE glGetVideoivNVFunPtr #-}
-
--- | Usage: @'glGetVideoui64vNV' video_slot pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideoui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
-glGetVideoui64vNV = ffiuintenumPtruint64EXTIOV glGetVideoui64vNVFunPtr
-
-glGetVideoui64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
-glGetVideoui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoui64vNV")
-
-{-# NOINLINE glGetVideoui64vNVFunPtr #-}
-
--- | Usage: @'glGetVideouivNV' video_slot pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideouivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetVideouivNV = ffiuintenumPtruintIOV glGetVideouivNVFunPtr
-
-glGetVideouivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetVideouivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideouivNV")
-
-{-# NOINLINE glGetVideouivNVFunPtr #-}
-
--- | Usage: @'glPresentFrameDualFillNV' video_slot minPresentTime beginPresentTimeId presentDurationId type target0 fill0 target1 fill1 target2 fill2 target3 fill3@
-
-
-glPresentFrameDualFillNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
-glPresentFrameDualFillNV = ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV glPresentFrameDualFillNVFunPtr
-
-glPresentFrameDualFillNVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ())
-glPresentFrameDualFillNVFunPtr = unsafePerformIO (getProcAddress "glPresentFrameDualFillNV")
-
-{-# NOINLINE glPresentFrameDualFillNVFunPtr #-}
-
--- | Usage: @'glPresentFrameKeyedNV' video_slot minPresentTime beginPresentTimeId presentDurationId type target0 fill0 key0 target1 fill1 key1@
-
-
-glPresentFrameKeyedNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()
-glPresentFrameKeyedNV = ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV glPresentFrameKeyedNVFunPtr
-
-glPresentFrameKeyedNVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ())
-glPresentFrameKeyedNVFunPtr = unsafePerformIO (getProcAddress "glPresentFrameKeyedNV")
-
-{-# NOINLINE glPresentFrameKeyedNVFunPtr #-}
-
-pattern GL_CURRENT_TIME_NV = 0x8E28
-
-pattern GL_FIELDS_NV = 0x8E27
-
-pattern GL_FRAME_NV = 0x8E26
-
-pattern GL_NUM_FILL_STREAMS_NV = 0x8E29
-
-pattern GL_PRESENT_DURATION_NV = 0x8E2B
-
-pattern GL_PRESENT_TIME_NV = 0x8E2A
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PrimitiveRestart.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PrimitiveRestart.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/PrimitiveRestart.hs
+++ /dev/null
@@ -1,52 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.PrimitiveRestart (
-  -- * Extension Support
-    gl_NV_primitive_restart
-
-  -- * GL_NV_primitive_restart
-  , glPrimitiveRestartIndexNV
-  , glPrimitiveRestartNV
-  , pattern GL_PRIMITIVE_RESTART_INDEX_NV
-  , pattern GL_PRIMITIVE_RESTART_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/primitive_restart.txt GL_NV_primitive_restart> extension is available.
-
-gl_NV_primitive_restart :: Bool
-gl_NV_primitive_restart = member "GL_NV_primitive_restart" extensions
-{-# NOINLINE gl_NV_primitive_restart #-}
-
--- | Usage: @'glPrimitiveRestartIndexNV' index@
-
-
-glPrimitiveRestartIndexNV :: MonadIO m => GLuint -> m ()
-glPrimitiveRestartIndexNV = ffiuintIOV glPrimitiveRestartIndexNVFunPtr
-
-glPrimitiveRestartIndexNVFunPtr :: FunPtr (GLuint -> IO ())
-glPrimitiveRestartIndexNVFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndexNV")
-
-{-# NOINLINE glPrimitiveRestartIndexNVFunPtr #-}
-
--- | Usage: @'glPrimitiveRestartNV'@
-
-
-glPrimitiveRestartNV :: MonadIO m => m ()
-glPrimitiveRestartNV = ffiIOV glPrimitiveRestartNVFunPtr
-
-glPrimitiveRestartNVFunPtr :: FunPtr (IO ())
-glPrimitiveRestartNVFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartNV")
-
-{-# NOINLINE glPrimitiveRestartNVFunPtr #-}
-
-pattern GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559
-
-pattern GL_PRIMITIVE_RESTART_NV = 0x8558
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ReadBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ReadBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ReadBuffer.hs
+++ /dev/null
@@ -1,37 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ReadBuffer (
-  -- * Extension Support
-    gl_NV_read_buffer
-
-  -- * GL_NV_read_buffer
-  , glReadBufferNV
-  , pattern GL_READ_BUFFER_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_read_buffer.txt GL_NV_read_buffer> extension is available.
-
-gl_NV_read_buffer :: Bool
-gl_NV_read_buffer = member "GL_NV_read_buffer" extensions
-{-# NOINLINE gl_NV_read_buffer #-}
-
--- | Usage: @'glReadBufferNV' mode@
-
-
-glReadBufferNV :: MonadIO m => GLenum -> m ()
-glReadBufferNV = ffienumIOV glReadBufferNVFunPtr
-
-glReadBufferNVFunPtr :: FunPtr (GLenum -> IO ())
-glReadBufferNVFunPtr = unsafePerformIO (getProcAddress "glReadBufferNV")
-
-{-# NOINLINE glReadBufferNVFunPtr #-}
-
-pattern GL_READ_BUFFER_NV = 0x0C02
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ReadBufferFront.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ReadBufferFront.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ReadBufferFront.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ReadBufferFront (
-  -- * Extension Support
-    gl_NV_read_buffer_front
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_NV_read_buffer_front extension is available.
-
-gl_NV_read_buffer_front :: Bool
-gl_NV_read_buffer_front = member "GL_NV_read_buffer_front" extensions
-{-# NOINLINE gl_NV_read_buffer_front #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ReadDepth.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ReadDepth.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ReadDepth.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ReadDepth (
-  -- * Extension Support
-    gl_NV_read_depth
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_NV_read_depth extension is available.
-
-gl_NV_read_depth :: Bool
-gl_NV_read_depth = member "GL_NV_read_depth" extensions
-{-# NOINLINE gl_NV_read_depth #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ReadDepthStencil.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ReadDepthStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ReadDepthStencil.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ReadDepthStencil (
-  -- * Extension Support
-    gl_NV_read_depth_stencil
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_read_depth_stencil.txt GL_NV_read_depth_stencil> extension is available.
-
-gl_NV_read_depth_stencil :: Bool
-gl_NV_read_depth_stencil = member "GL_NV_read_depth_stencil" extensions
-{-# NOINLINE gl_NV_read_depth_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ReadStencil.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ReadStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ReadStencil.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ReadStencil (
-  -- * Extension Support
-    gl_NV_read_stencil
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_NV_read_stencil extension is available.
-
-gl_NV_read_stencil :: Bool
-gl_NV_read_stencil = member "GL_NV_read_stencil" extensions
-{-# NOINLINE gl_NV_read_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/RegisterCombiners.hs b/dist/build/autogen/Graphics/GL/Ext/NV/RegisterCombiners.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/RegisterCombiners.hs
+++ /dev/null
@@ -1,437 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.RegisterCombiners (
-  -- * Extension Support
-    gl_NV_register_combiners
-
-  -- * GL_NV_register_combiners
-  , glCombinerInputNV
-  , glCombinerOutputNV
-  , glCombinerParameterfNV
-  , glCombinerParameterfvNV
-  , glCombinerParameteriNV
-  , glCombinerParameterivNV
-  , glFinalCombinerInputNV
-  , glGetCombinerInputParameterfvNV
-  , glGetCombinerInputParameterivNV
-  , glGetCombinerOutputParameterfvNV
-  , glGetCombinerOutputParameterivNV
-  , glGetFinalCombinerInputParameterfvNV
-  , glGetFinalCombinerInputParameterivNV
-  , pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
-  , pattern GL_COLOR_SUM_CLAMP_NV
-  , pattern GL_COMBINER0_NV
-  , pattern GL_COMBINER1_NV
-  , pattern GL_COMBINER2_NV
-  , pattern GL_COMBINER3_NV
-  , pattern GL_COMBINER4_NV
-  , pattern GL_COMBINER5_NV
-  , pattern GL_COMBINER6_NV
-  , pattern GL_COMBINER7_NV
-  , pattern GL_COMBINER_AB_DOT_PRODUCT_NV
-  , pattern GL_COMBINER_AB_OUTPUT_NV
-  , pattern GL_COMBINER_BIAS_NV
-  , pattern GL_COMBINER_CD_DOT_PRODUCT_NV
-  , pattern GL_COMBINER_CD_OUTPUT_NV
-  , pattern GL_COMBINER_COMPONENT_USAGE_NV
-  , pattern GL_COMBINER_INPUT_NV
-  , pattern GL_COMBINER_MAPPING_NV
-  , pattern GL_COMBINER_MUX_SUM_NV
-  , pattern GL_COMBINER_SCALE_NV
-  , pattern GL_COMBINER_SUM_OUTPUT_NV
-  , pattern GL_CONSTANT_COLOR0_NV
-  , pattern GL_CONSTANT_COLOR1_NV
-  , pattern GL_DISCARD_NV
-  , pattern GL_EXPAND_NEGATE_NV
-  , pattern GL_EXPAND_NORMAL_NV
-  , pattern GL_E_TIMES_F_NV
-  , pattern GL_FOG
-  , pattern GL_HALF_BIAS_NEGATE_NV
-  , pattern GL_HALF_BIAS_NORMAL_NV
-  , pattern GL_MAX_GENERAL_COMBINERS_NV
-  , pattern GL_NONE
-  , pattern GL_NUM_GENERAL_COMBINERS_NV
-  , pattern GL_PRIMARY_COLOR_NV
-  , pattern GL_REGISTER_COMBINERS_NV
-  , pattern GL_SCALE_BY_FOUR_NV
-  , pattern GL_SCALE_BY_ONE_HALF_NV
-  , pattern GL_SCALE_BY_TWO_NV
-  , pattern GL_SECONDARY_COLOR_NV
-  , pattern GL_SIGNED_IDENTITY_NV
-  , pattern GL_SIGNED_NEGATE_NV
-  , pattern GL_SPARE0_NV
-  , pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV
-  , pattern GL_SPARE1_NV
-  , pattern GL_TEXTURE0_ARB
-  , pattern GL_TEXTURE1_ARB
-  , pattern GL_UNSIGNED_IDENTITY_NV
-  , pattern GL_UNSIGNED_INVERT_NV
-  , pattern GL_VARIABLE_A_NV
-  , pattern GL_VARIABLE_B_NV
-  , pattern GL_VARIABLE_C_NV
-  , pattern GL_VARIABLE_D_NV
-  , pattern GL_VARIABLE_E_NV
-  , pattern GL_VARIABLE_F_NV
-  , pattern GL_VARIABLE_G_NV
-  , pattern GL_ZERO
-) 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/NV/register_combiners.txt GL_NV_register_combiners> extension is available.
-
-gl_NV_register_combiners :: Bool
-gl_NV_register_combiners = member "GL_NV_register_combiners" extensions
-{-# NOINLINE gl_NV_register_combiners #-}
-
--- | Usage: @'glCombinerInputNV' stage portion variable input mapping componentUsage@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @portion@ is a @CombinerPortionNV@.
---
--- The parameter @variable@ is a @CombinerVariableNV@.
---
--- The parameter @input@ is a @CombinerRegisterNV@.
---
--- The parameter @mapping@ is a @CombinerMappingNV@.
---
--- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.
-
-
-glCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glCombinerInputNV = ffienumenumenumenumenumenumIOV glCombinerInputNVFunPtr
-
-glCombinerInputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glCombinerInputNVFunPtr = unsafePerformIO (getProcAddress "glCombinerInputNV")
-
-{-# NOINLINE glCombinerInputNVFunPtr #-}
-
--- | Usage: @'glCombinerOutputNV' stage portion abOutput cdOutput sumOutput scale bias abDotProduct cdDotProduct muxSum@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @portion@ is a @CombinerPortionNV@.
---
--- The parameter @abOutput@ is a @CombinerRegisterNV@.
---
--- The parameter @cdOutput@ is a @CombinerRegisterNV@.
---
--- The parameter @sumOutput@ is a @CombinerRegisterNV@.
---
--- The parameter @scale@ is a @CombinerScaleNV@.
---
--- The parameter @bias@ is a @CombinerBiasNV@.
---
--- The parameter @abDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @cdDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @muxSum@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glCombinerOutputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
-glCombinerOutputNV = ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV glCombinerOutputNVFunPtr
-
-glCombinerOutputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glCombinerOutputNVFunPtr = unsafePerformIO (getProcAddress "glCombinerOutputNV")
-
-{-# NOINLINE glCombinerOutputNVFunPtr #-}
-
--- | Usage: @'glCombinerParameterfNV' pname param@
---
--- The parameter @pname@ is a @CombinerParameterNV@.
-
-
-glCombinerParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
-glCombinerParameterfNV = ffienumfloatIOV glCombinerParameterfNVFunPtr
-
-glCombinerParameterfNVFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glCombinerParameterfNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameterfNV")
-
-{-# NOINLINE glCombinerParameterfNVFunPtr #-}
-
--- | Usage: @'glCombinerParameterfvNV' pname params@
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glCombinerParameterfvNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glCombinerParameterfvNV = ffienumPtrfloatIOV glCombinerParameterfvNVFunPtr
-
-glCombinerParameterfvNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glCombinerParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameterfvNV")
-
-{-# NOINLINE glCombinerParameterfvNVFunPtr #-}
-
--- | Usage: @'glCombinerParameteriNV' pname param@
---
--- The parameter @pname@ is a @CombinerParameterNV@.
-
-
-glCombinerParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
-glCombinerParameteriNV = ffienumintIOV glCombinerParameteriNVFunPtr
-
-glCombinerParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glCombinerParameteriNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameteriNV")
-
-{-# NOINLINE glCombinerParameteriNVFunPtr #-}
-
--- | Usage: @'glCombinerParameterivNV' pname params@
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glCombinerParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glCombinerParameterivNV = ffienumPtrintIOV glCombinerParameterivNVFunPtr
-
-glCombinerParameterivNVFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glCombinerParameterivNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameterivNV")
-
-{-# NOINLINE glCombinerParameterivNVFunPtr #-}
-
--- | Usage: @'glFinalCombinerInputNV' variable input mapping componentUsage@
---
--- The parameter @variable@ is a @CombinerVariableNV@.
---
--- The parameter @input@ is a @CombinerRegisterNV@.
---
--- The parameter @mapping@ is a @CombinerMappingNV@.
---
--- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.
-
-
-glFinalCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glFinalCombinerInputNV = ffienumenumenumenumIOV glFinalCombinerInputNVFunPtr
-
-glFinalCombinerInputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glFinalCombinerInputNVFunPtr = unsafePerformIO (getProcAddress "glFinalCombinerInputNV")
-
-{-# NOINLINE glFinalCombinerInputNVFunPtr #-}
-
--- | Usage: @'glGetCombinerInputParameterfvNV' stage portion variable pname params@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @portion@ is a @CombinerPortionNV@.
---
--- The parameter @variable@ is a @CombinerVariableNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetCombinerInputParameterfvNV = ffienumenumenumenumPtrfloatIOV glGetCombinerInputParameterfvNVFunPtr
-
-glGetCombinerInputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetCombinerInputParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerInputParameterfvNV")
-
-{-# NOINLINE glGetCombinerInputParameterfvNVFunPtr #-}
-
--- | Usage: @'glGetCombinerInputParameterivNV' stage portion variable pname params@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @portion@ is a @CombinerPortionNV@.
---
--- The parameter @variable@ is a @CombinerVariableNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetCombinerInputParameterivNV = ffienumenumenumenumPtrintIOV glGetCombinerInputParameterivNVFunPtr
-
-glGetCombinerInputParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetCombinerInputParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerInputParameterivNV")
-
-{-# NOINLINE glGetCombinerInputParameterivNVFunPtr #-}
-
--- | Usage: @'glGetCombinerOutputParameterfvNV' stage portion pname params@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @portion@ is a @CombinerPortionNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetCombinerOutputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetCombinerOutputParameterfvNV = ffienumenumenumPtrfloatIOV glGetCombinerOutputParameterfvNVFunPtr
-
-glGetCombinerOutputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetCombinerOutputParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerOutputParameterfvNV")
-
-{-# NOINLINE glGetCombinerOutputParameterfvNVFunPtr #-}
-
--- | Usage: @'glGetCombinerOutputParameterivNV' stage portion pname params@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @portion@ is a @CombinerPortionNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetCombinerOutputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetCombinerOutputParameterivNV = ffienumenumenumPtrintIOV glGetCombinerOutputParameterivNVFunPtr
-
-glGetCombinerOutputParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetCombinerOutputParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerOutputParameterivNV")
-
-{-# NOINLINE glGetCombinerOutputParameterivNVFunPtr #-}
-
--- | Usage: @'glGetFinalCombinerInputParameterfvNV' variable pname params@
---
--- The parameter @variable@ is a @CombinerVariableNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFinalCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetFinalCombinerInputParameterfvNV = ffienumenumPtrfloatIOV glGetFinalCombinerInputParameterfvNVFunPtr
-
-glGetFinalCombinerInputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetFinalCombinerInputParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetFinalCombinerInputParameterfvNV")
-
-{-# NOINLINE glGetFinalCombinerInputParameterfvNVFunPtr #-}
-
--- | Usage: @'glGetFinalCombinerInputParameterivNV' variable pname params@
---
--- The parameter @variable@ is a @CombinerVariableNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFinalCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFinalCombinerInputParameterivNV = ffienumenumPtrintIOV glGetFinalCombinerInputParameterivNVFunPtr
-
-glGetFinalCombinerInputParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFinalCombinerInputParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetFinalCombinerInputParameterivNV")
-
-{-# NOINLINE glGetFinalCombinerInputParameterivNVFunPtr #-}
-
-pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541
-
-pattern GL_COLOR_SUM_CLAMP_NV = 0x854F
-
-pattern GL_COMBINER0_NV = 0x8550
-
-pattern GL_COMBINER1_NV = 0x8551
-
-pattern GL_COMBINER2_NV = 0x8552
-
-pattern GL_COMBINER3_NV = 0x8553
-
-pattern GL_COMBINER4_NV = 0x8554
-
-pattern GL_COMBINER5_NV = 0x8555
-
-pattern GL_COMBINER6_NV = 0x8556
-
-pattern GL_COMBINER7_NV = 0x8557
-
-pattern GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545
-
-pattern GL_COMBINER_AB_OUTPUT_NV = 0x854A
-
-pattern GL_COMBINER_BIAS_NV = 0x8549
-
-pattern GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546
-
-pattern GL_COMBINER_CD_OUTPUT_NV = 0x854B
-
-pattern GL_COMBINER_COMPONENT_USAGE_NV = 0x8544
-
-pattern GL_COMBINER_INPUT_NV = 0x8542
-
-pattern GL_COMBINER_MAPPING_NV = 0x8543
-
-pattern GL_COMBINER_MUX_SUM_NV = 0x8547
-
-pattern GL_COMBINER_SCALE_NV = 0x8548
-
-pattern GL_COMBINER_SUM_OUTPUT_NV = 0x854C
-
-pattern GL_CONSTANT_COLOR0_NV = 0x852A
-
-pattern GL_CONSTANT_COLOR1_NV = 0x852B
-
-pattern GL_DISCARD_NV = 0x8530
-
-pattern GL_EXPAND_NEGATE_NV = 0x8539
-
-pattern GL_EXPAND_NORMAL_NV = 0x8538
-
-pattern GL_E_TIMES_F_NV = 0x8531
-
-pattern GL_HALF_BIAS_NEGATE_NV = 0x853B
-
-pattern GL_HALF_BIAS_NORMAL_NV = 0x853A
-
-pattern GL_MAX_GENERAL_COMBINERS_NV = 0x854D
-
-pattern GL_NUM_GENERAL_COMBINERS_NV = 0x854E
-
-pattern GL_REGISTER_COMBINERS_NV = 0x8522
-
-pattern GL_SCALE_BY_FOUR_NV = 0x853F
-
-pattern GL_SCALE_BY_ONE_HALF_NV = 0x8540
-
-pattern GL_SCALE_BY_TWO_NV = 0x853E
-
-pattern GL_SIGNED_IDENTITY_NV = 0x853C
-
-pattern GL_SIGNED_NEGATE_NV = 0x853D
-
-pattern GL_SPARE0_NV = 0x852E
-
-pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532
-
-pattern GL_SPARE1_NV = 0x852F
-
-pattern GL_UNSIGNED_IDENTITY_NV = 0x8536
-
-pattern GL_UNSIGNED_INVERT_NV = 0x8537
-
-pattern GL_VARIABLE_A_NV = 0x8523
-
-pattern GL_VARIABLE_B_NV = 0x8524
-
-pattern GL_VARIABLE_C_NV = 0x8525
-
-pattern GL_VARIABLE_D_NV = 0x8526
-
-pattern GL_VARIABLE_E_NV = 0x8527
-
-pattern GL_VARIABLE_F_NV = 0x8528
-
-pattern GL_VARIABLE_G_NV = 0x8529
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/RegisterCombiners2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/RegisterCombiners2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/RegisterCombiners2.hs
+++ /dev/null
@@ -1,63 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.RegisterCombiners2 (
-  -- * Extension Support
-    gl_NV_register_combiners2
-
-  -- * GL_NV_register_combiners2
-  , glCombinerStageParameterfvNV
-  , glGetCombinerStageParameterfvNV
-  , pattern GL_PER_STAGE_CONSTANTS_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/register_combiners2.txt GL_NV_register_combiners2> extension is available.
-
-gl_NV_register_combiners2 :: Bool
-gl_NV_register_combiners2 = member "GL_NV_register_combiners2" extensions
-{-# NOINLINE gl_NV_register_combiners2 #-}
-
--- | Usage: @'glCombinerStageParameterfvNV' stage pname params@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glCombinerStageParameterfvNV = ffienumenumPtrfloatIOV glCombinerStageParameterfvNVFunPtr
-
-glCombinerStageParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glCombinerStageParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glCombinerStageParameterfvNV")
-
-{-# NOINLINE glCombinerStageParameterfvNVFunPtr #-}
-
--- | Usage: @'glGetCombinerStageParameterfvNV' stage pname params@
---
--- The parameter @stage@ is a @CombinerStageNV@.
---
--- The parameter @pname@ is a @CombinerParameterNV@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetCombinerStageParameterfvNV = ffienumenumPtrfloatIOV glGetCombinerStageParameterfvNVFunPtr
-
-glGetCombinerStageParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetCombinerStageParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerStageParameterfvNV")
-
-{-# NOINLINE glGetCombinerStageParameterfvNVFunPtr #-}
-
-pattern GL_PER_STAGE_CONSTANTS_NV = 0x8535
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs b/dist/build/autogen/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.RobustnessVideoMemoryPurge (
-  -- * Extension Support
-    gl_NV_robustness_video_memory_purge
-
-  -- * GL_NV_robustness_video_memory_purge
-  , pattern GL_PURGED_CONTEXT_RESET_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/robustness_video_memory_purge.txt GL_NV_robustness_video_memory_purge> extension is available.
-
-gl_NV_robustness_video_memory_purge :: Bool
-gl_NV_robustness_video_memory_purge = member "GL_NV_robustness_video_memory_purge" extensions
-{-# NOINLINE gl_NV_robustness_video_memory_purge #-}
-
-pattern GL_PURGED_CONTEXT_RESET_NV = 0x92BB
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/SRGBFormats.hs b/dist/build/autogen/Graphics/GL/Ext/NV/SRGBFormats.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/SRGBFormats.hs
+++ /dev/null
@@ -1,47 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.SRGBFormats (
-  -- * Extension Support
-    gl_NV_sRGB_formats
-
-  -- * GL_NV_sRGB_formats
-  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV
-  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV
-  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV
-  , pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV
-  , pattern GL_ETC1_SRGB8_NV
-  , pattern GL_SLUMINANCE8_ALPHA8_NV
-  , pattern GL_SLUMINANCE8_NV
-  , pattern GL_SLUMINANCE_ALPHA_NV
-  , pattern GL_SLUMINANCE_NV
-  , pattern GL_SRGB8_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_sRGB_formats.txt GL_NV_sRGB_formats> extension is available.
-
-gl_NV_sRGB_formats :: Bool
-gl_NV_sRGB_formats = member "GL_NV_sRGB_formats" extensions
-{-# NOINLINE gl_NV_sRGB_formats #-}
-
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D
-
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E
-
-pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F
-
-pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C
-
-pattern GL_ETC1_SRGB8_NV = 0x88EE
-
-pattern GL_SLUMINANCE8_ALPHA8_NV = 0x8C45
-
-pattern GL_SLUMINANCE8_NV = 0x8C47
-
-pattern GL_SLUMINANCE_ALPHA_NV = 0x8C44
-
-pattern GL_SLUMINANCE_NV = 0x8C46
-
-pattern GL_SRGB8_NV = 0x8C41
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/SampleLocations.hs b/dist/build/autogen/Graphics/GL/Ext/NV/SampleLocations.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/SampleLocations.hs
+++ /dev/null
@@ -1,82 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.SampleLocations (
-  -- * Extension Support
-    gl_NV_sample_locations
-
-  -- * GL_NV_sample_locations
-  , glFramebufferSampleLocationsfvNV
-  , glNamedFramebufferSampleLocationsfvNV
-  , glResolveDepthValuesNV
-  , pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV
-  , pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV
-  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV
-  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV
-  , pattern GL_SAMPLE_LOCATION_NV
-  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV
-  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV
-  , pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_locations.txt GL_NV_sample_locations> extension is available.
-
-gl_NV_sample_locations :: Bool
-gl_NV_sample_locations = member "GL_NV_sample_locations" extensions
-{-# NOINLINE gl_NV_sample_locations #-}
-
--- | Usage: @'glFramebufferSampleLocationsfvNV' target start count v@
-
-
-glFramebufferSampleLocationsfvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glFramebufferSampleLocationsfvNV = ffienumuintsizeiPtrfloatIOV glFramebufferSampleLocationsfvNVFunPtr
-
-glFramebufferSampleLocationsfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glFramebufferSampleLocationsfvNVFunPtr = unsafePerformIO (getProcAddress "glFramebufferSampleLocationsfvNV")
-
-{-# NOINLINE glFramebufferSampleLocationsfvNVFunPtr #-}
-
--- | Usage: @'glNamedFramebufferSampleLocationsfvNV' framebuffer start count v@
-
-
-glNamedFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glNamedFramebufferSampleLocationsfvNV = ffiuintuintsizeiPtrfloatIOV glNamedFramebufferSampleLocationsfvNVFunPtr
-
-glNamedFramebufferSampleLocationsfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glNamedFramebufferSampleLocationsfvNVFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferSampleLocationsfvNV")
-
-{-# NOINLINE glNamedFramebufferSampleLocationsfvNVFunPtr #-}
-
--- | Usage: @'glResolveDepthValuesNV'@
-
-
-glResolveDepthValuesNV :: MonadIO m => m ()
-glResolveDepthValuesNV = ffiIOV glResolveDepthValuesNVFunPtr
-
-glResolveDepthValuesNVFunPtr :: FunPtr (IO ())
-glResolveDepthValuesNVFunPtr = unsafePerformIO (getProcAddress "glResolveDepthValuesNV")
-
-{-# NOINLINE glResolveDepthValuesNVFunPtr #-}
-
-pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342
-
-pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343
-
-pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341
-
-pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340
-
-pattern GL_SAMPLE_LOCATION_NV = 0x8E50
-
-pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F
-
-pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E
-
-pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/SampleMaskOverrideCoverage.hs b/dist/build/autogen/Graphics/GL/Ext/NV/SampleMaskOverrideCoverage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/SampleMaskOverrideCoverage.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.SampleMaskOverrideCoverage (
-  -- * Extension Support
-    gl_NV_sample_mask_override_coverage
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_mask_override_coverage.txt GL_NV_sample_mask_override_coverage> extension is available.
-
-gl_NV_sample_mask_override_coverage :: Bool
-gl_NV_sample_mask_override_coverage = member "GL_NV_sample_mask_override_coverage" extensions
-{-# NOINLINE gl_NV_sample_mask_override_coverage #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicCounters.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicCounters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicCounters.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderAtomicCounters (
-  -- * Extension Support
-    gl_NV_shader_atomic_counters
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_counters.txt GL_NV_shader_atomic_counters> extension is available.
-
-gl_NV_shader_atomic_counters :: Bool
-gl_NV_shader_atomic_counters = member "GL_NV_shader_atomic_counters" extensions
-{-# NOINLINE gl_NV_shader_atomic_counters #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFloat.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFloat.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderAtomicFloat (
-  -- * Extension Support
-    gl_NV_shader_atomic_float
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_float.txt GL_NV_shader_atomic_float> extension is available.
-
-gl_NV_shader_atomic_float :: Bool
-gl_NV_shader_atomic_float = member "GL_NV_shader_atomic_float" extensions
-{-# NOINLINE gl_NV_shader_atomic_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFloat64.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFloat64.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFloat64.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderAtomicFloat64 (
-  -- * Extension Support
-    gl_NV_shader_atomic_float64
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_float64.txt GL_NV_shader_atomic_float64> extension is available.
-
-gl_NV_shader_atomic_float64 :: Bool
-gl_NV_shader_atomic_float64 = member "GL_NV_shader_atomic_float64" extensions
-{-# NOINLINE gl_NV_shader_atomic_float64 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFp16Vector.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFp16Vector.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicFp16Vector.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderAtomicFp16Vector (
-  -- * Extension Support
-    gl_NV_shader_atomic_fp16_vector
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_fp16_vector.txt GL_NV_shader_atomic_fp16_vector> extension is available.
-
-gl_NV_shader_atomic_fp16_vector :: Bool
-gl_NV_shader_atomic_fp16_vector = member "GL_NV_shader_atomic_fp16_vector" extensions
-{-# NOINLINE gl_NV_shader_atomic_fp16_vector #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicInt64.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicInt64.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderAtomicInt64.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderAtomicInt64 (
-  -- * Extension Support
-    gl_NV_shader_atomic_int64
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_int64.txt GL_NV_shader_atomic_int64> extension is available.
-
-gl_NV_shader_atomic_int64 :: Bool
-gl_NV_shader_atomic_int64 = member "GL_NV_shader_atomic_int64" extensions
-{-# NOINLINE gl_NV_shader_atomic_int64 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderBufferLoad.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderBufferLoad.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderBufferLoad.hs
+++ /dev/null
@@ -1,201 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderBufferLoad (
-  -- * Extension Support
-    gl_NV_shader_buffer_load
-
-  -- * GL_NV_shader_buffer_load
-  , glGetBufferParameterui64vNV
-  , glGetIntegerui64vNV
-  , glGetNamedBufferParameterui64vNV
-  , glGetUniformui64vNV
-  , glIsBufferResidentNV
-  , glIsNamedBufferResidentNV
-  , glMakeBufferNonResidentNV
-  , glMakeBufferResidentNV
-  , glMakeNamedBufferNonResidentNV
-  , glMakeNamedBufferResidentNV
-  , glProgramUniformui64NV
-  , glProgramUniformui64vNV
-  , glUniformui64NV
-  , glUniformui64vNV
-  , pattern GL_BUFFER_GPU_ADDRESS_NV
-  , pattern GL_GPU_ADDRESS_NV
-  , pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV
-) 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/NV/shader_buffer_load.txt GL_NV_shader_buffer_load> extension is available.
-
-gl_NV_shader_buffer_load :: Bool
-gl_NV_shader_buffer_load = member "GL_NV_shader_buffer_load" extensions
-{-# NOINLINE gl_NV_shader_buffer_load #-}
-
--- | Usage: @'glGetBufferParameterui64vNV' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetBufferParameterui64vNV :: MonadIO m => GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
-glGetBufferParameterui64vNV = ffienumenumPtruint64EXTIOV glGetBufferParameterui64vNVFunPtr
-
-glGetBufferParameterui64vNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ())
-glGetBufferParameterui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameterui64vNV")
-
-{-# NOINLINE glGetBufferParameterui64vNVFunPtr #-}
-
--- | Usage: @'glGetIntegerui64vNV' value result@
---
--- The length of @result@ should be @COMPSIZE(value)@.
-
-
-glGetIntegerui64vNV :: MonadIO m => GLenum -> Ptr GLuint64EXT -> m ()
-glGetIntegerui64vNV = ffienumPtruint64EXTIOV glGetIntegerui64vNVFunPtr
-
-glGetIntegerui64vNVFunPtr :: FunPtr (GLenum -> Ptr GLuint64EXT -> IO ())
-glGetIntegerui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetIntegerui64vNV")
-
-{-# NOINLINE glGetIntegerui64vNVFunPtr #-}
-
--- | Usage: @'glGetNamedBufferParameterui64vNV' buffer pname params@
---
--- The parameter @pname@ is a @VertexBufferObjectParameter@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetNamedBufferParameterui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
-glGetNamedBufferParameterui64vNV = ffiuintenumPtruint64EXTIOV glGetNamedBufferParameterui64vNVFunPtr
-
-glGetNamedBufferParameterui64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
-glGetNamedBufferParameterui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameterui64vNV")
-
-{-# NOINLINE glGetNamedBufferParameterui64vNVFunPtr #-}
-
--- | Usage: @'glIsBufferResidentNV' target@
-
-
-glIsBufferResidentNV :: MonadIO m => GLenum -> m GLboolean
-glIsBufferResidentNV = ffienumIOboolean glIsBufferResidentNVFunPtr
-
-glIsBufferResidentNVFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glIsBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsBufferResidentNV")
-
-{-# NOINLINE glIsBufferResidentNVFunPtr #-}
-
--- | Usage: @'glIsNamedBufferResidentNV' buffer@
-
-
-glIsNamedBufferResidentNV :: MonadIO m => GLuint -> m GLboolean
-glIsNamedBufferResidentNV = ffiuintIOboolean glIsNamedBufferResidentNVFunPtr
-
-glIsNamedBufferResidentNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsNamedBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsNamedBufferResidentNV")
-
-{-# NOINLINE glIsNamedBufferResidentNVFunPtr #-}
-
--- | Usage: @'glMakeBufferNonResidentNV' target@
-
-
-glMakeBufferNonResidentNV :: MonadIO m => GLenum -> m ()
-glMakeBufferNonResidentNV = ffienumIOV glMakeBufferNonResidentNVFunPtr
-
-glMakeBufferNonResidentNVFunPtr :: FunPtr (GLenum -> IO ())
-glMakeBufferNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeBufferNonResidentNV")
-
-{-# NOINLINE glMakeBufferNonResidentNVFunPtr #-}
-
--- | Usage: @'glMakeBufferResidentNV' target access@
-
-
-glMakeBufferResidentNV :: MonadIO m => GLenum -> GLenum -> m ()
-glMakeBufferResidentNV = ffienumenumIOV glMakeBufferResidentNVFunPtr
-
-glMakeBufferResidentNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glMakeBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeBufferResidentNV")
-
-{-# NOINLINE glMakeBufferResidentNVFunPtr #-}
-
--- | Usage: @'glMakeNamedBufferNonResidentNV' buffer@
-
-
-glMakeNamedBufferNonResidentNV :: MonadIO m => GLuint -> m ()
-glMakeNamedBufferNonResidentNV = ffiuintIOV glMakeNamedBufferNonResidentNVFunPtr
-
-glMakeNamedBufferNonResidentNVFunPtr :: FunPtr (GLuint -> IO ())
-glMakeNamedBufferNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeNamedBufferNonResidentNV")
-
-{-# NOINLINE glMakeNamedBufferNonResidentNVFunPtr #-}
-
--- | Usage: @'glMakeNamedBufferResidentNV' buffer access@
-
-
-glMakeNamedBufferResidentNV :: MonadIO m => GLuint -> GLenum -> m ()
-glMakeNamedBufferResidentNV = ffiuintenumIOV glMakeNamedBufferResidentNVFunPtr
-
-glMakeNamedBufferResidentNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glMakeNamedBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeNamedBufferResidentNV")
-
-{-# NOINLINE glMakeNamedBufferResidentNVFunPtr #-}
-
--- | Usage: @'glProgramUniformui64NV' program location value@
-
-
-glProgramUniformui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
-glProgramUniformui64NV = ffiuintintuint64EXTIOV glProgramUniformui64NVFunPtr
-
-glProgramUniformui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
-glProgramUniformui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformui64NV")
-
-{-# NOINLINE glProgramUniformui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniformui64vNV' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniformui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniformui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniformui64vNVFunPtr
-
-glProgramUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformui64vNV")
-
-{-# NOINLINE glProgramUniformui64vNVFunPtr #-}
-
--- | Usage: @'glUniformui64NV' location value@
-
-
-glUniformui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
-glUniformui64NV = ffiintuint64EXTIOV glUniformui64NVFunPtr
-
-glUniformui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
-glUniformui64NVFunPtr = unsafePerformIO (getProcAddress "glUniformui64NV")
-
-{-# NOINLINE glUniformui64NVFunPtr #-}
-
--- | Usage: @'glUniformui64vNV' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniformui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniformui64vNV = ffiintsizeiPtruint64EXTIOV glUniformui64vNVFunPtr
-
-glUniformui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniformui64vNV")
-
-{-# NOINLINE glUniformui64vNVFunPtr #-}
-
-pattern GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D
-
-pattern GL_GPU_ADDRESS_NV = 0x8F34
-
-pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderBufferStore.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderBufferStore.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderBufferStore.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderBufferStore (
-  -- * Extension Support
-    gl_NV_shader_buffer_store
-
-  -- * GL_NV_shader_buffer_store
-  , pattern GL_READ_WRITE
-  , pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV
-  , pattern GL_WRITE_ONLY
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_buffer_store.txt GL_NV_shader_buffer_store> extension is available.
-
-gl_NV_shader_buffer_store :: Bool
-gl_NV_shader_buffer_store = member "GL_NV_shader_buffer_store" extensions
-{-# NOINLINE gl_NV_shader_buffer_store #-}
-
-pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderNoperspectiveInterpolation.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderNoperspectiveInterpolation.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderNoperspectiveInterpolation.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderNoperspectiveInterpolation (
-  -- * Extension Support
-    gl_NV_shader_noperspective_interpolation
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_NV_shader_noperspective_interpolation extension is available.
-
-gl_NV_shader_noperspective_interpolation :: Bool
-gl_NV_shader_noperspective_interpolation = member "GL_NV_shader_noperspective_interpolation" extensions
-{-# NOINLINE gl_NV_shader_noperspective_interpolation #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderStorageBufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderStorageBufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderStorageBufferObject.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderStorageBufferObject (
-  -- * Extension Support
-    gl_NV_shader_storage_buffer_object
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_storage_buffer_object.txt GL_NV_shader_storage_buffer_object> extension is available.
-
-gl_NV_shader_storage_buffer_object :: Bool
-gl_NV_shader_storage_buffer_object = member "GL_NV_shader_storage_buffer_object" extensions
-{-# NOINLINE gl_NV_shader_storage_buffer_object #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderThreadGroup.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderThreadGroup.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderThreadGroup.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderThreadGroup (
-  -- * Extension Support
-    gl_NV_shader_thread_group
-
-  -- * GL_NV_shader_thread_group
-  , pattern GL_SM_COUNT_NV
-  , pattern GL_WARPS_PER_SM_NV
-  , pattern GL_WARP_SIZE_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_group.txt GL_NV_shader_thread_group> extension is available.
-
-gl_NV_shader_thread_group :: Bool
-gl_NV_shader_thread_group = member "GL_NV_shader_thread_group" extensions
-{-# NOINLINE gl_NV_shader_thread_group #-}
-
-pattern GL_SM_COUNT_NV = 0x933B
-
-pattern GL_WARPS_PER_SM_NV = 0x933A
-
-pattern GL_WARP_SIZE_NV = 0x9339
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderThreadShuffle.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShaderThreadShuffle.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShaderThreadShuffle.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShaderThreadShuffle (
-  -- * Extension Support
-    gl_NV_shader_thread_shuffle
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_shuffle.txt GL_NV_shader_thread_shuffle> extension is available.
-
-gl_NV_shader_thread_shuffle :: Bool
-gl_NV_shader_thread_shuffle = member "GL_NV_shader_thread_shuffle" extensions
-{-# NOINLINE gl_NV_shader_thread_shuffle #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShadowSamplersArray.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShadowSamplersArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShadowSamplersArray.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShadowSamplersArray (
-  -- * Extension Support
-    gl_NV_shadow_samplers_array
-
-  -- * GL_NV_shadow_samplers_array
-  , pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_shadow_samplers_array.txt GL_NV_shadow_samplers_array> extension is available.
-
-gl_NV_shadow_samplers_array :: Bool
-gl_NV_shadow_samplers_array = member "GL_NV_shadow_samplers_array" extensions
-{-# NOINLINE gl_NV_shadow_samplers_array #-}
-
-pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ShadowSamplersCube.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ShadowSamplersCube.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ShadowSamplersCube.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ShadowSamplersCube (
-  -- * Extension Support
-    gl_NV_shadow_samplers_cube
-
-  -- * GL_NV_shadow_samplers_cube
-  , pattern GL_SAMPLER_CUBE_SHADOW_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_shadow_samplers_cube.txt GL_NV_shadow_samplers_cube> extension is available.
-
-gl_NV_shadow_samplers_cube :: Bool
-gl_NV_shadow_samplers_cube = member "GL_NV_shadow_samplers_cube" extensions
-{-# NOINLINE gl_NV_shadow_samplers_cube #-}
-
-pattern GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/StereoViewRendering.hs b/dist/build/autogen/Graphics/GL/Ext/NV/StereoViewRendering.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/StereoViewRendering.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.StereoViewRendering (
-  -- * Extension Support
-    gl_NV_stereo_view_rendering
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/stereo_view_rendering.txt GL_NV_stereo_view_rendering> extension is available.
-
-gl_NV_stereo_view_rendering :: Bool
-gl_NV_stereo_view_rendering = member "GL_NV_stereo_view_rendering" extensions
-{-# NOINLINE gl_NV_stereo_view_rendering #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TessellationProgram5.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TessellationProgram5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TessellationProgram5.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TessellationProgram5 (
-  -- * Extension Support
-    gl_NV_tessellation_program5
-
-  -- * GL_NV_tessellation_program5
-  , pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV
-  , pattern GL_TESS_CONTROL_PROGRAM_NV
-  , pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV
-  , pattern GL_TESS_EVALUATION_PROGRAM_NV
-  , pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/tessellation_program5.txt GL_NV_tessellation_program5> extension is available.
-
-gl_NV_tessellation_program5 :: Bool
-gl_NV_tessellation_program5 = member "GL_NV_tessellation_program5" extensions
-{-# NOINLINE gl_NV_tessellation_program5 #-}
-
-pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8
-
-pattern GL_TESS_CONTROL_PROGRAM_NV = 0x891E
-
-pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74
-
-pattern GL_TESS_EVALUATION_PROGRAM_NV = 0x891F
-
-pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TexgenEmboss.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TexgenEmboss.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TexgenEmboss.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TexgenEmboss (
-  -- * Extension Support
-    gl_NV_texgen_emboss
-
-  -- * GL_NV_texgen_emboss
-  , pattern GL_EMBOSS_CONSTANT_NV
-  , pattern GL_EMBOSS_LIGHT_NV
-  , pattern GL_EMBOSS_MAP_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_emboss.txt GL_NV_texgen_emboss> extension is available.
-
-gl_NV_texgen_emboss :: Bool
-gl_NV_texgen_emboss = member "GL_NV_texgen_emboss" extensions
-{-# NOINLINE gl_NV_texgen_emboss #-}
-
-pattern GL_EMBOSS_CONSTANT_NV = 0x855E
-
-pattern GL_EMBOSS_LIGHT_NV = 0x855D
-
-pattern GL_EMBOSS_MAP_NV = 0x855F
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TexgenReflection.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TexgenReflection.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TexgenReflection.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TexgenReflection (
-  -- * Extension Support
-    gl_NV_texgen_reflection
-
-  -- * GL_NV_texgen_reflection
-  , pattern GL_NORMAL_MAP_NV
-  , pattern GL_REFLECTION_MAP_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_reflection.txt GL_NV_texgen_reflection> extension is available.
-
-gl_NV_texgen_reflection :: Bool
-gl_NV_texgen_reflection = member "GL_NV_texgen_reflection" extensions
-{-# NOINLINE gl_NV_texgen_reflection #-}
-
-pattern GL_NORMAL_MAP_NV = 0x8511
-
-pattern GL_REFLECTION_MAP_NV = 0x8512
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureBarrier.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureBarrier.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureBarrier.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureBarrier (
-  -- * Extension Support
-    gl_NV_texture_barrier
-
-  -- * GL_NV_texture_barrier
-  , glTextureBarrierNV
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_barrier.txt GL_NV_texture_barrier> extension is available.
-
-gl_NV_texture_barrier :: Bool
-gl_NV_texture_barrier = member "GL_NV_texture_barrier" extensions
-{-# NOINLINE gl_NV_texture_barrier #-}
-
--- | Usage: @'glTextureBarrierNV'@
-
-
-glTextureBarrierNV :: MonadIO m => m ()
-glTextureBarrierNV = ffiIOV glTextureBarrierNVFunPtr
-
-glTextureBarrierNVFunPtr :: FunPtr (IO ())
-glTextureBarrierNVFunPtr = unsafePerformIO (getProcAddress "glTextureBarrierNV")
-
-{-# NOINLINE glTextureBarrierNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureBorderClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureBorderClamp.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureBorderClamp (
-  -- * Extension Support
-    gl_NV_texture_border_clamp
-
-  -- * GL_NV_texture_border_clamp
-  , pattern GL_CLAMP_TO_BORDER_NV
-  , pattern GL_TEXTURE_BORDER_COLOR_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_texture_border_clamp.txt GL_NV_texture_border_clamp> extension is available.
-
-gl_NV_texture_border_clamp :: Bool
-gl_NV_texture_border_clamp = member "GL_NV_texture_border_clamp" extensions
-{-# NOINLINE gl_NV_texture_border_clamp #-}
-
-pattern GL_CLAMP_TO_BORDER_NV = 0x812D
-
-pattern GL_TEXTURE_BORDER_COLOR_NV = 0x1004
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureCompressionS3tcUpdate.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureCompressionS3tcUpdate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureCompressionS3tcUpdate.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureCompressionS3tcUpdate (
-  -- * Extension Support
-    gl_NV_texture_compression_s3tc_update
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_texture_compression_s3tc_update.txt GL_NV_texture_compression_s3tc_update> extension is available.
-
-gl_NV_texture_compression_s3tc_update :: Bool
-gl_NV_texture_compression_s3tc_update = member "GL_NV_texture_compression_s3tc_update" extensions
-{-# NOINLINE gl_NV_texture_compression_s3tc_update #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureCompressionVtc.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureCompressionVtc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureCompressionVtc.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureCompressionVtc (
-  -- * Extension Support
-    gl_NV_texture_compression_vtc
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_compression_vtc.txt GL_NV_texture_compression_vtc> extension is available.
-
-gl_NV_texture_compression_vtc :: Bool
-gl_NV_texture_compression_vtc = member "GL_NV_texture_compression_vtc" extensions
-{-# NOINLINE gl_NV_texture_compression_vtc #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureEnvCombine4.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureEnvCombine4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureEnvCombine4.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureEnvCombine4 (
-  -- * Extension Support
-    gl_NV_texture_env_combine4
-
-  -- * GL_NV_texture_env_combine4
-  , pattern GL_COMBINE4_NV
-  , pattern GL_OPERAND3_ALPHA_NV
-  , pattern GL_OPERAND3_RGB_NV
-  , pattern GL_SOURCE3_ALPHA_NV
-  , pattern GL_SOURCE3_RGB_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_env_combine4.txt GL_NV_texture_env_combine4> extension is available.
-
-gl_NV_texture_env_combine4 :: Bool
-gl_NV_texture_env_combine4 = member "GL_NV_texture_env_combine4" extensions
-{-# NOINLINE gl_NV_texture_env_combine4 #-}
-
-pattern GL_COMBINE4_NV = 0x8503
-
-pattern GL_OPERAND3_ALPHA_NV = 0x859B
-
-pattern GL_OPERAND3_RGB_NV = 0x8593
-
-pattern GL_SOURCE3_ALPHA_NV = 0x858B
-
-pattern GL_SOURCE3_RGB_NV = 0x8583
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureExpandNormal.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureExpandNormal.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureExpandNormal.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureExpandNormal (
-  -- * Extension Support
-    gl_NV_texture_expand_normal
-
-  -- * GL_NV_texture_expand_normal
-  , pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_expand_normal.txt GL_NV_texture_expand_normal> extension is available.
-
-gl_NV_texture_expand_normal :: Bool
-gl_NV_texture_expand_normal = member "GL_NV_texture_expand_normal" extensions
-{-# NOINLINE gl_NV_texture_expand_normal #-}
-
-pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureMultisample.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureMultisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureMultisample.hs
+++ /dev/null
@@ -1,112 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureMultisample (
-  -- * Extension Support
-    gl_NV_texture_multisample
-
-  -- * GL_NV_texture_multisample
-  , glTexImage2DMultisampleCoverageNV
-  , glTexImage3DMultisampleCoverageNV
-  , glTextureImage2DMultisampleCoverageNV
-  , glTextureImage2DMultisampleNV
-  , glTextureImage3DMultisampleCoverageNV
-  , glTextureImage3DMultisampleNV
-  , pattern GL_TEXTURE_COLOR_SAMPLES_NV
-  , pattern GL_TEXTURE_COVERAGE_SAMPLES_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_multisample.txt GL_NV_texture_multisample> extension is available.
-
-gl_NV_texture_multisample :: Bool
-gl_NV_texture_multisample = member "GL_NV_texture_multisample" extensions
-{-# NOINLINE gl_NV_texture_multisample #-}
-
--- | Usage: @'glTexImage2DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
---
--- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage2DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeibooleanIOV glTexImage2DMultisampleCoverageNVFunPtr
-
-glTexImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage2DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisampleCoverageNV")
-
-{-# NOINLINE glTexImage2DMultisampleCoverageNVFunPtr #-}
-
--- | Usage: @'glTexImage3DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
---
--- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage3DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeisizeibooleanIOV glTexImage3DMultisampleCoverageNVFunPtr
-
-glTexImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage3DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisampleCoverageNV")
-
-{-# NOINLINE glTexImage3DMultisampleCoverageNVFunPtr #-}
-
--- | Usage: @'glTextureImage2DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
---
--- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureImage2DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleCoverageNVFunPtr
-
-glTextureImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureImage2DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DMultisampleCoverageNV")
-
-{-# NOINLINE glTextureImage2DMultisampleCoverageNVFunPtr #-}
-
--- | Usage: @'glTextureImage2DMultisampleNV' texture target samples internalFormat width height fixedSampleLocations@
---
--- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureImage2DMultisampleNV = ffiuintenumsizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleNVFunPtr
-
-glTextureImage2DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureImage2DMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DMultisampleNV")
-
-{-# NOINLINE glTextureImage2DMultisampleNVFunPtr #-}
-
--- | Usage: @'glTextureImage3DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
---
--- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureImage3DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleCoverageNVFunPtr
-
-glTextureImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureImage3DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DMultisampleCoverageNV")
-
-{-# NOINLINE glTextureImage3DMultisampleCoverageNVFunPtr #-}
-
--- | Usage: @'glTextureImage3DMultisampleNV' texture target samples internalFormat width height depth fixedSampleLocations@
---
--- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureImage3DMultisampleNV = ffiuintenumsizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleNVFunPtr
-
-glTextureImage3DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureImage3DMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DMultisampleNV")
-
-{-# NOINLINE glTextureImage3DMultisampleNVFunPtr #-}
-
-pattern GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046
-
-pattern GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureNpot2DMipmap.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureNpot2DMipmap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureNpot2DMipmap.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureNpot2DMipmap (
-  -- * Extension Support
-    gl_NV_texture_npot_2D_mipmap
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_texture_npot_2D_mipmap.txt GL_NV_texture_npot_2D_mipmap> extension is available.
-
-gl_NV_texture_npot_2D_mipmap :: Bool
-gl_NV_texture_npot_2D_mipmap = member "GL_NV_texture_npot_2D_mipmap" extensions
-{-# NOINLINE gl_NV_texture_npot_2D_mipmap #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureRectangle.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureRectangle.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureRectangle.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureRectangle (
-  -- * Extension Support
-    gl_NV_texture_rectangle
-
-  -- * GL_NV_texture_rectangle
-  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
-  , pattern GL_PROXY_TEXTURE_RECTANGLE_NV
-  , pattern GL_TEXTURE_BINDING_RECTANGLE_NV
-  , pattern GL_TEXTURE_RECTANGLE_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_rectangle.txt GL_NV_texture_rectangle> extension is available.
-
-gl_NV_texture_rectangle :: Bool
-gl_NV_texture_rectangle = member "GL_NV_texture_rectangle" extensions
-{-# NOINLINE gl_NV_texture_rectangle #-}
-
-pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8
-
-pattern GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7
-
-pattern GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6
-
-pattern GL_TEXTURE_RECTANGLE_NV = 0x84F5
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader.hs
+++ /dev/null
@@ -1,236 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureShader (
-  -- * Extension Support
-    gl_NV_texture_shader
-
-  -- * GL_NV_texture_shader
-  , pattern GL_CONST_EYE_NV
-  , pattern GL_CULL_FRAGMENT_NV
-  , pattern GL_CULL_MODES_NV
-  , pattern GL_DEPENDENT_AR_TEXTURE_2D_NV
-  , pattern GL_DEPENDENT_GB_TEXTURE_2D_NV
-  , pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV
-  , pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV
-  , pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV
-  , pattern GL_DOT_PRODUCT_NV
-  , pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV
-  , pattern GL_DOT_PRODUCT_TEXTURE_2D_NV
-  , pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV
-  , pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV
-  , pattern GL_DSDT8_MAG8_INTENSITY8_NV
-  , pattern GL_DSDT8_MAG8_NV
-  , pattern GL_DSDT8_NV
-  , pattern GL_DSDT_MAG_INTENSITY_NV
-  , pattern GL_DSDT_MAG_NV
-  , pattern GL_DSDT_MAG_VIB_NV
-  , pattern GL_DSDT_NV
-  , pattern GL_DS_BIAS_NV
-  , pattern GL_DS_SCALE_NV
-  , pattern GL_DT_BIAS_NV
-  , pattern GL_DT_SCALE_NV
-  , pattern GL_HILO16_NV
-  , pattern GL_HILO_NV
-  , pattern GL_HI_BIAS_NV
-  , pattern GL_HI_SCALE_NV
-  , pattern GL_LO_BIAS_NV
-  , pattern GL_LO_SCALE_NV
-  , pattern GL_MAGNITUDE_BIAS_NV
-  , pattern GL_MAGNITUDE_SCALE_NV
-  , pattern GL_OFFSET_TEXTURE_2D_BIAS_NV
-  , pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV
-  , pattern GL_OFFSET_TEXTURE_2D_NV
-  , pattern GL_OFFSET_TEXTURE_2D_SCALE_NV
-  , pattern GL_OFFSET_TEXTURE_BIAS_NV
-  , pattern GL_OFFSET_TEXTURE_MATRIX_NV
-  , pattern GL_OFFSET_TEXTURE_RECTANGLE_NV
-  , pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV
-  , pattern GL_OFFSET_TEXTURE_SCALE_NV
-  , pattern GL_PASS_THROUGH_NV
-  , pattern GL_PREVIOUS_TEXTURE_INPUT_NV
-  , pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV
-  , pattern GL_SHADER_CONSISTENT_NV
-  , pattern GL_SHADER_OPERATION_NV
-  , pattern GL_SIGNED_ALPHA8_NV
-  , pattern GL_SIGNED_ALPHA_NV
-  , pattern GL_SIGNED_HILO16_NV
-  , pattern GL_SIGNED_HILO_NV
-  , pattern GL_SIGNED_INTENSITY8_NV
-  , pattern GL_SIGNED_INTENSITY_NV
-  , pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV
-  , pattern GL_SIGNED_LUMINANCE8_NV
-  , pattern GL_SIGNED_LUMINANCE_ALPHA_NV
-  , pattern GL_SIGNED_LUMINANCE_NV
-  , pattern GL_SIGNED_RGB8_NV
-  , pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV
-  , pattern GL_SIGNED_RGBA8_NV
-  , pattern GL_SIGNED_RGBA_NV
-  , pattern GL_SIGNED_RGB_NV
-  , pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV
-  , pattern GL_TEXTURE_BORDER_VALUES_NV
-  , pattern GL_TEXTURE_DS_SIZE_NV
-  , pattern GL_TEXTURE_DT_SIZE_NV
-  , pattern GL_TEXTURE_HI_SIZE_NV
-  , pattern GL_TEXTURE_LO_SIZE_NV
-  , pattern GL_TEXTURE_MAG_SIZE_NV
-  , pattern GL_TEXTURE_SHADER_NV
-  , pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
-  , pattern GL_UNSIGNED_INT_S8_S8_8_8_NV
-  , pattern GL_VIBRANCE_BIAS_NV
-  , pattern GL_VIBRANCE_SCALE_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader.txt GL_NV_texture_shader> extension is available.
-
-gl_NV_texture_shader :: Bool
-gl_NV_texture_shader = member "GL_NV_texture_shader" extensions
-{-# NOINLINE gl_NV_texture_shader #-}
-
-pattern GL_CONST_EYE_NV = 0x86E5
-
-pattern GL_CULL_FRAGMENT_NV = 0x86E7
-
-pattern GL_CULL_MODES_NV = 0x86E0
-
-pattern GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9
-
-pattern GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA
-
-pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3
-
-pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED
-
-pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1
-
-pattern GL_DOT_PRODUCT_NV = 0x86EC
-
-pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2
-
-pattern GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE
-
-pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0
-
-pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E
-
-pattern GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B
-
-pattern GL_DSDT8_MAG8_NV = 0x870A
-
-pattern GL_DSDT8_NV = 0x8709
-
-pattern GL_DSDT_MAG_INTENSITY_NV = 0x86DC
-
-pattern GL_DSDT_MAG_NV = 0x86F6
-
-pattern GL_DSDT_MAG_VIB_NV = 0x86F7
-
-pattern GL_DSDT_NV = 0x86F5
-
-pattern GL_DS_BIAS_NV = 0x8716
-
-pattern GL_DS_SCALE_NV = 0x8710
-
-pattern GL_DT_BIAS_NV = 0x8717
-
-pattern GL_DT_SCALE_NV = 0x8711
-
-pattern GL_HILO16_NV = 0x86F8
-
-pattern GL_HILO_NV = 0x86F4
-
-pattern GL_HI_BIAS_NV = 0x8714
-
-pattern GL_HI_SCALE_NV = 0x870E
-
-pattern GL_LO_BIAS_NV = 0x8715
-
-pattern GL_LO_SCALE_NV = 0x870F
-
-pattern GL_MAGNITUDE_BIAS_NV = 0x8718
-
-pattern GL_MAGNITUDE_SCALE_NV = 0x8712
-
-pattern GL_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3
-
-pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1
-
-pattern GL_OFFSET_TEXTURE_2D_NV = 0x86E8
-
-pattern GL_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2
-
-pattern GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3
-
-pattern GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1
-
-pattern GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C
-
-pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D
-
-pattern GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2
-
-pattern GL_PASS_THROUGH_NV = 0x86E6
-
-pattern GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4
-
-pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9
-
-pattern GL_SHADER_CONSISTENT_NV = 0x86DD
-
-pattern GL_SHADER_OPERATION_NV = 0x86DF
-
-pattern GL_SIGNED_ALPHA8_NV = 0x8706
-
-pattern GL_SIGNED_ALPHA_NV = 0x8705
-
-pattern GL_SIGNED_HILO16_NV = 0x86FA
-
-pattern GL_SIGNED_HILO_NV = 0x86F9
-
-pattern GL_SIGNED_INTENSITY8_NV = 0x8708
-
-pattern GL_SIGNED_INTENSITY_NV = 0x8707
-
-pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704
-
-pattern GL_SIGNED_LUMINANCE8_NV = 0x8702
-
-pattern GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703
-
-pattern GL_SIGNED_LUMINANCE_NV = 0x8701
-
-pattern GL_SIGNED_RGB8_NV = 0x86FF
-
-pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D
-
-pattern GL_SIGNED_RGBA8_NV = 0x86FC
-
-pattern GL_SIGNED_RGBA_NV = 0x86FB
-
-pattern GL_SIGNED_RGB_NV = 0x86FE
-
-pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C
-
-pattern GL_TEXTURE_BORDER_VALUES_NV = 0x871A
-
-pattern GL_TEXTURE_DS_SIZE_NV = 0x871D
-
-pattern GL_TEXTURE_DT_SIZE_NV = 0x871E
-
-pattern GL_TEXTURE_HI_SIZE_NV = 0x871B
-
-pattern GL_TEXTURE_LO_SIZE_NV = 0x871C
-
-pattern GL_TEXTURE_MAG_SIZE_NV = 0x871F
-
-pattern GL_TEXTURE_SHADER_NV = 0x86DE
-
-pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB
-
-pattern GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA
-
-pattern GL_VIBRANCE_BIAS_NV = 0x8719
-
-pattern GL_VIBRANCE_SCALE_NV = 0x8713
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader2.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureShader2 (
-  -- * Extension Support
-    gl_NV_texture_shader2
-
-  -- * GL_NV_texture_shader2
-  , pattern GL_DOT_PRODUCT_TEXTURE_3D_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader2.txt GL_NV_texture_shader2> extension is available.
-
-gl_NV_texture_shader2 :: Bool
-gl_NV_texture_shader2 = member "GL_NV_texture_shader2" extensions
-{-# NOINLINE gl_NV_texture_shader2 #-}
-
-pattern GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader3.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TextureShader3.hs
+++ /dev/null
@@ -1,68 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TextureShader3 (
-  -- * Extension Support
-    gl_NV_texture_shader3
-
-  -- * GL_NV_texture_shader3
-  , pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV
-  , pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV
-  , pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV
-  , pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV
-  , pattern GL_DOT_PRODUCT_PASS_THROUGH_NV
-  , pattern GL_DOT_PRODUCT_TEXTURE_1D_NV
-  , pattern GL_FORCE_BLUE_TO_ONE_NV
-  , pattern GL_HILO8_NV
-  , pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV
-  , pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV
-  , pattern GL_OFFSET_HILO_TEXTURE_2D_NV
-  , pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV
-  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV
-  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV
-  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV
-  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV
-  , pattern GL_SIGNED_HILO8_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader3.txt GL_NV_texture_shader3> extension is available.
-
-gl_NV_texture_shader3 :: Bool
-gl_NV_texture_shader3 = member "GL_NV_texture_shader3" extensions
-{-# NOINLINE gl_NV_texture_shader3 #-}
-
-pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858
-
-pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859
-
-pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A
-
-pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D
-
-pattern GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B
-
-pattern GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C
-
-pattern GL_FORCE_BLUE_TO_ONE_NV = 0x8860
-
-pattern GL_HILO8_NV = 0x885E
-
-pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856
-
-pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857
-
-pattern GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854
-
-pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855
-
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850
-
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851
-
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852
-
-pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853
-
-pattern GL_SIGNED_HILO8_NV = 0x885F
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TransformFeedback.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TransformFeedback.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TransformFeedback.hs
+++ /dev/null
@@ -1,297 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TransformFeedback (
-  -- * Extension Support
-    gl_NV_transform_feedback
-
-  -- * GL_NV_transform_feedback
-  , glActiveVaryingNV
-  , glBeginTransformFeedbackNV
-  , glBindBufferBaseNV
-  , glBindBufferOffsetNV
-  , glBindBufferRangeNV
-  , glEndTransformFeedbackNV
-  , glGetActiveVaryingNV
-  , glGetTransformFeedbackVaryingNV
-  , glGetVaryingLocationNV
-  , glTransformFeedbackAttribsNV
-  , glTransformFeedbackStreamAttribsNV
-  , glTransformFeedbackVaryingsNV
-  , pattern GL_ACTIVE_VARYINGS_NV
-  , pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV
-  , pattern GL_BACK_PRIMARY_COLOR_NV
-  , pattern GL_BACK_SECONDARY_COLOR_NV
-  , pattern GL_CLIP_DISTANCE_NV
-  , pattern GL_GENERIC_ATTRIB_NV
-  , pattern GL_INTERLEAVED_ATTRIBS_NV
-  , pattern GL_LAYER_NV
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV
-  , pattern GL_NEXT_BUFFER_NV
-  , pattern GL_PRIMITIVES_GENERATED_NV
-  , pattern GL_PRIMITIVE_ID_NV
-  , pattern GL_RASTERIZER_DISCARD_NV
-  , pattern GL_SEPARATE_ATTRIBS_NV
-  , pattern GL_SKIP_COMPONENTS1_NV
-  , pattern GL_SKIP_COMPONENTS2_NV
-  , pattern GL_SKIP_COMPONENTS3_NV
-  , pattern GL_SKIP_COMPONENTS4_NV
-  , pattern GL_TEXTURE_COORD_NV
-  , pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV
-  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV
-  , pattern GL_TRANSFORM_FEEDBACK_RECORD_NV
-  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV
-  , pattern GL_VERTEX_ID_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback.txt GL_NV_transform_feedback> extension is available.
-
-gl_NV_transform_feedback :: Bool
-gl_NV_transform_feedback = member "GL_NV_transform_feedback" extensions
-{-# NOINLINE gl_NV_transform_feedback #-}
-
--- | Usage: @'glActiveVaryingNV' program name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
-
-
-glActiveVaryingNV :: MonadIO m => GLuint -> Ptr GLchar -> m ()
-glActiveVaryingNV = ffiuintPtrcharIOV glActiveVaryingNVFunPtr
-
-glActiveVaryingNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO ())
-glActiveVaryingNVFunPtr = unsafePerformIO (getProcAddress "glActiveVaryingNV")
-
-{-# NOINLINE glActiveVaryingNVFunPtr #-}
-
--- | Usage: @'glBeginTransformFeedbackNV' primitiveMode@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginTransformFeedback'.
-
-
-glBeginTransformFeedbackNV :: MonadIO m => GLenum -> m ()
-glBeginTransformFeedbackNV = ffienumIOV glBeginTransformFeedbackNVFunPtr
-
-glBeginTransformFeedbackNVFunPtr :: FunPtr (GLenum -> IO ())
-glBeginTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedbackNV")
-
-{-# NOINLINE glBeginTransformFeedbackNVFunPtr #-}
-
--- | Usage: @'glBindBufferBaseNV' target index buffer@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferBase'.
-
-
-glBindBufferBaseNV :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBindBufferBaseNV = ffienumuintuintIOV glBindBufferBaseNVFunPtr
-
-glBindBufferBaseNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBindBufferBaseNVFunPtr = unsafePerformIO (getProcAddress "glBindBufferBaseNV")
-
-{-# NOINLINE glBindBufferBaseNVFunPtr #-}
-
--- | Usage: @'glBindBufferOffsetNV' target index buffer offset@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- This command is an alias for 'Graphics.GL.Ext.EXT.TransformFeedback.glBindBufferOffsetEXT'.
-
-
-glBindBufferOffsetNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()
-glBindBufferOffsetNV = ffienumuintuintintptrIOV glBindBufferOffsetNVFunPtr
-
-glBindBufferOffsetNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
-glBindBufferOffsetNVFunPtr = unsafePerformIO (getProcAddress "glBindBufferOffsetNV")
-
-{-# NOINLINE glBindBufferOffsetNVFunPtr #-}
-
--- | Usage: @'glBindBufferRangeNV' target index buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferRange'.
-
-
-glBindBufferRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glBindBufferRangeNV = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeNVFunPtr
-
-glBindBufferRangeNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glBindBufferRangeNVFunPtr = unsafePerformIO (getProcAddress "glBindBufferRangeNV")
-
-{-# NOINLINE glBindBufferRangeNVFunPtr #-}
-
--- | Usage: @'glEndTransformFeedbackNV'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEndTransformFeedback'.
-
-
-glEndTransformFeedbackNV :: MonadIO m => m ()
-glEndTransformFeedbackNV = ffiIOV glEndTransformFeedbackNVFunPtr
-
-glEndTransformFeedbackNVFunPtr :: FunPtr (IO ())
-glEndTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedbackNV")
-
-{-# NOINLINE glEndTransformFeedbackNVFunPtr #-}
-
--- | Usage: @'glGetActiveVaryingNV' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @COMPSIZE(program,index,bufSize)@.
-
-
-glGetActiveVaryingNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetActiveVaryingNV = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetActiveVaryingNVFunPtr
-
-glGetActiveVaryingNVFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetActiveVaryingNVFunPtr = unsafePerformIO (getProcAddress "glGetActiveVaryingNV")
-
-{-# NOINLINE glGetActiveVaryingNVFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbackVaryingNV' program index location@
---
--- The length of @location@ should be @1@.
-
-
-glGetTransformFeedbackVaryingNV :: MonadIO m => GLuint -> GLuint -> Ptr GLint -> m ()
-glGetTransformFeedbackVaryingNV = ffiuintuintPtrintIOV glGetTransformFeedbackVaryingNVFunPtr
-
-glGetTransformFeedbackVaryingNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
-glGetTransformFeedbackVaryingNVFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVaryingNV")
-
-{-# NOINLINE glGetTransformFeedbackVaryingNVFunPtr #-}
-
--- | Usage: @'glGetVaryingLocationNV' program name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
-
-
-glGetVaryingLocationNV :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetVaryingLocationNV = ffiuintPtrcharIOint glGetVaryingLocationNVFunPtr
-
-glGetVaryingLocationNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetVaryingLocationNVFunPtr = unsafePerformIO (getProcAddress "glGetVaryingLocationNV")
-
-{-# NOINLINE glGetVaryingLocationNVFunPtr #-}
-
--- | Usage: @'glTransformFeedbackAttribsNV' count attribs bufferMode@
---
--- The length of @attribs@ should be @COMPSIZE(count)@.
-
-
-glTransformFeedbackAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLenum -> m ()
-glTransformFeedbackAttribsNV = ffisizeiPtrintenumIOV glTransformFeedbackAttribsNVFunPtr
-
-glTransformFeedbackAttribsNVFunPtr :: FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ())
-glTransformFeedbackAttribsNVFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackAttribsNV")
-
-{-# NOINLINE glTransformFeedbackAttribsNVFunPtr #-}
-
--- | Usage: @'glTransformFeedbackStreamAttribsNV' count attribs nbuffers bufstreams bufferMode@
---
--- The length of @attribs@ should be @count@.
---
--- The length of @bufstreams@ should be @nbuffers@.
-
-
-glTransformFeedbackStreamAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
-glTransformFeedbackStreamAttribsNV = ffisizeiPtrintsizeiPtrintenumIOV glTransformFeedbackStreamAttribsNVFunPtr
-
-glTransformFeedbackStreamAttribsNVFunPtr :: FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
-glTransformFeedbackStreamAttribsNVFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackStreamAttribsNV")
-
-{-# NOINLINE glTransformFeedbackStreamAttribsNVFunPtr #-}
-
--- | Usage: @'glTransformFeedbackVaryingsNV' program count locations bufferMode@
---
--- The length of @locations@ should be @count@.
-
-
-glTransformFeedbackVaryingsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
-glTransformFeedbackVaryingsNV = ffiuintsizeiPtrintenumIOV glTransformFeedbackVaryingsNVFunPtr
-
-glTransformFeedbackVaryingsNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
-glTransformFeedbackVaryingsNVFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryingsNV")
-
-{-# NOINLINE glTransformFeedbackVaryingsNVFunPtr #-}
-
-pattern GL_ACTIVE_VARYINGS_NV = 0x8C81
-
-pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82
-
-pattern GL_BACK_PRIMARY_COLOR_NV = 0x8C77
-
-pattern GL_BACK_SECONDARY_COLOR_NV = 0x8C78
-
-pattern GL_CLIP_DISTANCE_NV = 0x8C7A
-
-pattern GL_GENERIC_ATTRIB_NV = 0x8C7D
-
-pattern GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C
-
-pattern GL_LAYER_NV = 0x8DAA
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80
-
-pattern GL_NEXT_BUFFER_NV = -2
-
-pattern GL_PRIMITIVES_GENERATED_NV = 0x8C87
-
-pattern GL_PRIMITIVE_ID_NV = 0x8C7C
-
-pattern GL_RASTERIZER_DISCARD_NV = 0x8C89
-
-pattern GL_SEPARATE_ATTRIBS_NV = 0x8C8D
-
-pattern GL_SKIP_COMPONENTS1_NV = -6
-
-pattern GL_SKIP_COMPONENTS2_NV = -5
-
-pattern GL_SKIP_COMPONENTS3_NV = -4
-
-pattern GL_SKIP_COMPONENTS4_NV = -3
-
-pattern GL_TEXTURE_COORD_NV = 0x8C79
-
-pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84
-
-pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88
-
-pattern GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86
-
-pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83
-
-pattern GL_VERTEX_ID_NV = 0x8C7B
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/TransformFeedback2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/TransformFeedback2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/TransformFeedback2.hs
+++ /dev/null
@@ -1,138 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.TransformFeedback2 (
-  -- * Extension Support
-    gl_NV_transform_feedback2
-
-  -- * GL_NV_transform_feedback2
-  , glBindTransformFeedbackNV
-  , glDeleteTransformFeedbacksNV
-  , glDrawTransformFeedbackNV
-  , glGenTransformFeedbacksNV
-  , glIsTransformFeedbackNV
-  , glPauseTransformFeedbackNV
-  , glResumeTransformFeedbackNV
-  , pattern GL_TRANSFORM_FEEDBACK_BINDING_NV
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV
-  , pattern GL_TRANSFORM_FEEDBACK_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback2.txt GL_NV_transform_feedback2> extension is available.
-
-gl_NV_transform_feedback2 :: Bool
-gl_NV_transform_feedback2 = member "GL_NV_transform_feedback2" extensions
-{-# NOINLINE gl_NV_transform_feedback2 #-}
-
--- | Usage: @'glBindTransformFeedbackNV' target id@
---
--- The parameter @target@ is a @BufferTargetARB@.
-
-
-glBindTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTransformFeedbackNV = ffienumuintIOV glBindTransformFeedbackNVFunPtr
-
-glBindTransformFeedbackNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedbackNV")
-
-{-# NOINLINE glBindTransformFeedbackNVFunPtr #-}
-
--- | Usage: @'glDeleteTransformFeedbacksNV' n ids@
---
--- The length of @ids@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteTransformFeedbacks'.
-
-
-glDeleteTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTransformFeedbacksNV = ffisizeiPtruintIOV glDeleteTransformFeedbacksNVFunPtr
-
-glDeleteTransformFeedbacksNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTransformFeedbacksNVFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacksNV")
-
-{-# NOINLINE glDeleteTransformFeedbacksNVFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackNV' mode id@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawTransformFeedback'.
-
-
-glDrawTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
-glDrawTransformFeedbackNV = ffienumuintIOV glDrawTransformFeedbackNVFunPtr
-
-glDrawTransformFeedbackNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDrawTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackNV")
-
-{-# NOINLINE glDrawTransformFeedbackNVFunPtr #-}
-
--- | Usage: @'glGenTransformFeedbacksNV' n ids@
---
--- The length of @ids@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenTransformFeedbacks'.
-
-
-glGenTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTransformFeedbacksNV = ffisizeiPtruintIOV glGenTransformFeedbacksNVFunPtr
-
-glGenTransformFeedbacksNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTransformFeedbacksNVFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacksNV")
-
-{-# NOINLINE glGenTransformFeedbacksNVFunPtr #-}
-
--- | Usage: @'glIsTransformFeedbackNV' id@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsTransformFeedback'.
-
-
-glIsTransformFeedbackNV :: MonadIO m => GLuint -> m GLboolean
-glIsTransformFeedbackNV = ffiuintIOboolean glIsTransformFeedbackNVFunPtr
-
-glIsTransformFeedbackNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedbackNV")
-
-{-# NOINLINE glIsTransformFeedbackNVFunPtr #-}
-
--- | Usage: @'glPauseTransformFeedbackNV'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPauseTransformFeedback'.
-
-
-glPauseTransformFeedbackNV :: MonadIO m => m ()
-glPauseTransformFeedbackNV = ffiIOV glPauseTransformFeedbackNVFunPtr
-
-glPauseTransformFeedbackNVFunPtr :: FunPtr (IO ())
-glPauseTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedbackNV")
-
-{-# NOINLINE glPauseTransformFeedbackNVFunPtr #-}
-
--- | Usage: @'glResumeTransformFeedbackNV'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glResumeTransformFeedback'.
-
-
-glResumeTransformFeedbackNV :: MonadIO m => m ()
-glResumeTransformFeedbackNV = ffiIOV glResumeTransformFeedbackNVFunPtr
-
-glResumeTransformFeedbackNVFunPtr :: FunPtr (IO ())
-glResumeTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedbackNV")
-
-{-# NOINLINE glResumeTransformFeedbackNVFunPtr #-}
-
-pattern GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23
-
-pattern GL_TRANSFORM_FEEDBACK_NV = 0x8E22
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs b/dist/build/autogen/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.UniformBufferUnifiedMemory (
-  -- * Extension Support
-    gl_NV_uniform_buffer_unified_memory
-
-  -- * GL_NV_uniform_buffer_unified_memory
-  , pattern GL_UNIFORM_BUFFER_ADDRESS_NV
-  , pattern GL_UNIFORM_BUFFER_LENGTH_NV
-  , pattern GL_UNIFORM_BUFFER_UNIFIED_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/uniform_buffer_unified_memory.txt GL_NV_uniform_buffer_unified_memory> extension is available.
-
-gl_NV_uniform_buffer_unified_memory :: Bool
-gl_NV_uniform_buffer_unified_memory = member "GL_NV_uniform_buffer_unified_memory" extensions
-{-# NOINLINE gl_NV_uniform_buffer_unified_memory #-}
-
-pattern GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F
-
-pattern GL_UNIFORM_BUFFER_LENGTH_NV = 0x9370
-
-pattern GL_UNIFORM_BUFFER_UNIFIED_NV = 0x936E
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VdpauInterop.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VdpauInterop.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VdpauInterop.hs
+++ /dev/null
@@ -1,176 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VdpauInterop (
-  -- * Extension Support
-    gl_NV_vdpau_interop
-
-  -- * GL_NV_vdpau_interop
-  , glVDPAUFiniNV
-  , glVDPAUGetSurfaceivNV
-  , glVDPAUInitNV
-  , glVDPAUIsSurfaceNV
-  , glVDPAUMapSurfacesNV
-  , glVDPAURegisterOutputSurfaceNV
-  , glVDPAURegisterVideoSurfaceNV
-  , glVDPAUSurfaceAccessNV
-  , glVDPAUUnmapSurfacesNV
-  , glVDPAUUnregisterSurfaceNV
-  , pattern GL_SURFACE_MAPPED_NV
-  , pattern GL_SURFACE_REGISTERED_NV
-  , pattern GL_SURFACE_STATE_NV
-  , pattern GL_WRITE_DISCARD_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vdpau_interop.txt GL_NV_vdpau_interop> extension is available.
-
-gl_NV_vdpau_interop :: Bool
-gl_NV_vdpau_interop = member "GL_NV_vdpau_interop" extensions
-{-# NOINLINE gl_NV_vdpau_interop #-}
-
--- | Usage: @'glVDPAUFiniNV'@
-
-
-glVDPAUFiniNV :: MonadIO m => m ()
-glVDPAUFiniNV = ffiIOV glVDPAUFiniNVFunPtr
-
-glVDPAUFiniNVFunPtr :: FunPtr (IO ())
-glVDPAUFiniNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUFiniNV")
-
-{-# NOINLINE glVDPAUFiniNVFunPtr #-}
-
--- | Usage: @'glVDPAUGetSurfaceivNV' surface pname bufSize length values@
---
--- The parameter @surface@ is a @vdpauSurfaceNV@.
---
--- The length of @values@ should be @bufSize@.
-
-
-glVDPAUGetSurfaceivNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glVDPAUGetSurfaceivNV = ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV glVDPAUGetSurfaceivNVFunPtr
-
-glVDPAUGetSurfaceivNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glVDPAUGetSurfaceivNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUGetSurfaceivNV")
-
-{-# NOINLINE glVDPAUGetSurfaceivNVFunPtr #-}
-
--- | Usage: @'glVDPAUInitNV' vdpDevice getProcAddress@
-
-
-glVDPAUInitNV :: MonadIO m => Ptr () -> Ptr () -> m ()
-glVDPAUInitNV = ffiPtrVPtrVIOV glVDPAUInitNVFunPtr
-
-glVDPAUInitNVFunPtr :: FunPtr (Ptr () -> Ptr () -> IO ())
-glVDPAUInitNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUInitNV")
-
-{-# NOINLINE glVDPAUInitNVFunPtr #-}
-
--- | Usage: @'glVDPAUIsSurfaceNV' surface@
---
--- The parameter @surface@ is a @vdpauSurfaceNV@.
-
-
-glVDPAUIsSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m GLboolean
-glVDPAUIsSurfaceNV = ffivdpauSurfaceNVIOboolean glVDPAUIsSurfaceNVFunPtr
-
-glVDPAUIsSurfaceNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
-glVDPAUIsSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUIsSurfaceNV")
-
-{-# NOINLINE glVDPAUIsSurfaceNVFunPtr #-}
-
--- | Usage: @'glVDPAUMapSurfacesNV' numSurfaces surfaces@
---
--- The parameter @surfaces@ is a @vdpauSurfaceNV@.
---
--- The length of @surfaces@ should be @numSurfaces@.
-
-
-glVDPAUMapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
-glVDPAUMapSurfacesNV = ffisizeiPtrvdpauSurfaceNVIOV glVDPAUMapSurfacesNVFunPtr
-
-glVDPAUMapSurfacesNVFunPtr :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
-glVDPAUMapSurfacesNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUMapSurfacesNV")
-
-{-# NOINLINE glVDPAUMapSurfacesNVFunPtr #-}
-
--- | Usage: @'glVDPAURegisterOutputSurfaceNV' vdpSurface target numTextureNames textureNames@
---
--- The length of @textureNames@ should be @numTextureNames@.
-
-
-glVDPAURegisterOutputSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
-glVDPAURegisterOutputSurfaceNV = ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV glVDPAURegisterOutputSurfaceNVFunPtr
-
-glVDPAURegisterOutputSurfaceNVFunPtr :: FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
-glVDPAURegisterOutputSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAURegisterOutputSurfaceNV")
-
-{-# NOINLINE glVDPAURegisterOutputSurfaceNVFunPtr #-}
-
--- | Usage: @'glVDPAURegisterVideoSurfaceNV' vdpSurface target numTextureNames textureNames@
---
--- The length of @textureNames@ should be @numTextureNames@.
-
-
-glVDPAURegisterVideoSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
-glVDPAURegisterVideoSurfaceNV = ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV glVDPAURegisterVideoSurfaceNVFunPtr
-
-glVDPAURegisterVideoSurfaceNVFunPtr :: FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
-glVDPAURegisterVideoSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAURegisterVideoSurfaceNV")
-
-{-# NOINLINE glVDPAURegisterVideoSurfaceNVFunPtr #-}
-
--- | Usage: @'glVDPAUSurfaceAccessNV' surface access@
---
--- The parameter @surface@ is a @vdpauSurfaceNV@.
-
-
-glVDPAUSurfaceAccessNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> m ()
-glVDPAUSurfaceAccessNV = ffivdpauSurfaceNVenumIOV glVDPAUSurfaceAccessNVFunPtr
-
-glVDPAUSurfaceAccessNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ())
-glVDPAUSurfaceAccessNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUSurfaceAccessNV")
-
-{-# NOINLINE glVDPAUSurfaceAccessNVFunPtr #-}
-
--- | Usage: @'glVDPAUUnmapSurfacesNV' numSurface surfaces@
---
--- The parameter @surfaces@ is a @vdpauSurfaceNV@.
---
--- The length of @surfaces@ should be @numSurface@.
-
-
-glVDPAUUnmapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
-glVDPAUUnmapSurfacesNV = ffisizeiPtrvdpauSurfaceNVIOV glVDPAUUnmapSurfacesNVFunPtr
-
-glVDPAUUnmapSurfacesNVFunPtr :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
-glVDPAUUnmapSurfacesNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUUnmapSurfacesNV")
-
-{-# NOINLINE glVDPAUUnmapSurfacesNVFunPtr #-}
-
--- | Usage: @'glVDPAUUnregisterSurfaceNV' surface@
---
--- The parameter @surface@ is a @vdpauSurfaceNV@.
-
-
-glVDPAUUnregisterSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m ()
-glVDPAUUnregisterSurfaceNV = ffivdpauSurfaceNVIOV glVDPAUUnregisterSurfaceNVFunPtr
-
-glVDPAUUnregisterSurfaceNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> IO ())
-glVDPAUUnregisterSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUUnregisterSurfaceNV")
-
-{-# NOINLINE glVDPAUUnregisterSurfaceNVFunPtr #-}
-
-pattern GL_SURFACE_MAPPED_NV = 0x8700
-
-pattern GL_SURFACE_REGISTERED_NV = 0x86FD
-
-pattern GL_SURFACE_STATE_NV = 0x86EB
-
-pattern GL_WRITE_DISCARD_NV = 0x88BE
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexArrayRange.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexArrayRange.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexArrayRange.hs
+++ /dev/null
@@ -1,63 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexArrayRange (
-  -- * Extension Support
-    gl_NV_vertex_array_range
-
-  -- * GL_NV_vertex_array_range
-  , glFlushVertexArrayRangeNV
-  , glVertexArrayRangeNV
-  , pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV
-  , pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV
-  , pattern GL_VERTEX_ARRAY_RANGE_NV
-  , pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV
-  , pattern GL_VERTEX_ARRAY_RANGE_VALID_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range.txt GL_NV_vertex_array_range> extension is available.
-
-gl_NV_vertex_array_range :: Bool
-gl_NV_vertex_array_range = member "GL_NV_vertex_array_range" extensions
-{-# NOINLINE gl_NV_vertex_array_range #-}
-
--- | Usage: @'glFlushVertexArrayRangeNV'@
-
-
-glFlushVertexArrayRangeNV :: MonadIO m => m ()
-glFlushVertexArrayRangeNV = ffiIOV glFlushVertexArrayRangeNVFunPtr
-
-glFlushVertexArrayRangeNVFunPtr :: FunPtr (IO ())
-glFlushVertexArrayRangeNVFunPtr = unsafePerformIO (getProcAddress "glFlushVertexArrayRangeNV")
-
-{-# NOINLINE glFlushVertexArrayRangeNVFunPtr #-}
-
--- | Usage: @'glVertexArrayRangeNV' length pointer@
---
--- The length of @pointer@ should be @COMPSIZE(length)@.
-
-
-glVertexArrayRangeNV :: MonadIO m => GLsizei -> Ptr () -> m ()
-glVertexArrayRangeNV = ffisizeiPtrVIOV glVertexArrayRangeNVFunPtr
-
-glVertexArrayRangeNVFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
-glVertexArrayRangeNVFunPtr = unsafePerformIO (getProcAddress "glVertexArrayRangeNV")
-
-{-# NOINLINE glVertexArrayRangeNVFunPtr #-}
-
-pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520
-
-pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E
-
-pattern GL_VERTEX_ARRAY_RANGE_NV = 0x851D
-
-pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521
-
-pattern GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexArrayRange2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexArrayRange2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexArrayRange2.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexArrayRange2 (
-  -- * Extension Support
-    gl_NV_vertex_array_range2
-
-  -- * GL_NV_vertex_array_range2
-  , pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range2.txt GL_NV_vertex_array_range2> extension is available.
-
-gl_NV_vertex_array_range2 :: Bool
-gl_NV_vertex_array_range2 = member "GL_NV_vertex_array_range2" extensions
-{-# NOINLINE gl_NV_vertex_array_range2 #-}
-
-pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexAttribInteger64bit.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexAttribInteger64bit.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexAttribInteger64bit.hs
+++ /dev/null
@@ -1,273 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexAttribInteger64bit (
-  -- * Extension Support
-    gl_NV_vertex_attrib_integer_64bit
-
-  -- * GL_NV_vertex_attrib_integer_64bit
-  , glGetVertexAttribLi64vNV
-  , glGetVertexAttribLui64vNV
-  , glVertexAttribL1i64NV
-  , glVertexAttribL1i64vNV
-  , glVertexAttribL1ui64NV
-  , glVertexAttribL1ui64vNV
-  , glVertexAttribL2i64NV
-  , glVertexAttribL2i64vNV
-  , glVertexAttribL2ui64NV
-  , glVertexAttribL2ui64vNV
-  , glVertexAttribL3i64NV
-  , glVertexAttribL3i64vNV
-  , glVertexAttribL3ui64NV
-  , glVertexAttribL3ui64vNV
-  , glVertexAttribL4i64NV
-  , glVertexAttribL4i64vNV
-  , glVertexAttribL4ui64NV
-  , glVertexAttribL4ui64vNV
-  , glVertexAttribLFormatNV
-  , pattern GL_INT64_NV
-  , pattern GL_UNSIGNED_INT64_NV
-) 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/NV/vertex_attrib_integer_64bit.txt GL_NV_vertex_attrib_integer_64bit> extension is available.
-
-gl_NV_vertex_attrib_integer_64bit :: Bool
-gl_NV_vertex_attrib_integer_64bit = member "GL_NV_vertex_attrib_integer_64bit" extensions
-{-# NOINLINE gl_NV_vertex_attrib_integer_64bit #-}
-
--- | Usage: @'glGetVertexAttribLi64vNV' index pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVertexAttribLi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
-glGetVertexAttribLi64vNV = ffiuintenumPtrint64EXTIOV glGetVertexAttribLi64vNVFunPtr
-
-glGetVertexAttribLi64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
-glGetVertexAttribLi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLi64vNV")
-
-{-# NOINLINE glGetVertexAttribLi64vNVFunPtr #-}
-
--- | Usage: @'glGetVertexAttribLui64vNV' index pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVertexAttribLui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
-glGetVertexAttribLui64vNV = ffiuintenumPtruint64EXTIOV glGetVertexAttribLui64vNVFunPtr
-
-glGetVertexAttribLui64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
-glGetVertexAttribLui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLui64vNV")
-
-{-# NOINLINE glGetVertexAttribLui64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL1i64NV' index x@
-
-
-glVertexAttribL1i64NV :: MonadIO m => GLuint -> GLint64EXT -> m ()
-glVertexAttribL1i64NV = ffiuintint64EXTIOV glVertexAttribL1i64NVFunPtr
-
-glVertexAttribL1i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> IO ())
-glVertexAttribL1i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1i64NV")
-
-{-# NOINLINE glVertexAttribL1i64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL1i64vNV' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribL1i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
-glVertexAttribL1i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL1i64vNVFunPtr
-
-glVertexAttribL1i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
-glVertexAttribL1i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1i64vNV")
-
-{-# NOINLINE glVertexAttribL1i64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL1ui64NV' index x@
-
-
-glVertexAttribL1ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> m ()
-glVertexAttribL1ui64NV = ffiuintuint64EXTIOV glVertexAttribL1ui64NVFunPtr
-
-glVertexAttribL1ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> IO ())
-glVertexAttribL1ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64NV")
-
-{-# NOINLINE glVertexAttribL1ui64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL1ui64vNV' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribL1ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
-glVertexAttribL1ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL1ui64vNVFunPtr
-
-glVertexAttribL1ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
-glVertexAttribL1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64vNV")
-
-{-# NOINLINE glVertexAttribL1ui64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL2i64NV' index x y@
-
-
-glVertexAttribL2i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> m ()
-glVertexAttribL2i64NV = ffiuintint64EXTint64EXTIOV glVertexAttribL2i64NVFunPtr
-
-glVertexAttribL2i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ())
-glVertexAttribL2i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2i64NV")
-
-{-# NOINLINE glVertexAttribL2i64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL2i64vNV' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribL2i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
-glVertexAttribL2i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL2i64vNVFunPtr
-
-glVertexAttribL2i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
-glVertexAttribL2i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2i64vNV")
-
-{-# NOINLINE glVertexAttribL2i64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL2ui64NV' index x y@
-
-
-glVertexAttribL2ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
-glVertexAttribL2ui64NV = ffiuintuint64EXTuint64EXTIOV glVertexAttribL2ui64NVFunPtr
-
-glVertexAttribL2ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ())
-glVertexAttribL2ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2ui64NV")
-
-{-# NOINLINE glVertexAttribL2ui64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL2ui64vNV' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribL2ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
-glVertexAttribL2ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL2ui64vNVFunPtr
-
-glVertexAttribL2ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
-glVertexAttribL2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2ui64vNV")
-
-{-# NOINLINE glVertexAttribL2ui64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL3i64NV' index x y z@
-
-
-glVertexAttribL3i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glVertexAttribL3i64NV = ffiuintint64EXTint64EXTint64EXTIOV glVertexAttribL3i64NVFunPtr
-
-glVertexAttribL3i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glVertexAttribL3i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3i64NV")
-
-{-# NOINLINE glVertexAttribL3i64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL3i64vNV' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribL3i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
-glVertexAttribL3i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL3i64vNVFunPtr
-
-glVertexAttribL3i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
-glVertexAttribL3i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3i64vNV")
-
-{-# NOINLINE glVertexAttribL3i64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL3ui64NV' index x y z@
-
-
-glVertexAttribL3ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glVertexAttribL3ui64NV = ffiuintuint64EXTuint64EXTuint64EXTIOV glVertexAttribL3ui64NVFunPtr
-
-glVertexAttribL3ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glVertexAttribL3ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3ui64NV")
-
-{-# NOINLINE glVertexAttribL3ui64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL3ui64vNV' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribL3ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
-glVertexAttribL3ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL3ui64vNVFunPtr
-
-glVertexAttribL3ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
-glVertexAttribL3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3ui64vNV")
-
-{-# NOINLINE glVertexAttribL3ui64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL4i64NV' index x y z w@
-
-
-glVertexAttribL4i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glVertexAttribL4i64NV = ffiuintint64EXTint64EXTint64EXTint64EXTIOV glVertexAttribL4i64NVFunPtr
-
-glVertexAttribL4i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glVertexAttribL4i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4i64NV")
-
-{-# NOINLINE glVertexAttribL4i64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL4i64vNV' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribL4i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
-glVertexAttribL4i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL4i64vNVFunPtr
-
-glVertexAttribL4i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
-glVertexAttribL4i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4i64vNV")
-
-{-# NOINLINE glVertexAttribL4i64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribL4ui64NV' index x y z w@
-
-
-glVertexAttribL4ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glVertexAttribL4ui64NV = ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV glVertexAttribL4ui64NVFunPtr
-
-glVertexAttribL4ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glVertexAttribL4ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4ui64NV")
-
-{-# NOINLINE glVertexAttribL4ui64NVFunPtr #-}
-
--- | Usage: @'glVertexAttribL4ui64vNV' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribL4ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
-glVertexAttribL4ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL4ui64vNVFunPtr
-
-glVertexAttribL4ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
-glVertexAttribL4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4ui64vNV")
-
-{-# NOINLINE glVertexAttribL4ui64vNVFunPtr #-}
-
--- | Usage: @'glVertexAttribLFormatNV' index size type stride@
-
-
-glVertexAttribLFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()
-glVertexAttribLFormatNV = ffiuintintenumsizeiIOV glVertexAttribLFormatNVFunPtr
-
-glVertexAttribLFormatNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ())
-glVertexAttribLFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormatNV")
-
-{-# NOINLINE glVertexAttribLFormatNVFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs
+++ /dev/null
@@ -1,247 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexBufferUnifiedMemory (
-  -- * Extension Support
-    gl_NV_vertex_buffer_unified_memory
-
-  -- * GL_NV_vertex_buffer_unified_memory
-  , glBufferAddressRangeNV
-  , glColorFormatNV
-  , glEdgeFlagFormatNV
-  , glFogCoordFormatNV
-  , glGetIntegerui64i_vNV
-  , glIndexFormatNV
-  , glNormalFormatNV
-  , glSecondaryColorFormatNV
-  , glTexCoordFormatNV
-  , glVertexAttribFormatNV
-  , glVertexAttribIFormatNV
-  , glVertexFormatNV
-  , pattern GL_COLOR_ARRAY_ADDRESS_NV
-  , pattern GL_COLOR_ARRAY_LENGTH_NV
-  , pattern GL_DRAW_INDIRECT_ADDRESS_NV
-  , pattern GL_DRAW_INDIRECT_LENGTH_NV
-  , pattern GL_DRAW_INDIRECT_UNIFIED_NV
-  , pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV
-  , pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV
-  , pattern GL_ELEMENT_ARRAY_ADDRESS_NV
-  , pattern GL_ELEMENT_ARRAY_LENGTH_NV
-  , pattern GL_ELEMENT_ARRAY_UNIFIED_NV
-  , pattern GL_FOG_COORD_ARRAY_ADDRESS_NV
-  , pattern GL_FOG_COORD_ARRAY_LENGTH_NV
-  , pattern GL_INDEX_ARRAY_ADDRESS_NV
-  , pattern GL_INDEX_ARRAY_LENGTH_NV
-  , pattern GL_NORMAL_ARRAY_ADDRESS_NV
-  , pattern GL_NORMAL_ARRAY_LENGTH_NV
-  , pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV
-  , pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV
-  , pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV
-  , pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV
-  , pattern GL_VERTEX_ARRAY_ADDRESS_NV
-  , pattern GL_VERTEX_ARRAY_LENGTH_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_buffer_unified_memory.txt GL_NV_vertex_buffer_unified_memory> extension is available.
-
-gl_NV_vertex_buffer_unified_memory :: Bool
-gl_NV_vertex_buffer_unified_memory = member "GL_NV_vertex_buffer_unified_memory" extensions
-{-# NOINLINE gl_NV_vertex_buffer_unified_memory #-}
-
--- | Usage: @'glBufferAddressRangeNV' pname index address length@
---
--- The parameter @length@ is a @BufferSize@.
-
-
-glBufferAddressRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()
-glBufferAddressRangeNV = ffienumuintuint64EXTsizeiptrIOV glBufferAddressRangeNVFunPtr
-
-glBufferAddressRangeNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ())
-glBufferAddressRangeNVFunPtr = unsafePerformIO (getProcAddress "glBufferAddressRangeNV")
-
-{-# NOINLINE glBufferAddressRangeNVFunPtr #-}
-
--- | Usage: @'glColorFormatNV' size type stride@
-
-
-glColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
-glColorFormatNV = ffiintenumsizeiIOV glColorFormatNVFunPtr
-
-glColorFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
-glColorFormatNVFunPtr = unsafePerformIO (getProcAddress "glColorFormatNV")
-
-{-# NOINLINE glColorFormatNVFunPtr #-}
-
--- | Usage: @'glEdgeFlagFormatNV' stride@
-
-
-glEdgeFlagFormatNV :: MonadIO m => GLsizei -> m ()
-glEdgeFlagFormatNV = ffisizeiIOV glEdgeFlagFormatNVFunPtr
-
-glEdgeFlagFormatNVFunPtr :: FunPtr (GLsizei -> IO ())
-glEdgeFlagFormatNVFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagFormatNV")
-
-{-# NOINLINE glEdgeFlagFormatNVFunPtr #-}
-
--- | Usage: @'glFogCoordFormatNV' type stride@
-
-
-glFogCoordFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
-glFogCoordFormatNV = ffienumsizeiIOV glFogCoordFormatNVFunPtr
-
-glFogCoordFormatNVFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
-glFogCoordFormatNVFunPtr = unsafePerformIO (getProcAddress "glFogCoordFormatNV")
-
-{-# NOINLINE glFogCoordFormatNVFunPtr #-}
-
--- | Usage: @'glGetIntegerui64i_vNV' value index result@
---
--- The length of @result@ should be @COMPSIZE(value)@.
-
-
-glGetIntegerui64i_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
-glGetIntegerui64i_vNV = ffienumuintPtruint64EXTIOV glGetIntegerui64i_vNVFunPtr
-
-glGetIntegerui64i_vNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ())
-glGetIntegerui64i_vNVFunPtr = unsafePerformIO (getProcAddress "glGetIntegerui64i_vNV")
-
-{-# NOINLINE glGetIntegerui64i_vNVFunPtr #-}
-
--- | Usage: @'glIndexFormatNV' type stride@
-
-
-glIndexFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
-glIndexFormatNV = ffienumsizeiIOV glIndexFormatNVFunPtr
-
-glIndexFormatNVFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
-glIndexFormatNVFunPtr = unsafePerformIO (getProcAddress "glIndexFormatNV")
-
-{-# NOINLINE glIndexFormatNVFunPtr #-}
-
--- | Usage: @'glNormalFormatNV' type stride@
-
-
-glNormalFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
-glNormalFormatNV = ffienumsizeiIOV glNormalFormatNVFunPtr
-
-glNormalFormatNVFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
-glNormalFormatNVFunPtr = unsafePerformIO (getProcAddress "glNormalFormatNV")
-
-{-# NOINLINE glNormalFormatNVFunPtr #-}
-
--- | Usage: @'glSecondaryColorFormatNV' size type stride@
-
-
-glSecondaryColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
-glSecondaryColorFormatNV = ffiintenumsizeiIOV glSecondaryColorFormatNVFunPtr
-
-glSecondaryColorFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
-glSecondaryColorFormatNVFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorFormatNV")
-
-{-# NOINLINE glSecondaryColorFormatNVFunPtr #-}
-
--- | Usage: @'glTexCoordFormatNV' size type stride@
-
-
-glTexCoordFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
-glTexCoordFormatNV = ffiintenumsizeiIOV glTexCoordFormatNVFunPtr
-
-glTexCoordFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
-glTexCoordFormatNVFunPtr = unsafePerformIO (getProcAddress "glTexCoordFormatNV")
-
-{-# NOINLINE glTexCoordFormatNVFunPtr #-}
-
--- | Usage: @'glVertexAttribFormatNV' index size type normalized stride@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()
-glVertexAttribFormatNV = ffiuintintenumbooleansizeiIOV glVertexAttribFormatNVFunPtr
-
-glVertexAttribFormatNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ())
-glVertexAttribFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormatNV")
-
-{-# NOINLINE glVertexAttribFormatNVFunPtr #-}
-
--- | Usage: @'glVertexAttribIFormatNV' index size type stride@
-
-
-glVertexAttribIFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()
-glVertexAttribIFormatNV = ffiuintintenumsizeiIOV glVertexAttribIFormatNVFunPtr
-
-glVertexAttribIFormatNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ())
-glVertexAttribIFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormatNV")
-
-{-# NOINLINE glVertexAttribIFormatNVFunPtr #-}
-
--- | Usage: @'glVertexFormatNV' size type stride@
-
-
-glVertexFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
-glVertexFormatNV = ffiintenumsizeiIOV glVertexFormatNVFunPtr
-
-glVertexFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
-glVertexFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexFormatNV")
-
-{-# NOINLINE glVertexFormatNVFunPtr #-}
-
-pattern GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23
-
-pattern GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D
-
-pattern GL_DRAW_INDIRECT_ADDRESS_NV = 0x8F41
-
-pattern GL_DRAW_INDIRECT_LENGTH_NV = 0x8F42
-
-pattern GL_DRAW_INDIRECT_UNIFIED_NV = 0x8F40
-
-pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26
-
-pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30
-
-pattern GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29
-
-pattern GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33
-
-pattern GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F
-
-pattern GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28
-
-pattern GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
-
-pattern GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24
-
-pattern GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E
-
-pattern GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22
-
-pattern GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C
-
-pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27
-
-pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31
-
-pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25
-
-pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F
-
-pattern GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21
-
-pattern GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B
-
-pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20
-
-pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram.hs
+++ /dev/null
@@ -1,1297 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexProgram (
-  -- * Extension Support
-    gl_NV_vertex_program
-
-  -- * GL_NV_vertex_program
-  , glAreProgramsResidentNV
-  , glBindProgramNV
-  , glDeleteProgramsNV
-  , glExecuteProgramNV
-  , glGenProgramsNV
-  , glGetProgramParameterdvNV
-  , glGetProgramParameterfvNV
-  , glGetProgramStringNV
-  , glGetProgramivNV
-  , glGetTrackMatrixivNV
-  , glGetVertexAttribPointervNV
-  , glGetVertexAttribdvNV
-  , glGetVertexAttribfvNV
-  , glGetVertexAttribivNV
-  , glIsProgramNV
-  , glLoadProgramNV
-  , glProgramParameter4dNV
-  , glProgramParameter4dvNV
-  , glProgramParameter4fNV
-  , glProgramParameter4fvNV
-  , glProgramParameters4dvNV
-  , glProgramParameters4fvNV
-  , glRequestResidentProgramsNV
-  , glTrackMatrixNV
-  , glVertexAttrib1dNV
-  , glVertexAttrib1dvNV
-  , glVertexAttrib1fNV
-  , glVertexAttrib1fvNV
-  , glVertexAttrib1sNV
-  , glVertexAttrib1svNV
-  , glVertexAttrib2dNV
-  , glVertexAttrib2dvNV
-  , glVertexAttrib2fNV
-  , glVertexAttrib2fvNV
-  , glVertexAttrib2sNV
-  , glVertexAttrib2svNV
-  , glVertexAttrib3dNV
-  , glVertexAttrib3dvNV
-  , glVertexAttrib3fNV
-  , glVertexAttrib3fvNV
-  , glVertexAttrib3sNV
-  , glVertexAttrib3svNV
-  , glVertexAttrib4dNV
-  , glVertexAttrib4dvNV
-  , glVertexAttrib4fNV
-  , glVertexAttrib4fvNV
-  , glVertexAttrib4sNV
-  , glVertexAttrib4svNV
-  , glVertexAttrib4ubNV
-  , glVertexAttrib4ubvNV
-  , glVertexAttribPointerNV
-  , glVertexAttribs1dvNV
-  , glVertexAttribs1fvNV
-  , glVertexAttribs1svNV
-  , glVertexAttribs2dvNV
-  , glVertexAttribs2fvNV
-  , glVertexAttribs2svNV
-  , glVertexAttribs3dvNV
-  , glVertexAttribs3fvNV
-  , glVertexAttribs3svNV
-  , glVertexAttribs4dvNV
-  , glVertexAttribs4fvNV
-  , glVertexAttribs4svNV
-  , glVertexAttribs4ubvNV
-  , pattern GL_ATTRIB_ARRAY_POINTER_NV
-  , pattern GL_ATTRIB_ARRAY_SIZE_NV
-  , pattern GL_ATTRIB_ARRAY_STRIDE_NV
-  , pattern GL_ATTRIB_ARRAY_TYPE_NV
-  , pattern GL_CURRENT_ATTRIB_NV
-  , pattern GL_CURRENT_MATRIX_NV
-  , pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV
-  , pattern GL_IDENTITY_NV
-  , pattern GL_INVERSE_NV
-  , pattern GL_INVERSE_TRANSPOSE_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB0_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB10_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB11_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB12_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB13_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB14_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB15_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB1_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB2_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB3_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB4_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB5_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB6_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB7_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB8_4_NV
-  , pattern GL_MAP1_VERTEX_ATTRIB9_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB0_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB10_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB11_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB12_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB13_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB14_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB15_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB1_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB2_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB3_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB4_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB5_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB6_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB7_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB8_4_NV
-  , pattern GL_MAP2_VERTEX_ATTRIB9_4_NV
-  , pattern GL_MATRIX0_NV
-  , pattern GL_MATRIX1_NV
-  , pattern GL_MATRIX2_NV
-  , pattern GL_MATRIX3_NV
-  , pattern GL_MATRIX4_NV
-  , pattern GL_MATRIX5_NV
-  , pattern GL_MATRIX6_NV
-  , pattern GL_MATRIX7_NV
-  , pattern GL_MAX_TRACK_MATRICES_NV
-  , pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
-  , pattern GL_MODELVIEW_PROJECTION_NV
-  , pattern GL_PROGRAM_ERROR_POSITION_NV
-  , pattern GL_PROGRAM_LENGTH_NV
-  , pattern GL_PROGRAM_PARAMETER_NV
-  , pattern GL_PROGRAM_RESIDENT_NV
-  , pattern GL_PROGRAM_STRING_NV
-  , pattern GL_PROGRAM_TARGET_NV
-  , pattern GL_TRACK_MATRIX_NV
-  , pattern GL_TRACK_MATRIX_TRANSFORM_NV
-  , pattern GL_TRANSPOSE_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY0_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY10_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY11_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY12_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY13_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY14_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY15_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY1_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY2_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY3_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY4_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY5_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY6_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY7_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY8_NV
-  , pattern GL_VERTEX_ATTRIB_ARRAY9_NV
-  , pattern GL_VERTEX_PROGRAM_BINDING_NV
-  , pattern GL_VERTEX_PROGRAM_NV
-  , pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV
-  , pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV
-  , pattern GL_VERTEX_STATE_PROGRAM_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program.txt GL_NV_vertex_program> extension is available.
-
-gl_NV_vertex_program :: Bool
-gl_NV_vertex_program = member "GL_NV_vertex_program" extensions
-{-# NOINLINE gl_NV_vertex_program #-}
-
--- | Usage: @'glAreProgramsResidentNV' n programs residences@
---
--- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @programs@ should be @n@.
---
--- The length of @residences@ should be @n@.
-
-
-glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
-glAreProgramsResidentNV = ffisizeiPtruintPtrbooleanIOboolean glAreProgramsResidentNVFunPtr
-
-glAreProgramsResidentNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-glAreProgramsResidentNVFunPtr = unsafePerformIO (getProcAddress "glAreProgramsResidentNV")
-
-{-# NOINLINE glAreProgramsResidentNVFunPtr #-}
-
--- | Usage: @'glBindProgramNV' target id@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindProgramARB'.
-
-
-glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m ()
-glBindProgramNV = ffienumuintIOV glBindProgramNVFunPtr
-
-glBindProgramNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindProgramNVFunPtr = unsafePerformIO (getProcAddress "glBindProgramNV")
-
-{-# NOINLINE glBindProgramNVFunPtr #-}
-
--- | Usage: @'glDeleteProgramsNV' n programs@
---
--- The length of @programs@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteProgramsARB'.
-
-
-glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramsNV = ffisizeiPtruintIOV glDeleteProgramsNVFunPtr
-
-glDeleteProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramsNVFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsNV")
-
-{-# NOINLINE glDeleteProgramsNVFunPtr #-}
-
--- | Usage: @'glExecuteProgramNV' target id params@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @4@.
-
-
-glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glExecuteProgramNV = ffienumuintPtrfloatIOV glExecuteProgramNVFunPtr
-
-glExecuteProgramNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glExecuteProgramNVFunPtr = unsafePerformIO (getProcAddress "glExecuteProgramNV")
-
-{-# NOINLINE glExecuteProgramNVFunPtr #-}
-
--- | Usage: @'glGenProgramsNV' n programs@
---
--- The length of @programs@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenProgramsARB'.
-
-
-glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramsNV = ffisizeiPtruintIOV glGenProgramsNVFunPtr
-
-glGenProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramsNVFunPtr = unsafePerformIO (getProcAddress "glGenProgramsNV")
-
-{-# NOINLINE glGenProgramsNVFunPtr #-}
-
--- | Usage: @'glGetProgramParameterdvNV' target index pname params@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetProgramParameterdvNV = ffienumuintenumPtrdoubleIOV glGetProgramParameterdvNVFunPtr
-
-glGetProgramParameterdvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetProgramParameterdvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramParameterdvNV")
-
-{-# NOINLINE glGetProgramParameterdvNVFunPtr #-}
-
--- | Usage: @'glGetProgramParameterfvNV' target index pname params@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetProgramParameterfvNV = ffienumuintenumPtrfloatIOV glGetProgramParameterfvNVFunPtr
-
-glGetProgramParameterfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetProgramParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramParameterfvNV")
-
-{-# NOINLINE glGetProgramParameterfvNVFunPtr #-}
-
--- | Usage: @'glGetProgramStringNV' id pname program@
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The parameter @program@ is a @ProgramCharacterNV@.
---
--- The length of @program@ should be @COMPSIZE(id,pname)@.
-
-
-glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m ()
-glGetProgramStringNV = ffiuintenumPtrubyteIOV glGetProgramStringNVFunPtr
-
-glGetProgramStringNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ())
-glGetProgramStringNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringNV")
-
-{-# NOINLINE glGetProgramStringNVFunPtr #-}
-
--- | Usage: @'glGetProgramivNV' id pname params@
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramivNV = ffiuintenumPtrintIOV glGetProgramivNVFunPtr
-
-glGetProgramivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramivNV")
-
-{-# NOINLINE glGetProgramivNVFunPtr #-}
-
--- | Usage: @'glGetTrackMatrixivNV' target address pname params@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @1@.
-
-
-glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTrackMatrixivNV = ffienumuintenumPtrintIOV glGetTrackMatrixivNVFunPtr
-
-glGetTrackMatrixivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTrackMatrixivNVFunPtr = unsafePerformIO (getProcAddress "glGetTrackMatrixivNV")
-
-{-# NOINLINE glGetTrackMatrixivNVFunPtr #-}
-
--- | Usage: @'glGetVertexAttribPointervNV' index pname pointer@
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @pointer@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribPointerv'.
-
-
-glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVertexAttribPointervNV = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervNVFunPtr
-
-glGetVertexAttribPointervNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVertexAttribPointervNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervNV")
-
-{-# NOINLINE glGetVertexAttribPointervNVFunPtr #-}
-
--- | Usage: @'glGetVertexAttribdvNV' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribdv'.
-
-
-glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribdvNV = ffiuintenumPtrdoubleIOV glGetVertexAttribdvNVFunPtr
-
-glGetVertexAttribdvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribdvNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvNV")
-
-{-# NOINLINE glGetVertexAttribdvNVFunPtr #-}
-
--- | Usage: @'glGetVertexAttribfvNV' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribfv'.
-
-
-glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribfvNV = ffiuintenumPtrfloatIOV glGetVertexAttribfvNVFunPtr
-
-glGetVertexAttribfvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribfvNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvNV")
-
-{-# NOINLINE glGetVertexAttribfvNVFunPtr #-}
-
--- | Usage: @'glGetVertexAttribivNV' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnumNV@.
---
--- The length of @params@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribiv'.
-
-
-glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribivNV = ffiuintenumPtrintIOV glGetVertexAttribivNVFunPtr
-
-glGetVertexAttribivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribivNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivNV")
-
-{-# NOINLINE glGetVertexAttribivNVFunPtr #-}
-
--- | Usage: @'glIsProgramNV' id@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsProgramARB'.
-
-
-glIsProgramNV :: MonadIO m => GLuint -> m GLboolean
-glIsProgramNV = ffiuintIOboolean glIsProgramNVFunPtr
-
-glIsProgramNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramNVFunPtr = unsafePerformIO (getProcAddress "glIsProgramNV")
-
-{-# NOINLINE glIsProgramNVFunPtr #-}
-
--- | Usage: @'glLoadProgramNV' target id len program@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The length of @program@ should be @len@.
-
-
-glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
-glLoadProgramNV = ffienumuintsizeiPtrubyteIOV glLoadProgramNVFunPtr
-
-glLoadProgramNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ())
-glLoadProgramNVFunPtr = unsafePerformIO (getProcAddress "glLoadProgramNV")
-
-{-# NOINLINE glLoadProgramNVFunPtr #-}
-
--- | Usage: @'glProgramParameter4dNV' target index x y z w@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glProgramParameter4dvNV'.
-
-
-glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramParameter4dNV = ffienumuintdoubledoubledoubledoubleIOV glProgramParameter4dNVFunPtr
-
-glProgramParameter4dNVFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramParameter4dNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4dNV")
-
-{-# NOINLINE glProgramParameter4dNVFunPtr #-}
-
--- | Usage: @'glProgramParameter4dvNV' target index v@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The length of @v@ should be @4@.
-
-
-glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glProgramParameter4dvNV = ffienumuintPtrdoubleIOV glProgramParameter4dvNVFunPtr
-
-glProgramParameter4dvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glProgramParameter4dvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4dvNV")
-
-{-# NOINLINE glProgramParameter4dvNVFunPtr #-}
-
--- | Usage: @'glProgramParameter4fNV' target index x y z w@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glProgramParameter4fvNV'.
-
-
-glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramParameter4fNV = ffienumuintfloatfloatfloatfloatIOV glProgramParameter4fNVFunPtr
-
-glProgramParameter4fNVFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramParameter4fNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4fNV")
-
-{-# NOINLINE glProgramParameter4fNVFunPtr #-}
-
--- | Usage: @'glProgramParameter4fvNV' target index v@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The length of @v@ should be @4@.
-
-
-glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glProgramParameter4fvNV = ffienumuintPtrfloatIOV glProgramParameter4fvNVFunPtr
-
-glProgramParameter4fvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glProgramParameter4fvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4fvNV")
-
-{-# NOINLINE glProgramParameter4fvNVFunPtr #-}
-
--- | Usage: @'glProgramParameters4dvNV' target index count v@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The length of @v@ should be @count*4@.
-
-
-glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramParameters4dvNV = ffienumuintsizeiPtrdoubleIOV glProgramParameters4dvNVFunPtr
-
-glProgramParameters4dvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramParameters4dvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameters4dvNV")
-
-{-# NOINLINE glProgramParameters4dvNVFunPtr #-}
-
--- | Usage: @'glProgramParameters4fvNV' target index count v@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The length of @v@ should be @count*4@.
-
-
-glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramParameters4fvNV = ffienumuintsizeiPtrfloatIOV glProgramParameters4fvNVFunPtr
-
-glProgramParameters4fvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramParameters4fvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameters4fvNV")
-
-{-# NOINLINE glProgramParameters4fvNVFunPtr #-}
-
--- | Usage: @'glRequestResidentProgramsNV' n programs@
---
--- The length of @programs@ should be @n@.
-
-
-glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glRequestResidentProgramsNV = ffisizeiPtruintIOV glRequestResidentProgramsNVFunPtr
-
-glRequestResidentProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glRequestResidentProgramsNVFunPtr = unsafePerformIO (getProcAddress "glRequestResidentProgramsNV")
-
-{-# NOINLINE glRequestResidentProgramsNVFunPtr #-}
-
--- | Usage: @'glTrackMatrixNV' target address matrix transform@
---
--- The parameter @target@ is a @VertexAttribEnumNV@.
---
--- The parameter @matrix@ is a @VertexAttribEnumNV@.
---
--- The parameter @transform@ is a @VertexAttribEnumNV@.
-
-
-glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m ()
-glTrackMatrixNV = ffienumuintenumenumIOV glTrackMatrixNVFunPtr
-
-glTrackMatrixNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ())
-glTrackMatrixNVFunPtr = unsafePerformIO (getProcAddress "glTrackMatrixNV")
-
-{-# NOINLINE glTrackMatrixNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dNV' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1dvNV'.
-
-
-glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttrib1dNV = ffiuintdoubleIOV glVertexAttrib1dNVFunPtr
-
-glVertexAttrib1dNVFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttrib1dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dNV")
-
-{-# NOINLINE glVertexAttrib1dNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dvNV' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
-
-
-glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib1dvNV = ffiuintPtrdoubleIOV glVertexAttrib1dvNVFunPtr
-
-glVertexAttrib1dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib1dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvNV")
-
-{-# NOINLINE glVertexAttrib1dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fNV' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1fvNV'.
-
-
-glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m ()
-glVertexAttrib1fNV = ffiuintfloatIOV glVertexAttrib1fNVFunPtr
-
-glVertexAttrib1fNVFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
-glVertexAttrib1fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fNV")
-
-{-# NOINLINE glVertexAttrib1fNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fvNV' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
-
-
-glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib1fvNV = ffiuintPtrfloatIOV glVertexAttrib1fvNVFunPtr
-
-glVertexAttrib1fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib1fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvNV")
-
-{-# NOINLINE glVertexAttrib1fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1sNV' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1svNV'.
-
-
-glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m ()
-glVertexAttrib1sNV = ffiuintshortIOV glVertexAttrib1sNVFunPtr
-
-glVertexAttrib1sNVFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
-glVertexAttrib1sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sNV")
-
-{-# NOINLINE glVertexAttrib1sNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib1svNV' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
-
-
-glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib1svNV = ffiuintPtrshortIOV glVertexAttrib1svNVFunPtr
-
-glVertexAttrib1svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib1svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svNV")
-
-{-# NOINLINE glVertexAttrib1svNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dNV' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2dvNV'.
-
-
-glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttrib2dNV = ffiuintdoubledoubleIOV glVertexAttrib2dNVFunPtr
-
-glVertexAttrib2dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib2dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dNV")
-
-{-# NOINLINE glVertexAttrib2dNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dvNV' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
-
-
-glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib2dvNV = ffiuintPtrdoubleIOV glVertexAttrib2dvNVFunPtr
-
-glVertexAttrib2dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib2dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvNV")
-
-{-# NOINLINE glVertexAttrib2dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fNV' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2fvNV'.
-
-
-glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glVertexAttrib2fNV = ffiuintfloatfloatIOV glVertexAttrib2fNVFunPtr
-
-glVertexAttrib2fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib2fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fNV")
-
-{-# NOINLINE glVertexAttrib2fNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fvNV' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
-
-
-glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib2fvNV = ffiuintPtrfloatIOV glVertexAttrib2fvNVFunPtr
-
-glVertexAttrib2fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib2fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvNV")
-
-{-# NOINLINE glVertexAttrib2fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2sNV' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2svNV'.
-
-
-glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
-glVertexAttrib2sNV = ffiuintshortshortIOV glVertexAttrib2sNVFunPtr
-
-glVertexAttrib2sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-glVertexAttrib2sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sNV")
-
-{-# NOINLINE glVertexAttrib2sNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib2svNV' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
-
-
-glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib2svNV = ffiuintPtrshortIOV glVertexAttrib2svNVFunPtr
-
-glVertexAttrib2svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib2svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svNV")
-
-{-# NOINLINE glVertexAttrib2svNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dNV' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3dvNV'.
-
-
-glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib3dNV = ffiuintdoubledoubledoubleIOV glVertexAttrib3dNVFunPtr
-
-glVertexAttrib3dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib3dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dNV")
-
-{-# NOINLINE glVertexAttrib3dNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dvNV' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
-
-
-glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib3dvNV = ffiuintPtrdoubleIOV glVertexAttrib3dvNVFunPtr
-
-glVertexAttrib3dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib3dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvNV")
-
-{-# NOINLINE glVertexAttrib3dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fNV' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3fvNV'.
-
-
-glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib3fNV = ffiuintfloatfloatfloatIOV glVertexAttrib3fNVFunPtr
-
-glVertexAttrib3fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib3fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fNV")
-
-{-# NOINLINE glVertexAttrib3fNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fvNV' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
-
-
-glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib3fvNV = ffiuintPtrfloatIOV glVertexAttrib3fvNVFunPtr
-
-glVertexAttrib3fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib3fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvNV")
-
-{-# NOINLINE glVertexAttrib3fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3sNV' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3svNV'.
-
-
-glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib3sNV = ffiuintshortshortshortIOV glVertexAttrib3sNVFunPtr
-
-glVertexAttrib3sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib3sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sNV")
-
-{-# NOINLINE glVertexAttrib3sNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib3svNV' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
-
-
-glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib3svNV = ffiuintPtrshortIOV glVertexAttrib3svNVFunPtr
-
-glVertexAttrib3svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib3svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svNV")
-
-{-# NOINLINE glVertexAttrib3svNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dNV' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4dvNV'.
-
-
-glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib4dNV = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dNVFunPtr
-
-glVertexAttrib4dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib4dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dNV")
-
-{-# NOINLINE glVertexAttrib4dNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dvNV' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
-
-
-glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib4dvNV = ffiuintPtrdoubleIOV glVertexAttrib4dvNVFunPtr
-
-glVertexAttrib4dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib4dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvNV")
-
-{-# NOINLINE glVertexAttrib4dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fNV' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4fvNV'.
-
-
-glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib4fNV = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fNVFunPtr
-
-glVertexAttrib4fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib4fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fNV")
-
-{-# NOINLINE glVertexAttrib4fNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fvNV' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
-
-
-glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib4fvNV = ffiuintPtrfloatIOV glVertexAttrib4fvNVFunPtr
-
-glVertexAttrib4fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib4fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvNV")
-
-{-# NOINLINE glVertexAttrib4fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4sNV' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4svNV'.
-
-
-glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib4sNV = ffiuintshortshortshortshortIOV glVertexAttrib4sNVFunPtr
-
-glVertexAttrib4sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib4sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sNV")
-
-{-# NOINLINE glVertexAttrib4sNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4svNV' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
-
-
-glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4svNV = ffiuintPtrshortIOV glVertexAttrib4svNVFunPtr
-
-glVertexAttrib4svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svNV")
-
-{-# NOINLINE glVertexAttrib4svNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ubNV' index x y z w@
---
--- The parameter @x@ is a @ColorUB@.
---
--- The parameter @y@ is a @ColorUB@.
---
--- The parameter @z@ is a @ColorUB@.
---
--- The parameter @w@ is a @ColorUB@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nub'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4ubvNV'.
-
-
-glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glVertexAttrib4ubNV = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4ubNVFunPtr
-
-glVertexAttrib4ubNVFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glVertexAttrib4ubNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubNV")
-
-{-# NOINLINE glVertexAttrib4ubNVFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ubvNV' index v@
---
--- The parameter @v@ is a @ColorUB@.
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nubv'.
-
-
-glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4ubvNV = ffiuintPtrubyteIOV glVertexAttrib4ubvNVFunPtr
-
-glVertexAttrib4ubvNVFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4ubvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvNV")
-
-{-# NOINLINE glVertexAttrib4ubvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribPointerNV' index fsize type stride pointer@
---
--- The parameter @type@ is a @VertexAttribEnumNV@.
---
--- The length of @pointer@ should be @COMPSIZE(fsize,type,stride)@.
-
-
-glVertexAttribPointerNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribPointerNV = ffiuintintenumsizeiPtrVIOV glVertexAttribPointerNVFunPtr
-
-glVertexAttribPointerNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribPointerNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerNV")
-
-{-# NOINLINE glVertexAttribPointerNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs1dvNV' index count v@
---
--- The length of @v@ should be @count@.
-
-
-glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glVertexAttribs1dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs1dvNVFunPtr
-
-glVertexAttribs1dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glVertexAttribs1dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1dvNV")
-
-{-# NOINLINE glVertexAttribs1dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs1fvNV' index count v@
---
--- The length of @v@ should be @count@.
-
-
-glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glVertexAttribs1fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs1fvNVFunPtr
-
-glVertexAttribs1fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glVertexAttribs1fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1fvNV")
-
-{-# NOINLINE glVertexAttribs1fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs1svNV' index count v@
---
--- The length of @v@ should be @count@.
-
-
-glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
-glVertexAttribs1svNV = ffiuintsizeiPtrshortIOV glVertexAttribs1svNVFunPtr
-
-glVertexAttribs1svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-glVertexAttribs1svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1svNV")
-
-{-# NOINLINE glVertexAttribs1svNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs2dvNV' index count v@
---
--- The length of @v@ should be @count*2@.
-
-
-glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glVertexAttribs2dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs2dvNVFunPtr
-
-glVertexAttribs2dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glVertexAttribs2dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2dvNV")
-
-{-# NOINLINE glVertexAttribs2dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs2fvNV' index count v@
---
--- The length of @v@ should be @count*2@.
-
-
-glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glVertexAttribs2fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs2fvNVFunPtr
-
-glVertexAttribs2fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glVertexAttribs2fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2fvNV")
-
-{-# NOINLINE glVertexAttribs2fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs2svNV' index count v@
---
--- The length of @v@ should be @count*2@.
-
-
-glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
-glVertexAttribs2svNV = ffiuintsizeiPtrshortIOV glVertexAttribs2svNVFunPtr
-
-glVertexAttribs2svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-glVertexAttribs2svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2svNV")
-
-{-# NOINLINE glVertexAttribs2svNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs3dvNV' index count v@
---
--- The length of @v@ should be @count*3@.
-
-
-glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glVertexAttribs3dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs3dvNVFunPtr
-
-glVertexAttribs3dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glVertexAttribs3dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3dvNV")
-
-{-# NOINLINE glVertexAttribs3dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs3fvNV' index count v@
---
--- The length of @v@ should be @count*3@.
-
-
-glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glVertexAttribs3fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs3fvNVFunPtr
-
-glVertexAttribs3fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glVertexAttribs3fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3fvNV")
-
-{-# NOINLINE glVertexAttribs3fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs3svNV' index count v@
---
--- The length of @v@ should be @count*3@.
-
-
-glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
-glVertexAttribs3svNV = ffiuintsizeiPtrshortIOV glVertexAttribs3svNVFunPtr
-
-glVertexAttribs3svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-glVertexAttribs3svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3svNV")
-
-{-# NOINLINE glVertexAttribs3svNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs4dvNV' index count v@
---
--- The length of @v@ should be @count*4@.
-
-
-glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glVertexAttribs4dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs4dvNVFunPtr
-
-glVertexAttribs4dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glVertexAttribs4dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4dvNV")
-
-{-# NOINLINE glVertexAttribs4dvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs4fvNV' index count v@
---
--- The length of @v@ should be @count*4@.
-
-
-glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glVertexAttribs4fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs4fvNVFunPtr
-
-glVertexAttribs4fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glVertexAttribs4fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4fvNV")
-
-{-# NOINLINE glVertexAttribs4fvNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs4svNV' index count v@
---
--- The length of @v@ should be @count*4@.
-
-
-glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
-glVertexAttribs4svNV = ffiuintsizeiPtrshortIOV glVertexAttribs4svNVFunPtr
-
-glVertexAttribs4svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
-glVertexAttribs4svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4svNV")
-
-{-# NOINLINE glVertexAttribs4svNVFunPtr #-}
-
--- | Usage: @'glVertexAttribs4ubvNV' index count v@
---
--- The parameter @v@ is a @ColorUB@.
---
--- The length of @v@ should be @count*4@.
-
-
-glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m ()
-glVertexAttribs4ubvNV = ffiuintsizeiPtrubyteIOV glVertexAttribs4ubvNVFunPtr
-
-glVertexAttribs4ubvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ())
-glVertexAttribs4ubvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4ubvNV")
-
-{-# NOINLINE glVertexAttribs4ubvNVFunPtr #-}
-
-pattern GL_ATTRIB_ARRAY_POINTER_NV = 0x8645
-
-pattern GL_ATTRIB_ARRAY_SIZE_NV = 0x8623
-
-pattern GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624
-
-pattern GL_ATTRIB_ARRAY_TYPE_NV = 0x8625
-
-pattern GL_CURRENT_ATTRIB_NV = 0x8626
-
-pattern GL_CURRENT_MATRIX_NV = 0x8641
-
-pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640
-
-pattern GL_IDENTITY_NV = 0x862A
-
-pattern GL_INVERSE_NV = 0x862B
-
-pattern GL_INVERSE_TRANSPOSE_NV = 0x862D
-
-pattern GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660
-
-pattern GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A
-
-pattern GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B
-
-pattern GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C
-
-pattern GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D
-
-pattern GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E
-
-pattern GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F
-
-pattern GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661
-
-pattern GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662
-
-pattern GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663
-
-pattern GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664
-
-pattern GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665
-
-pattern GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666
-
-pattern GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667
-
-pattern GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668
-
-pattern GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669
-
-pattern GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670
-
-pattern GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A
-
-pattern GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B
-
-pattern GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C
-
-pattern GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D
-
-pattern GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E
-
-pattern GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F
-
-pattern GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671
-
-pattern GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672
-
-pattern GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673
-
-pattern GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674
-
-pattern GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675
-
-pattern GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676
-
-pattern GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677
-
-pattern GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678
-
-pattern GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679
-
-pattern GL_MATRIX0_NV = 0x8630
-
-pattern GL_MATRIX1_NV = 0x8631
-
-pattern GL_MATRIX2_NV = 0x8632
-
-pattern GL_MATRIX3_NV = 0x8633
-
-pattern GL_MATRIX4_NV = 0x8634
-
-pattern GL_MATRIX5_NV = 0x8635
-
-pattern GL_MATRIX6_NV = 0x8636
-
-pattern GL_MATRIX7_NV = 0x8637
-
-pattern GL_MAX_TRACK_MATRICES_NV = 0x862F
-
-pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E
-
-pattern GL_MODELVIEW_PROJECTION_NV = 0x8629
-
-pattern GL_PROGRAM_ERROR_POSITION_NV = 0x864B
-
-pattern GL_PROGRAM_LENGTH_NV = 0x8627
-
-pattern GL_PROGRAM_PARAMETER_NV = 0x8644
-
-pattern GL_PROGRAM_RESIDENT_NV = 0x8647
-
-pattern GL_PROGRAM_STRING_NV = 0x8628
-
-pattern GL_PROGRAM_TARGET_NV = 0x8646
-
-pattern GL_TRACK_MATRIX_NV = 0x8648
-
-pattern GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649
-
-pattern GL_TRANSPOSE_NV = 0x862C
-
-pattern GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650
-
-pattern GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A
-
-pattern GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B
-
-pattern GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C
-
-pattern GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D
-
-pattern GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E
-
-pattern GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F
-
-pattern GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651
-
-pattern GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652
-
-pattern GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653
-
-pattern GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654
-
-pattern GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655
-
-pattern GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656
-
-pattern GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657
-
-pattern GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658
-
-pattern GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659
-
-pattern GL_VERTEX_PROGRAM_BINDING_NV = 0x864A
-
-pattern GL_VERTEX_PROGRAM_NV = 0x8620
-
-pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642
-
-pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643
-
-pattern GL_VERTEX_STATE_PROGRAM_NV = 0x8621
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram11.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram11.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram11.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexProgram11 (
-  -- * Extension Support
-    gl_NV_vertex_program1_1
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program1_1.txt GL_NV_vertex_program1_1> extension is available.
-
-gl_NV_vertex_program1_1 :: Bool
-gl_NV_vertex_program1_1 = member "GL_NV_vertex_program1_1" extensions
-{-# NOINLINE gl_NV_vertex_program1_1 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexProgram2 (
-  -- * Extension Support
-    gl_NV_vertex_program2
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2.txt GL_NV_vertex_program2> extension is available.
-
-gl_NV_vertex_program2 :: Bool
-gl_NV_vertex_program2 = member "GL_NV_vertex_program2" extensions
-{-# NOINLINE gl_NV_vertex_program2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram2Option.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram2Option.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram2Option.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexProgram2Option (
-  -- * Extension Support
-    gl_NV_vertex_program2_option
-
-  -- * GL_NV_vertex_program2_option
-  , pattern GL_MAX_PROGRAM_CALL_DEPTH_NV
-  , pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2_option.txt GL_NV_vertex_program2_option> extension is available.
-
-gl_NV_vertex_program2_option :: Bool
-gl_NV_vertex_program2_option = member "GL_NV_vertex_program2_option" extensions
-{-# NOINLINE gl_NV_vertex_program2_option #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram3.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram3.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexProgram3 (
-  -- * Extension Support
-    gl_NV_vertex_program3
-
-  -- * GL_NV_vertex_program3
-  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program3.txt GL_NV_vertex_program3> extension is available.
-
-gl_NV_vertex_program3 :: Bool
-gl_NV_vertex_program3 = member "GL_NV_vertex_program3" extensions
-{-# NOINLINE gl_NV_vertex_program3 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram4.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VertexProgram4.hs
+++ /dev/null
@@ -1,399 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VertexProgram4 (
-  -- * Extension Support
-    gl_NV_vertex_program4
-
-  -- * GL_NV_vertex_program4
-  , glGetVertexAttribIivEXT
-  , glGetVertexAttribIuivEXT
-  , glVertexAttribI1iEXT
-  , glVertexAttribI1ivEXT
-  , glVertexAttribI1uiEXT
-  , glVertexAttribI1uivEXT
-  , glVertexAttribI2iEXT
-  , glVertexAttribI2ivEXT
-  , glVertexAttribI2uiEXT
-  , glVertexAttribI2uivEXT
-  , glVertexAttribI3iEXT
-  , glVertexAttribI3ivEXT
-  , glVertexAttribI3uiEXT
-  , glVertexAttribI3uivEXT
-  , glVertexAttribI4bvEXT
-  , glVertexAttribI4iEXT
-  , glVertexAttribI4ivEXT
-  , glVertexAttribI4svEXT
-  , glVertexAttribI4ubvEXT
-  , glVertexAttribI4uiEXT
-  , glVertexAttribI4uivEXT
-  , glVertexAttribI4usvEXT
-  , glVertexAttribIPointerEXT
-  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program4.txt GL_NV_vertex_program4> extension is available.
-
-gl_NV_vertex_program4 :: Bool
-gl_NV_vertex_program4 = member "GL_NV_vertex_program4" extensions
-{-# NOINLINE gl_NV_vertex_program4 #-}
-
--- | Usage: @'glGetVertexAttribIivEXT' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnum@.
---
--- The length of @params@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribIiv'.
-
-
-glGetVertexAttribIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribIivEXT = ffiuintenumPtrintIOV glGetVertexAttribIivEXTFunPtr
-
-glGetVertexAttribIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIivEXT")
-
-{-# NOINLINE glGetVertexAttribIivEXTFunPtr #-}
-
--- | Usage: @'glGetVertexAttribIuivEXT' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnum@.
---
--- The length of @params@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribIuiv'.
-
-
-glGetVertexAttribIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetVertexAttribIuivEXT = ffiuintenumPtruintIOV glGetVertexAttribIuivEXTFunPtr
-
-glGetVertexAttribIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetVertexAttribIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuivEXT")
-
-{-# NOINLINE glGetVertexAttribIuivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI1iEXT' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI1ivEXT'.
-
-
-glVertexAttribI1iEXT :: MonadIO m => GLuint -> GLint -> m ()
-glVertexAttribI1iEXT = ffiuintintIOV glVertexAttribI1iEXTFunPtr
-
-glVertexAttribI1iEXTFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glVertexAttribI1iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iEXT")
-
-{-# NOINLINE glVertexAttribI1iEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI1ivEXT' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1iv'.
-
-
-glVertexAttribI1ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI1ivEXT = ffiuintPtrintIOV glVertexAttribI1ivEXTFunPtr
-
-glVertexAttribI1ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI1ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ivEXT")
-
-{-# NOINLINE glVertexAttribI1ivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI1uiEXT' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1ui'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI1uivEXT'.
-
-
-glVertexAttribI1uiEXT :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribI1uiEXT = ffiuintuintIOV glVertexAttribI1uiEXTFunPtr
-
-glVertexAttribI1uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribI1uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiEXT")
-
-{-# NOINLINE glVertexAttribI1uiEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI1uivEXT' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1uiv'.
-
-
-glVertexAttribI1uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI1uivEXT = ffiuintPtruintIOV glVertexAttribI1uivEXTFunPtr
-
-glVertexAttribI1uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI1uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uivEXT")
-
-{-# NOINLINE glVertexAttribI1uivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI2iEXT' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI2ivEXT'.
-
-
-glVertexAttribI2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glVertexAttribI2iEXT = ffiuintintintIOV glVertexAttribI2iEXTFunPtr
-
-glVertexAttribI2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glVertexAttribI2iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iEXT")
-
-{-# NOINLINE glVertexAttribI2iEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI2ivEXT' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2iv'.
-
-
-glVertexAttribI2ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI2ivEXT = ffiuintPtrintIOV glVertexAttribI2ivEXTFunPtr
-
-glVertexAttribI2ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI2ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ivEXT")
-
-{-# NOINLINE glVertexAttribI2ivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI2uiEXT' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2ui'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI2uivEXT'.
-
-
-glVertexAttribI2uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI2uiEXT = ffiuintuintuintIOV glVertexAttribI2uiEXTFunPtr
-
-glVertexAttribI2uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI2uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiEXT")
-
-{-# NOINLINE glVertexAttribI2uiEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI2uivEXT' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2uiv'.
-
-
-glVertexAttribI2uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI2uivEXT = ffiuintPtruintIOV glVertexAttribI2uivEXTFunPtr
-
-glVertexAttribI2uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI2uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uivEXT")
-
-{-# NOINLINE glVertexAttribI2uivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI3iEXT' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI3ivEXT'.
-
-
-glVertexAttribI3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI3iEXT = ffiuintintintintIOV glVertexAttribI3iEXTFunPtr
-
-glVertexAttribI3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI3iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iEXT")
-
-{-# NOINLINE glVertexAttribI3iEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI3ivEXT' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3iv'.
-
-
-glVertexAttribI3ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI3ivEXT = ffiuintPtrintIOV glVertexAttribI3ivEXTFunPtr
-
-glVertexAttribI3ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI3ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ivEXT")
-
-{-# NOINLINE glVertexAttribI3ivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI3uiEXT' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3ui'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI3uivEXT'.
-
-
-glVertexAttribI3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI3uiEXT = ffiuintuintuintuintIOV glVertexAttribI3uiEXTFunPtr
-
-glVertexAttribI3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI3uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiEXT")
-
-{-# NOINLINE glVertexAttribI3uiEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI3uivEXT' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3uiv'.
-
-
-glVertexAttribI3uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI3uivEXT = ffiuintPtruintIOV glVertexAttribI3uivEXTFunPtr
-
-glVertexAttribI3uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI3uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uivEXT")
-
-{-# NOINLINE glVertexAttribI3uivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4bvEXT' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4bv'.
-
-
-glVertexAttribI4bvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttribI4bvEXT = ffiuintPtrbyteIOV glVertexAttribI4bvEXTFunPtr
-
-glVertexAttribI4bvEXTFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttribI4bvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bvEXT")
-
-{-# NOINLINE glVertexAttribI4bvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4iEXT' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4i'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI4ivEXT'.
-
-
-glVertexAttribI4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI4iEXT = ffiuintintintintintIOV glVertexAttribI4iEXTFunPtr
-
-glVertexAttribI4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI4iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iEXT")
-
-{-# NOINLINE glVertexAttribI4iEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4ivEXT' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4iv'.
-
-
-glVertexAttribI4ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI4ivEXT = ffiuintPtrintIOV glVertexAttribI4ivEXTFunPtr
-
-glVertexAttribI4ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ivEXT")
-
-{-# NOINLINE glVertexAttribI4ivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4svEXT' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4sv'.
-
-
-glVertexAttribI4svEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttribI4svEXT = ffiuintPtrshortIOV glVertexAttribI4svEXTFunPtr
-
-glVertexAttribI4svEXTFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttribI4svEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4svEXT")
-
-{-# NOINLINE glVertexAttribI4svEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4ubvEXT' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4ubv'.
-
-
-glVertexAttribI4ubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttribI4ubvEXT = ffiuintPtrubyteIOV glVertexAttribI4ubvEXTFunPtr
-
-glVertexAttribI4ubvEXTFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttribI4ubvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubvEXT")
-
-{-# NOINLINE glVertexAttribI4ubvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4uiEXT' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4ui'.
---
--- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI4uivEXT'.
-
-
-glVertexAttribI4uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI4uiEXT = ffiuintuintuintuintuintIOV glVertexAttribI4uiEXTFunPtr
-
-glVertexAttribI4uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI4uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiEXT")
-
-{-# NOINLINE glVertexAttribI4uiEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4uivEXT' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4uiv'.
-
-
-glVertexAttribI4uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI4uivEXT = ffiuintPtruintIOV glVertexAttribI4uivEXTFunPtr
-
-glVertexAttribI4uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uivEXT")
-
-{-# NOINLINE glVertexAttribI4uivEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribI4usvEXT' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4usv'.
-
-
-glVertexAttribI4usvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttribI4usvEXT = ffiuintPtrushortIOV glVertexAttribI4usvEXTFunPtr
-
-glVertexAttribI4usvEXTFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttribI4usvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usvEXT")
-
-{-# NOINLINE glVertexAttribI4usvEXTFunPtr #-}
-
--- | Usage: @'glVertexAttribIPointerEXT' index size type stride pointer@
---
--- The parameter @type@ is a @VertexAttribEnum@.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribIPointer'.
-
-
-glVertexAttribIPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribIPointerEXT = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerEXTFunPtr
-
-glVertexAttribIPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribIPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointerEXT")
-
-{-# NOINLINE glVertexAttribIPointerEXTFunPtr #-}
-
-pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/VideoCapture.hs b/dist/build/autogen/Graphics/GL/Ext/NV/VideoCapture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/VideoCapture.hs
+++ /dev/null
@@ -1,269 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.VideoCapture (
-  -- * Extension Support
-    gl_NV_video_capture
-
-  -- * GL_NV_video_capture
-  , glBeginVideoCaptureNV
-  , glBindVideoCaptureStreamBufferNV
-  , glBindVideoCaptureStreamTextureNV
-  , glEndVideoCaptureNV
-  , glGetVideoCaptureStreamdvNV
-  , glGetVideoCaptureStreamfvNV
-  , glGetVideoCaptureStreamivNV
-  , glGetVideoCaptureivNV
-  , glVideoCaptureNV
-  , glVideoCaptureStreamParameterdvNV
-  , glVideoCaptureStreamParameterfvNV
-  , glVideoCaptureStreamParameterivNV
-  , pattern GL_FAILURE_NV
-  , pattern GL_FIELD_LOWER_NV
-  , pattern GL_FIELD_UPPER_NV
-  , pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV
-  , pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV
-  , pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV
-  , pattern GL_PARTIAL_SUCCESS_NV
-  , pattern GL_SUCCESS_NV
-  , pattern GL_VIDEO_BUFFER_BINDING_NV
-  , pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV
-  , pattern GL_VIDEO_BUFFER_NV
-  , pattern GL_VIDEO_BUFFER_PITCH_NV
-  , pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV
-  , pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV
-  , pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV
-  , pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV
-  , pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV
-  , pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV
-  , pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV
-  , pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV
-  , pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV
-  , pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV
-  , pattern GL_YCBAYCR8A_4224_NV
-  , pattern GL_YCBYCR8_422_NV
-  , pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV
-  , pattern GL_Z4Y12Z4CB12Z4CR12_444_NV
-  , pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV
-  , pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV
-  , pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/video_capture.txt GL_NV_video_capture> extension is available.
-
-gl_NV_video_capture :: Bool
-gl_NV_video_capture = member "GL_NV_video_capture" extensions
-{-# NOINLINE gl_NV_video_capture #-}
-
--- | Usage: @'glBeginVideoCaptureNV' video_capture_slot@
-
-
-glBeginVideoCaptureNV :: MonadIO m => GLuint -> m ()
-glBeginVideoCaptureNV = ffiuintIOV glBeginVideoCaptureNVFunPtr
-
-glBeginVideoCaptureNVFunPtr :: FunPtr (GLuint -> IO ())
-glBeginVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glBeginVideoCaptureNV")
-
-{-# NOINLINE glBeginVideoCaptureNVFunPtr #-}
-
--- | Usage: @'glBindVideoCaptureStreamBufferNV' video_capture_slot stream frame_region offset@
---
--- The parameter @offset@ is a @BufferOffsetARB@.
-
-
-glBindVideoCaptureStreamBufferNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
-glBindVideoCaptureStreamBufferNV = ffiuintuintenumintptrARBIOV glBindVideoCaptureStreamBufferNVFunPtr
-
-glBindVideoCaptureStreamBufferNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ())
-glBindVideoCaptureStreamBufferNVFunPtr = unsafePerformIO (getProcAddress "glBindVideoCaptureStreamBufferNV")
-
-{-# NOINLINE glBindVideoCaptureStreamBufferNVFunPtr #-}
-
--- | Usage: @'glBindVideoCaptureStreamTextureNV' video_capture_slot stream frame_region target texture@
-
-
-glBindVideoCaptureStreamTextureNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glBindVideoCaptureStreamTextureNV = ffiuintuintenumenumuintIOV glBindVideoCaptureStreamTextureNVFunPtr
-
-glBindVideoCaptureStreamTextureNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glBindVideoCaptureStreamTextureNVFunPtr = unsafePerformIO (getProcAddress "glBindVideoCaptureStreamTextureNV")
-
-{-# NOINLINE glBindVideoCaptureStreamTextureNVFunPtr #-}
-
--- | Usage: @'glEndVideoCaptureNV' video_capture_slot@
-
-
-glEndVideoCaptureNV :: MonadIO m => GLuint -> m ()
-glEndVideoCaptureNV = ffiuintIOV glEndVideoCaptureNVFunPtr
-
-glEndVideoCaptureNVFunPtr :: FunPtr (GLuint -> IO ())
-glEndVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glEndVideoCaptureNV")
-
-{-# NOINLINE glEndVideoCaptureNVFunPtr #-}
-
--- | Usage: @'glGetVideoCaptureStreamdvNV' video_capture_slot stream pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideoCaptureStreamdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVideoCaptureStreamdvNV = ffiuintuintenumPtrdoubleIOV glGetVideoCaptureStreamdvNVFunPtr
-
-glGetVideoCaptureStreamdvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVideoCaptureStreamdvNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamdvNV")
-
-{-# NOINLINE glGetVideoCaptureStreamdvNVFunPtr #-}
-
--- | Usage: @'glGetVideoCaptureStreamfvNV' video_capture_slot stream pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideoCaptureStreamfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVideoCaptureStreamfvNV = ffiuintuintenumPtrfloatIOV glGetVideoCaptureStreamfvNVFunPtr
-
-glGetVideoCaptureStreamfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVideoCaptureStreamfvNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamfvNV")
-
-{-# NOINLINE glGetVideoCaptureStreamfvNVFunPtr #-}
-
--- | Usage: @'glGetVideoCaptureStreamivNV' video_capture_slot stream pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideoCaptureStreamivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVideoCaptureStreamivNV = ffiuintuintenumPtrintIOV glGetVideoCaptureStreamivNVFunPtr
-
-glGetVideoCaptureStreamivNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVideoCaptureStreamivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamivNV")
-
-{-# NOINLINE glGetVideoCaptureStreamivNVFunPtr #-}
-
--- | Usage: @'glGetVideoCaptureivNV' video_capture_slot pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVideoCaptureivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVideoCaptureivNV = ffiuintenumPtrintIOV glGetVideoCaptureivNVFunPtr
-
-glGetVideoCaptureivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVideoCaptureivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureivNV")
-
-{-# NOINLINE glGetVideoCaptureivNVFunPtr #-}
-
--- | Usage: @'glVideoCaptureNV' video_capture_slot sequence_num capture_time@
-
-
-glVideoCaptureNV :: MonadIO m => GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
-glVideoCaptureNV = ffiuintPtruintPtruint64EXTIOenum glVideoCaptureNVFunPtr
-
-glVideoCaptureNVFunPtr :: FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum)
-glVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureNV")
-
-{-# NOINLINE glVideoCaptureNVFunPtr #-}
-
--- | Usage: @'glVideoCaptureStreamParameterdvNV' video_capture_slot stream pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glVideoCaptureStreamParameterdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
-glVideoCaptureStreamParameterdvNV = ffiuintuintenumPtrdoubleIOV glVideoCaptureStreamParameterdvNVFunPtr
-
-glVideoCaptureStreamParameterdvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glVideoCaptureStreamParameterdvNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterdvNV")
-
-{-# NOINLINE glVideoCaptureStreamParameterdvNVFunPtr #-}
-
--- | Usage: @'glVideoCaptureStreamParameterfvNV' video_capture_slot stream pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glVideoCaptureStreamParameterfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-glVideoCaptureStreamParameterfvNV = ffiuintuintenumPtrfloatIOV glVideoCaptureStreamParameterfvNVFunPtr
-
-glVideoCaptureStreamParameterfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glVideoCaptureStreamParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterfvNV")
-
-{-# NOINLINE glVideoCaptureStreamParameterfvNVFunPtr #-}
-
--- | Usage: @'glVideoCaptureStreamParameterivNV' video_capture_slot stream pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glVideoCaptureStreamParameterivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glVideoCaptureStreamParameterivNV = ffiuintuintenumPtrintIOV glVideoCaptureStreamParameterivNVFunPtr
-
-glVideoCaptureStreamParameterivNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glVideoCaptureStreamParameterivNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterivNV")
-
-{-# NOINLINE glVideoCaptureStreamParameterivNVFunPtr #-}
-
-pattern GL_FAILURE_NV = 0x9030
-
-pattern GL_FIELD_LOWER_NV = 0x9023
-
-pattern GL_FIELD_UPPER_NV = 0x9022
-
-pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027
-
-pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025
-
-pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024
-
-pattern GL_PARTIAL_SUCCESS_NV = 0x902E
-
-pattern GL_SUCCESS_NV = 0x902F
-
-pattern GL_VIDEO_BUFFER_BINDING_NV = 0x9021
-
-pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D
-
-pattern GL_VIDEO_BUFFER_NV = 0x9020
-
-pattern GL_VIDEO_BUFFER_PITCH_NV = 0x9028
-
-pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B
-
-pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A
-
-pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039
-
-pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038
-
-pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C
-
-pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026
-
-pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029
-
-pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A
-
-pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B
-
-pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C
-
-pattern GL_YCBAYCR8A_4224_NV = 0x9032
-
-pattern GL_YCBYCR8_422_NV = 0x9031
-
-pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036
-
-pattern GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037
-
-pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035
-
-pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034
-
-pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ViewportArray.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ViewportArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ViewportArray.hs
+++ /dev/null
@@ -1,215 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ViewportArray (
-  -- * Extension Support
-    gl_NV_viewport_array
-
-  -- * GL_NV_viewport_array
-  , glDepthRangeArrayfvNV
-  , glDepthRangeIndexedfNV
-  , glDisableiNV
-  , glEnableiNV
-  , glGetFloati_vNV
-  , glIsEnablediNV
-  , glScissorArrayvNV
-  , glScissorIndexedNV
-  , glScissorIndexedvNV
-  , glViewportArrayvNV
-  , glViewportIndexedfNV
-  , glViewportIndexedfvNV
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_MAX_VIEWPORTS_NV
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_VIEWPORT
-  , pattern GL_VIEWPORT_BOUNDS_RANGE_NV
-  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV
-  , pattern GL_VIEWPORT_SUBPIXEL_BITS_NV
-) 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 GL_NV_viewport_array extension is available.
-
-gl_NV_viewport_array :: Bool
-gl_NV_viewport_array = member "GL_NV_viewport_array" extensions
-{-# NOINLINE gl_NV_viewport_array #-}
-
--- | Usage: @'glDepthRangeArrayfvNV' first count v@
-
-
-glDepthRangeArrayfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glDepthRangeArrayfvNV = ffiuintsizeiPtrfloatIOV glDepthRangeArrayfvNVFunPtr
-
-glDepthRangeArrayfvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glDepthRangeArrayfvNVFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayfvNV")
-
-{-# NOINLINE glDepthRangeArrayfvNVFunPtr #-}
-
--- | Usage: @'glDepthRangeIndexedfNV' index n f@
-
-
-glDepthRangeIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glDepthRangeIndexedfNV = ffiuintfloatfloatIOV glDepthRangeIndexedfNVFunPtr
-
-glDepthRangeIndexedfNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glDepthRangeIndexedfNVFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexedfNV")
-
-{-# NOINLINE glDepthRangeIndexedfNVFunPtr #-}
-
--- | Usage: @'glDisableiNV' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
-
-
-glDisableiNV :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableiNV = ffienumuintIOV glDisableiNVFunPtr
-
-glDisableiNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableiNVFunPtr = unsafePerformIO (getProcAddress "glDisableiNV")
-
-{-# NOINLINE glDisableiNVFunPtr #-}
-
--- | Usage: @'glEnableiNV' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
-
-
-glEnableiNV :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableiNV = ffienumuintIOV glEnableiNVFunPtr
-
-glEnableiNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableiNVFunPtr = unsafePerformIO (getProcAddress "glEnableiNV")
-
-{-# NOINLINE glEnableiNVFunPtr #-}
-
--- | Usage: @'glGetFloati_vNV' target index data@
---
--- The parameter @target@ is a @TypeEnum@.
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
-
-
-glGetFloati_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloati_vNV = ffienumuintPtrfloatIOV glGetFloati_vNVFunPtr
-
-glGetFloati_vNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloati_vNVFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vNV")
-
-{-# NOINLINE glGetFloati_vNVFunPtr #-}
-
--- | Usage: @'glIsEnablediNV' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
-
-
-glIsEnablediNV :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnablediNV = ffienumuintIOboolean glIsEnablediNVFunPtr
-
-glIsEnablediNVFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnablediNVFunPtr = unsafePerformIO (getProcAddress "glIsEnablediNV")
-
-{-# NOINLINE glIsEnablediNVFunPtr #-}
-
--- | Usage: @'glScissorArrayvNV' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorArrayv'.
-
-
-glScissorArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
-glScissorArrayvNV = ffiuintsizeiPtrintIOV glScissorArrayvNVFunPtr
-
-glScissorArrayvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
-glScissorArrayvNVFunPtr = unsafePerformIO (getProcAddress "glScissorArrayvNV")
-
-{-# NOINLINE glScissorArrayvNVFunPtr #-}
-
--- | Usage: @'glScissorIndexedNV' index left bottom width height@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexed'.
-
-
-glScissorIndexedNV :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissorIndexedNV = ffiuintintintsizeisizeiIOV glScissorIndexedNVFunPtr
-
-glScissorIndexedNVFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorIndexedNVFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedNV")
-
-{-# NOINLINE glScissorIndexedNVFunPtr #-}
-
--- | Usage: @'glScissorIndexedvNV' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexedv'.
-
-
-glScissorIndexedvNV :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glScissorIndexedvNV = ffiuintPtrintIOV glScissorIndexedvNVFunPtr
-
-glScissorIndexedvNVFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glScissorIndexedvNVFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedvNV")
-
-{-# NOINLINE glScissorIndexedvNVFunPtr #-}
-
--- | Usage: @'glViewportArrayvNV' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportArrayv'.
-
-
-glViewportArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glViewportArrayvNV = ffiuintsizeiPtrfloatIOV glViewportArrayvNVFunPtr
-
-glViewportArrayvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glViewportArrayvNVFunPtr = unsafePerformIO (getProcAddress "glViewportArrayvNV")
-
-{-# NOINLINE glViewportArrayvNVFunPtr #-}
-
--- | Usage: @'glViewportIndexedfNV' index x y w h@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedf'.
-
-
-glViewportIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glViewportIndexedfNV = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfNVFunPtr
-
-glViewportIndexedfNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glViewportIndexedfNVFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfNV")
-
-{-# NOINLINE glViewportIndexedfNVFunPtr #-}
-
--- | Usage: @'glViewportIndexedfvNV' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedfv'.
-
-
-glViewportIndexedfvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glViewportIndexedfvNV = ffiuintPtrfloatIOV glViewportIndexedfvNVFunPtr
-
-glViewportIndexedfvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glViewportIndexedfvNVFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfvNV")
-
-{-# NOINLINE glViewportIndexedfvNVFunPtr #-}
-
-pattern GL_MAX_VIEWPORTS_NV = 0x825B
-
-pattern GL_VIEWPORT_BOUNDS_RANGE_NV = 0x825D
-
-pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV = 0x825F
-
-pattern GL_VIEWPORT_SUBPIXEL_BITS_NV = 0x825C
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ViewportArray2.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ViewportArray2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ViewportArray2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ViewportArray2 (
-  -- * Extension Support
-    gl_NV_viewport_array2
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/viewport_array2.txt GL_NV_viewport_array2> extension is available.
-
-gl_NV_viewport_array2 :: Bool
-gl_NV_viewport_array2 = member "GL_NV_viewport_array2" extensions
-{-# NOINLINE gl_NV_viewport_array2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/ViewportSwizzle.hs b/dist/build/autogen/Graphics/GL/Ext/NV/ViewportSwizzle.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NV/ViewportSwizzle.hs
+++ /dev/null
@@ -1,70 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NV.ViewportSwizzle (
-  -- * Extension Support
-    gl_NV_viewport_swizzle
-
-  -- * GL_NV_viewport_swizzle
-  , glViewportSwizzleNV
-  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV
-  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV
-  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV
-  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV
-  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV
-  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV
-  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV
-  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV
-  , pattern GL_VIEWPORT_SWIZZLE_W_NV
-  , pattern GL_VIEWPORT_SWIZZLE_X_NV
-  , pattern GL_VIEWPORT_SWIZZLE_Y_NV
-  , pattern GL_VIEWPORT_SWIZZLE_Z_NV
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/viewport_swizzle.txt GL_NV_viewport_swizzle> extension is available.
-
-gl_NV_viewport_swizzle :: Bool
-gl_NV_viewport_swizzle = member "GL_NV_viewport_swizzle" extensions
-{-# NOINLINE gl_NV_viewport_swizzle #-}
-
--- | Usage: @'glViewportSwizzleNV' index swizzlex swizzley swizzlez swizzlew@
-
-
-glViewportSwizzleNV :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glViewportSwizzleNV = ffiuintenumenumenumenumIOV glViewportSwizzleNVFunPtr
-
-glViewportSwizzleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glViewportSwizzleNVFunPtr = unsafePerformIO (getProcAddress "glViewportSwizzleNV")
-
-{-# NOINLINE glViewportSwizzleNVFunPtr #-}
-
-pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV = 0x9357
-
-pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV = 0x9351
-
-pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV = 0x9353
-
-pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV = 0x9355
-
-pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV = 0x9356
-
-pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV = 0x9350
-
-pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV = 0x9352
-
-pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV = 0x9354
-
-pattern GL_VIEWPORT_SWIZZLE_W_NV = 0x935B
-
-pattern GL_VIEWPORT_SWIZZLE_X_NV = 0x9358
-
-pattern GL_VIEWPORT_SWIZZLE_Y_NV = 0x9359
-
-pattern GL_VIEWPORT_SWIZZLE_Z_NV = 0x935A
diff --git a/dist/build/autogen/Graphics/GL/Ext/NVX.hs b/dist/build/autogen/Graphics/GL/Ext/NVX.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NVX.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NVX (
-  -- * NVX Extensions
-    module Graphics.GL.Ext.NVX.ConditionalRender
-  , module Graphics.GL.Ext.NVX.GpuMemoryInfo
-) where
-
-import Graphics.GL.Ext.NVX.ConditionalRender
-import Graphics.GL.Ext.NVX.GpuMemoryInfo
diff --git a/dist/build/autogen/Graphics/GL/Ext/NVX/ConditionalRender.hs b/dist/build/autogen/Graphics/GL/Ext/NVX/ConditionalRender.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NVX/ConditionalRender.hs
+++ /dev/null
@@ -1,48 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NVX.ConditionalRender (
-  -- * Extension Support
-    gl_NVX_conditional_render
-
-  -- * GL_NVX_conditional_render
-  , glBeginConditionalRenderNVX
-  , glEndConditionalRenderNVX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_NVX_conditional_render extension is available.
-
-gl_NVX_conditional_render :: Bool
-gl_NVX_conditional_render = member "GL_NVX_conditional_render" extensions
-{-# NOINLINE gl_NVX_conditional_render #-}
-
--- | Usage: @'glBeginConditionalRenderNVX' id@
-
-
-glBeginConditionalRenderNVX :: MonadIO m => GLuint -> m ()
-glBeginConditionalRenderNVX = ffiuintIOV glBeginConditionalRenderNVXFunPtr
-
-glBeginConditionalRenderNVXFunPtr :: FunPtr (GLuint -> IO ())
-glBeginConditionalRenderNVXFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRenderNVX")
-
-{-# NOINLINE glBeginConditionalRenderNVXFunPtr #-}
-
--- | Usage: @'glEndConditionalRenderNVX'@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEndConditionalRender'.
-
-
-glEndConditionalRenderNVX :: MonadIO m => m ()
-glEndConditionalRenderNVX = ffiIOV glEndConditionalRenderNVXFunPtr
-
-glEndConditionalRenderNVXFunPtr :: FunPtr (IO ())
-glEndConditionalRenderNVXFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRenderNVX")
-
-{-# NOINLINE glEndConditionalRenderNVXFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs b/dist/build/autogen/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.NVX.GpuMemoryInfo (
-  -- * Extension Support
-    gl_NVX_gpu_memory_info
-
-  -- * GL_NVX_gpu_memory_info
-  , pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX
-  , pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX
-  , pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX
-  , pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX
-  , pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NVX/gpu_memory_info.txt GL_NVX_gpu_memory_info> extension is available.
-
-gl_NVX_gpu_memory_info :: Bool
-gl_NVX_gpu_memory_info = member "GL_NVX_gpu_memory_info" extensions
-{-# NOINLINE gl_NVX_gpu_memory_info #-}
-
-pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049
-
-pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047
-
-pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B
-
-pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A
-
-pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES.hs b/dist/build/autogen/Graphics/GL/Ext/OES.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES.hs
+++ /dev/null
@@ -1,150 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES (
-  -- * OES Extensions
-    module Graphics.GL.Ext.OES.BlendEquationSeparate
-  , module Graphics.GL.Ext.OES.BlendFuncSeparate
-  , module Graphics.GL.Ext.OES.BlendSubtract
-  , module Graphics.GL.Ext.OES.ByteCoordinates
-  , module Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture
-  , module Graphics.GL.Ext.OES.CompressedETC1RGB8Texture
-  , module Graphics.GL.Ext.OES.CompressedPalettedTexture
-  , module Graphics.GL.Ext.OES.CopyImage
-  , module Graphics.GL.Ext.OES.Depth24
-  , module Graphics.GL.Ext.OES.Depth32
-  , module Graphics.GL.Ext.OES.DepthTexture
-  , module Graphics.GL.Ext.OES.DrawBuffersIndexed
-  , module Graphics.GL.Ext.OES.DrawElementsBaseVertex
-  , module Graphics.GL.Ext.OES.DrawTexture
-  , module Graphics.GL.Ext.OES.EGLImage
-  , module Graphics.GL.Ext.OES.EGLImageExternal
-  , module Graphics.GL.Ext.OES.EGLImageExternalEssl3
-  , module Graphics.GL.Ext.OES.ElementIndexUint
-  , module Graphics.GL.Ext.OES.ExtendedMatrixPalette
-  , module Graphics.GL.Ext.OES.FboRenderMipmap
-  , module Graphics.GL.Ext.OES.FixedPoint
-  , module Graphics.GL.Ext.OES.FragmentPrecisionHigh
-  , module Graphics.GL.Ext.OES.FramebufferObject
-  , module Graphics.GL.Ext.OES.GeometryPointSize
-  , module Graphics.GL.Ext.OES.GeometryShader
-  , module Graphics.GL.Ext.OES.GetProgramBinary
-  , module Graphics.GL.Ext.OES.GpuShader5
-  , module Graphics.GL.Ext.OES.Mapbuffer
-  , module Graphics.GL.Ext.OES.MatrixGet
-  , module Graphics.GL.Ext.OES.MatrixPalette
-  , module Graphics.GL.Ext.OES.PackedDepthStencil
-  , module Graphics.GL.Ext.OES.PointSizeArray
-  , module Graphics.GL.Ext.OES.PointSprite
-  , module Graphics.GL.Ext.OES.PrimitiveBoundingBox
-  , module Graphics.GL.Ext.OES.QueryMatrix
-  , module Graphics.GL.Ext.OES.ReadFormat
-  , module Graphics.GL.Ext.OES.RequiredInternalformat
-  , module Graphics.GL.Ext.OES.Rgb8Rgba8
-  , module Graphics.GL.Ext.OES.SampleShading
-  , module Graphics.GL.Ext.OES.SampleVariables
-  , module Graphics.GL.Ext.OES.ShaderImageAtomic
-  , module Graphics.GL.Ext.OES.ShaderIoBlocks
-  , module Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
-  , module Graphics.GL.Ext.OES.SinglePrecision
-  , module Graphics.GL.Ext.OES.StandardDerivatives
-  , module Graphics.GL.Ext.OES.Stencil1
-  , module Graphics.GL.Ext.OES.Stencil4
-  , module Graphics.GL.Ext.OES.Stencil8
-  , module Graphics.GL.Ext.OES.StencilWrap
-  , module Graphics.GL.Ext.OES.SurfacelessContext
-  , module Graphics.GL.Ext.OES.TessellationPointSize
-  , module Graphics.GL.Ext.OES.TessellationShader
-  , module Graphics.GL.Ext.OES.Texture3D
-  , module Graphics.GL.Ext.OES.TextureBorderClamp
-  , module Graphics.GL.Ext.OES.TextureBuffer
-  , module Graphics.GL.Ext.OES.TextureCompressionAstc
-  , module Graphics.GL.Ext.OES.TextureCubeMap
-  , module Graphics.GL.Ext.OES.TextureCubeMapArray
-  , module Graphics.GL.Ext.OES.TextureEnvCrossbar
-  , module Graphics.GL.Ext.OES.TextureFloat
-  , module Graphics.GL.Ext.OES.TextureFloatLinear
-  , module Graphics.GL.Ext.OES.TextureHalfFloat
-  , module Graphics.GL.Ext.OES.TextureHalfFloatLinear
-  , module Graphics.GL.Ext.OES.TextureMirroredRepeat
-  , module Graphics.GL.Ext.OES.TextureNpot
-  , module Graphics.GL.Ext.OES.TextureStencil8
-  , module Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
-  , module Graphics.GL.Ext.OES.TextureView
-  , module Graphics.GL.Ext.OES.VertexArrayObject
-  , module Graphics.GL.Ext.OES.VertexHalfFloat
-  , module Graphics.GL.Ext.OES.VertexType1010102
-  , module Graphics.GL.Ext.OES.ViewportArray
-) where
-
-import Graphics.GL.Ext.OES.BlendEquationSeparate
-import Graphics.GL.Ext.OES.BlendFuncSeparate
-import Graphics.GL.Ext.OES.BlendSubtract
-import Graphics.GL.Ext.OES.ByteCoordinates
-import Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture
-import Graphics.GL.Ext.OES.CompressedETC1RGB8Texture
-import Graphics.GL.Ext.OES.CompressedPalettedTexture
-import Graphics.GL.Ext.OES.CopyImage
-import Graphics.GL.Ext.OES.Depth24
-import Graphics.GL.Ext.OES.Depth32
-import Graphics.GL.Ext.OES.DepthTexture
-import Graphics.GL.Ext.OES.DrawBuffersIndexed
-import Graphics.GL.Ext.OES.DrawElementsBaseVertex
-import Graphics.GL.Ext.OES.DrawTexture
-import Graphics.GL.Ext.OES.EGLImage
-import Graphics.GL.Ext.OES.EGLImageExternal
-import Graphics.GL.Ext.OES.EGLImageExternalEssl3
-import Graphics.GL.Ext.OES.ElementIndexUint
-import Graphics.GL.Ext.OES.ExtendedMatrixPalette
-import Graphics.GL.Ext.OES.FboRenderMipmap
-import Graphics.GL.Ext.OES.FixedPoint
-import Graphics.GL.Ext.OES.FragmentPrecisionHigh
-import Graphics.GL.Ext.OES.FramebufferObject
-import Graphics.GL.Ext.OES.GeometryPointSize
-import Graphics.GL.Ext.OES.GeometryShader
-import Graphics.GL.Ext.OES.GetProgramBinary
-import Graphics.GL.Ext.OES.GpuShader5
-import Graphics.GL.Ext.OES.Mapbuffer
-import Graphics.GL.Ext.OES.MatrixGet
-import Graphics.GL.Ext.OES.MatrixPalette
-import Graphics.GL.Ext.OES.PackedDepthStencil
-import Graphics.GL.Ext.OES.PointSizeArray
-import Graphics.GL.Ext.OES.PointSprite
-import Graphics.GL.Ext.OES.PrimitiveBoundingBox
-import Graphics.GL.Ext.OES.QueryMatrix
-import Graphics.GL.Ext.OES.ReadFormat
-import Graphics.GL.Ext.OES.RequiredInternalformat
-import Graphics.GL.Ext.OES.Rgb8Rgba8
-import Graphics.GL.Ext.OES.SampleShading
-import Graphics.GL.Ext.OES.SampleVariables
-import Graphics.GL.Ext.OES.ShaderImageAtomic
-import Graphics.GL.Ext.OES.ShaderIoBlocks
-import Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
-import Graphics.GL.Ext.OES.SinglePrecision
-import Graphics.GL.Ext.OES.StandardDerivatives
-import Graphics.GL.Ext.OES.Stencil1
-import Graphics.GL.Ext.OES.Stencil4
-import Graphics.GL.Ext.OES.Stencil8
-import Graphics.GL.Ext.OES.StencilWrap
-import Graphics.GL.Ext.OES.SurfacelessContext
-import Graphics.GL.Ext.OES.TessellationPointSize
-import Graphics.GL.Ext.OES.TessellationShader
-import Graphics.GL.Ext.OES.Texture3D
-import Graphics.GL.Ext.OES.TextureBorderClamp
-import Graphics.GL.Ext.OES.TextureBuffer
-import Graphics.GL.Ext.OES.TextureCompressionAstc
-import Graphics.GL.Ext.OES.TextureCubeMap
-import Graphics.GL.Ext.OES.TextureCubeMapArray
-import Graphics.GL.Ext.OES.TextureEnvCrossbar
-import Graphics.GL.Ext.OES.TextureFloat
-import Graphics.GL.Ext.OES.TextureFloatLinear
-import Graphics.GL.Ext.OES.TextureHalfFloat
-import Graphics.GL.Ext.OES.TextureHalfFloatLinear
-import Graphics.GL.Ext.OES.TextureMirroredRepeat
-import Graphics.GL.Ext.OES.TextureNpot
-import Graphics.GL.Ext.OES.TextureStencil8
-import Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
-import Graphics.GL.Ext.OES.TextureView
-import Graphics.GL.Ext.OES.VertexArrayObject
-import Graphics.GL.Ext.OES.VertexHalfFloat
-import Graphics.GL.Ext.OES.VertexType1010102
-import Graphics.GL.Ext.OES.ViewportArray
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/BlendEquationSeparate.hs b/dist/build/autogen/Graphics/GL/Ext/OES/BlendEquationSeparate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/BlendEquationSeparate.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.BlendEquationSeparate (
-  -- * Extension Support
-    gl_OES_blend_equation_separate
-
-  -- * GL_OES_blend_equation_separate
-  , glBlendEquationSeparateOES
-  , pattern GL_BLEND_EQUATION_ALPHA_OES
-  , pattern GL_BLEND_EQUATION_RGB_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_blend_equation_separate.txt GL_OES_blend_equation_separate> extension is available.
-
-gl_OES_blend_equation_separate :: Bool
-gl_OES_blend_equation_separate = member "GL_OES_blend_equation_separate" extensions
-{-# NOINLINE gl_OES_blend_equation_separate #-}
-
--- | Usage: @'glBlendEquationSeparateOES' modeRGB modeAlpha@
-
-
-glBlendEquationSeparateOES :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendEquationSeparateOES = ffienumenumIOV glBlendEquationSeparateOESFunPtr
-
-glBlendEquationSeparateOESFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendEquationSeparateOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateOES")
-
-{-# NOINLINE glBlendEquationSeparateOESFunPtr #-}
-
-pattern GL_BLEND_EQUATION_ALPHA_OES = 0x883D
-
-pattern GL_BLEND_EQUATION_RGB_OES = 0x8009
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/BlendFuncSeparate.hs b/dist/build/autogen/Graphics/GL/Ext/OES/BlendFuncSeparate.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/BlendFuncSeparate.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.BlendFuncSeparate (
-  -- * Extension Support
-    gl_OES_blend_func_separate
-
-  -- * GL_OES_blend_func_separate
-  , glBlendFuncSeparateOES
-  , pattern GL_BLEND_DST_ALPHA_OES
-  , pattern GL_BLEND_DST_RGB_OES
-  , pattern GL_BLEND_SRC_ALPHA_OES
-  , pattern GL_BLEND_SRC_RGB_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_blend_func_separate.txt GL_OES_blend_func_separate> extension is available.
-
-gl_OES_blend_func_separate :: Bool
-gl_OES_blend_func_separate = member "GL_OES_blend_func_separate" extensions
-{-# NOINLINE gl_OES_blend_func_separate #-}
-
--- | Usage: @'glBlendFuncSeparateOES' srcRGB dstRGB srcAlpha dstAlpha@
-
-
-glBlendFuncSeparateOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparateOES = ffienumenumenumenumIOV glBlendFuncSeparateOESFunPtr
-
-glBlendFuncSeparateOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateOESFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateOES")
-
-{-# NOINLINE glBlendFuncSeparateOESFunPtr #-}
-
-pattern GL_BLEND_DST_ALPHA_OES = 0x80CA
-
-pattern GL_BLEND_DST_RGB_OES = 0x80C8
-
-pattern GL_BLEND_SRC_ALPHA_OES = 0x80CB
-
-pattern GL_BLEND_SRC_RGB_OES = 0x80C9
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/BlendSubtract.hs b/dist/build/autogen/Graphics/GL/Ext/OES/BlendSubtract.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/BlendSubtract.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.BlendSubtract (
-  -- * Extension Support
-    gl_OES_blend_subtract
-
-  -- * GL_OES_blend_subtract
-  , glBlendEquationOES
-  , pattern GL_BLEND_EQUATION_OES
-  , pattern GL_FUNC_ADD_OES
-  , pattern GL_FUNC_REVERSE_SUBTRACT_OES
-  , pattern GL_FUNC_SUBTRACT_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_blend_subtract.txt GL_OES_blend_subtract> extension is available.
-
-gl_OES_blend_subtract :: Bool
-gl_OES_blend_subtract = member "GL_OES_blend_subtract" extensions
-{-# NOINLINE gl_OES_blend_subtract #-}
-
--- | Usage: @'glBlendEquationOES' mode@
-
-
-glBlendEquationOES :: MonadIO m => GLenum -> m ()
-glBlendEquationOES = ffienumIOV glBlendEquationOESFunPtr
-
-glBlendEquationOESFunPtr :: FunPtr (GLenum -> IO ())
-glBlendEquationOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationOES")
-
-{-# NOINLINE glBlendEquationOESFunPtr #-}
-
-pattern GL_BLEND_EQUATION_OES = 0x8009
-
-pattern GL_FUNC_ADD_OES = 0x8006
-
-pattern GL_FUNC_REVERSE_SUBTRACT_OES = 0x800B
-
-pattern GL_FUNC_SUBTRACT_OES = 0x800A
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ByteCoordinates.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ByteCoordinates.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ByteCoordinates.hs
+++ /dev/null
@@ -1,310 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ByteCoordinates (
-  -- * Extension Support
-    gl_OES_byte_coordinates
-
-  -- * GL_OES_byte_coordinates
-  , glMultiTexCoord1bOES
-  , glMultiTexCoord1bvOES
-  , glMultiTexCoord2bOES
-  , glMultiTexCoord2bvOES
-  , glMultiTexCoord3bOES
-  , glMultiTexCoord3bvOES
-  , glMultiTexCoord4bOES
-  , glMultiTexCoord4bvOES
-  , glTexCoord1bOES
-  , glTexCoord1bvOES
-  , glTexCoord2bOES
-  , glTexCoord2bvOES
-  , glTexCoord3bOES
-  , glTexCoord3bvOES
-  , glTexCoord4bOES
-  , glTexCoord4bvOES
-  , glVertex2bOES
-  , glVertex2bvOES
-  , glVertex3bOES
-  , glVertex3bvOES
-  , glVertex4bOES
-  , glVertex4bvOES
-  , pattern GL_BYTE
-) 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://www.khronos.org/registry/gles/extensions/OES/OES_byte_coordinates.txt GL_OES_byte_coordinates> extension is available.
-
-gl_OES_byte_coordinates :: Bool
-gl_OES_byte_coordinates = member "GL_OES_byte_coordinates" extensions
-{-# NOINLINE gl_OES_byte_coordinates #-}
-
--- | Usage: @'glMultiTexCoord1bOES' texture s@
-
-
-glMultiTexCoord1bOES :: MonadIO m => GLenum -> GLbyte -> m ()
-glMultiTexCoord1bOES = ffienumbyteIOV glMultiTexCoord1bOESFunPtr
-
-glMultiTexCoord1bOESFunPtr :: FunPtr (GLenum -> GLbyte -> IO ())
-glMultiTexCoord1bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1bOES")
-
-{-# NOINLINE glMultiTexCoord1bOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1bvOES' texture coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoord1bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
-glMultiTexCoord1bvOES = ffienumPtrbyteIOV glMultiTexCoord1bvOESFunPtr
-
-glMultiTexCoord1bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
-glMultiTexCoord1bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1bvOES")
-
-{-# NOINLINE glMultiTexCoord1bvOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2bOES' texture s t@
-
-
-glMultiTexCoord2bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> m ()
-glMultiTexCoord2bOES = ffienumbytebyteIOV glMultiTexCoord2bOESFunPtr
-
-glMultiTexCoord2bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
-glMultiTexCoord2bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2bOES")
-
-{-# NOINLINE glMultiTexCoord2bOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2bvOES' texture coords@
---
--- The length of @coords@ should be @2@.
-
-
-glMultiTexCoord2bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
-glMultiTexCoord2bvOES = ffienumPtrbyteIOV glMultiTexCoord2bvOESFunPtr
-
-glMultiTexCoord2bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
-glMultiTexCoord2bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2bvOES")
-
-{-# NOINLINE glMultiTexCoord2bvOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3bOES' texture s t r@
-
-
-glMultiTexCoord3bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
-glMultiTexCoord3bOES = ffienumbytebytebyteIOV glMultiTexCoord3bOESFunPtr
-
-glMultiTexCoord3bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
-glMultiTexCoord3bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3bOES")
-
-{-# NOINLINE glMultiTexCoord3bOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3bvOES' texture coords@
---
--- The length of @coords@ should be @3@.
-
-
-glMultiTexCoord3bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
-glMultiTexCoord3bvOES = ffienumPtrbyteIOV glMultiTexCoord3bvOESFunPtr
-
-glMultiTexCoord3bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
-glMultiTexCoord3bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3bvOES")
-
-{-# NOINLINE glMultiTexCoord3bvOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4bOES' texture s t r q@
-
-
-glMultiTexCoord4bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
-glMultiTexCoord4bOES = ffienumbytebytebytebyteIOV glMultiTexCoord4bOESFunPtr
-
-glMultiTexCoord4bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-glMultiTexCoord4bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4bOES")
-
-{-# NOINLINE glMultiTexCoord4bOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4bvOES' texture coords@
---
--- The length of @coords@ should be @4@.
-
-
-glMultiTexCoord4bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
-glMultiTexCoord4bvOES = ffienumPtrbyteIOV glMultiTexCoord4bvOESFunPtr
-
-glMultiTexCoord4bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
-glMultiTexCoord4bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4bvOES")
-
-{-# NOINLINE glMultiTexCoord4bvOESFunPtr #-}
-
--- | Usage: @'glTexCoord1bOES' s@
-
-
-glTexCoord1bOES :: MonadIO m => GLbyte -> m ()
-glTexCoord1bOES = ffibyteIOV glTexCoord1bOESFunPtr
-
-glTexCoord1bOESFunPtr :: FunPtr (GLbyte -> IO ())
-glTexCoord1bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1bOES")
-
-{-# NOINLINE glTexCoord1bOESFunPtr #-}
-
--- | Usage: @'glTexCoord1bvOES' coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoord1bvOES :: MonadIO m => Ptr GLbyte -> m ()
-glTexCoord1bvOES = ffiPtrbyteIOV glTexCoord1bvOESFunPtr
-
-glTexCoord1bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glTexCoord1bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1bvOES")
-
-{-# NOINLINE glTexCoord1bvOESFunPtr #-}
-
--- | Usage: @'glTexCoord2bOES' s t@
-
-
-glTexCoord2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
-glTexCoord2bOES = ffibytebyteIOV glTexCoord2bOESFunPtr
-
-glTexCoord2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
-glTexCoord2bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2bOES")
-
-{-# NOINLINE glTexCoord2bOESFunPtr #-}
-
--- | Usage: @'glTexCoord2bvOES' coords@
---
--- The length of @coords@ should be @2@.
-
-
-glTexCoord2bvOES :: MonadIO m => Ptr GLbyte -> m ()
-glTexCoord2bvOES = ffiPtrbyteIOV glTexCoord2bvOESFunPtr
-
-glTexCoord2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glTexCoord2bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2bvOES")
-
-{-# NOINLINE glTexCoord2bvOESFunPtr #-}
-
--- | Usage: @'glTexCoord3bOES' s t r@
-
-
-glTexCoord3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glTexCoord3bOES = ffibytebytebyteIOV glTexCoord3bOESFunPtr
-
-glTexCoord3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glTexCoord3bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3bOES")
-
-{-# NOINLINE glTexCoord3bOESFunPtr #-}
-
--- | Usage: @'glTexCoord3bvOES' coords@
---
--- The length of @coords@ should be @3@.
-
-
-glTexCoord3bvOES :: MonadIO m => Ptr GLbyte -> m ()
-glTexCoord3bvOES = ffiPtrbyteIOV glTexCoord3bvOESFunPtr
-
-glTexCoord3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glTexCoord3bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3bvOES")
-
-{-# NOINLINE glTexCoord3bvOESFunPtr #-}
-
--- | Usage: @'glTexCoord4bOES' s t r q@
-
-
-glTexCoord4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
-glTexCoord4bOES = ffibytebytebytebyteIOV glTexCoord4bOESFunPtr
-
-glTexCoord4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-glTexCoord4bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4bOES")
-
-{-# NOINLINE glTexCoord4bOESFunPtr #-}
-
--- | Usage: @'glTexCoord4bvOES' coords@
---
--- The length of @coords@ should be @4@.
-
-
-glTexCoord4bvOES :: MonadIO m => Ptr GLbyte -> m ()
-glTexCoord4bvOES = ffiPtrbyteIOV glTexCoord4bvOESFunPtr
-
-glTexCoord4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glTexCoord4bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4bvOES")
-
-{-# NOINLINE glTexCoord4bvOESFunPtr #-}
-
--- | Usage: @'glVertex2bOES' x y@
-
-
-glVertex2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
-glVertex2bOES = ffibytebyteIOV glVertex2bOESFunPtr
-
-glVertex2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
-glVertex2bOESFunPtr = unsafePerformIO (getProcAddress "glVertex2bOES")
-
-{-# NOINLINE glVertex2bOESFunPtr #-}
-
--- | Usage: @'glVertex2bvOES' coords@
---
--- The length of @coords@ should be @2@.
-
-
-glVertex2bvOES :: MonadIO m => Ptr GLbyte -> m ()
-glVertex2bvOES = ffiPtrbyteIOV glVertex2bvOESFunPtr
-
-glVertex2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glVertex2bvOESFunPtr = unsafePerformIO (getProcAddress "glVertex2bvOES")
-
-{-# NOINLINE glVertex2bvOESFunPtr #-}
-
--- | Usage: @'glVertex3bOES' x y z@
-
-
-glVertex3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glVertex3bOES = ffibytebytebyteIOV glVertex3bOESFunPtr
-
-glVertex3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glVertex3bOESFunPtr = unsafePerformIO (getProcAddress "glVertex3bOES")
-
-{-# NOINLINE glVertex3bOESFunPtr #-}
-
--- | Usage: @'glVertex3bvOES' coords@
---
--- The length of @coords@ should be @3@.
-
-
-glVertex3bvOES :: MonadIO m => Ptr GLbyte -> m ()
-glVertex3bvOES = ffiPtrbyteIOV glVertex3bvOESFunPtr
-
-glVertex3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glVertex3bvOESFunPtr = unsafePerformIO (getProcAddress "glVertex3bvOES")
-
-{-# NOINLINE glVertex3bvOESFunPtr #-}
-
--- | Usage: @'glVertex4bOES' x y z w@
-
-
-glVertex4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
-glVertex4bOES = ffibytebytebytebyteIOV glVertex4bOESFunPtr
-
-glVertex4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-glVertex4bOESFunPtr = unsafePerformIO (getProcAddress "glVertex4bOES")
-
-{-# NOINLINE glVertex4bOESFunPtr #-}
-
--- | Usage: @'glVertex4bvOES' coords@
---
--- The length of @coords@ should be @4@.
-
-
-glVertex4bvOES :: MonadIO m => Ptr GLbyte -> m ()
-glVertex4bvOES = ffiPtrbyteIOV glVertex4bvOESFunPtr
-
-glVertex4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glVertex4bvOESFunPtr = unsafePerformIO (getProcAddress "glVertex4bvOES")
-
-{-# NOINLINE glVertex4bvOESFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/CompressedETC1RGB8SubTexture.hs b/dist/build/autogen/Graphics/GL/Ext/OES/CompressedETC1RGB8SubTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/CompressedETC1RGB8SubTexture.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture (
-  -- * Extension Support
-    gl_OES_compressed_ETC1_RGB8_sub_texture
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_OES_compressed_ETC1_RGB8_sub_texture extension is available.
-
-gl_OES_compressed_ETC1_RGB8_sub_texture :: Bool
-gl_OES_compressed_ETC1_RGB8_sub_texture = member "GL_OES_compressed_ETC1_RGB8_sub_texture" extensions
-{-# NOINLINE gl_OES_compressed_ETC1_RGB8_sub_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs b/dist/build/autogen/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.CompressedETC1RGB8Texture (
-  -- * Extension Support
-    gl_OES_compressed_ETC1_RGB8_texture
-
-  -- * GL_OES_compressed_ETC1_RGB8_texture
-  , pattern GL_ETC1_RGB8_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt GL_OES_compressed_ETC1_RGB8_texture> extension is available.
-
-gl_OES_compressed_ETC1_RGB8_texture :: Bool
-gl_OES_compressed_ETC1_RGB8_texture = member "GL_OES_compressed_ETC1_RGB8_texture" extensions
-{-# NOINLINE gl_OES_compressed_ETC1_RGB8_texture #-}
-
-pattern GL_ETC1_RGB8_OES = 0x8D64
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs b/dist/build/autogen/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs
+++ /dev/null
@@ -1,47 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.CompressedPalettedTexture (
-  -- * Extension Support
-    gl_OES_compressed_paletted_texture
-
-  -- * GL_OES_compressed_paletted_texture
-  , pattern GL_PALETTE4_R5_G6_B5_OES
-  , pattern GL_PALETTE4_RGB5_A1_OES
-  , pattern GL_PALETTE4_RGB8_OES
-  , pattern GL_PALETTE4_RGBA4_OES
-  , pattern GL_PALETTE4_RGBA8_OES
-  , pattern GL_PALETTE8_R5_G6_B5_OES
-  , pattern GL_PALETTE8_RGB5_A1_OES
-  , pattern GL_PALETTE8_RGB8_OES
-  , pattern GL_PALETTE8_RGBA4_OES
-  , pattern GL_PALETTE8_RGBA8_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_compressed_paletted_texture.txt GL_OES_compressed_paletted_texture> extension is available.
-
-gl_OES_compressed_paletted_texture :: Bool
-gl_OES_compressed_paletted_texture = member "GL_OES_compressed_paletted_texture" extensions
-{-# NOINLINE gl_OES_compressed_paletted_texture #-}
-
-pattern GL_PALETTE4_R5_G6_B5_OES = 0x8B92
-
-pattern GL_PALETTE4_RGB5_A1_OES = 0x8B94
-
-pattern GL_PALETTE4_RGB8_OES = 0x8B90
-
-pattern GL_PALETTE4_RGBA4_OES = 0x8B93
-
-pattern GL_PALETTE4_RGBA8_OES = 0x8B91
-
-pattern GL_PALETTE8_R5_G6_B5_OES = 0x8B97
-
-pattern GL_PALETTE8_RGB5_A1_OES = 0x8B99
-
-pattern GL_PALETTE8_RGB8_OES = 0x8B95
-
-pattern GL_PALETTE8_RGBA4_OES = 0x8B98
-
-pattern GL_PALETTE8_RGBA8_OES = 0x8B96
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/CopyImage.hs b/dist/build/autogen/Graphics/GL/Ext/OES/CopyImage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/CopyImage.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.CopyImage (
-  -- * Extension Support
-    gl_OES_copy_image
-
-  -- * GL_OES_copy_image
-  , glCopyImageSubDataOES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_copy_image.txt GL_OES_copy_image> extension is available.
-
-gl_OES_copy_image :: Bool
-gl_OES_copy_image = member "GL_OES_copy_image" extensions
-{-# NOINLINE gl_OES_copy_image #-}
-
--- | Usage: @'glCopyImageSubDataOES' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyImageSubData'.
-
-
-glCopyImageSubDataOES :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glCopyImageSubDataOES = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataOESFunPtr
-
-glCopyImageSubDataOESFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glCopyImageSubDataOESFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubDataOES")
-
-{-# NOINLINE glCopyImageSubDataOESFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Depth24.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Depth24.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Depth24.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Depth24 (
-  -- * Extension Support
-    gl_OES_depth24
-
-  -- * GL_OES_depth24
-  , pattern GL_DEPTH_COMPONENT24_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_depth24.txt GL_OES_depth24> extension is available.
-
-gl_OES_depth24 :: Bool
-gl_OES_depth24 = member "GL_OES_depth24" extensions
-{-# NOINLINE gl_OES_depth24 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Depth32.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Depth32.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Depth32.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Depth32 (
-  -- * Extension Support
-    gl_OES_depth32
-
-  -- * GL_OES_depth32
-  , pattern GL_DEPTH_COMPONENT32_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_depth32.txt GL_OES_depth32> extension is available.
-
-gl_OES_depth32 :: Bool
-gl_OES_depth32 = member "GL_OES_depth32" extensions
-{-# NOINLINE gl_OES_depth32 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Ext/OES/DepthTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/DepthTexture.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.DepthTexture (
-  -- * Extension Support
-    gl_OES_depth_texture
-
-  -- * GL_OES_depth_texture
-  , pattern GL_DEPTH_COMPONENT
-  , pattern GL_UNSIGNED_INT
-  , pattern GL_UNSIGNED_SHORT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_depth_texture.txt GL_OES_depth_texture> extension is available.
-
-gl_OES_depth_texture :: Bool
-gl_OES_depth_texture = member "GL_OES_depth_texture" extensions
-{-# NOINLINE gl_OES_depth_texture #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs b/dist/build/autogen/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs
+++ /dev/null
@@ -1,132 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.DrawBuffersIndexed (
-  -- * Extension Support
-    gl_OES_draw_buffers_indexed
-
-  -- * GL_OES_draw_buffers_indexed
-  , glBlendEquationSeparateiOES
-  , glBlendEquationiOES
-  , glBlendFuncSeparateiOES
-  , glBlendFunciOES
-  , glColorMaskiOES
-  , glDisableiOES
-  , glEnableiOES
-  , glIsEnablediOES
-  , pattern GL_BLEND
-  , pattern GL_BLEND_DST_ALPHA
-  , pattern GL_BLEND_DST_RGB
-  , pattern GL_BLEND_EQUATION_ALPHA
-  , pattern GL_BLEND_EQUATION_RGB
-  , pattern GL_BLEND_SRC_ALPHA
-  , pattern GL_BLEND_SRC_RGB
-  , pattern GL_COLOR_WRITEMASK
-  , pattern GL_CONSTANT_ALPHA
-  , pattern GL_CONSTANT_COLOR
-  , pattern GL_DST_ALPHA
-  , pattern GL_DST_COLOR
-  , pattern GL_FUNC_ADD
-  , pattern GL_FUNC_REVERSE_SUBTRACT
-  , pattern GL_FUNC_SUBTRACT
-  , pattern GL_MAX
-  , pattern GL_MIN
-  , pattern GL_ONE
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR
-  , pattern GL_ONE_MINUS_DST_ALPHA
-  , pattern GL_ONE_MINUS_DST_COLOR
-  , pattern GL_ONE_MINUS_SRC_ALPHA
-  , pattern GL_ONE_MINUS_SRC_COLOR
-  , pattern GL_SRC_ALPHA
-  , pattern GL_SRC_ALPHA_SATURATE
-  , pattern GL_SRC_COLOR
-  , pattern GL_ZERO
-) 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://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt GL_OES_draw_buffers_indexed> extension is available.
-
-gl_OES_draw_buffers_indexed :: Bool
-gl_OES_draw_buffers_indexed = member "GL_OES_draw_buffers_indexed" extensions
-{-# NOINLINE gl_OES_draw_buffers_indexed #-}
-
--- | Usage: @'glBlendEquationSeparateiOES' buf modeRGB modeAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
-
-
-glBlendEquationSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendEquationSeparateiOES = ffiuintenumenumIOV glBlendEquationSeparateiOESFunPtr
-
-glBlendEquationSeparateiOESFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendEquationSeparateiOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateiOES")
-
-{-# NOINLINE glBlendEquationSeparateiOESFunPtr #-}
-
--- | Usage: @'glBlendEquationiOES' buf mode@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
-
-
-glBlendEquationiOES :: MonadIO m => GLuint -> GLenum -> m ()
-glBlendEquationiOES = ffiuintenumIOV glBlendEquationiOESFunPtr
-
-glBlendEquationiOESFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBlendEquationiOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationiOES")
-
-{-# NOINLINE glBlendEquationiOESFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparateiOES' buf srcRGB dstRGB srcAlpha dstAlpha@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
-
-
-glBlendFuncSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparateiOES = ffiuintenumenumenumenumIOV glBlendFuncSeparateiOESFunPtr
-
-glBlendFuncSeparateiOESFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateiOESFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateiOES")
-
-{-# NOINLINE glBlendFuncSeparateiOESFunPtr #-}
-
--- | Usage: @'glBlendFunciOES' buf src dst@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
-
-
-glBlendFunciOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendFunciOES = ffiuintenumenumIOV glBlendFunciOESFunPtr
-
-glBlendFunciOESFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendFunciOESFunPtr = unsafePerformIO (getProcAddress "glBlendFunciOES")
-
-{-# NOINLINE glBlendFunciOESFunPtr #-}
-
--- | Usage: @'glColorMaskiOES' index r g b a@
---
--- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glColorMaski'.
-
-
-glColorMaskiOES :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMaskiOES = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiOESFunPtr
-
-glColorMaskiOESFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskiOESFunPtr = unsafePerformIO (getProcAddress "glColorMaskiOES")
-
-{-# NOINLINE glColorMaskiOESFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs b/dist/build/autogen/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs
+++ /dev/null
@@ -1,104 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.DrawElementsBaseVertex (
-  -- * Extension Support
-    gl_OES_draw_elements_base_vertex
-
-  -- * GL_OES_draw_elements_base_vertex
-  , glDrawElementsBaseVertexOES
-  , glDrawElementsInstancedBaseVertexOES
-  , glDrawRangeElementsBaseVertexOES
-  , glMultiDrawElementsBaseVertexOES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt GL_OES_draw_elements_base_vertex> extension is available.
-
-gl_OES_draw_elements_base_vertex :: Bool
-gl_OES_draw_elements_base_vertex = member "GL_OES_draw_elements_base_vertex" extensions
-{-# NOINLINE gl_OES_draw_elements_base_vertex #-}
-
--- | Usage: @'glDrawElementsBaseVertexOES' mode count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsBaseVertex'.
-
-
-glDrawElementsBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawElementsBaseVertexOES = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexOESFunPtr
-
-glDrawElementsBaseVertexOESFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawElementsBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertexOES")
-
-{-# NOINLINE glDrawElementsBaseVertexOESFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseVertexOES' mode count type indices instancecount basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseVertex'.
-
-
-glDrawElementsInstancedBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-glDrawElementsInstancedBaseVertexOES = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexOESFunPtr
-
-glDrawElementsInstancedBaseVertexOESFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
-glDrawElementsInstancedBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexOES")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexOESFunPtr #-}
-
--- | Usage: @'glDrawRangeElementsBaseVertexOES' mode start end count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawRangeElementsBaseVertex'.
-
-
-glDrawRangeElementsBaseVertexOES :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawRangeElementsBaseVertexOES = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexOESFunPtr
-
-glDrawRangeElementsBaseVertexOESFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawRangeElementsBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertexOES")
-
-{-# NOINLINE glDrawRangeElementsBaseVertexOESFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsBaseVertexOES' mode count type indices primcount basevertex@
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- The length of @indices@ should be @COMPSIZE(drawcount)@.
---
--- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsBaseVertex'.
-
-
-glMultiDrawElementsBaseVertexOES :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
-glMultiDrawElementsBaseVertexOES = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexOESFunPtr
-
-glMultiDrawElementsBaseVertexOESFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
-glMultiDrawElementsBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertexOES")
-
-{-# NOINLINE glMultiDrawElementsBaseVertexOESFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/DrawTexture.hs b/dist/build/autogen/Graphics/GL/Ext/OES/DrawTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/DrawTexture.hs
+++ /dev/null
@@ -1,121 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.DrawTexture (
-  -- * Extension Support
-    gl_OES_draw_texture
-
-  -- * GL_OES_draw_texture
-  , glDrawTexfOES
-  , glDrawTexfvOES
-  , glDrawTexiOES
-  , glDrawTexivOES
-  , glDrawTexsOES
-  , glDrawTexsvOES
-  , glDrawTexxOES
-  , glDrawTexxvOES
-  , pattern GL_TEXTURE_CROP_RECT_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_draw_texture.txt GL_OES_draw_texture> extension is available.
-
-gl_OES_draw_texture :: Bool
-gl_OES_draw_texture = member "GL_OES_draw_texture" extensions
-{-# NOINLINE gl_OES_draw_texture #-}
-
--- | Usage: @'glDrawTexfOES' x y z width height@
-
-
-glDrawTexfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glDrawTexfOES = ffifloatfloatfloatfloatfloatIOV glDrawTexfOESFunPtr
-
-glDrawTexfOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glDrawTexfOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexfOES")
-
-{-# NOINLINE glDrawTexfOESFunPtr #-}
-
--- | Usage: @'glDrawTexfvOES' coords@
-
-
-glDrawTexfvOES :: MonadIO m => Ptr GLfloat -> m ()
-glDrawTexfvOES = ffiPtrfloatIOV glDrawTexfvOESFunPtr
-
-glDrawTexfvOESFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glDrawTexfvOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexfvOES")
-
-{-# NOINLINE glDrawTexfvOESFunPtr #-}
-
--- | Usage: @'glDrawTexiOES' x y z width height@
-
-
-glDrawTexiOES :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glDrawTexiOES = ffiintintintintintIOV glDrawTexiOESFunPtr
-
-glDrawTexiOESFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glDrawTexiOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexiOES")
-
-{-# NOINLINE glDrawTexiOESFunPtr #-}
-
--- | Usage: @'glDrawTexivOES' coords@
-
-
-glDrawTexivOES :: MonadIO m => Ptr GLint -> m ()
-glDrawTexivOES = ffiPtrintIOV glDrawTexivOESFunPtr
-
-glDrawTexivOESFunPtr :: FunPtr (Ptr GLint -> IO ())
-glDrawTexivOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexivOES")
-
-{-# NOINLINE glDrawTexivOESFunPtr #-}
-
--- | Usage: @'glDrawTexsOES' x y z width height@
-
-
-glDrawTexsOES :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glDrawTexsOES = ffishortshortshortshortshortIOV glDrawTexsOESFunPtr
-
-glDrawTexsOESFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glDrawTexsOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexsOES")
-
-{-# NOINLINE glDrawTexsOESFunPtr #-}
-
--- | Usage: @'glDrawTexsvOES' coords@
-
-
-glDrawTexsvOES :: MonadIO m => Ptr GLshort -> m ()
-glDrawTexsvOES = ffiPtrshortIOV glDrawTexsvOESFunPtr
-
-glDrawTexsvOESFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glDrawTexsvOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexsvOES")
-
-{-# NOINLINE glDrawTexsvOESFunPtr #-}
-
--- | Usage: @'glDrawTexxOES' x y z width height@
-
-
-glDrawTexxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glDrawTexxOES = ffifixedfixedfixedfixedfixedIOV glDrawTexxOESFunPtr
-
-glDrawTexxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glDrawTexxOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexxOES")
-
-{-# NOINLINE glDrawTexxOESFunPtr #-}
-
--- | Usage: @'glDrawTexxvOES' coords@
-
-
-glDrawTexxvOES :: MonadIO m => Ptr GLfixed -> m ()
-glDrawTexxvOES = ffiPtrfixedIOV glDrawTexxvOESFunPtr
-
-glDrawTexxvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glDrawTexxvOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexxvOES")
-
-{-# NOINLINE glDrawTexxvOESFunPtr #-}
-
-pattern GL_TEXTURE_CROP_RECT_OES = 0x8B9D
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/EGLImage.hs b/dist/build/autogen/Graphics/GL/Ext/OES/EGLImage.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/EGLImage.hs
+++ /dev/null
@@ -1,46 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.EGLImage (
-  -- * Extension Support
-    gl_OES_EGL_image
-
-  -- * GL_OES_EGL_image
-  , glEGLImageTargetRenderbufferStorageOES
-  , glEGLImageTargetTexture2DOES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt GL_OES_EGL_image> extension is available.
-
-gl_OES_EGL_image :: Bool
-gl_OES_EGL_image = member "GL_OES_EGL_image" extensions
-{-# NOINLINE gl_OES_EGL_image #-}
-
--- | Usage: @'glEGLImageTargetRenderbufferStorageOES' target image@
-
-
-glEGLImageTargetRenderbufferStorageOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()
-glEGLImageTargetRenderbufferStorageOES = ffienumeglImageOESIOV glEGLImageTargetRenderbufferStorageOESFunPtr
-
-glEGLImageTargetRenderbufferStorageOESFunPtr :: FunPtr (GLenum -> GLeglImageOES -> IO ())
-glEGLImageTargetRenderbufferStorageOESFunPtr = unsafePerformIO (getProcAddress "glEGLImageTargetRenderbufferStorageOES")
-
-{-# NOINLINE glEGLImageTargetRenderbufferStorageOESFunPtr #-}
-
--- | Usage: @'glEGLImageTargetTexture2DOES' target image@
-
-
-glEGLImageTargetTexture2DOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()
-glEGLImageTargetTexture2DOES = ffienumeglImageOESIOV glEGLImageTargetTexture2DOESFunPtr
-
-glEGLImageTargetTexture2DOESFunPtr :: FunPtr (GLenum -> GLeglImageOES -> IO ())
-glEGLImageTargetTexture2DOESFunPtr = unsafePerformIO (getProcAddress "glEGLImageTargetTexture2DOES")
-
-{-# NOINLINE glEGLImageTargetTexture2DOESFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/EGLImageExternal.hs b/dist/build/autogen/Graphics/GL/Ext/OES/EGLImageExternal.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/EGLImageExternal.hs
+++ /dev/null
@@ -1,24 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.EGLImageExternal (
-  -- * Extension Support
-    gl_OES_EGL_image_external
-
-  -- * GL_OES_EGL_image_external
-  , pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
-  , pattern GL_SAMPLER_EXTERNAL_OES
-  , pattern GL_TEXTURE_BINDING_EXTERNAL_OES
-  , pattern GL_TEXTURE_EXTERNAL_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external.txt GL_OES_EGL_image_external> extension is available.
-
-gl_OES_EGL_image_external :: Bool
-gl_OES_EGL_image_external = member "GL_OES_EGL_image_external" extensions
-{-# NOINLINE gl_OES_EGL_image_external #-}
-
-pattern GL_SAMPLER_EXTERNAL_OES = 0x8D66
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/EGLImageExternalEssl3.hs b/dist/build/autogen/Graphics/GL/Ext/OES/EGLImageExternalEssl3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/EGLImageExternalEssl3.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.EGLImageExternalEssl3 (
-  -- * Extension Support
-    gl_OES_EGL_image_external_essl3
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external_essl3.txt GL_OES_EGL_image_external_essl3> extension is available.
-
-gl_OES_EGL_image_external_essl3 :: Bool
-gl_OES_EGL_image_external_essl3 = member "GL_OES_EGL_image_external_essl3" extensions
-{-# NOINLINE gl_OES_EGL_image_external_essl3 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ElementIndexUint.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ElementIndexUint.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ElementIndexUint.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ElementIndexUint (
-  -- * Extension Support
-    gl_OES_element_index_uint
-
-  -- * GL_OES_element_index_uint
-  , pattern GL_UNSIGNED_INT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_element_index_uint.txt GL_OES_element_index_uint> extension is available.
-
-gl_OES_element_index_uint :: Bool
-gl_OES_element_index_uint = member "GL_OES_element_index_uint" extensions
-{-# NOINLINE gl_OES_element_index_uint #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ExtendedMatrixPalette.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ExtendedMatrixPalette.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ExtendedMatrixPalette.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ExtendedMatrixPalette (
-  -- * Extension Support
-    gl_OES_extended_matrix_palette
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_extended_matrix_palette.txt GL_OES_extended_matrix_palette> extension is available.
-
-gl_OES_extended_matrix_palette :: Bool
-gl_OES_extended_matrix_palette = member "GL_OES_extended_matrix_palette" extensions
-{-# NOINLINE gl_OES_extended_matrix_palette #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/FboRenderMipmap.hs b/dist/build/autogen/Graphics/GL/Ext/OES/FboRenderMipmap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/FboRenderMipmap.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.FboRenderMipmap (
-  -- * Extension Support
-    gl_OES_fbo_render_mipmap
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_fbo_render_mipmap.txt GL_OES_fbo_render_mipmap> extension is available.
-
-gl_OES_fbo_render_mipmap :: Bool
-gl_OES_fbo_render_mipmap = member "GL_OES_fbo_render_mipmap" extensions
-{-# NOINLINE gl_OES_fbo_render_mipmap #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/FixedPoint.hs b/dist/build/autogen/Graphics/GL/Ext/OES/FixedPoint.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/FixedPoint.hs
+++ /dev/null
@@ -1,1415 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.FixedPoint (
-  -- * Extension Support
-    gl_OES_fixed_point
-
-  -- * GL_OES_fixed_point
-  , glAccumxOES
-  , glAlphaFuncxOES
-  , glBitmapxOES
-  , glBlendColorxOES
-  , glClearAccumxOES
-  , glClearColorxOES
-  , glClearDepthxOES
-  , glClipPlanexOES
-  , glColor3xOES
-  , glColor3xvOES
-  , glColor4xOES
-  , glColor4xvOES
-  , glConvolutionParameterxOES
-  , glConvolutionParameterxvOES
-  , glDepthRangexOES
-  , glEvalCoord1xOES
-  , glEvalCoord1xvOES
-  , glEvalCoord2xOES
-  , glEvalCoord2xvOES
-  , glFeedbackBufferxOES
-  , glFogxOES
-  , glFogxvOES
-  , glFrustumxOES
-  , glGetClipPlanexOES
-  , glGetConvolutionParameterxvOES
-  , glGetFixedvOES
-  , glGetHistogramParameterxvOES
-  , glGetLightxOES
-  , glGetLightxvOES
-  , glGetMapxvOES
-  , glGetMaterialxOES
-  , glGetMaterialxvOES
-  , glGetPixelMapxv
-  , glGetTexEnvxvOES
-  , glGetTexGenxvOES
-  , glGetTexLevelParameterxvOES
-  , glGetTexParameterxvOES
-  , glIndexxOES
-  , glIndexxvOES
-  , glLightModelxOES
-  , glLightModelxvOES
-  , glLightxOES
-  , glLightxvOES
-  , glLineWidthxOES
-  , glLoadMatrixxOES
-  , glLoadTransposeMatrixxOES
-  , glMap1xOES
-  , glMap2xOES
-  , glMapGrid1xOES
-  , glMapGrid2xOES
-  , glMaterialxOES
-  , glMaterialxvOES
-  , glMultMatrixxOES
-  , glMultTransposeMatrixxOES
-  , glMultiTexCoord1xOES
-  , glMultiTexCoord1xvOES
-  , glMultiTexCoord2xOES
-  , glMultiTexCoord2xvOES
-  , glMultiTexCoord3xOES
-  , glMultiTexCoord3xvOES
-  , glMultiTexCoord4xOES
-  , glMultiTexCoord4xvOES
-  , glNormal3xOES
-  , glNormal3xvOES
-  , glOrthoxOES
-  , glPassThroughxOES
-  , glPixelMapx
-  , glPixelStorex
-  , glPixelTransferxOES
-  , glPixelZoomxOES
-  , glPointParameterxOES
-  , glPointParameterxvOES
-  , glPointSizexOES
-  , glPolygonOffsetxOES
-  , glPrioritizeTexturesxOES
-  , glRasterPos2xOES
-  , glRasterPos2xvOES
-  , glRasterPos3xOES
-  , glRasterPos3xvOES
-  , glRasterPos4xOES
-  , glRasterPos4xvOES
-  , glRectxOES
-  , glRectxvOES
-  , glRotatexOES
-  , glSampleCoveragexOES
-  , glScalexOES
-  , glTexCoord1xOES
-  , glTexCoord1xvOES
-  , glTexCoord2xOES
-  , glTexCoord2xvOES
-  , glTexCoord3xOES
-  , glTexCoord3xvOES
-  , glTexCoord4xOES
-  , glTexCoord4xvOES
-  , glTexEnvxOES
-  , glTexEnvxvOES
-  , glTexGenxOES
-  , glTexGenxvOES
-  , glTexParameterxOES
-  , glTexParameterxvOES
-  , glTranslatexOES
-  , glVertex2xOES
-  , glVertex2xvOES
-  , glVertex3xOES
-  , glVertex3xvOES
-  , glVertex4xOES
-  , glVertex4xvOES
-  , pattern GL_FIXED_OES
-) 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://www.khronos.org/registry/gles/extensions/OES/OES_fixed_point.txt GL_OES_fixed_point> extension is available.
-
-gl_OES_fixed_point :: Bool
-gl_OES_fixed_point = member "GL_OES_fixed_point" extensions
-{-# NOINLINE gl_OES_fixed_point #-}
-
--- | Usage: @'glAccumxOES' op value@
-
-
-glAccumxOES :: MonadIO m => GLenum -> GLfixed -> m ()
-glAccumxOES = ffienumfixedIOV glAccumxOESFunPtr
-
-glAccumxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glAccumxOESFunPtr = unsafePerformIO (getProcAddress "glAccumxOES")
-
-{-# NOINLINE glAccumxOESFunPtr #-}
-
--- | Usage: @'glAlphaFuncxOES' func ref@
---
--- The parameter @ref@ is a @ClampedFixed@.
-
-
-glAlphaFuncxOES :: MonadIO m => GLenum -> GLfixed -> m ()
-glAlphaFuncxOES = ffienumfixedIOV glAlphaFuncxOESFunPtr
-
-glAlphaFuncxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glAlphaFuncxOESFunPtr = unsafePerformIO (getProcAddress "glAlphaFuncxOES")
-
-{-# NOINLINE glAlphaFuncxOESFunPtr #-}
-
--- | Usage: @'glBitmapxOES' width height xorig yorig xmove ymove bitmap@
---
--- The length of @bitmap@ should be @COMPSIZE(width,height)@.
-
-
-glBitmapxOES :: MonadIO m => GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
-glBitmapxOES = ffisizeisizeifixedfixedfixedfixedPtrubyteIOV glBitmapxOESFunPtr
-
-glBitmapxOESFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ())
-glBitmapxOESFunPtr = unsafePerformIO (getProcAddress "glBitmapxOES")
-
-{-# NOINLINE glBitmapxOESFunPtr #-}
-
--- | Usage: @'glBlendColorxOES' red green blue alpha@
---
--- The parameter @red@ is a @ClampedFixed@.
---
--- The parameter @green@ is a @ClampedFixed@.
---
--- The parameter @blue@ is a @ClampedFixed@.
---
--- The parameter @alpha@ is a @ClampedFixed@.
-
-
-glBlendColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glBlendColorxOES = ffifixedfixedfixedfixedIOV glBlendColorxOESFunPtr
-
-glBlendColorxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glBlendColorxOESFunPtr = unsafePerformIO (getProcAddress "glBlendColorxOES")
-
-{-# NOINLINE glBlendColorxOESFunPtr #-}
-
--- | Usage: @'glClearAccumxOES' red green blue alpha@
---
--- The parameter @red@ is a @ClampedFixed@.
---
--- The parameter @green@ is a @ClampedFixed@.
---
--- The parameter @blue@ is a @ClampedFixed@.
---
--- The parameter @alpha@ is a @ClampedFixed@.
-
-
-glClearAccumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glClearAccumxOES = ffifixedfixedfixedfixedIOV glClearAccumxOESFunPtr
-
-glClearAccumxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glClearAccumxOESFunPtr = unsafePerformIO (getProcAddress "glClearAccumxOES")
-
-{-# NOINLINE glClearAccumxOESFunPtr #-}
-
--- | Usage: @'glClearColorxOES' red green blue alpha@
---
--- The parameter @red@ is a @ClampedFixed@.
---
--- The parameter @green@ is a @ClampedFixed@.
---
--- The parameter @blue@ is a @ClampedFixed@.
---
--- The parameter @alpha@ is a @ClampedFixed@.
-
-
-glClearColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glClearColorxOES = ffifixedfixedfixedfixedIOV glClearColorxOESFunPtr
-
-glClearColorxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glClearColorxOESFunPtr = unsafePerformIO (getProcAddress "glClearColorxOES")
-
-{-# NOINLINE glClearColorxOESFunPtr #-}
-
--- | Usage: @'glClearDepthxOES' depth@
---
--- The parameter @depth@ is a @ClampedFixed@.
-
-
-glClearDepthxOES :: MonadIO m => GLfixed -> m ()
-glClearDepthxOES = ffifixedIOV glClearDepthxOESFunPtr
-
-glClearDepthxOESFunPtr :: FunPtr (GLfixed -> IO ())
-glClearDepthxOESFunPtr = unsafePerformIO (getProcAddress "glClearDepthxOES")
-
-{-# NOINLINE glClearDepthxOESFunPtr #-}
-
--- | Usage: @'glClipPlanexOES' plane equation@
---
--- The length of @equation@ should be @4@.
-
-
-glClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glClipPlanexOES = ffienumPtrfixedIOV glClipPlanexOESFunPtr
-
-glClipPlanexOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glClipPlanexOESFunPtr = unsafePerformIO (getProcAddress "glClipPlanexOES")
-
-{-# NOINLINE glClipPlanexOESFunPtr #-}
-
--- | Usage: @'glColor3xOES' red green blue@
-
-
-glColor3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glColor3xOES = ffifixedfixedfixedIOV glColor3xOESFunPtr
-
-glColor3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glColor3xOESFunPtr = unsafePerformIO (getProcAddress "glColor3xOES")
-
-{-# NOINLINE glColor3xOESFunPtr #-}
-
--- | Usage: @'glColor3xvOES' components@
---
--- The length of @components@ should be @3@.
-
-
-glColor3xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glColor3xvOES = ffiPtrfixedIOV glColor3xvOESFunPtr
-
-glColor3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glColor3xvOESFunPtr = unsafePerformIO (getProcAddress "glColor3xvOES")
-
-{-# NOINLINE glColor3xvOESFunPtr #-}
-
--- | Usage: @'glColor4xOES' red green blue alpha@
-
-
-glColor4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glColor4xOES = ffifixedfixedfixedfixedIOV glColor4xOESFunPtr
-
-glColor4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glColor4xOESFunPtr = unsafePerformIO (getProcAddress "glColor4xOES")
-
-{-# NOINLINE glColor4xOESFunPtr #-}
-
--- | Usage: @'glColor4xvOES' components@
---
--- The length of @components@ should be @4@.
-
-
-glColor4xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glColor4xvOES = ffiPtrfixedIOV glColor4xvOESFunPtr
-
-glColor4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glColor4xvOESFunPtr = unsafePerformIO (getProcAddress "glColor4xvOES")
-
-{-# NOINLINE glColor4xvOESFunPtr #-}
-
--- | Usage: @'glConvolutionParameterxOES' target pname param@
-
-
-glConvolutionParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glConvolutionParameterxOES = ffienumenumfixedIOV glConvolutionParameterxOESFunPtr
-
-glConvolutionParameterxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glConvolutionParameterxOESFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterxOES")
-
-{-# NOINLINE glConvolutionParameterxOESFunPtr #-}
-
--- | Usage: @'glConvolutionParameterxvOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glConvolutionParameterxvOES = ffienumenumPtrfixedIOV glConvolutionParameterxvOESFunPtr
-
-glConvolutionParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glConvolutionParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterxvOES")
-
-{-# NOINLINE glConvolutionParameterxvOESFunPtr #-}
-
--- | Usage: @'glDepthRangexOES' n f@
---
--- The parameter @n@ is a @ClampedFixed@.
---
--- The parameter @f@ is a @ClampedFixed@.
-
-
-glDepthRangexOES :: MonadIO m => GLfixed -> GLfixed -> m ()
-glDepthRangexOES = ffifixedfixedIOV glDepthRangexOESFunPtr
-
-glDepthRangexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glDepthRangexOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangexOES")
-
-{-# NOINLINE glDepthRangexOESFunPtr #-}
-
--- | Usage: @'glEvalCoord1xOES' u@
-
-
-glEvalCoord1xOES :: MonadIO m => GLfixed -> m ()
-glEvalCoord1xOES = ffifixedIOV glEvalCoord1xOESFunPtr
-
-glEvalCoord1xOESFunPtr :: FunPtr (GLfixed -> IO ())
-glEvalCoord1xOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1xOES")
-
-{-# NOINLINE glEvalCoord1xOESFunPtr #-}
-
--- | Usage: @'glEvalCoord1xvOES' coords@
---
--- The length of @coords@ should be @1@.
-
-
-glEvalCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glEvalCoord1xvOES = ffiPtrfixedIOV glEvalCoord1xvOESFunPtr
-
-glEvalCoord1xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glEvalCoord1xvOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1xvOES")
-
-{-# NOINLINE glEvalCoord1xvOESFunPtr #-}
-
--- | Usage: @'glEvalCoord2xOES' u v@
-
-
-glEvalCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
-glEvalCoord2xOES = ffifixedfixedIOV glEvalCoord2xOESFunPtr
-
-glEvalCoord2xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glEvalCoord2xOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2xOES")
-
-{-# NOINLINE glEvalCoord2xOESFunPtr #-}
-
--- | Usage: @'glEvalCoord2xvOES' coords@
---
--- The length of @coords@ should be @2@.
-
-
-glEvalCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glEvalCoord2xvOES = ffiPtrfixedIOV glEvalCoord2xvOESFunPtr
-
-glEvalCoord2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glEvalCoord2xvOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2xvOES")
-
-{-# NOINLINE glEvalCoord2xvOESFunPtr #-}
-
--- | Usage: @'glFeedbackBufferxOES' n type buffer@
---
--- The length of @buffer@ should be @n@.
-
-
-glFeedbackBufferxOES :: MonadIO m => GLsizei -> GLenum -> Ptr GLfixed -> m ()
-glFeedbackBufferxOES = ffisizeienumPtrfixedIOV glFeedbackBufferxOESFunPtr
-
-glFeedbackBufferxOESFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ())
-glFeedbackBufferxOESFunPtr = unsafePerformIO (getProcAddress "glFeedbackBufferxOES")
-
-{-# NOINLINE glFeedbackBufferxOESFunPtr #-}
-
--- | Usage: @'glFogxOES' pname param@
-
-
-glFogxOES :: MonadIO m => GLenum -> GLfixed -> m ()
-glFogxOES = ffienumfixedIOV glFogxOESFunPtr
-
-glFogxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glFogxOESFunPtr = unsafePerformIO (getProcAddress "glFogxOES")
-
-{-# NOINLINE glFogxOESFunPtr #-}
-
--- | Usage: @'glFogxvOES' pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glFogxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glFogxvOES = ffienumPtrfixedIOV glFogxvOESFunPtr
-
-glFogxvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glFogxvOESFunPtr = unsafePerformIO (getProcAddress "glFogxvOES")
-
-{-# NOINLINE glFogxvOESFunPtr #-}
-
--- | Usage: @'glFrustumxOES' l r b t n f@
-
-
-glFrustumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glFrustumxOES = ffifixedfixedfixedfixedfixedfixedIOV glFrustumxOESFunPtr
-
-glFrustumxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glFrustumxOESFunPtr = unsafePerformIO (getProcAddress "glFrustumxOES")
-
-{-# NOINLINE glFrustumxOESFunPtr #-}
-
--- | Usage: @'glGetClipPlanexOES' plane equation@
---
--- The length of @equation@ should be @4@.
-
-
-glGetClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glGetClipPlanexOES = ffienumPtrfixedIOV glGetClipPlanexOESFunPtr
-
-glGetClipPlanexOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glGetClipPlanexOESFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanexOES")
-
-{-# NOINLINE glGetClipPlanexOESFunPtr #-}
-
--- | Usage: @'glGetConvolutionParameterxvOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetConvolutionParameterxvOES = ffienumenumPtrfixedIOV glGetConvolutionParameterxvOESFunPtr
-
-glGetConvolutionParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetConvolutionParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterxvOES")
-
-{-# NOINLINE glGetConvolutionParameterxvOESFunPtr #-}
-
--- | Usage: @'glGetFixedvOES' pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFixedvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glGetFixedvOES = ffienumPtrfixedIOV glGetFixedvOESFunPtr
-
-glGetFixedvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glGetFixedvOESFunPtr = unsafePerformIO (getProcAddress "glGetFixedvOES")
-
-{-# NOINLINE glGetFixedvOESFunPtr #-}
-
--- | Usage: @'glGetHistogramParameterxvOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetHistogramParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetHistogramParameterxvOES = ffienumenumPtrfixedIOV glGetHistogramParameterxvOESFunPtr
-
-glGetHistogramParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetHistogramParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterxvOES")
-
-{-# NOINLINE glGetHistogramParameterxvOESFunPtr #-}
-
--- | Usage: @'glGetLightxOES' light pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetLightxOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetLightxOES = ffienumenumPtrfixedIOV glGetLightxOESFunPtr
-
-glGetLightxOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetLightxOESFunPtr = unsafePerformIO (getProcAddress "glGetLightxOES")
-
-{-# NOINLINE glGetLightxOESFunPtr #-}
-
--- | Usage: @'glGetLightxvOES' light pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetLightxvOES = ffienumenumPtrfixedIOV glGetLightxvOESFunPtr
-
-glGetLightxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetLightxvOESFunPtr = unsafePerformIO (getProcAddress "glGetLightxvOES")
-
-{-# NOINLINE glGetLightxvOESFunPtr #-}
-
--- | Usage: @'glGetMapxvOES' target query v@
---
--- The length of @v@ should be @COMPSIZE(query)@.
-
-
-glGetMapxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetMapxvOES = ffienumenumPtrfixedIOV glGetMapxvOESFunPtr
-
-glGetMapxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetMapxvOESFunPtr = unsafePerformIO (getProcAddress "glGetMapxvOES")
-
-{-# NOINLINE glGetMapxvOESFunPtr #-}
-
--- | Usage: @'glGetMaterialxOES' face pname param@
-
-
-glGetMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glGetMaterialxOES = ffienumenumfixedIOV glGetMaterialxOESFunPtr
-
-glGetMaterialxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glGetMaterialxOESFunPtr = unsafePerformIO (getProcAddress "glGetMaterialxOES")
-
-{-# NOINLINE glGetMaterialxOESFunPtr #-}
-
--- | Usage: @'glGetMaterialxvOES' face pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetMaterialxvOES = ffienumenumPtrfixedIOV glGetMaterialxvOESFunPtr
-
-glGetMaterialxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetMaterialxvOESFunPtr = unsafePerformIO (getProcAddress "glGetMaterialxvOES")
-
-{-# NOINLINE glGetMaterialxvOESFunPtr #-}
-
--- | Usage: @'glGetPixelMapxv' map size values@
---
--- The length of @values@ should be @size@.
-
-
-glGetPixelMapxv :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
-glGetPixelMapxv = ffienumintPtrfixedIOV glGetPixelMapxvFunPtr
-
-glGetPixelMapxvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ())
-glGetPixelMapxvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapxv")
-
-{-# NOINLINE glGetPixelMapxvFunPtr #-}
-
--- | Usage: @'glGetTexEnvxvOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetTexEnvxvOES = ffienumenumPtrfixedIOV glGetTexEnvxvOESFunPtr
-
-glGetTexEnvxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexEnvxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvxvOES")
-
-{-# NOINLINE glGetTexEnvxvOESFunPtr #-}
-
--- | Usage: @'glGetTexLevelParameterxvOES' target level pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexLevelParameterxvOES :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
-glGetTexLevelParameterxvOES = ffienumintenumPtrfixedIOV glGetTexLevelParameterxvOESFunPtr
-
-glGetTexLevelParameterxvOESFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexLevelParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterxvOES")
-
-{-# NOINLINE glGetTexLevelParameterxvOESFunPtr #-}
-
--- | Usage: @'glGetTexParameterxvOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetTexParameterxvOES = ffienumenumPtrfixedIOV glGetTexParameterxvOESFunPtr
-
-glGetTexParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterxvOES")
-
-{-# NOINLINE glGetTexParameterxvOESFunPtr #-}
-
--- | Usage: @'glIndexxOES' component@
-
-
-glIndexxOES :: MonadIO m => GLfixed -> m ()
-glIndexxOES = ffifixedIOV glIndexxOESFunPtr
-
-glIndexxOESFunPtr :: FunPtr (GLfixed -> IO ())
-glIndexxOESFunPtr = unsafePerformIO (getProcAddress "glIndexxOES")
-
-{-# NOINLINE glIndexxOESFunPtr #-}
-
--- | Usage: @'glIndexxvOES' component@
---
--- The length of @component@ should be @1@.
-
-
-glIndexxvOES :: MonadIO m => Ptr GLfixed -> m ()
-glIndexxvOES = ffiPtrfixedIOV glIndexxvOESFunPtr
-
-glIndexxvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glIndexxvOESFunPtr = unsafePerformIO (getProcAddress "glIndexxvOES")
-
-{-# NOINLINE glIndexxvOESFunPtr #-}
-
--- | Usage: @'glLightModelxOES' pname param@
-
-
-glLightModelxOES :: MonadIO m => GLenum -> GLfixed -> m ()
-glLightModelxOES = ffienumfixedIOV glLightModelxOESFunPtr
-
-glLightModelxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glLightModelxOESFunPtr = unsafePerformIO (getProcAddress "glLightModelxOES")
-
-{-# NOINLINE glLightModelxOESFunPtr #-}
-
--- | Usage: @'glLightModelxvOES' pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glLightModelxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glLightModelxvOES = ffienumPtrfixedIOV glLightModelxvOESFunPtr
-
-glLightModelxvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glLightModelxvOESFunPtr = unsafePerformIO (getProcAddress "glLightModelxvOES")
-
-{-# NOINLINE glLightModelxvOESFunPtr #-}
-
--- | Usage: @'glLightxOES' light pname param@
-
-
-glLightxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glLightxOES = ffienumenumfixedIOV glLightxOESFunPtr
-
-glLightxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glLightxOESFunPtr = unsafePerformIO (getProcAddress "glLightxOES")
-
-{-# NOINLINE glLightxOESFunPtr #-}
-
--- | Usage: @'glLightxvOES' light pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glLightxvOES = ffienumenumPtrfixedIOV glLightxvOESFunPtr
-
-glLightxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glLightxvOESFunPtr = unsafePerformIO (getProcAddress "glLightxvOES")
-
-{-# NOINLINE glLightxvOESFunPtr #-}
-
--- | Usage: @'glLineWidthxOES' width@
-
-
-glLineWidthxOES :: MonadIO m => GLfixed -> m ()
-glLineWidthxOES = ffifixedIOV glLineWidthxOESFunPtr
-
-glLineWidthxOESFunPtr :: FunPtr (GLfixed -> IO ())
-glLineWidthxOESFunPtr = unsafePerformIO (getProcAddress "glLineWidthxOES")
-
-{-# NOINLINE glLineWidthxOESFunPtr #-}
-
--- | Usage: @'glLoadMatrixxOES' m@
---
--- The length of @m@ should be @16@.
-
-
-glLoadMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
-glLoadMatrixxOES = ffiPtrfixedIOV glLoadMatrixxOESFunPtr
-
-glLoadMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glLoadMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixxOES")
-
-{-# NOINLINE glLoadMatrixxOESFunPtr #-}
-
--- | Usage: @'glLoadTransposeMatrixxOES' m@
---
--- The length of @m@ should be @16@.
-
-
-glLoadTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
-glLoadTransposeMatrixxOES = ffiPtrfixedIOV glLoadTransposeMatrixxOESFunPtr
-
-glLoadTransposeMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glLoadTransposeMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixxOES")
-
-{-# NOINLINE glLoadTransposeMatrixxOESFunPtr #-}
-
--- | Usage: @'glMap1xOES' target u1 u2 stride order points@
-
-
-glMap1xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
-glMap1xOES = ffienumfixedfixedintintfixedIOV glMap1xOESFunPtr
-
-glMap1xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
-glMap1xOESFunPtr = unsafePerformIO (getProcAddress "glMap1xOES")
-
-{-# NOINLINE glMap1xOESFunPtr #-}
-
--- | Usage: @'glMap2xOES' target u1 u2 ustride uorder v1 v2 vstride vorder points@
-
-
-glMap2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
-glMap2xOES = ffienumfixedfixedintintfixedfixedintintfixedIOV glMap2xOESFunPtr
-
-glMap2xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
-glMap2xOESFunPtr = unsafePerformIO (getProcAddress "glMap2xOES")
-
-{-# NOINLINE glMap2xOESFunPtr #-}
-
--- | Usage: @'glMapGrid1xOES' n u1 u2@
-
-
-glMapGrid1xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> m ()
-glMapGrid1xOES = ffiintfixedfixedIOV glMapGrid1xOESFunPtr
-
-glMapGrid1xOESFunPtr :: FunPtr (GLint -> GLfixed -> GLfixed -> IO ())
-glMapGrid1xOESFunPtr = unsafePerformIO (getProcAddress "glMapGrid1xOES")
-
-{-# NOINLINE glMapGrid1xOESFunPtr #-}
-
--- | Usage: @'glMapGrid2xOES' n u1 u2 v1 v2@
-
-
-glMapGrid2xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glMapGrid2xOES = ffiintfixedfixedfixedfixedIOV glMapGrid2xOESFunPtr
-
-glMapGrid2xOESFunPtr :: FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glMapGrid2xOESFunPtr = unsafePerformIO (getProcAddress "glMapGrid2xOES")
-
-{-# NOINLINE glMapGrid2xOESFunPtr #-}
-
--- | Usage: @'glMaterialxOES' face pname param@
-
-
-glMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glMaterialxOES = ffienumenumfixedIOV glMaterialxOESFunPtr
-
-glMaterialxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glMaterialxOESFunPtr = unsafePerformIO (getProcAddress "glMaterialxOES")
-
-{-# NOINLINE glMaterialxOESFunPtr #-}
-
--- | Usage: @'glMaterialxvOES' face pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glMaterialxvOES = ffienumenumPtrfixedIOV glMaterialxvOESFunPtr
-
-glMaterialxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glMaterialxvOESFunPtr = unsafePerformIO (getProcAddress "glMaterialxvOES")
-
-{-# NOINLINE glMaterialxvOESFunPtr #-}
-
--- | Usage: @'glMultMatrixxOES' m@
---
--- The length of @m@ should be @16@.
-
-
-glMultMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
-glMultMatrixxOES = ffiPtrfixedIOV glMultMatrixxOESFunPtr
-
-glMultMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glMultMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glMultMatrixxOES")
-
-{-# NOINLINE glMultMatrixxOESFunPtr #-}
-
--- | Usage: @'glMultTransposeMatrixxOES' m@
---
--- The length of @m@ should be @16@.
-
-
-glMultTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
-glMultTransposeMatrixxOES = ffiPtrfixedIOV glMultTransposeMatrixxOESFunPtr
-
-glMultTransposeMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glMultTransposeMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixxOES")
-
-{-# NOINLINE glMultTransposeMatrixxOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1xOES' texture s@
-
-
-glMultiTexCoord1xOES :: MonadIO m => GLenum -> GLfixed -> m ()
-glMultiTexCoord1xOES = ffienumfixedIOV glMultiTexCoord1xOESFunPtr
-
-glMultiTexCoord1xOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glMultiTexCoord1xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1xOES")
-
-{-# NOINLINE glMultiTexCoord1xOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1xvOES' texture coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoord1xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glMultiTexCoord1xvOES = ffienumPtrfixedIOV glMultiTexCoord1xvOESFunPtr
-
-glMultiTexCoord1xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glMultiTexCoord1xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1xvOES")
-
-{-# NOINLINE glMultiTexCoord1xvOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2xOES' texture s t@
-
-
-glMultiTexCoord2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> m ()
-glMultiTexCoord2xOES = ffienumfixedfixedIOV glMultiTexCoord2xOESFunPtr
-
-glMultiTexCoord2xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> IO ())
-glMultiTexCoord2xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2xOES")
-
-{-# NOINLINE glMultiTexCoord2xOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2xvOES' texture coords@
---
--- The length of @coords@ should be @2@.
-
-
-glMultiTexCoord2xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glMultiTexCoord2xvOES = ffienumPtrfixedIOV glMultiTexCoord2xvOESFunPtr
-
-glMultiTexCoord2xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glMultiTexCoord2xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2xvOES")
-
-{-# NOINLINE glMultiTexCoord2xvOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3xOES' texture s t r@
-
-
-glMultiTexCoord3xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
-glMultiTexCoord3xOES = ffienumfixedfixedfixedIOV glMultiTexCoord3xOESFunPtr
-
-glMultiTexCoord3xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glMultiTexCoord3xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3xOES")
-
-{-# NOINLINE glMultiTexCoord3xOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3xvOES' texture coords@
---
--- The length of @coords@ should be @3@.
-
-
-glMultiTexCoord3xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glMultiTexCoord3xvOES = ffienumPtrfixedIOV glMultiTexCoord3xvOESFunPtr
-
-glMultiTexCoord3xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glMultiTexCoord3xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3xvOES")
-
-{-# NOINLINE glMultiTexCoord3xvOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4xOES' texture s t r q@
-
-
-glMultiTexCoord4xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glMultiTexCoord4xOES = ffienumfixedfixedfixedfixedIOV glMultiTexCoord4xOESFunPtr
-
-glMultiTexCoord4xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glMultiTexCoord4xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4xOES")
-
-{-# NOINLINE glMultiTexCoord4xOESFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4xvOES' texture coords@
---
--- The length of @coords@ should be @4@.
-
-
-glMultiTexCoord4xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glMultiTexCoord4xvOES = ffienumPtrfixedIOV glMultiTexCoord4xvOESFunPtr
-
-glMultiTexCoord4xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glMultiTexCoord4xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4xvOES")
-
-{-# NOINLINE glMultiTexCoord4xvOESFunPtr #-}
-
--- | Usage: @'glNormal3xOES' nx ny nz@
-
-
-glNormal3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glNormal3xOES = ffifixedfixedfixedIOV glNormal3xOESFunPtr
-
-glNormal3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glNormal3xOESFunPtr = unsafePerformIO (getProcAddress "glNormal3xOES")
-
-{-# NOINLINE glNormal3xOESFunPtr #-}
-
--- | Usage: @'glNormal3xvOES' coords@
---
--- The length of @coords@ should be @3@.
-
-
-glNormal3xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glNormal3xvOES = ffiPtrfixedIOV glNormal3xvOESFunPtr
-
-glNormal3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glNormal3xvOESFunPtr = unsafePerformIO (getProcAddress "glNormal3xvOES")
-
-{-# NOINLINE glNormal3xvOESFunPtr #-}
-
--- | Usage: @'glOrthoxOES' l r b t n f@
-
-
-glOrthoxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glOrthoxOES = ffifixedfixedfixedfixedfixedfixedIOV glOrthoxOESFunPtr
-
-glOrthoxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glOrthoxOESFunPtr = unsafePerformIO (getProcAddress "glOrthoxOES")
-
-{-# NOINLINE glOrthoxOESFunPtr #-}
-
--- | Usage: @'glPassThroughxOES' token@
-
-
-glPassThroughxOES :: MonadIO m => GLfixed -> m ()
-glPassThroughxOES = ffifixedIOV glPassThroughxOESFunPtr
-
-glPassThroughxOESFunPtr :: FunPtr (GLfixed -> IO ())
-glPassThroughxOESFunPtr = unsafePerformIO (getProcAddress "glPassThroughxOES")
-
-{-# NOINLINE glPassThroughxOESFunPtr #-}
-
--- | Usage: @'glPixelMapx' map size values@
---
--- The length of @values@ should be @size@.
-
-
-glPixelMapx :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
-glPixelMapx = ffienumintPtrfixedIOV glPixelMapxFunPtr
-
-glPixelMapxFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ())
-glPixelMapxFunPtr = unsafePerformIO (getProcAddress "glPixelMapx")
-
-{-# NOINLINE glPixelMapxFunPtr #-}
-
--- | Usage: @'glPixelStorex' pname param@
-
-
-glPixelStorex :: MonadIO m => GLenum -> GLfixed -> m ()
-glPixelStorex = ffienumfixedIOV glPixelStorexFunPtr
-
-glPixelStorexFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glPixelStorexFunPtr = unsafePerformIO (getProcAddress "glPixelStorex")
-
-{-# NOINLINE glPixelStorexFunPtr #-}
-
--- | Usage: @'glPixelTransferxOES' pname param@
-
-
-glPixelTransferxOES :: MonadIO m => GLenum -> GLfixed -> m ()
-glPixelTransferxOES = ffienumfixedIOV glPixelTransferxOESFunPtr
-
-glPixelTransferxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glPixelTransferxOESFunPtr = unsafePerformIO (getProcAddress "glPixelTransferxOES")
-
-{-# NOINLINE glPixelTransferxOESFunPtr #-}
-
--- | Usage: @'glPixelZoomxOES' xfactor yfactor@
-
-
-glPixelZoomxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
-glPixelZoomxOES = ffifixedfixedIOV glPixelZoomxOESFunPtr
-
-glPixelZoomxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glPixelZoomxOESFunPtr = unsafePerformIO (getProcAddress "glPixelZoomxOES")
-
-{-# NOINLINE glPixelZoomxOESFunPtr #-}
-
--- | Usage: @'glPointParameterxOES' pname param@
-
-
-glPointParameterxOES :: MonadIO m => GLenum -> GLfixed -> m ()
-glPointParameterxOES = ffienumfixedIOV glPointParameterxOESFunPtr
-
-glPointParameterxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
-glPointParameterxOESFunPtr = unsafePerformIO (getProcAddress "glPointParameterxOES")
-
-{-# NOINLINE glPointParameterxOESFunPtr #-}
-
--- | Usage: @'glPointParameterxvOES' pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPointParameterxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
-glPointParameterxvOES = ffienumPtrfixedIOV glPointParameterxvOESFunPtr
-
-glPointParameterxvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
-glPointParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glPointParameterxvOES")
-
-{-# NOINLINE glPointParameterxvOESFunPtr #-}
-
--- | Usage: @'glPointSizexOES' size@
-
-
-glPointSizexOES :: MonadIO m => GLfixed -> m ()
-glPointSizexOES = ffifixedIOV glPointSizexOESFunPtr
-
-glPointSizexOESFunPtr :: FunPtr (GLfixed -> IO ())
-glPointSizexOESFunPtr = unsafePerformIO (getProcAddress "glPointSizexOES")
-
-{-# NOINLINE glPointSizexOESFunPtr #-}
-
--- | Usage: @'glPolygonOffsetxOES' factor units@
-
-
-glPolygonOffsetxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
-glPolygonOffsetxOES = ffifixedfixedIOV glPolygonOffsetxOESFunPtr
-
-glPolygonOffsetxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glPolygonOffsetxOESFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetxOES")
-
-{-# NOINLINE glPolygonOffsetxOESFunPtr #-}
-
--- | Usage: @'glPrioritizeTexturesxOES' n textures priorities@
---
--- The parameter @priorities@ is a @ClampedFixed@.
---
--- The length of @textures@ should be @n@.
---
--- The length of @priorities@ should be @n@.
-
-
-glPrioritizeTexturesxOES :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()
-glPrioritizeTexturesxOES = ffisizeiPtruintPtrfixedIOV glPrioritizeTexturesxOESFunPtr
-
-glPrioritizeTexturesxOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ())
-glPrioritizeTexturesxOESFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTexturesxOES")
-
-{-# NOINLINE glPrioritizeTexturesxOESFunPtr #-}
-
--- | Usage: @'glRasterPos2xOES' x y@
-
-
-glRasterPos2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
-glRasterPos2xOES = ffifixedfixedIOV glRasterPos2xOESFunPtr
-
-glRasterPos2xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glRasterPos2xOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos2xOES")
-
-{-# NOINLINE glRasterPos2xOESFunPtr #-}
-
--- | Usage: @'glRasterPos2xvOES' coords@
---
--- The length of @coords@ should be @2@.
-
-
-glRasterPos2xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glRasterPos2xvOES = ffiPtrfixedIOV glRasterPos2xvOESFunPtr
-
-glRasterPos2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glRasterPos2xvOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos2xvOES")
-
-{-# NOINLINE glRasterPos2xvOESFunPtr #-}
-
--- | Usage: @'glRasterPos3xOES' x y z@
-
-
-glRasterPos3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glRasterPos3xOES = ffifixedfixedfixedIOV glRasterPos3xOESFunPtr
-
-glRasterPos3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glRasterPos3xOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos3xOES")
-
-{-# NOINLINE glRasterPos3xOESFunPtr #-}
-
--- | Usage: @'glRasterPos3xvOES' coords@
---
--- The length of @coords@ should be @3@.
-
-
-glRasterPos3xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glRasterPos3xvOES = ffiPtrfixedIOV glRasterPos3xvOESFunPtr
-
-glRasterPos3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glRasterPos3xvOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos3xvOES")
-
-{-# NOINLINE glRasterPos3xvOESFunPtr #-}
-
--- | Usage: @'glRasterPos4xOES' x y z w@
-
-
-glRasterPos4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glRasterPos4xOES = ffifixedfixedfixedfixedIOV glRasterPos4xOESFunPtr
-
-glRasterPos4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glRasterPos4xOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos4xOES")
-
-{-# NOINLINE glRasterPos4xOESFunPtr #-}
-
--- | Usage: @'glRasterPos4xvOES' coords@
---
--- The length of @coords@ should be @4@.
-
-
-glRasterPos4xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glRasterPos4xvOES = ffiPtrfixedIOV glRasterPos4xvOESFunPtr
-
-glRasterPos4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glRasterPos4xvOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos4xvOES")
-
-{-# NOINLINE glRasterPos4xvOESFunPtr #-}
-
--- | Usage: @'glRectxOES' x1 y1 x2 y2@
-
-
-glRectxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glRectxOES = ffifixedfixedfixedfixedIOV glRectxOESFunPtr
-
-glRectxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glRectxOESFunPtr = unsafePerformIO (getProcAddress "glRectxOES")
-
-{-# NOINLINE glRectxOESFunPtr #-}
-
--- | Usage: @'glRectxvOES' v1 v2@
---
--- The length of @v1@ should be @2@.
---
--- The length of @v2@ should be @2@.
-
-
-glRectxvOES :: MonadIO m => Ptr GLfixed -> Ptr GLfixed -> m ()
-glRectxvOES = ffiPtrfixedPtrfixedIOV glRectxvOESFunPtr
-
-glRectxvOESFunPtr :: FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ())
-glRectxvOESFunPtr = unsafePerformIO (getProcAddress "glRectxvOES")
-
-{-# NOINLINE glRectxvOESFunPtr #-}
-
--- | Usage: @'glRotatexOES' angle x y z@
-
-
-glRotatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glRotatexOES = ffifixedfixedfixedfixedIOV glRotatexOESFunPtr
-
-glRotatexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glRotatexOESFunPtr = unsafePerformIO (getProcAddress "glRotatexOES")
-
-{-# NOINLINE glRotatexOESFunPtr #-}
-
--- | Usage: @'glSampleCoveragexOES' value invert@
-
-
-glSampleCoveragexOES :: MonadIO m => GLclampx -> GLboolean -> m ()
-glSampleCoveragexOES = fficlampxbooleanIOV glSampleCoveragexOESFunPtr
-
-glSampleCoveragexOESFunPtr :: FunPtr (GLclampx -> GLboolean -> IO ())
-glSampleCoveragexOESFunPtr = unsafePerformIO (getProcAddress "glSampleCoveragexOES")
-
-{-# NOINLINE glSampleCoveragexOESFunPtr #-}
-
--- | Usage: @'glScalexOES' x y z@
-
-
-glScalexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glScalexOES = ffifixedfixedfixedIOV glScalexOESFunPtr
-
-glScalexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glScalexOESFunPtr = unsafePerformIO (getProcAddress "glScalexOES")
-
-{-# NOINLINE glScalexOESFunPtr #-}
-
--- | Usage: @'glTexCoord1xOES' s@
-
-
-glTexCoord1xOES :: MonadIO m => GLfixed -> m ()
-glTexCoord1xOES = ffifixedIOV glTexCoord1xOESFunPtr
-
-glTexCoord1xOESFunPtr :: FunPtr (GLfixed -> IO ())
-glTexCoord1xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1xOES")
-
-{-# NOINLINE glTexCoord1xOESFunPtr #-}
-
--- | Usage: @'glTexCoord1xvOES' coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glTexCoord1xvOES = ffiPtrfixedIOV glTexCoord1xvOESFunPtr
-
-glTexCoord1xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glTexCoord1xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1xvOES")
-
-{-# NOINLINE glTexCoord1xvOESFunPtr #-}
-
--- | Usage: @'glTexCoord2xOES' s t@
-
-
-glTexCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
-glTexCoord2xOES = ffifixedfixedIOV glTexCoord2xOESFunPtr
-
-glTexCoord2xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glTexCoord2xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2xOES")
-
-{-# NOINLINE glTexCoord2xOESFunPtr #-}
-
--- | Usage: @'glTexCoord2xvOES' coords@
---
--- The length of @coords@ should be @2@.
-
-
-glTexCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glTexCoord2xvOES = ffiPtrfixedIOV glTexCoord2xvOESFunPtr
-
-glTexCoord2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glTexCoord2xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2xvOES")
-
-{-# NOINLINE glTexCoord2xvOESFunPtr #-}
-
--- | Usage: @'glTexCoord3xOES' s t r@
-
-
-glTexCoord3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glTexCoord3xOES = ffifixedfixedfixedIOV glTexCoord3xOESFunPtr
-
-glTexCoord3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glTexCoord3xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3xOES")
-
-{-# NOINLINE glTexCoord3xOESFunPtr #-}
-
--- | Usage: @'glTexCoord3xvOES' coords@
---
--- The length of @coords@ should be @3@.
-
-
-glTexCoord3xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glTexCoord3xvOES = ffiPtrfixedIOV glTexCoord3xvOESFunPtr
-
-glTexCoord3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glTexCoord3xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3xvOES")
-
-{-# NOINLINE glTexCoord3xvOESFunPtr #-}
-
--- | Usage: @'glTexCoord4xOES' s t r q@
-
-
-glTexCoord4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-glTexCoord4xOES = ffifixedfixedfixedfixedIOV glTexCoord4xOESFunPtr
-
-glTexCoord4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
-glTexCoord4xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4xOES")
-
-{-# NOINLINE glTexCoord4xOESFunPtr #-}
-
--- | Usage: @'glTexCoord4xvOES' coords@
---
--- The length of @coords@ should be @4@.
-
-
-glTexCoord4xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glTexCoord4xvOES = ffiPtrfixedIOV glTexCoord4xvOESFunPtr
-
-glTexCoord4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glTexCoord4xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4xvOES")
-
-{-# NOINLINE glTexCoord4xvOESFunPtr #-}
-
--- | Usage: @'glTexEnvxOES' target pname param@
-
-
-glTexEnvxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glTexEnvxOES = ffienumenumfixedIOV glTexEnvxOESFunPtr
-
-glTexEnvxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glTexEnvxOESFunPtr = unsafePerformIO (getProcAddress "glTexEnvxOES")
-
-{-# NOINLINE glTexEnvxOESFunPtr #-}
-
--- | Usage: @'glTexEnvxvOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glTexEnvxvOES = ffienumenumPtrfixedIOV glTexEnvxvOESFunPtr
-
-glTexEnvxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glTexEnvxvOESFunPtr = unsafePerformIO (getProcAddress "glTexEnvxvOES")
-
-{-# NOINLINE glTexEnvxvOESFunPtr #-}
-
--- | Usage: @'glTexParameterxOES' target pname param@
-
-
-glTexParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glTexParameterxOES = ffienumenumfixedIOV glTexParameterxOESFunPtr
-
-glTexParameterxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glTexParameterxOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterxOES")
-
-{-# NOINLINE glTexParameterxOESFunPtr #-}
-
--- | Usage: @'glTexParameterxvOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glTexParameterxvOES = ffienumenumPtrfixedIOV glTexParameterxvOESFunPtr
-
-glTexParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glTexParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterxvOES")
-
-{-# NOINLINE glTexParameterxvOESFunPtr #-}
-
--- | Usage: @'glTranslatexOES' x y z@
-
-
-glTranslatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glTranslatexOES = ffifixedfixedfixedIOV glTranslatexOESFunPtr
-
-glTranslatexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glTranslatexOESFunPtr = unsafePerformIO (getProcAddress "glTranslatexOES")
-
-{-# NOINLINE glTranslatexOESFunPtr #-}
-
--- | Usage: @'glVertex2xOES' x@
-
-
-glVertex2xOES :: MonadIO m => GLfixed -> m ()
-glVertex2xOES = ffifixedIOV glVertex2xOESFunPtr
-
-glVertex2xOESFunPtr :: FunPtr (GLfixed -> IO ())
-glVertex2xOESFunPtr = unsafePerformIO (getProcAddress "glVertex2xOES")
-
-{-# NOINLINE glVertex2xOESFunPtr #-}
-
--- | Usage: @'glVertex2xvOES' coords@
---
--- The length of @coords@ should be @2@.
-
-
-glVertex2xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glVertex2xvOES = ffiPtrfixedIOV glVertex2xvOESFunPtr
-
-glVertex2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glVertex2xvOESFunPtr = unsafePerformIO (getProcAddress "glVertex2xvOES")
-
-{-# NOINLINE glVertex2xvOESFunPtr #-}
-
--- | Usage: @'glVertex3xOES' x y@
-
-
-glVertex3xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
-glVertex3xOES = ffifixedfixedIOV glVertex3xOESFunPtr
-
-glVertex3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
-glVertex3xOESFunPtr = unsafePerformIO (getProcAddress "glVertex3xOES")
-
-{-# NOINLINE glVertex3xOESFunPtr #-}
-
--- | Usage: @'glVertex3xvOES' coords@
---
--- The length of @coords@ should be @3@.
-
-
-glVertex3xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glVertex3xvOES = ffiPtrfixedIOV glVertex3xvOESFunPtr
-
-glVertex3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glVertex3xvOESFunPtr = unsafePerformIO (getProcAddress "glVertex3xvOES")
-
-{-# NOINLINE glVertex3xvOESFunPtr #-}
-
--- | Usage: @'glVertex4xOES' x y z@
-
-
-glVertex4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
-glVertex4xOES = ffifixedfixedfixedIOV glVertex4xOESFunPtr
-
-glVertex4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
-glVertex4xOESFunPtr = unsafePerformIO (getProcAddress "glVertex4xOES")
-
-{-# NOINLINE glVertex4xOESFunPtr #-}
-
--- | Usage: @'glVertex4xvOES' coords@
---
--- The length of @coords@ should be @4@.
-
-
-glVertex4xvOES :: MonadIO m => Ptr GLfixed -> m ()
-glVertex4xvOES = ffiPtrfixedIOV glVertex4xvOESFunPtr
-
-glVertex4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
-glVertex4xvOESFunPtr = unsafePerformIO (getProcAddress "glVertex4xvOES")
-
-{-# NOINLINE glVertex4xvOESFunPtr #-}
-
-pattern GL_FIXED_OES = 0x140C
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/FragmentPrecisionHigh.hs b/dist/build/autogen/Graphics/GL/Ext/OES/FragmentPrecisionHigh.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/FragmentPrecisionHigh.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.FragmentPrecisionHigh (
-  -- * Extension Support
-    gl_OES_fragment_precision_high
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_fragment_precision_high.txt GL_OES_fragment_precision_high> extension is available.
-
-gl_OES_fragment_precision_high :: Bool
-gl_OES_fragment_precision_high = member "GL_OES_fragment_precision_high" extensions
-{-# NOINLINE gl_OES_fragment_precision_high #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/FramebufferObject.hs b/dist/build/autogen/Graphics/GL/Ext/OES/FramebufferObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/FramebufferObject.hs
+++ /dev/null
@@ -1,306 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.FramebufferObject (
-  -- * Extension Support
-    gl_OES_framebuffer_object
-
-  -- * GL_OES_framebuffer_object
-  , glBindFramebufferOES
-  , glBindRenderbufferOES
-  , glCheckFramebufferStatusOES
-  , glDeleteFramebuffersOES
-  , glDeleteRenderbuffersOES
-  , glFramebufferRenderbufferOES
-  , glFramebufferTexture2DOES
-  , glGenFramebuffersOES
-  , glGenRenderbuffersOES
-  , glGenerateMipmapOES
-  , glGetFramebufferAttachmentParameterivOES
-  , glGetRenderbufferParameterivOES
-  , glIsFramebufferOES
-  , glIsRenderbufferOES
-  , glRenderbufferStorageOES
-  , pattern GL_COLOR_ATTACHMENT0_OES
-  , pattern GL_DEPTH_ATTACHMENT_OES
-  , pattern GL_DEPTH_COMPONENT16_OES
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES
-  , pattern GL_FRAMEBUFFER_BINDING_OES
-  , pattern GL_FRAMEBUFFER_COMPLETE_OES
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES
-  , pattern GL_FRAMEBUFFER_OES
-  , pattern GL_FRAMEBUFFER_UNSUPPORTED_OES
-  , pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES
-  , pattern GL_MAX_RENDERBUFFER_SIZE_OES
-  , pattern GL_NONE_OES
-  , pattern GL_RENDERBUFFER_ALPHA_SIZE_OES
-  , pattern GL_RENDERBUFFER_BINDING_OES
-  , pattern GL_RENDERBUFFER_BLUE_SIZE_OES
-  , pattern GL_RENDERBUFFER_DEPTH_SIZE_OES
-  , pattern GL_RENDERBUFFER_GREEN_SIZE_OES
-  , pattern GL_RENDERBUFFER_HEIGHT_OES
-  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES
-  , pattern GL_RENDERBUFFER_OES
-  , pattern GL_RENDERBUFFER_RED_SIZE_OES
-  , pattern GL_RENDERBUFFER_STENCIL_SIZE_OES
-  , pattern GL_RENDERBUFFER_WIDTH_OES
-  , pattern GL_RGB565_OES
-  , pattern GL_RGB5_A1_OES
-  , pattern GL_RGBA4_OES
-  , pattern GL_STENCIL_ATTACHMENT_OES
-) 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://www.khronos.org/registry/gles/extensions/OES/OES_framebuffer_object.txt GL_OES_framebuffer_object> extension is available.
-
-gl_OES_framebuffer_object :: Bool
-gl_OES_framebuffer_object = member "GL_OES_framebuffer_object" extensions
-{-# NOINLINE gl_OES_framebuffer_object #-}
-
--- | Usage: @'glBindFramebufferOES' target framebuffer@
-
-
-glBindFramebufferOES :: MonadIO m => GLenum -> GLuint -> m ()
-glBindFramebufferOES = ffienumuintIOV glBindFramebufferOESFunPtr
-
-glBindFramebufferOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindFramebufferOESFunPtr = unsafePerformIO (getProcAddress "glBindFramebufferOES")
-
-{-# NOINLINE glBindFramebufferOESFunPtr #-}
-
--- | Usage: @'glBindRenderbufferOES' target renderbuffer@
-
-
-glBindRenderbufferOES :: MonadIO m => GLenum -> GLuint -> m ()
-glBindRenderbufferOES = ffienumuintIOV glBindRenderbufferOESFunPtr
-
-glBindRenderbufferOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glBindRenderbufferOES")
-
-{-# NOINLINE glBindRenderbufferOESFunPtr #-}
-
--- | Usage: @'glCheckFramebufferStatusOES' target@
-
-
-glCheckFramebufferStatusOES :: MonadIO m => GLenum -> m GLenum
-glCheckFramebufferStatusOES = ffienumIOenum glCheckFramebufferStatusOESFunPtr
-
-glCheckFramebufferStatusOESFunPtr :: FunPtr (GLenum -> IO GLenum)
-glCheckFramebufferStatusOESFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatusOES")
-
-{-# NOINLINE glCheckFramebufferStatusOESFunPtr #-}
-
--- | Usage: @'glDeleteFramebuffersOES' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
-
-
-glDeleteFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteFramebuffersOES = ffisizeiPtruintIOV glDeleteFramebuffersOESFunPtr
-
-glDeleteFramebuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteFramebuffersOESFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffersOES")
-
-{-# NOINLINE glDeleteFramebuffersOESFunPtr #-}
-
--- | Usage: @'glDeleteRenderbuffersOES' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
-
-
-glDeleteRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteRenderbuffersOES = ffisizeiPtruintIOV glDeleteRenderbuffersOESFunPtr
-
-glDeleteRenderbuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteRenderbuffersOESFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffersOES")
-
-{-# NOINLINE glDeleteRenderbuffersOESFunPtr #-}
-
--- | Usage: @'glFramebufferRenderbufferOES' target attachment renderbuffertarget renderbuffer@
-
-
-glFramebufferRenderbufferOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
-glFramebufferRenderbufferOES = ffienumenumenumuintIOV glFramebufferRenderbufferOESFunPtr
-
-glFramebufferRenderbufferOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-glFramebufferRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbufferOES")
-
-{-# NOINLINE glFramebufferRenderbufferOESFunPtr #-}
-
--- | Usage: @'glFramebufferTexture2DOES' target attachment textarget texture level@
-
-
-glFramebufferTexture2DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture2DOES = ffienumenumenumuintintIOV glFramebufferTexture2DOESFunPtr
-
-glFramebufferTexture2DOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture2DOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DOES")
-
-{-# NOINLINE glFramebufferTexture2DOESFunPtr #-}
-
--- | Usage: @'glGenFramebuffersOES' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
-
-
-glGenFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenFramebuffersOES = ffisizeiPtruintIOV glGenFramebuffersOESFunPtr
-
-glGenFramebuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenFramebuffersOESFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffersOES")
-
-{-# NOINLINE glGenFramebuffersOESFunPtr #-}
-
--- | Usage: @'glGenRenderbuffersOES' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
-
-
-glGenRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenRenderbuffersOES = ffisizeiPtruintIOV glGenRenderbuffersOESFunPtr
-
-glGenRenderbuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenRenderbuffersOESFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffersOES")
-
-{-# NOINLINE glGenRenderbuffersOESFunPtr #-}
-
--- | Usage: @'glGenerateMipmapOES' target@
-
-
-glGenerateMipmapOES :: MonadIO m => GLenum -> m ()
-glGenerateMipmapOES = ffienumIOV glGenerateMipmapOESFunPtr
-
-glGenerateMipmapOESFunPtr :: FunPtr (GLenum -> IO ())
-glGenerateMipmapOESFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmapOES")
-
-{-# NOINLINE glGenerateMipmapOESFunPtr #-}
-
--- | Usage: @'glGetFramebufferAttachmentParameterivOES' target attachment pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFramebufferAttachmentParameterivOES :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferAttachmentParameterivOES = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivOESFunPtr
-
-glGetFramebufferAttachmentParameterivOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferAttachmentParameterivOESFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameterivOES")
-
-{-# NOINLINE glGetFramebufferAttachmentParameterivOESFunPtr #-}
-
--- | Usage: @'glGetRenderbufferParameterivOES' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetRenderbufferParameterivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetRenderbufferParameterivOES = ffienumenumPtrintIOV glGetRenderbufferParameterivOESFunPtr
-
-glGetRenderbufferParameterivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetRenderbufferParameterivOESFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameterivOES")
-
-{-# NOINLINE glGetRenderbufferParameterivOESFunPtr #-}
-
--- | Usage: @'glIsFramebufferOES' framebuffer@
-
-
-glIsFramebufferOES :: MonadIO m => GLuint -> m GLboolean
-glIsFramebufferOES = ffiuintIOboolean glIsFramebufferOESFunPtr
-
-glIsFramebufferOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsFramebufferOESFunPtr = unsafePerformIO (getProcAddress "glIsFramebufferOES")
-
-{-# NOINLINE glIsFramebufferOESFunPtr #-}
-
--- | Usage: @'glIsRenderbufferOES' renderbuffer@
-
-
-glIsRenderbufferOES :: MonadIO m => GLuint -> m GLboolean
-glIsRenderbufferOES = ffiuintIOboolean glIsRenderbufferOESFunPtr
-
-glIsRenderbufferOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glIsRenderbufferOES")
-
-{-# NOINLINE glIsRenderbufferOESFunPtr #-}
-
--- | Usage: @'glRenderbufferStorageOES' target internalformat width height@
-
-
-glRenderbufferStorageOES :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageOES = ffienumenumsizeisizeiIOV glRenderbufferStorageOESFunPtr
-
-glRenderbufferStorageOESFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageOESFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageOES")
-
-{-# NOINLINE glRenderbufferStorageOESFunPtr #-}
-
-pattern GL_COLOR_ATTACHMENT0_OES = 0x8CE0
-
-pattern GL_DEPTH_ATTACHMENT_OES = 0x8D00
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2
-
-pattern GL_FRAMEBUFFER_BINDING_OES = 0x8CA6
-
-pattern GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7
-
-pattern GL_FRAMEBUFFER_OES = 0x8D40
-
-pattern GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD
-
-pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506
-
-pattern GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8
-
-pattern GL_NONE_OES = 0
-
-pattern GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53
-
-pattern GL_RENDERBUFFER_BINDING_OES = 0x8CA7
-
-pattern GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52
-
-pattern GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54
-
-pattern GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51
-
-pattern GL_RENDERBUFFER_HEIGHT_OES = 0x8D43
-
-pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44
-
-pattern GL_RENDERBUFFER_OES = 0x8D41
-
-pattern GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50
-
-pattern GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55
-
-pattern GL_RENDERBUFFER_WIDTH_OES = 0x8D42
-
-pattern GL_STENCIL_ATTACHMENT_OES = 0x8D20
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/GeometryPointSize.hs b/dist/build/autogen/Graphics/GL/Ext/OES/GeometryPointSize.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/GeometryPointSize.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.GeometryPointSize (
-  -- * Extension Support
-    gl_OES_geometry_point_size
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt GL_OES_geometry_point_size> extension is available.
-
-gl_OES_geometry_point_size :: Bool
-gl_OES_geometry_point_size = member "GL_OES_geometry_point_size" extensions
-{-# NOINLINE gl_OES_geometry_point_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/GeometryShader.hs b/dist/build/autogen/Graphics/GL/Ext/OES/GeometryShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/GeometryShader.hs
+++ /dev/null
@@ -1,143 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.GeometryShader (
-  -- * Extension Support
-    gl_OES_geometry_shader
-
-  -- * GL_OES_geometry_shader
-  , glFramebufferTextureOES
-  , pattern GL_FIRST_VERTEX_CONVENTION_OES
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES
-  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_OES
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES
-  , pattern GL_GEOMETRY_LINKED_INPUT_TYPE_OES
-  , pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES
-  , pattern GL_GEOMETRY_LINKED_VERTICES_OUT_OES
-  , pattern GL_GEOMETRY_SHADER_BIT_OES
-  , pattern GL_GEOMETRY_SHADER_INVOCATIONS_OES
-  , pattern GL_GEOMETRY_SHADER_OES
-  , pattern GL_LAST_VERTEX_CONVENTION_OES
-  , pattern GL_LAYER_PROVOKING_VERTEX_OES
-  , pattern GL_LINES_ADJACENCY_OES
-  , pattern GL_LINE_STRIP_ADJACENCY_OES
-  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES
-  , pattern GL_MAX_FRAMEBUFFER_LAYERS_OES
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES
-  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES
-  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES
-  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES
-  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES
-  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES
-  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES
-  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES
-  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES
-  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES
-  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES
-  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES
-  , pattern GL_PRIMITIVES_GENERATED_OES
-  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER_OES
-  , pattern GL_TRIANGLES_ADJACENCY_OES
-  , pattern GL_TRIANGLE_STRIP_ADJACENCY_OES
-  , pattern GL_UNDEFINED_VERTEX_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt GL_OES_geometry_shader> extension is available.
-
-gl_OES_geometry_shader :: Bool
-gl_OES_geometry_shader = member "GL_OES_geometry_shader" extensions
-{-# NOINLINE gl_OES_geometry_shader #-}
-
--- | Usage: @'glFramebufferTextureOES' target attachment texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
-
-
-glFramebufferTextureOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTextureOES = ffienumenumuintintIOV glFramebufferTextureOESFunPtr
-
-glFramebufferTextureOESFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTextureOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureOES")
-
-{-# NOINLINE glFramebufferTextureOESFunPtr #-}
-
-pattern GL_FIRST_VERTEX_CONVENTION_OES = 0x8E4D
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES = 0x8DA7
-
-pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_OES = 0x9312
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES = 0x8DA8
-
-pattern GL_GEOMETRY_LINKED_INPUT_TYPE_OES = 0x8917
-
-pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES = 0x8918
-
-pattern GL_GEOMETRY_LINKED_VERTICES_OUT_OES = 0x8916
-
-pattern GL_GEOMETRY_SHADER_BIT_OES = 0x00000004
-
-pattern GL_GEOMETRY_SHADER_INVOCATIONS_OES = 0x887F
-
-pattern GL_GEOMETRY_SHADER_OES = 0x8DD9
-
-pattern GL_LAST_VERTEX_CONVENTION_OES = 0x8E4E
-
-pattern GL_LAYER_PROVOKING_VERTEX_OES = 0x825E
-
-pattern GL_LINES_ADJACENCY_OES = 0x000A
-
-pattern GL_LINE_STRIP_ADJACENCY_OES = 0x000B
-
-pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8A32
-
-pattern GL_MAX_FRAMEBUFFER_LAYERS_OES = 0x9317
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES = 0x92D5
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES = 0x92CF
-
-pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES = 0x90CD
-
-pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES = 0x9123
-
-pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES = 0x9124
-
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES = 0x8DE0
-
-pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES = 0x8E5A
-
-pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES = 0x90D7
-
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES = 0x8C29
-
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES = 0x8DE1
-
-pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES = 0x8A2C
-
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8DDF
-
-pattern GL_PRIMITIVES_GENERATED_OES = 0x8C87
-
-pattern GL_REFERENCED_BY_GEOMETRY_SHADER_OES = 0x9309
-
-pattern GL_TRIANGLES_ADJACENCY_OES = 0x000C
-
-pattern GL_TRIANGLE_STRIP_ADJACENCY_OES = 0x000D
-
-pattern GL_UNDEFINED_VERTEX_OES = 0x8260
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/GetProgramBinary.hs b/dist/build/autogen/Graphics/GL/Ext/OES/GetProgramBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/GetProgramBinary.hs
+++ /dev/null
@@ -1,67 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.GetProgramBinary (
-  -- * Extension Support
-    gl_OES_get_program_binary
-
-  -- * GL_OES_get_program_binary
-  , glGetProgramBinaryOES
-  , glProgramBinaryOES
-  , pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES
-  , pattern GL_PROGRAM_BINARY_FORMATS_OES
-  , pattern GL_PROGRAM_BINARY_LENGTH_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt GL_OES_get_program_binary> extension is available.
-
-gl_OES_get_program_binary :: Bool
-gl_OES_get_program_binary = member "GL_OES_get_program_binary" extensions
-{-# NOINLINE gl_OES_get_program_binary #-}
-
--- | Usage: @'glGetProgramBinaryOES' program bufSize length binaryFormat binary@
---
--- The length of @length@ should be @1@.
---
--- The length of @binaryFormat@ should be @1@.
---
--- The length of @binary@ should be @bufSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetProgramBinary'.
-
-
-glGetProgramBinaryOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
-glGetProgramBinaryOES = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryOESFunPtr
-
-glGetProgramBinaryOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
-glGetProgramBinaryOESFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinaryOES")
-
-{-# NOINLINE glGetProgramBinaryOESFunPtr #-}
-
--- | Usage: @'glProgramBinaryOES' program binaryFormat binary length@
---
--- The length of @binary@ should be @length@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramBinary'.
-
-
-glProgramBinaryOES :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLint -> m ()
-glProgramBinaryOES = ffiuintenumPtrVintIOV glProgramBinaryOESFunPtr
-
-glProgramBinaryOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLint -> IO ())
-glProgramBinaryOESFunPtr = unsafePerformIO (getProcAddress "glProgramBinaryOES")
-
-{-# NOINLINE glProgramBinaryOESFunPtr #-}
-
-pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE
-
-pattern GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF
-
-pattern GL_PROGRAM_BINARY_LENGTH_OES = 0x8741
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/GpuShader5.hs b/dist/build/autogen/Graphics/GL/Ext/OES/GpuShader5.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/GpuShader5.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.GpuShader5 (
-  -- * Extension Support
-    gl_OES_gpu_shader5
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_gpu_shader5.txt GL_OES_gpu_shader5> extension is available.
-
-gl_OES_gpu_shader5 :: Bool
-gl_OES_gpu_shader5 = member "GL_OES_gpu_shader5" extensions
-{-# NOINLINE gl_OES_gpu_shader5 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Mapbuffer.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Mapbuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Mapbuffer.hs
+++ /dev/null
@@ -1,76 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Mapbuffer (
-  -- * Extension Support
-    gl_OES_mapbuffer
-
-  -- * GL_OES_mapbuffer
-  , glGetBufferPointervOES
-  , glMapBufferOES
-  , glUnmapBufferOES
-  , pattern GL_BUFFER_ACCESS_OES
-  , pattern GL_BUFFER_MAPPED_OES
-  , pattern GL_BUFFER_MAP_POINTER_OES
-  , pattern GL_WRITE_ONLY_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt GL_OES_mapbuffer> extension is available.
-
-gl_OES_mapbuffer :: Bool
-gl_OES_mapbuffer = member "GL_OES_mapbuffer" extensions
-{-# NOINLINE gl_OES_mapbuffer #-}
-
--- | Usage: @'glGetBufferPointervOES' target pname params@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferPointerv'.
-
-
-glGetBufferPointervOES :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetBufferPointervOES = ffienumenumPtrPtrVIOV glGetBufferPointervOESFunPtr
-
-glGetBufferPointervOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetBufferPointervOESFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointervOES")
-
-{-# NOINLINE glGetBufferPointervOESFunPtr #-}
-
--- | Usage: @'glMapBufferOES' target access@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMapBuffer'.
-
-
-glMapBufferOES :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
-glMapBufferOES = ffienumenumIOPtrV glMapBufferOESFunPtr
-
-glMapBufferOESFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
-glMapBufferOESFunPtr = unsafePerformIO (getProcAddress "glMapBufferOES")
-
-{-# NOINLINE glMapBufferOESFunPtr #-}
-
--- | Usage: @'glUnmapBufferOES' target@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glUnmapBuffer'.
-
-
-glUnmapBufferOES :: MonadIO m => GLenum -> m GLboolean
-glUnmapBufferOES = ffienumIOboolean glUnmapBufferOESFunPtr
-
-glUnmapBufferOESFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glUnmapBufferOESFunPtr = unsafePerformIO (getProcAddress "glUnmapBufferOES")
-
-{-# NOINLINE glUnmapBufferOESFunPtr #-}
-
-pattern GL_BUFFER_ACCESS_OES = 0x88BB
-
-pattern GL_BUFFER_MAPPED_OES = 0x88BC
-
-pattern GL_BUFFER_MAP_POINTER_OES = 0x88BD
-
-pattern GL_WRITE_ONLY_OES = 0x88B9
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/MatrixGet.hs b/dist/build/autogen/Graphics/GL/Ext/OES/MatrixGet.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/MatrixGet.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.MatrixGet (
-  -- * Extension Support
-    gl_OES_matrix_get
-
-  -- * GL_OES_matrix_get
-  , pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES
-  , pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES
-  , pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_matrix_get.txt GL_OES_matrix_get> extension is available.
-
-gl_OES_matrix_get :: Bool
-gl_OES_matrix_get = member "GL_OES_matrix_get" extensions
-{-# NOINLINE gl_OES_matrix_get #-}
-
-pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D
-
-pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E
-
-pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/MatrixPalette.hs b/dist/build/autogen/Graphics/GL/Ext/OES/MatrixPalette.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/MatrixPalette.hs
+++ /dev/null
@@ -1,122 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.MatrixPalette (
-  -- * Extension Support
-    gl_OES_matrix_palette
-
-  -- * GL_OES_matrix_palette
-  , glCurrentPaletteMatrixOES
-  , glLoadPaletteFromModelViewMatrixOES
-  , glMatrixIndexPointerOES
-  , glWeightPointerOES
-  , pattern GL_CURRENT_PALETTE_MATRIX_OES
-  , pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES
-  , pattern GL_MATRIX_INDEX_ARRAY_OES
-  , pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES
-  , pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES
-  , pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES
-  , pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES
-  , pattern GL_MATRIX_PALETTE_OES
-  , pattern GL_MAX_PALETTE_MATRICES_OES
-  , pattern GL_MAX_VERTEX_UNITS_OES
-  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES
-  , pattern GL_WEIGHT_ARRAY_OES
-  , pattern GL_WEIGHT_ARRAY_POINTER_OES
-  , pattern GL_WEIGHT_ARRAY_SIZE_OES
-  , pattern GL_WEIGHT_ARRAY_STRIDE_OES
-  , pattern GL_WEIGHT_ARRAY_TYPE_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_matrix_palette.txt GL_OES_matrix_palette> extension is available.
-
-gl_OES_matrix_palette :: Bool
-gl_OES_matrix_palette = member "GL_OES_matrix_palette" extensions
-{-# NOINLINE gl_OES_matrix_palette #-}
-
--- | Usage: @'glCurrentPaletteMatrixOES' matrixpaletteindex@
-
-
-glCurrentPaletteMatrixOES :: MonadIO m => GLuint -> m ()
-glCurrentPaletteMatrixOES = ffiuintIOV glCurrentPaletteMatrixOESFunPtr
-
-glCurrentPaletteMatrixOESFunPtr :: FunPtr (GLuint -> IO ())
-glCurrentPaletteMatrixOESFunPtr = unsafePerformIO (getProcAddress "glCurrentPaletteMatrixOES")
-
-{-# NOINLINE glCurrentPaletteMatrixOESFunPtr #-}
-
--- | Usage: @'glLoadPaletteFromModelViewMatrixOES'@
-
-
-glLoadPaletteFromModelViewMatrixOES :: MonadIO m => m ()
-glLoadPaletteFromModelViewMatrixOES = ffiIOV glLoadPaletteFromModelViewMatrixOESFunPtr
-
-glLoadPaletteFromModelViewMatrixOESFunPtr :: FunPtr (IO ())
-glLoadPaletteFromModelViewMatrixOESFunPtr = unsafePerformIO (getProcAddress "glLoadPaletteFromModelViewMatrixOES")
-
-{-# NOINLINE glLoadPaletteFromModelViewMatrixOESFunPtr #-}
-
--- | Usage: @'glMatrixIndexPointerOES' size type stride pointer@
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glMatrixIndexPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glMatrixIndexPointerOES = ffiintenumsizeiPtrVIOV glMatrixIndexPointerOESFunPtr
-
-glMatrixIndexPointerOESFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glMatrixIndexPointerOESFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexPointerOES")
-
-{-# NOINLINE glMatrixIndexPointerOESFunPtr #-}
-
--- | Usage: @'glWeightPointerOES' size type stride pointer@
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glWeightPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glWeightPointerOES = ffiintenumsizeiPtrVIOV glWeightPointerOESFunPtr
-
-glWeightPointerOESFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glWeightPointerOESFunPtr = unsafePerformIO (getProcAddress "glWeightPointerOES")
-
-{-# NOINLINE glWeightPointerOESFunPtr #-}
-
-pattern GL_CURRENT_PALETTE_MATRIX_OES = 0x8843
-
-pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E
-
-pattern GL_MATRIX_INDEX_ARRAY_OES = 0x8844
-
-pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849
-
-pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846
-
-pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848
-
-pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847
-
-pattern GL_MATRIX_PALETTE_OES = 0x8840
-
-pattern GL_MAX_PALETTE_MATRICES_OES = 0x8842
-
-pattern GL_MAX_VERTEX_UNITS_OES = 0x86A4
-
-pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E
-
-pattern GL_WEIGHT_ARRAY_OES = 0x86AD
-
-pattern GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC
-
-pattern GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB
-
-pattern GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA
-
-pattern GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/PackedDepthStencil.hs b/dist/build/autogen/Graphics/GL/Ext/OES/PackedDepthStencil.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/PackedDepthStencil.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.PackedDepthStencil (
-  -- * Extension Support
-    gl_OES_packed_depth_stencil
-
-  -- * GL_OES_packed_depth_stencil
-  , pattern GL_DEPTH24_STENCIL8_OES
-  , pattern GL_DEPTH_STENCIL_OES
-  , pattern GL_UNSIGNED_INT_24_8_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_packed_depth_stencil.txt GL_OES_packed_depth_stencil> extension is available.
-
-gl_OES_packed_depth_stencil :: Bool
-gl_OES_packed_depth_stencil = member "GL_OES_packed_depth_stencil" extensions
-{-# NOINLINE gl_OES_packed_depth_stencil #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/PointSizeArray.hs b/dist/build/autogen/Graphics/GL/Ext/OES/PointSizeArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/PointSizeArray.hs
+++ /dev/null
@@ -1,51 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.PointSizeArray (
-  -- * Extension Support
-    gl_OES_point_size_array
-
-  -- * GL_OES_point_size_array
-  , glPointSizePointerOES
-  , pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES
-  , pattern GL_POINT_SIZE_ARRAY_OES
-  , pattern GL_POINT_SIZE_ARRAY_POINTER_OES
-  , pattern GL_POINT_SIZE_ARRAY_STRIDE_OES
-  , pattern GL_POINT_SIZE_ARRAY_TYPE_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_point_size_array.txt GL_OES_point_size_array> extension is available.
-
-gl_OES_point_size_array :: Bool
-gl_OES_point_size_array = member "GL_OES_point_size_array" extensions
-{-# NOINLINE gl_OES_point_size_array #-}
-
--- | Usage: @'glPointSizePointerOES' type stride pointer@
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glPointSizePointerOES :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glPointSizePointerOES = ffienumsizeiPtrVIOV glPointSizePointerOESFunPtr
-
-glPointSizePointerOESFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glPointSizePointerOESFunPtr = unsafePerformIO (getProcAddress "glPointSizePointerOES")
-
-{-# NOINLINE glPointSizePointerOESFunPtr #-}
-
-pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F
-
-pattern GL_POINT_SIZE_ARRAY_OES = 0x8B9C
-
-pattern GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C
-
-pattern GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B
-
-pattern GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/PointSprite.hs b/dist/build/autogen/Graphics/GL/Ext/OES/PointSprite.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/PointSprite.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.PointSprite (
-  -- * Extension Support
-    gl_OES_point_sprite
-
-  -- * GL_OES_point_sprite
-  , pattern GL_COORD_REPLACE_OES
-  , pattern GL_POINT_SPRITE_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_point_sprite.txt GL_OES_point_sprite> extension is available.
-
-gl_OES_point_sprite :: Bool
-gl_OES_point_sprite = member "GL_OES_point_sprite" extensions
-{-# NOINLINE gl_OES_point_sprite #-}
-
-pattern GL_COORD_REPLACE_OES = 0x8862
-
-pattern GL_POINT_SPRITE_OES = 0x8861
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs b/dist/build/autogen/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.PrimitiveBoundingBox (
-  -- * Extension Support
-    gl_OES_primitive_bounding_box
-
-  -- * GL_OES_primitive_bounding_box
-  , glPrimitiveBoundingBoxOES
-  , pattern GL_PRIMITIVE_BOUNDING_BOX_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_primitive_bounding_box.txt GL_OES_primitive_bounding_box> extension is available.
-
-gl_OES_primitive_bounding_box :: Bool
-gl_OES_primitive_bounding_box = member "GL_OES_primitive_bounding_box" extensions
-{-# NOINLINE gl_OES_primitive_bounding_box #-}
-
--- | Usage: @'glPrimitiveBoundingBoxOES' minX minY minZ minW maxX maxY maxZ maxW@
---
--- This command is an alias for 'Graphics.GL.Embedded32.glPrimitiveBoundingBox'.
-
-
-glPrimitiveBoundingBoxOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glPrimitiveBoundingBoxOES = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxOESFunPtr
-
-glPrimitiveBoundingBoxOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glPrimitiveBoundingBoxOESFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBoxOES")
-
-{-# NOINLINE glPrimitiveBoundingBoxOESFunPtr #-}
-
-pattern GL_PRIMITIVE_BOUNDING_BOX_OES = 0x92BE
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/QueryMatrix.hs b/dist/build/autogen/Graphics/GL/Ext/OES/QueryMatrix.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/QueryMatrix.hs
+++ /dev/null
@@ -1,38 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.QueryMatrix (
-  -- * Extension Support
-    gl_OES_query_matrix
-
-  -- * GL_OES_query_matrix
-  , glQueryMatrixxOES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_query_matrix.txt GL_OES_query_matrix> extension is available.
-
-gl_OES_query_matrix :: Bool
-gl_OES_query_matrix = member "GL_OES_query_matrix" extensions
-{-# NOINLINE gl_OES_query_matrix #-}
-
--- | Usage: @'glQueryMatrixxOES' mantissa exponent@
---
--- The length of @mantissa@ should be @16@.
---
--- The length of @exponent@ should be @16@.
-
-
-glQueryMatrixxOES :: MonadIO m => Ptr GLfixed -> Ptr GLint -> m GLbitfield
-glQueryMatrixxOES = ffiPtrfixedPtrintIObitfield glQueryMatrixxOESFunPtr
-
-glQueryMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield)
-glQueryMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glQueryMatrixxOES")
-
-{-# NOINLINE glQueryMatrixxOESFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ReadFormat.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ReadFormat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ReadFormat.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ReadFormat (
-  -- * Extension Support
-    gl_OES_read_format
-
-  -- * GL_OES_read_format
-  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
-  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_read_format.txt GL_OES_read_format> extension is available.
-
-gl_OES_read_format :: Bool
-gl_OES_read_format = member "GL_OES_read_format" extensions
-{-# NOINLINE gl_OES_read_format #-}
-
-pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B
-
-pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/RequiredInternalformat.hs b/dist/build/autogen/Graphics/GL/Ext/OES/RequiredInternalformat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/RequiredInternalformat.hs
+++ /dev/null
@@ -1,41 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.RequiredInternalformat (
-  -- * Extension Support
-    gl_OES_required_internalformat
-
-  -- * GL_OES_required_internalformat
-  , pattern GL_ALPHA8_OES
-  , pattern GL_DEPTH24_STENCIL8_OES
-  , pattern GL_DEPTH_COMPONENT16_OES
-  , pattern GL_DEPTH_COMPONENT24_OES
-  , pattern GL_DEPTH_COMPONENT32_OES
-  , pattern GL_LUMINANCE4_ALPHA4_OES
-  , pattern GL_LUMINANCE8_ALPHA8_OES
-  , pattern GL_LUMINANCE8_OES
-  , pattern GL_RGB10_A2_EXT
-  , pattern GL_RGB10_EXT
-  , pattern GL_RGB565_OES
-  , pattern GL_RGB5_A1_OES
-  , pattern GL_RGB8_OES
-  , pattern GL_RGBA4_OES
-  , pattern GL_RGBA8_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_required_internalformat.txt GL_OES_required_internalformat> extension is available.
-
-gl_OES_required_internalformat :: Bool
-gl_OES_required_internalformat = member "GL_OES_required_internalformat" extensions
-{-# NOINLINE gl_OES_required_internalformat #-}
-
-pattern GL_ALPHA8_OES = 0x803C
-
-pattern GL_LUMINANCE4_ALPHA4_OES = 0x8043
-
-pattern GL_LUMINANCE8_ALPHA8_OES = 0x8045
-
-pattern GL_LUMINANCE8_OES = 0x8040
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Rgb8Rgba8.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Rgb8Rgba8.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Rgb8Rgba8.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Rgb8Rgba8 (
-  -- * Extension Support
-    gl_OES_rgb8_rgba8
-
-  -- * GL_OES_rgb8_rgba8
-  , pattern GL_RGB8_OES
-  , pattern GL_RGBA8_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_rgb8_rgba8.txt GL_OES_rgb8_rgba8> extension is available.
-
-gl_OES_rgb8_rgba8 :: Bool
-gl_OES_rgb8_rgba8 = member "GL_OES_rgb8_rgba8" extensions
-{-# NOINLINE gl_OES_rgb8_rgba8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/SampleShading.hs b/dist/build/autogen/Graphics/GL/Ext/OES/SampleShading.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/SampleShading.hs
+++ /dev/null
@@ -1,44 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.SampleShading (
-  -- * Extension Support
-    gl_OES_sample_shading
-
-  -- * GL_OES_sample_shading
-  , glMinSampleShadingOES
-  , pattern GL_MIN_SAMPLE_SHADING_VALUE_OES
-  , pattern GL_SAMPLE_SHADING_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_sample_shading.txt GL_OES_sample_shading> extension is available.
-
-gl_OES_sample_shading :: Bool
-gl_OES_sample_shading = member "GL_OES_sample_shading" extensions
-{-# NOINLINE gl_OES_sample_shading #-}
-
--- | Usage: @'glMinSampleShadingOES' value@
---
--- The parameter @value@ is a @ColorF@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glMinSampleShading'.
-
-
-glMinSampleShadingOES :: MonadIO m => GLfloat -> m ()
-glMinSampleShadingOES = ffifloatIOV glMinSampleShadingOESFunPtr
-
-glMinSampleShadingOESFunPtr :: FunPtr (GLfloat -> IO ())
-glMinSampleShadingOESFunPtr = unsafePerformIO (getProcAddress "glMinSampleShadingOES")
-
-{-# NOINLINE glMinSampleShadingOESFunPtr #-}
-
-pattern GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37
-
-pattern GL_SAMPLE_SHADING_OES = 0x8C36
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/SampleVariables.hs b/dist/build/autogen/Graphics/GL/Ext/OES/SampleVariables.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/SampleVariables.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.SampleVariables (
-  -- * Extension Support
-    gl_OES_sample_variables
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_sample_variables.txt GL_OES_sample_variables> extension is available.
-
-gl_OES_sample_variables :: Bool
-gl_OES_sample_variables = member "GL_OES_sample_variables" extensions
-{-# NOINLINE gl_OES_sample_variables #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ShaderImageAtomic.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ShaderImageAtomic.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ShaderImageAtomic.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ShaderImageAtomic (
-  -- * Extension Support
-    gl_OES_shader_image_atomic
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_shader_image_atomic.txt GL_OES_shader_image_atomic> extension is available.
-
-gl_OES_shader_image_atomic :: Bool
-gl_OES_shader_image_atomic = member "GL_OES_shader_image_atomic" extensions
-{-# NOINLINE gl_OES_shader_image_atomic #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ShaderIoBlocks.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ShaderIoBlocks.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ShaderIoBlocks.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ShaderIoBlocks (
-  -- * Extension Support
-    gl_OES_shader_io_blocks
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_shader_io_blocks.txt GL_OES_shader_io_blocks> extension is available.
-
-gl_OES_shader_io_blocks :: Bool
-gl_OES_shader_io_blocks = member "GL_OES_shader_io_blocks" extensions
-{-# NOINLINE gl_OES_shader_io_blocks #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ShaderMultisampleInterpolation (
-  -- * Extension Support
-    gl_OES_shader_multisample_interpolation
-
-  -- * GL_OES_shader_multisample_interpolation
-  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES
-  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES
-  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_shader_multisample_interpolation.txt GL_OES_shader_multisample_interpolation> extension is available.
-
-gl_OES_shader_multisample_interpolation :: Bool
-gl_OES_shader_multisample_interpolation = member "GL_OES_shader_multisample_interpolation" extensions
-{-# NOINLINE gl_OES_shader_multisample_interpolation #-}
-
-pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D
-
-pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C
-
-pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/SinglePrecision.hs b/dist/build/autogen/Graphics/GL/Ext/OES/SinglePrecision.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/SinglePrecision.hs
+++ /dev/null
@@ -1,108 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.SinglePrecision (
-  -- * Extension Support
-    gl_OES_single_precision
-
-  -- * GL_OES_single_precision
-  , glClearDepthfOES
-  , glClipPlanefOES
-  , glDepthRangefOES
-  , glFrustumfOES
-  , glGetClipPlanefOES
-  , glOrthofOES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_single_precision.txt GL_OES_single_precision> extension is available.
-
-gl_OES_single_precision :: Bool
-gl_OES_single_precision = member "GL_OES_single_precision" extensions
-{-# NOINLINE gl_OES_single_precision #-}
-
--- | Usage: @'glClearDepthfOES' depth@
---
--- The parameter @depth@ is a @ClampedFloat32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glClearDepthf'.
-
-
-glClearDepthfOES :: MonadIO m => GLclampf -> m ()
-glClearDepthfOES = fficlampfIOV glClearDepthfOESFunPtr
-
-glClearDepthfOESFunPtr :: FunPtr (GLclampf -> IO ())
-glClearDepthfOESFunPtr = unsafePerformIO (getProcAddress "glClearDepthfOES")
-
-{-# NOINLINE glClearDepthfOESFunPtr #-}
-
--- | Usage: @'glClipPlanefOES' plane equation@
---
--- The length of @equation@ should be @4@.
-
-
-glClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glClipPlanefOES = ffienumPtrfloatIOV glClipPlanefOESFunPtr
-
-glClipPlanefOESFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glClipPlanefOESFunPtr = unsafePerformIO (getProcAddress "glClipPlanefOES")
-
-{-# NOINLINE glClipPlanefOESFunPtr #-}
-
--- | Usage: @'glDepthRangefOES' n f@
---
--- The parameter @n@ is a @ClampedFloat32@.
---
--- The parameter @f@ is a @ClampedFloat32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDepthRangef'.
-
-
-glDepthRangefOES :: MonadIO m => GLclampf -> GLclampf -> m ()
-glDepthRangefOES = fficlampfclampfIOV glDepthRangefOESFunPtr
-
-glDepthRangefOESFunPtr :: FunPtr (GLclampf -> GLclampf -> IO ())
-glDepthRangefOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangefOES")
-
-{-# NOINLINE glDepthRangefOESFunPtr #-}
-
--- | Usage: @'glFrustumfOES' l r b t n f@
-
-
-glFrustumfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glFrustumfOES = ffifloatfloatfloatfloatfloatfloatIOV glFrustumfOESFunPtr
-
-glFrustumfOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glFrustumfOESFunPtr = unsafePerformIO (getProcAddress "glFrustumfOES")
-
-{-# NOINLINE glFrustumfOESFunPtr #-}
-
--- | Usage: @'glGetClipPlanefOES' plane equation@
---
--- The length of @equation@ should be @4@.
-
-
-glGetClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetClipPlanefOES = ffienumPtrfloatIOV glGetClipPlanefOESFunPtr
-
-glGetClipPlanefOESFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetClipPlanefOESFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanefOES")
-
-{-# NOINLINE glGetClipPlanefOESFunPtr #-}
-
--- | Usage: @'glOrthofOES' l r b t n f@
-
-
-glOrthofOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glOrthofOES = ffifloatfloatfloatfloatfloatfloatIOV glOrthofOESFunPtr
-
-glOrthofOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glOrthofOESFunPtr = unsafePerformIO (getProcAddress "glOrthofOES")
-
-{-# NOINLINE glOrthofOESFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/StandardDerivatives.hs b/dist/build/autogen/Graphics/GL/Ext/OES/StandardDerivatives.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/StandardDerivatives.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.StandardDerivatives (
-  -- * Extension Support
-    gl_OES_standard_derivatives
-
-  -- * GL_OES_standard_derivatives
-  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_standard_derivatives.txt GL_OES_standard_derivatives> extension is available.
-
-gl_OES_standard_derivatives :: Bool
-gl_OES_standard_derivatives = member "GL_OES_standard_derivatives" extensions
-{-# NOINLINE gl_OES_standard_derivatives #-}
-
-pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Stencil1.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Stencil1.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Stencil1.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Stencil1 (
-  -- * Extension Support
-    gl_OES_stencil1
-
-  -- * GL_OES_stencil1
-  , pattern GL_STENCIL_INDEX1_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil1.txt GL_OES_stencil1> extension is available.
-
-gl_OES_stencil1 :: Bool
-gl_OES_stencil1 = member "GL_OES_stencil1" extensions
-{-# NOINLINE gl_OES_stencil1 #-}
-
-pattern GL_STENCIL_INDEX1_OES = 0x8D46
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Stencil4.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Stencil4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Stencil4.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Stencil4 (
-  -- * Extension Support
-    gl_OES_stencil4
-
-  -- * GL_OES_stencil4
-  , pattern GL_STENCIL_INDEX4_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil4.txt GL_OES_stencil4> extension is available.
-
-gl_OES_stencil4 :: Bool
-gl_OES_stencil4 = member "GL_OES_stencil4" extensions
-{-# NOINLINE gl_OES_stencil4 #-}
-
-pattern GL_STENCIL_INDEX4_OES = 0x8D47
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Stencil8.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Stencil8.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Stencil8.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Stencil8 (
-  -- * Extension Support
-    gl_OES_stencil8
-
-  -- * GL_OES_stencil8
-  , pattern GL_STENCIL_INDEX8_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil8.txt GL_OES_stencil8> extension is available.
-
-gl_OES_stencil8 :: Bool
-gl_OES_stencil8 = member "GL_OES_stencil8" extensions
-{-# NOINLINE gl_OES_stencil8 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/StencilWrap.hs b/dist/build/autogen/Graphics/GL/Ext/OES/StencilWrap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/StencilWrap.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.StencilWrap (
-  -- * Extension Support
-    gl_OES_stencil_wrap
-
-  -- * GL_OES_stencil_wrap
-  , pattern GL_DECR_WRAP_OES
-  , pattern GL_INCR_WRAP_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil_wrap.txt GL_OES_stencil_wrap> extension is available.
-
-gl_OES_stencil_wrap :: Bool
-gl_OES_stencil_wrap = member "GL_OES_stencil_wrap" extensions
-{-# NOINLINE gl_OES_stencil_wrap #-}
-
-pattern GL_DECR_WRAP_OES = 0x8508
-
-pattern GL_INCR_WRAP_OES = 0x8507
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/SurfacelessContext.hs b/dist/build/autogen/Graphics/GL/Ext/OES/SurfacelessContext.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/SurfacelessContext.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.SurfacelessContext (
-  -- * Extension Support
-    gl_OES_surfaceless_context
-
-  -- * GL_OES_surfaceless_context
-  , pattern GL_FRAMEBUFFER_UNDEFINED_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_surfaceless_context.txt GL_OES_surfaceless_context> extension is available.
-
-gl_OES_surfaceless_context :: Bool
-gl_OES_surfaceless_context = member "GL_OES_surfaceless_context" extensions
-{-# NOINLINE gl_OES_surfaceless_context #-}
-
-pattern GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TessellationPointSize.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TessellationPointSize.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TessellationPointSize.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TessellationPointSize (
-  -- * Extension Support
-    gl_OES_tessellation_point_size
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt GL_OES_tessellation_point_size> extension is available.
-
-gl_OES_tessellation_point_size :: Bool
-gl_OES_tessellation_point_size = member "GL_OES_tessellation_point_size" extensions
-{-# NOINLINE gl_OES_tessellation_point_size #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TessellationShader.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TessellationShader.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TessellationShader.hs
+++ /dev/null
@@ -1,170 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TessellationShader (
-  -- * Extension Support
-    gl_OES_tessellation_shader
-
-  -- * GL_OES_tessellation_shader
-  , glPatchParameteriOES
-  , pattern GL_CCW
-  , pattern GL_CW
-  , pattern GL_EQUAL
-  , pattern GL_FRACTIONAL_EVEN_OES
-  , pattern GL_FRACTIONAL_ODD_OES
-  , pattern GL_ISOLINES_OES
-  , pattern GL_IS_PER_PATCH_OES
-  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES
-  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES
-  , pattern GL_MAX_PATCH_VERTICES_OES
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES
-  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES
-  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES
-  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES
-  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES
-  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES
-  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES
-  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES
-  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES
-  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES
-  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES
-  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES
-  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES
-  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES
-  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES
-  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES
-  , pattern GL_MAX_TESS_GEN_LEVEL_OES
-  , pattern GL_MAX_TESS_PATCH_COMPONENTS_OES
-  , pattern GL_PATCHES_OES
-  , pattern GL_PATCH_VERTICES_OES
-  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES
-  , pattern GL_QUADS_OES
-  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES
-  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES
-  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES_OES
-  , pattern GL_TESS_CONTROL_SHADER_BIT_OES
-  , pattern GL_TESS_CONTROL_SHADER_OES
-  , pattern GL_TESS_EVALUATION_SHADER_BIT_OES
-  , pattern GL_TESS_EVALUATION_SHADER_OES
-  , pattern GL_TESS_GEN_MODE_OES
-  , pattern GL_TESS_GEN_POINT_MODE_OES
-  , pattern GL_TESS_GEN_SPACING_OES
-  , pattern GL_TESS_GEN_VERTEX_ORDER_OES
-  , pattern GL_TRIANGLES
-) 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://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt GL_OES_tessellation_shader> extension is available.
-
-gl_OES_tessellation_shader :: Bool
-gl_OES_tessellation_shader = member "GL_OES_tessellation_shader" extensions
-{-# NOINLINE gl_OES_tessellation_shader #-}
-
--- | Usage: @'glPatchParameteriOES' pname value@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPatchParameteri'.
-
-
-glPatchParameteriOES :: MonadIO m => GLenum -> GLint -> m ()
-glPatchParameteriOES = ffienumintIOV glPatchParameteriOESFunPtr
-
-glPatchParameteriOESFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPatchParameteriOESFunPtr = unsafePerformIO (getProcAddress "glPatchParameteriOES")
-
-{-# NOINLINE glPatchParameteriOESFunPtr #-}
-
-pattern GL_FRACTIONAL_EVEN_OES = 0x8E7C
-
-pattern GL_FRACTIONAL_ODD_OES = 0x8E7B
-
-pattern GL_ISOLINES_OES = 0x8E7A
-
-pattern GL_IS_PER_PATCH_OES = 0x92E7
-
-pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E1E
-
-pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E1F
-
-pattern GL_MAX_PATCH_VERTICES_OES = 0x8E7D
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES = 0x92D3
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES = 0x92CD
-
-pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES = 0x90CB
-
-pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES = 0x886C
-
-pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES = 0x8E83
-
-pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES = 0x90D8
-
-pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES = 0x8E81
-
-pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES = 0x8E85
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES = 0x8E89
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E7F
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES = 0x92D4
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES = 0x92CE
-
-pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES = 0x90CC
-
-pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES = 0x886D
-
-pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES = 0x8E86
-
-pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES = 0x90D9
-
-pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES = 0x8E82
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES = 0x8E8A
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E80
-
-pattern GL_MAX_TESS_GEN_LEVEL_OES = 0x8E7E
-
-pattern GL_MAX_TESS_PATCH_COMPONENTS_OES = 0x8E84
-
-pattern GL_PATCHES_OES = 0x000E
-
-pattern GL_PATCH_VERTICES_OES = 0x8E72
-
-pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES = 0x8221
-
-pattern GL_QUADS_OES = 0x0007
-
-pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES = 0x9307
-
-pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES = 0x9308
-
-pattern GL_TESS_CONTROL_OUTPUT_VERTICES_OES = 0x8E75
-
-pattern GL_TESS_CONTROL_SHADER_BIT_OES = 0x00000008
-
-pattern GL_TESS_CONTROL_SHADER_OES = 0x8E88
-
-pattern GL_TESS_EVALUATION_SHADER_BIT_OES = 0x00000010
-
-pattern GL_TESS_EVALUATION_SHADER_OES = 0x8E87
-
-pattern GL_TESS_GEN_MODE_OES = 0x8E76
-
-pattern GL_TESS_GEN_POINT_MODE_OES = 0x8E79
-
-pattern GL_TESS_GEN_SPACING_OES = 0x8E77
-
-pattern GL_TESS_GEN_VERTEX_ORDER_OES = 0x8E78
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/Texture3D.hs b/dist/build/autogen/Graphics/GL/Ext/OES/Texture3D.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/Texture3D.hs
+++ /dev/null
@@ -1,132 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.Texture3D (
-  -- * Extension Support
-    gl_OES_texture_3D
-
-  -- * GL_OES_texture_3D
-  , glCompressedTexImage3DOES
-  , glCompressedTexSubImage3DOES
-  , glCopyTexSubImage3DOES
-  , glFramebufferTexture3DOES
-  , glTexImage3DOES
-  , glTexSubImage3DOES
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES
-  , pattern GL_MAX_3D_TEXTURE_SIZE_OES
-  , pattern GL_SAMPLER_3D_OES
-  , pattern GL_TEXTURE_3D_OES
-  , pattern GL_TEXTURE_BINDING_3D_OES
-  , pattern GL_TEXTURE_WRAP_R_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt GL_OES_texture_3D> extension is available.
-
-gl_OES_texture_3D :: Bool
-gl_OES_texture_3D = member "GL_OES_texture_3D" extensions
-{-# NOINLINE gl_OES_texture_3D #-}
-
--- | Usage: @'glCompressedTexImage3DOES' target level internalformat width height depth border imageSize data@
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage3D'.
-
-
-glCompressedTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage3DOES = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DOESFunPtr
-
-glCompressedTexImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage3DOESFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3DOES")
-
-{-# NOINLINE glCompressedTexImage3DOESFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage3DOES' target level xoffset yoffset zoffset width height depth format imageSize data@
---
--- The length of @data@ should be @imageSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage3D'.
-
-
-glCompressedTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage3DOES = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DOESFunPtr
-
-glCompressedTexSubImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage3DOESFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3DOES")
-
-{-# NOINLINE glCompressedTexSubImage3DOESFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage3DOES' target level xoffset yoffset zoffset x y width height@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage3D'.
-
-
-glCopyTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage3DOES = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DOESFunPtr
-
-glCopyTexSubImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage3DOESFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3DOES")
-
-{-# NOINLINE glCopyTexSubImage3DOESFunPtr #-}
-
--- | Usage: @'glFramebufferTexture3DOES' target attachment textarget texture level zoffset@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture3D'.
-
-
-glFramebufferTexture3DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTexture3DOES = ffienumenumenumuintintintIOV glFramebufferTexture3DOESFunPtr
-
-glFramebufferTexture3DOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTexture3DOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3DOES")
-
-{-# NOINLINE glFramebufferTexture3DOESFunPtr #-}
-
--- | Usage: @'glTexImage3DOES' target level internalformat width height depth border format type pixels@
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexImage3D'.
-
-
-glTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage3DOES = ffienumintenumsizeisizeisizeiintenumenumPtrVIOV glTexImage3DOESFunPtr
-
-glTexImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage3DOESFunPtr = unsafePerformIO (getProcAddress "glTexImage3DOES")
-
-{-# NOINLINE glTexImage3DOESFunPtr #-}
-
--- | Usage: @'glTexSubImage3DOES' target level xoffset yoffset zoffset width height depth format type pixels@
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage3D'.
-
-
-glTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage3DOES = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DOESFunPtr
-
-glTexSubImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage3DOESFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3DOES")
-
-{-# NOINLINE glTexSubImage3DOESFunPtr #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4
-
-pattern GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073
-
-pattern GL_SAMPLER_3D_OES = 0x8B5F
-
-pattern GL_TEXTURE_3D_OES = 0x806F
-
-pattern GL_TEXTURE_BINDING_3D_OES = 0x806A
-
-pattern GL_TEXTURE_WRAP_R_OES = 0x8072
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureBorderClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureBorderClamp.hs
+++ /dev/null
@@ -1,172 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureBorderClamp (
-  -- * Extension Support
-    gl_OES_texture_border_clamp
-
-  -- * GL_OES_texture_border_clamp
-  , glGetSamplerParameterIivOES
-  , glGetSamplerParameterIuivOES
-  , glGetTexParameterIivOES
-  , glGetTexParameterIuivOES
-  , glSamplerParameterIivOES
-  , glSamplerParameterIuivOES
-  , glTexParameterIivOES
-  , glTexParameterIuivOES
-  , pattern GL_CLAMP_TO_BORDER_OES
-  , pattern GL_TEXTURE_BORDER_COLOR_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt GL_OES_texture_border_clamp> extension is available.
-
-gl_OES_texture_border_clamp :: Bool
-gl_OES_texture_border_clamp = member "GL_OES_texture_border_clamp" extensions
-{-# NOINLINE gl_OES_texture_border_clamp #-}
-
--- | Usage: @'glGetSamplerParameterIivOES' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIiv'.
-
-
-glGetSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameterIivOES = ffiuintenumPtrintIOV glGetSamplerParameterIivOESFunPtr
-
-glGetSamplerParameterIivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIivOES")
-
-{-# NOINLINE glGetSamplerParameterIivOESFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterIuivOES' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIuiv'.
-
-
-glGetSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetSamplerParameterIuivOES = ffiuintenumPtruintIOV glGetSamplerParameterIuivOESFunPtr
-
-glGetSamplerParameterIuivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetSamplerParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuivOES")
-
-{-# NOINLINE glGetSamplerParameterIuivOESFunPtr #-}
-
--- | Usage: @'glGetTexParameterIivOES' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIiv'.
-
-
-glGetTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameterIivOES = ffienumenumPtrintIOV glGetTexParameterIivOESFunPtr
-
-glGetTexParameterIivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivOES")
-
-{-# NOINLINE glGetTexParameterIivOESFunPtr #-}
-
--- | Usage: @'glGetTexParameterIuivOES' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIuiv'.
-
-
-glGetTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTexParameterIuivOES = ffienumenumPtruintIOV glGetTexParameterIuivOESFunPtr
-
-glGetTexParameterIuivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTexParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivOES")
-
-{-# NOINLINE glGetTexParameterIuivOESFunPtr #-}
-
--- | Usage: @'glSamplerParameterIivOES' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIiv'.
-
-
-glSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameterIivOES = ffiuintenumPtrintIOV glSamplerParameterIivOESFunPtr
-
-glSamplerParameterIivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIivOES")
-
-{-# NOINLINE glSamplerParameterIivOESFunPtr #-}
-
--- | Usage: @'glSamplerParameterIuivOES' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIuiv'.
-
-
-glSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glSamplerParameterIuivOES = ffiuintenumPtruintIOV glSamplerParameterIuivOESFunPtr
-
-glSamplerParameterIuivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glSamplerParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuivOES")
-
-{-# NOINLINE glSamplerParameterIuivOESFunPtr #-}
-
--- | Usage: @'glTexParameterIivOES' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIiv'.
-
-
-glTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameterIivOES = ffienumenumPtrintIOV glTexParameterIivOESFunPtr
-
-glTexParameterIivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivOES")
-
-{-# NOINLINE glTexParameterIivOESFunPtr #-}
-
--- | Usage: @'glTexParameterIuivOES' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIuiv'.
-
-
-glTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glTexParameterIuivOES = ffienumenumPtruintIOV glTexParameterIuivOESFunPtr
-
-glTexParameterIuivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTexParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivOES")
-
-{-# NOINLINE glTexParameterIuivOESFunPtr #-}
-
-pattern GL_CLAMP_TO_BORDER_OES = 0x812D
-
-pattern GL_TEXTURE_BORDER_COLOR_OES = 0x1004
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureBuffer.hs
+++ /dev/null
@@ -1,98 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureBuffer (
-  -- * Extension Support
-    gl_OES_texture_buffer
-
-  -- * GL_OES_texture_buffer
-  , glTexBufferOES
-  , glTexBufferRangeOES
-  , pattern GL_IMAGE_BUFFER_OES
-  , pattern GL_INT_IMAGE_BUFFER_OES
-  , pattern GL_INT_SAMPLER_BUFFER_OES
-  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_OES
-  , pattern GL_SAMPLER_BUFFER_OES
-  , pattern GL_TEXTURE_BINDING_BUFFER_OES
-  , pattern GL_TEXTURE_BUFFER_BINDING_OES
-  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES
-  , pattern GL_TEXTURE_BUFFER_OES
-  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES
-  , pattern GL_TEXTURE_BUFFER_OFFSET_OES
-  , pattern GL_TEXTURE_BUFFER_SIZE_OES
-  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER_OES
-  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_buffer.txt GL_OES_texture_buffer> extension is available.
-
-gl_OES_texture_buffer :: Bool
-gl_OES_texture_buffer = member "GL_OES_texture_buffer" extensions
-{-# NOINLINE gl_OES_texture_buffer #-}
-
--- | Usage: @'glTexBufferOES' target internalformat buffer@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
-
-
-glTexBufferOES :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBufferOES = ffienumenumuintIOV glTexBufferOESFunPtr
-
-glTexBufferOESFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferOESFunPtr = unsafePerformIO (getProcAddress "glTexBufferOES")
-
-{-# NOINLINE glTexBufferOESFunPtr #-}
-
--- | Usage: @'glTexBufferRangeOES' target internalformat buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBufferRange'.
-
-
-glTexBufferRangeOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTexBufferRangeOES = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeOESFunPtr
-
-glTexBufferRangeOESFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTexBufferRangeOESFunPtr = unsafePerformIO (getProcAddress "glTexBufferRangeOES")
-
-{-# NOINLINE glTexBufferRangeOESFunPtr #-}
-
-pattern GL_IMAGE_BUFFER_OES = 0x9051
-
-pattern GL_INT_IMAGE_BUFFER_OES = 0x905C
-
-pattern GL_INT_SAMPLER_BUFFER_OES = 0x8DD0
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE_OES = 0x8C2B
-
-pattern GL_SAMPLER_BUFFER_OES = 0x8DC2
-
-pattern GL_TEXTURE_BINDING_BUFFER_OES = 0x8C2C
-
-pattern GL_TEXTURE_BUFFER_BINDING_OES = 0x8C2A
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES = 0x8C2D
-
-pattern GL_TEXTURE_BUFFER_OES = 0x8C2A
-
-pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES = 0x919F
-
-pattern GL_TEXTURE_BUFFER_OFFSET_OES = 0x919D
-
-pattern GL_TEXTURE_BUFFER_SIZE_OES = 0x919E
-
-pattern GL_UNSIGNED_INT_IMAGE_BUFFER_OES = 0x9067
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_OES = 0x8DD8
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureCompressionAstc.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureCompressionAstc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureCompressionAstc.hs
+++ /dev/null
@@ -1,106 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureCompressionAstc (
-  -- * Extension Support
-    gl_OES_texture_compression_astc
-
-  -- * GL_OES_texture_compression_astc
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR
-  , pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
-  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_compression_astc.txt GL_OES_texture_compression_astc> extension is available.
-
-gl_OES_texture_compression_astc :: Bool
-gl_OES_texture_compression_astc = member "GL_OES_texture_compression_astc" extensions
-{-# NOINLINE gl_OES_texture_compression_astc #-}
-
-pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0
-
-pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1
-
-pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2
-
-pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMap.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMap.hs
+++ /dev/null
@@ -1,145 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureCubeMap (
-  -- * Extension Support
-    gl_OES_texture_cube_map
-
-  -- * GL_OES_texture_cube_map
-  , glGetTexGenfvOES
-  , glGetTexGenivOES
-  , glGetTexGenxvOES
-  , glTexGenfOES
-  , glTexGenfvOES
-  , glTexGeniOES
-  , glTexGenivOES
-  , glTexGenxOES
-  , glTexGenxvOES
-  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES
-  , pattern GL_NORMAL_MAP_OES
-  , pattern GL_REFLECTION_MAP_OES
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_OES
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES
-  , pattern GL_TEXTURE_CUBE_MAP_OES
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES
-  , pattern GL_TEXTURE_GEN_MODE_OES
-  , pattern GL_TEXTURE_GEN_STR_OES
-) 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://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map.txt GL_OES_texture_cube_map> extension is available.
-
-gl_OES_texture_cube_map :: Bool
-gl_OES_texture_cube_map = member "GL_OES_texture_cube_map" extensions
-{-# NOINLINE gl_OES_texture_cube_map #-}
-
--- | Usage: @'glGetTexGenfvOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexGenfvOES = ffienumenumPtrfloatIOV glGetTexGenfvOESFunPtr
-
-glGetTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexGenfvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenfvOES")
-
-{-# NOINLINE glGetTexGenfvOESFunPtr #-}
-
--- | Usage: @'glGetTexGenivOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexGenivOES = ffienumenumPtrintIOV glGetTexGenivOESFunPtr
-
-glGetTexGenivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexGenivOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenivOES")
-
-{-# NOINLINE glGetTexGenivOESFunPtr #-}
-
--- | Usage: @'glTexGenfOES' coord pname param@
-
-
-glTexGenfOES :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexGenfOES = ffienumenumfloatIOV glTexGenfOESFunPtr
-
-glTexGenfOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexGenfOESFunPtr = unsafePerformIO (getProcAddress "glTexGenfOES")
-
-{-# NOINLINE glTexGenfOESFunPtr #-}
-
--- | Usage: @'glTexGenfvOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexGenfvOES = ffienumenumPtrfloatIOV glTexGenfvOESFunPtr
-
-glTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexGenfvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenfvOES")
-
-{-# NOINLINE glTexGenfvOESFunPtr #-}
-
--- | Usage: @'glTexGeniOES' coord pname param@
-
-
-glTexGeniOES :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexGeniOES = ffienumenumintIOV glTexGeniOESFunPtr
-
-glTexGeniOESFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexGeniOESFunPtr = unsafePerformIO (getProcAddress "glTexGeniOES")
-
-{-# NOINLINE glTexGeniOESFunPtr #-}
-
--- | Usage: @'glTexGenivOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexGenivOES = ffienumenumPtrintIOV glTexGenivOESFunPtr
-
-glTexGenivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexGenivOESFunPtr = unsafePerformIO (getProcAddress "glTexGenivOES")
-
-{-# NOINLINE glTexGenivOESFunPtr #-}
-
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C
-
-pattern GL_NORMAL_MAP_OES = 0x8511
-
-pattern GL_REFLECTION_MAP_OES = 0x8512
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A
-
-pattern GL_TEXTURE_CUBE_MAP_OES = 0x8513
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519
-
-pattern GL_TEXTURE_GEN_MODE_OES = 0x2500
-
-pattern GL_TEXTURE_GEN_STR_OES = 0x8D60
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMapArray.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureCubeMapArray (
-  -- * Extension Support
-    gl_OES_texture_cube_map_array
-
-  -- * GL_OES_texture_cube_map_array
-  , pattern GL_IMAGE_CUBE_MAP_ARRAY_OES
-  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_OES
-  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_OES
-  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES
-  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES
-  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map_array.txt GL_OES_texture_cube_map_array> extension is available.
-
-gl_OES_texture_cube_map_array :: Bool
-gl_OES_texture_cube_map_array = member "GL_OES_texture_cube_map_array" extensions
-{-# NOINLINE gl_OES_texture_cube_map_array #-}
-
-pattern GL_IMAGE_CUBE_MAP_ARRAY_OES = 0x9054
-
-pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x905F
-
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900E
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900C
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES = 0x900D
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES = 0x900A
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x906A
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900F
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureEnvCrossbar.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureEnvCrossbar.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureEnvCrossbar.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureEnvCrossbar (
-  -- * Extension Support
-    gl_OES_texture_env_crossbar
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_env_crossbar.txt GL_OES_texture_env_crossbar> extension is available.
-
-gl_OES_texture_env_crossbar :: Bool
-gl_OES_texture_env_crossbar = member "GL_OES_texture_env_crossbar" extensions
-{-# NOINLINE gl_OES_texture_env_crossbar #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloat.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloat.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureFloat (
-  -- * Extension Support
-    gl_OES_texture_float
-
-  -- * GL_OES_texture_float
-  , pattern GL_FLOAT
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt GL_OES_texture_float> extension is available.
-
-gl_OES_texture_float :: Bool
-gl_OES_texture_float = member "GL_OES_texture_float" extensions
-{-# NOINLINE gl_OES_texture_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloatLinear.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloatLinear.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureFloatLinear.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureFloatLinear (
-  -- * Extension Support
-    gl_OES_texture_float_linear
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float_linear.txt GL_OES_texture_float_linear> extension is available.
-
-gl_OES_texture_float_linear :: Bool
-gl_OES_texture_float_linear = member "GL_OES_texture_float_linear" extensions
-{-# NOINLINE gl_OES_texture_float_linear #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureHalfFloat.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureHalfFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureHalfFloat.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureHalfFloat (
-  -- * Extension Support
-    gl_OES_texture_half_float
-
-  -- * GL_OES_texture_half_float
-  , pattern GL_HALF_FLOAT_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_half_float.txt GL_OES_texture_half_float> extension is available.
-
-gl_OES_texture_half_float :: Bool
-gl_OES_texture_half_float = member "GL_OES_texture_half_float" extensions
-{-# NOINLINE gl_OES_texture_half_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureHalfFloatLinear.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureHalfFloatLinear.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureHalfFloatLinear.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureHalfFloatLinear (
-  -- * Extension Support
-    gl_OES_texture_half_float_linear
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_half_float_linear.txt GL_OES_texture_half_float_linear> extension is available.
-
-gl_OES_texture_half_float_linear :: Bool
-gl_OES_texture_half_float_linear = member "GL_OES_texture_half_float_linear" extensions
-{-# NOINLINE gl_OES_texture_half_float_linear #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureMirroredRepeat (
-  -- * Extension Support
-    gl_OES_texture_mirrored_repeat
-
-  -- * GL_OES_texture_mirrored_repeat
-  , pattern GL_MIRRORED_REPEAT_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_mirrored_repeat.txt GL_OES_texture_mirrored_repeat> extension is available.
-
-gl_OES_texture_mirrored_repeat :: Bool
-gl_OES_texture_mirrored_repeat = member "GL_OES_texture_mirrored_repeat" extensions
-{-# NOINLINE gl_OES_texture_mirrored_repeat #-}
-
-pattern GL_MIRRORED_REPEAT_OES = 0x8370
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureNpot.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureNpot.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureNpot.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureNpot (
-  -- * Extension Support
-    gl_OES_texture_npot
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_npot.txt GL_OES_texture_npot> extension is available.
-
-gl_OES_texture_npot :: Bool
-gl_OES_texture_npot = member "GL_OES_texture_npot" extensions
-{-# NOINLINE gl_OES_texture_npot #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureStencil8.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureStencil8.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureStencil8.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureStencil8 (
-  -- * Extension Support
-    gl_OES_texture_stencil8
-
-  -- * GL_OES_texture_stencil8
-  , pattern GL_STENCIL_INDEX8_OES
-  , pattern GL_STENCIL_INDEX_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_stencil8.txt GL_OES_texture_stencil8> extension is available.
-
-gl_OES_texture_stencil8 :: Bool
-gl_OES_texture_stencil8 = member "GL_OES_texture_stencil8" extensions
-{-# NOINLINE gl_OES_texture_stencil8 #-}
-
-pattern GL_STENCIL_INDEX_OES = 0x1901
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs
+++ /dev/null
@@ -1,53 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureStorageMultisample2dArray (
-  -- * Extension Support
-    gl_OES_texture_storage_multisample_2d_array
-
-  -- * GL_OES_texture_storage_multisample_2d_array
-  , glTexStorage3DMultisampleOES
-  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
-  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
-  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES
-  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_storage_multisample_2d_array.txt GL_OES_texture_storage_multisample_2d_array> extension is available.
-
-gl_OES_texture_storage_multisample_2d_array :: Bool
-gl_OES_texture_storage_multisample_2d_array = member "GL_OES_texture_storage_multisample_2d_array" extensions
-{-# NOINLINE gl_OES_texture_storage_multisample_2d_array #-}
-
--- | Usage: @'glTexStorage3DMultisampleOES' target samples internalformat width height depth fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage3DMultisample'.
-
-
-glTexStorage3DMultisampleOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexStorage3DMultisampleOES = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleOESFunPtr
-
-glTexStorage3DMultisampleOESFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexStorage3DMultisampleOESFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisampleOES")
-
-{-# NOINLINE glTexStorage3DMultisampleOESFunPtr #-}
-
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C
-
-pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B
-
-pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102
-
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/TextureView.hs b/dist/build/autogen/Graphics/GL/Ext/OES/TextureView.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/TextureView.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.TextureView (
-  -- * Extension Support
-    gl_OES_texture_view
-
-  -- * GL_OES_texture_view
-  , glTextureViewOES
-  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
-  , pattern GL_TEXTURE_VIEW_MIN_LAYER_OES
-  , pattern GL_TEXTURE_VIEW_MIN_LEVEL_OES
-  , pattern GL_TEXTURE_VIEW_NUM_LAYERS_OES
-  , pattern GL_TEXTURE_VIEW_NUM_LEVELS_OES
-) 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://www.khronos.org/registry/gles/extensions/OES/OES_texture_view.txt GL_OES_texture_view> extension is available.
-
-gl_OES_texture_view :: Bool
-gl_OES_texture_view = member "GL_OES_texture_view" extensions
-{-# NOINLINE gl_OES_texture_view #-}
-
--- | Usage: @'glTextureViewOES' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTextureView'.
-
-
-glTextureViewOES :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glTextureViewOES = ffiuintenumuintenumuintuintuintuintIOV glTextureViewOESFunPtr
-
-glTextureViewOESFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glTextureViewOESFunPtr = unsafePerformIO (getProcAddress "glTextureViewOES")
-
-{-# NOINLINE glTextureViewOESFunPtr #-}
-
-pattern GL_TEXTURE_VIEW_MIN_LAYER_OES = 0x82DD
-
-pattern GL_TEXTURE_VIEW_MIN_LEVEL_OES = 0x82DB
-
-pattern GL_TEXTURE_VIEW_NUM_LAYERS_OES = 0x82DE
-
-pattern GL_TEXTURE_VIEW_NUM_LEVELS_OES = 0x82DC
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/VertexArrayObject.hs b/dist/build/autogen/Graphics/GL/Ext/OES/VertexArrayObject.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/VertexArrayObject.hs
+++ /dev/null
@@ -1,85 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.VertexArrayObject (
-  -- * Extension Support
-    gl_OES_vertex_array_object
-
-  -- * GL_OES_vertex_array_object
-  , glBindVertexArrayOES
-  , glDeleteVertexArraysOES
-  , glGenVertexArraysOES
-  , glIsVertexArrayOES
-  , pattern GL_VERTEX_ARRAY_BINDING_OES
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt GL_OES_vertex_array_object> extension is available.
-
-gl_OES_vertex_array_object :: Bool
-gl_OES_vertex_array_object = member "GL_OES_vertex_array_object" extensions
-{-# NOINLINE gl_OES_vertex_array_object #-}
-
--- | Usage: @'glBindVertexArrayOES' array@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindVertexArray'.
-
-
-glBindVertexArrayOES :: MonadIO m => GLuint -> m ()
-glBindVertexArrayOES = ffiuintIOV glBindVertexArrayOESFunPtr
-
-glBindVertexArrayOESFunPtr :: FunPtr (GLuint -> IO ())
-glBindVertexArrayOESFunPtr = unsafePerformIO (getProcAddress "glBindVertexArrayOES")
-
-{-# NOINLINE glBindVertexArrayOESFunPtr #-}
-
--- | Usage: @'glDeleteVertexArraysOES' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteVertexArrays'.
-
-
-glDeleteVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteVertexArraysOES = ffisizeiPtruintIOV glDeleteVertexArraysOESFunPtr
-
-glDeleteVertexArraysOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteVertexArraysOESFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArraysOES")
-
-{-# NOINLINE glDeleteVertexArraysOESFunPtr #-}
-
--- | Usage: @'glGenVertexArraysOES' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGenVertexArrays'.
-
-
-glGenVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenVertexArraysOES = ffisizeiPtruintIOV glGenVertexArraysOESFunPtr
-
-glGenVertexArraysOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenVertexArraysOESFunPtr = unsafePerformIO (getProcAddress "glGenVertexArraysOES")
-
-{-# NOINLINE glGenVertexArraysOESFunPtr #-}
-
--- | Usage: @'glIsVertexArrayOES' array@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsVertexArray'.
-
-
-glIsVertexArrayOES :: MonadIO m => GLuint -> m GLboolean
-glIsVertexArrayOES = ffiuintIOboolean glIsVertexArrayOESFunPtr
-
-glIsVertexArrayOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsVertexArrayOESFunPtr = unsafePerformIO (getProcAddress "glIsVertexArrayOES")
-
-{-# NOINLINE glIsVertexArrayOESFunPtr #-}
-
-pattern GL_VERTEX_ARRAY_BINDING_OES = 0x85B5
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/VertexHalfFloat.hs b/dist/build/autogen/Graphics/GL/Ext/OES/VertexHalfFloat.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/VertexHalfFloat.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.VertexHalfFloat (
-  -- * Extension Support
-    gl_OES_vertex_half_float
-
-  -- * GL_OES_vertex_half_float
-  , pattern GL_HALF_FLOAT_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Internal.Shared
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_half_float.txt GL_OES_vertex_half_float> extension is available.
-
-gl_OES_vertex_half_float :: Bool
-gl_OES_vertex_half_float = member "GL_OES_vertex_half_float" extensions
-{-# NOINLINE gl_OES_vertex_half_float #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/VertexType1010102.hs b/dist/build/autogen/Graphics/GL/Ext/OES/VertexType1010102.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/VertexType1010102.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.VertexType1010102 (
-  -- * Extension Support
-    gl_OES_vertex_type_10_10_10_2
-
-  -- * GL_OES_vertex_type_10_10_10_2
-  , pattern GL_INT_10_10_10_2_OES
-  , pattern GL_UNSIGNED_INT_10_10_10_2_OES
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_type_10_10_10_2.txt GL_OES_vertex_type_10_10_10_2> extension is available.
-
-gl_OES_vertex_type_10_10_10_2 :: Bool
-gl_OES_vertex_type_10_10_10_2 = member "GL_OES_vertex_type_10_10_10_2" extensions
-{-# NOINLINE gl_OES_vertex_type_10_10_10_2 #-}
-
-pattern GL_INT_10_10_10_2_OES = 0x8DF7
-
-pattern GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6
diff --git a/dist/build/autogen/Graphics/GL/Ext/OES/ViewportArray.hs b/dist/build/autogen/Graphics/GL/Ext/OES/ViewportArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OES/ViewportArray.hs
+++ /dev/null
@@ -1,176 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OES.ViewportArray (
-  -- * Extension Support
-    gl_OES_viewport_array
-
-  -- * GL_OES_viewport_array
-  , glDepthRangeArrayfvOES
-  , glDepthRangeIndexedfOES
-  , glDisableiOES
-  , glEnableiOES
-  , glGetFloati_vOES
-  , glIsEnablediOES
-  , glScissorArrayvOES
-  , glScissorIndexedOES
-  , glScissorIndexedvOES
-  , glViewportArrayvOES
-  , glViewportIndexedfOES
-  , glViewportIndexedfvOES
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_MAX_VIEWPORTS_OES
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_VIEWPORT
-  , pattern GL_VIEWPORT_BOUNDS_RANGE_OES
-  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES
-  , pattern GL_VIEWPORT_SUBPIXEL_BITS_OES
-) 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://www.khronos.org/registry/OpenGL/extensions/OES/OES_viewport_array.txt GL_OES_viewport_array> extension is available.
-
-gl_OES_viewport_array :: Bool
-gl_OES_viewport_array = member "GL_OES_viewport_array" extensions
-{-# NOINLINE gl_OES_viewport_array #-}
-
--- | Usage: @'glDepthRangeArrayfvOES' first count v@
-
-
-glDepthRangeArrayfvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glDepthRangeArrayfvOES = ffiuintsizeiPtrfloatIOV glDepthRangeArrayfvOESFunPtr
-
-glDepthRangeArrayfvOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glDepthRangeArrayfvOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayfvOES")
-
-{-# NOINLINE glDepthRangeArrayfvOESFunPtr #-}
-
--- | Usage: @'glDepthRangeIndexedfOES' index n f@
-
-
-glDepthRangeIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glDepthRangeIndexedfOES = ffiuintfloatfloatIOV glDepthRangeIndexedfOESFunPtr
-
-glDepthRangeIndexedfOESFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glDepthRangeIndexedfOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexedfOES")
-
-{-# NOINLINE glDepthRangeIndexedfOESFunPtr #-}
-
--- | Usage: @'glGetFloati_vOES' target index data@
---
--- The parameter @target@ is a @TypeEnum@.
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
-
-
-glGetFloati_vOES :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloati_vOES = ffienumuintPtrfloatIOV glGetFloati_vOESFunPtr
-
-glGetFloati_vOESFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloati_vOESFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vOES")
-
-{-# NOINLINE glGetFloati_vOESFunPtr #-}
-
--- | Usage: @'glScissorArrayvOES' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorArrayv'.
-
-
-glScissorArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
-glScissorArrayvOES = ffiuintsizeiPtrintIOV glScissorArrayvOESFunPtr
-
-glScissorArrayvOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
-glScissorArrayvOESFunPtr = unsafePerformIO (getProcAddress "glScissorArrayvOES")
-
-{-# NOINLINE glScissorArrayvOESFunPtr #-}
-
--- | Usage: @'glScissorIndexedOES' index left bottom width height@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexed'.
-
-
-glScissorIndexedOES :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissorIndexedOES = ffiuintintintsizeisizeiIOV glScissorIndexedOESFunPtr
-
-glScissorIndexedOESFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorIndexedOESFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedOES")
-
-{-# NOINLINE glScissorIndexedOESFunPtr #-}
-
--- | Usage: @'glScissorIndexedvOES' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexedv'.
-
-
-glScissorIndexedvOES :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glScissorIndexedvOES = ffiuintPtrintIOV glScissorIndexedvOESFunPtr
-
-glScissorIndexedvOESFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glScissorIndexedvOESFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedvOES")
-
-{-# NOINLINE glScissorIndexedvOESFunPtr #-}
-
--- | Usage: @'glViewportArrayvOES' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportArrayv'.
-
-
-glViewportArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glViewportArrayvOES = ffiuintsizeiPtrfloatIOV glViewportArrayvOESFunPtr
-
-glViewportArrayvOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glViewportArrayvOESFunPtr = unsafePerformIO (getProcAddress "glViewportArrayvOES")
-
-{-# NOINLINE glViewportArrayvOESFunPtr #-}
-
--- | Usage: @'glViewportIndexedfOES' index x y w h@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedf'.
-
-
-glViewportIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glViewportIndexedfOES = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfOESFunPtr
-
-glViewportIndexedfOESFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glViewportIndexedfOESFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfOES")
-
-{-# NOINLINE glViewportIndexedfOESFunPtr #-}
-
--- | Usage: @'glViewportIndexedfvOES' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedfv'.
-
-
-glViewportIndexedfvOES :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glViewportIndexedfvOES = ffiuintPtrfloatIOV glViewportIndexedfvOESFunPtr
-
-glViewportIndexedfvOESFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glViewportIndexedfvOESFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfvOES")
-
-{-# NOINLINE glViewportIndexedfvOESFunPtr #-}
-
-pattern GL_MAX_VIEWPORTS_OES = 0x825B
-
-pattern GL_VIEWPORT_BOUNDS_RANGE_OES = 0x825D
-
-pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES = 0x825F
-
-pattern GL_VIEWPORT_SUBPIXEL_BITS_OES = 0x825C
diff --git a/dist/build/autogen/Graphics/GL/Ext/OML.hs b/dist/build/autogen/Graphics/GL/Ext/OML.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OML.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OML (
-  -- * OML Extensions
-    module Graphics.GL.Ext.OML.Interlace
-  , module Graphics.GL.Ext.OML.Resample
-  , module Graphics.GL.Ext.OML.Subsample
-) where
-
-import Graphics.GL.Ext.OML.Interlace
-import Graphics.GL.Ext.OML.Resample
-import Graphics.GL.Ext.OML.Subsample
diff --git a/dist/build/autogen/Graphics/GL/Ext/OML/Interlace.hs b/dist/build/autogen/Graphics/GL/Ext/OML/Interlace.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OML/Interlace.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OML.Interlace (
-  -- * Extension Support
-    gl_OML_interlace
-
-  -- * GL_OML_interlace
-  , pattern GL_INTERLACE_OML
-  , pattern GL_INTERLACE_READ_OML
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/interlace.txt GL_OML_interlace> extension is available.
-
-gl_OML_interlace :: Bool
-gl_OML_interlace = member "GL_OML_interlace" extensions
-{-# NOINLINE gl_OML_interlace #-}
-
-pattern GL_INTERLACE_OML = 0x8980
-
-pattern GL_INTERLACE_READ_OML = 0x8981
diff --git a/dist/build/autogen/Graphics/GL/Ext/OML/Resample.hs b/dist/build/autogen/Graphics/GL/Ext/OML/Resample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OML/Resample.hs
+++ /dev/null
@@ -1,35 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OML.Resample (
-  -- * Extension Support
-    gl_OML_resample
-
-  -- * GL_OML_resample
-  , pattern GL_PACK_RESAMPLE_OML
-  , pattern GL_RESAMPLE_AVERAGE_OML
-  , pattern GL_RESAMPLE_DECIMATE_OML
-  , pattern GL_RESAMPLE_REPLICATE_OML
-  , pattern GL_RESAMPLE_ZERO_FILL_OML
-  , pattern GL_UNPACK_RESAMPLE_OML
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/resample.txt GL_OML_resample> extension is available.
-
-gl_OML_resample :: Bool
-gl_OML_resample = member "GL_OML_resample" extensions
-{-# NOINLINE gl_OML_resample #-}
-
-pattern GL_PACK_RESAMPLE_OML = 0x8984
-
-pattern GL_RESAMPLE_AVERAGE_OML = 0x8988
-
-pattern GL_RESAMPLE_DECIMATE_OML = 0x8989
-
-pattern GL_RESAMPLE_REPLICATE_OML = 0x8986
-
-pattern GL_RESAMPLE_ZERO_FILL_OML = 0x8987
-
-pattern GL_UNPACK_RESAMPLE_OML = 0x8985
diff --git a/dist/build/autogen/Graphics/GL/Ext/OML/Subsample.hs b/dist/build/autogen/Graphics/GL/Ext/OML/Subsample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OML/Subsample.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OML.Subsample (
-  -- * Extension Support
-    gl_OML_subsample
-
-  -- * GL_OML_subsample
-  , pattern GL_FORMAT_SUBSAMPLE_244_244_OML
-  , pattern GL_FORMAT_SUBSAMPLE_24_24_OML
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/subsample.txt GL_OML_subsample> extension is available.
-
-gl_OML_subsample :: Bool
-gl_OML_subsample = member "GL_OML_subsample" extensions
-{-# NOINLINE gl_OML_subsample #-}
-
-pattern GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983
-
-pattern GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982
diff --git a/dist/build/autogen/Graphics/GL/Ext/OVR.hs b/dist/build/autogen/Graphics/GL/Ext/OVR.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OVR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OVR (
-  -- * OVR Extensions
-    module Graphics.GL.Ext.OVR.Multiview
-  , module Graphics.GL.Ext.OVR.Multiview2
-  , module Graphics.GL.Ext.OVR.MultiviewMultisampledRenderToTexture
-) where
-
-import Graphics.GL.Ext.OVR.Multiview
-import Graphics.GL.Ext.OVR.Multiview2
-import Graphics.GL.Ext.OVR.MultiviewMultisampledRenderToTexture
diff --git a/dist/build/autogen/Graphics/GL/Ext/OVR/Multiview.hs b/dist/build/autogen/Graphics/GL/Ext/OVR/Multiview.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OVR/Multiview.hs
+++ /dev/null
@@ -1,54 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OVR.Multiview (
-  -- * Extension Support
-    gl_OVR_multiview
-
-  -- * GL_OVR_multiview
-  , glFramebufferTextureMultiviewOVR
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR
-  , pattern GL_MAX_VIEWS_OVR
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OVR/multiview.txt GL_OVR_multiview> extension is available.
-
-gl_OVR_multiview :: Bool
-gl_OVR_multiview = member "GL_OVR_multiview" extensions
-{-# NOINLINE gl_OVR_multiview #-}
-
--- | Usage: @'glFramebufferTextureMultiviewOVR' target attachment texture level baseViewIndex numViews@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
-
-
-glFramebufferTextureMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()
-glFramebufferTextureMultiviewOVR = ffienumenumuintintintsizeiIOV glFramebufferTextureMultiviewOVRFunPtr
-
-glFramebufferTextureMultiviewOVRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ())
-glFramebufferTextureMultiviewOVRFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureMultiviewOVR")
-
-{-# NOINLINE glFramebufferTextureMultiviewOVRFunPtr #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633
-
-pattern GL_MAX_VIEWS_OVR = 0x9631
diff --git a/dist/build/autogen/Graphics/GL/Ext/OVR/Multiview2.hs b/dist/build/autogen/Graphics/GL/Ext/OVR/Multiview2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OVR/Multiview2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OVR.Multiview2 (
-  -- * Extension Support
-    gl_OVR_multiview2
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/OVR/multiview2.txt GL_OVR_multiview2> extension is available.
-
-gl_OVR_multiview2 :: Bool
-gl_OVR_multiview2 = member "GL_OVR_multiview2" extensions
-{-# NOINLINE gl_OVR_multiview2 #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/OVR/MultiviewMultisampledRenderToTexture.hs b/dist/build/autogen/Graphics/GL/Ext/OVR/MultiviewMultisampledRenderToTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/OVR/MultiviewMultisampledRenderToTexture.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.OVR.MultiviewMultisampledRenderToTexture (
-  -- * Extension Support
-    gl_OVR_multiview_multisampled_render_to_texture
-
-  -- * GL_OVR_multiview_multisampled_render_to_texture
-  , glFramebufferTextureMultisampleMultiviewOVR
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview_multisampled_render_to_texture.txt GL_OVR_multiview_multisampled_render_to_texture> extension is available.
-
-gl_OVR_multiview_multisampled_render_to_texture :: Bool
-gl_OVR_multiview_multisampled_render_to_texture = member "GL_OVR_multiview_multisampled_render_to_texture" extensions
-{-# NOINLINE gl_OVR_multiview_multisampled_render_to_texture #-}
-
--- | Usage: @'glFramebufferTextureMultisampleMultiviewOVR' target attachment texture level samples baseViewIndex numViews@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
-
-
-glFramebufferTextureMultisampleMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> m ()
-glFramebufferTextureMultisampleMultiviewOVR = ffienumenumuintintsizeiintsizeiIOV glFramebufferTextureMultisampleMultiviewOVRFunPtr
-
-glFramebufferTextureMultisampleMultiviewOVRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ())
-glFramebufferTextureMultisampleMultiviewOVRFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureMultisampleMultiviewOVR")
-
-{-# NOINLINE glFramebufferTextureMultisampleMultiviewOVRFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/PGI.hs b/dist/build/autogen/Graphics/GL/Ext/PGI.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/PGI.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.PGI (
-  -- * PGI Extensions
-    module Graphics.GL.Ext.PGI.MiscHints
-  , module Graphics.GL.Ext.PGI.VertexHints
-) where
-
-import Graphics.GL.Ext.PGI.MiscHints
-import Graphics.GL.Ext.PGI.VertexHints
diff --git a/dist/build/autogen/Graphics/GL/Ext/PGI/MiscHints.hs b/dist/build/autogen/Graphics/GL/Ext/PGI/MiscHints.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/PGI/MiscHints.hs
+++ /dev/null
@@ -1,96 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.PGI.MiscHints (
-  -- * Extension Support
-    gl_PGI_misc_hints
-
-  -- * GL_PGI_misc_hints
-  , glHintPGI
-  , pattern GL_ALLOW_DRAW_FRG_HINT_PGI
-  , pattern GL_ALLOW_DRAW_MEM_HINT_PGI
-  , pattern GL_ALLOW_DRAW_OBJ_HINT_PGI
-  , pattern GL_ALLOW_DRAW_WIN_HINT_PGI
-  , pattern GL_ALWAYS_FAST_HINT_PGI
-  , pattern GL_ALWAYS_SOFT_HINT_PGI
-  , pattern GL_BACK_NORMALS_HINT_PGI
-  , pattern GL_CLIP_FAR_HINT_PGI
-  , pattern GL_CLIP_NEAR_HINT_PGI
-  , pattern GL_CONSERVE_MEMORY_HINT_PGI
-  , pattern GL_FULL_STIPPLE_HINT_PGI
-  , pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI
-  , pattern GL_NATIVE_GRAPHICS_END_HINT_PGI
-  , pattern GL_NATIVE_GRAPHICS_HANDLE_PGI
-  , pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI
-  , pattern GL_RECLAIM_MEMORY_HINT_PGI
-  , pattern GL_STRICT_DEPTHFUNC_HINT_PGI
-  , pattern GL_STRICT_LIGHTING_HINT_PGI
-  , pattern GL_STRICT_SCISSOR_HINT_PGI
-  , pattern GL_WIDE_LINE_HINT_PGI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/misc_hints.txt GL_PGI_misc_hints> extension is available.
-
-gl_PGI_misc_hints :: Bool
-gl_PGI_misc_hints = member "GL_PGI_misc_hints" extensions
-{-# NOINLINE gl_PGI_misc_hints #-}
-
--- | Usage: @'glHintPGI' target mode@
---
--- The parameter @target@ is a @HintTargetPGI@.
-
-
-glHintPGI :: MonadIO m => GLenum -> GLint -> m ()
-glHintPGI = ffienumintIOV glHintPGIFunPtr
-
-glHintPGIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glHintPGIFunPtr = unsafePerformIO (getProcAddress "glHintPGI")
-
-{-# NOINLINE glHintPGIFunPtr #-}
-
-pattern GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210
-
-pattern GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211
-
-pattern GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E
-
-pattern GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F
-
-pattern GL_ALWAYS_FAST_HINT_PGI = 0x1A20C
-
-pattern GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D
-
-pattern GL_BACK_NORMALS_HINT_PGI = 0x1A223
-
-pattern GL_CLIP_FAR_HINT_PGI = 0x1A221
-
-pattern GL_CLIP_NEAR_HINT_PGI = 0x1A220
-
-pattern GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD
-
-pattern GL_FULL_STIPPLE_HINT_PGI = 0x1A219
-
-pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203
-
-pattern GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204
-
-pattern GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202
-
-pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8
-
-pattern GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE
-
-pattern GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216
-
-pattern GL_STRICT_LIGHTING_HINT_PGI = 0x1A217
-
-pattern GL_STRICT_SCISSOR_HINT_PGI = 0x1A218
-
-pattern GL_WIDE_LINE_HINT_PGI = 0x1A222
diff --git a/dist/build/autogen/Graphics/GL/Ext/PGI/VertexHints.hs b/dist/build/autogen/Graphics/GL/Ext/PGI/VertexHints.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/PGI/VertexHints.hs
+++ /dev/null
@@ -1,83 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.PGI.VertexHints (
-  -- * Extension Support
-    gl_PGI_vertex_hints
-
-  -- * GL_PGI_vertex_hints
-  , pattern GL_COLOR3_BIT_PGI
-  , pattern GL_COLOR4_BIT_PGI
-  , pattern GL_EDGEFLAG_BIT_PGI
-  , pattern GL_INDEX_BIT_PGI
-  , pattern GL_MATERIAL_SIDE_HINT_PGI
-  , pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI
-  , pattern GL_MAT_AMBIENT_BIT_PGI
-  , pattern GL_MAT_COLOR_INDEXES_BIT_PGI
-  , pattern GL_MAT_DIFFUSE_BIT_PGI
-  , pattern GL_MAT_EMISSION_BIT_PGI
-  , pattern GL_MAT_SHININESS_BIT_PGI
-  , pattern GL_MAT_SPECULAR_BIT_PGI
-  , pattern GL_MAX_VERTEX_HINT_PGI
-  , pattern GL_NORMAL_BIT_PGI
-  , pattern GL_TEXCOORD1_BIT_PGI
-  , pattern GL_TEXCOORD2_BIT_PGI
-  , pattern GL_TEXCOORD3_BIT_PGI
-  , pattern GL_TEXCOORD4_BIT_PGI
-  , pattern GL_VERTEX23_BIT_PGI
-  , pattern GL_VERTEX4_BIT_PGI
-  , pattern GL_VERTEX_CONSISTENT_HINT_PGI
-  , pattern GL_VERTEX_DATA_HINT_PGI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/vertex_hints.txt GL_PGI_vertex_hints> extension is available.
-
-gl_PGI_vertex_hints :: Bool
-gl_PGI_vertex_hints = member "GL_PGI_vertex_hints" extensions
-{-# NOINLINE gl_PGI_vertex_hints #-}
-
-pattern GL_COLOR3_BIT_PGI = 0x00010000
-
-pattern GL_COLOR4_BIT_PGI = 0x00020000
-
-pattern GL_EDGEFLAG_BIT_PGI = 0x00040000
-
-pattern GL_INDEX_BIT_PGI = 0x00080000
-
-pattern GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C
-
-pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000
-
-pattern GL_MAT_AMBIENT_BIT_PGI = 0x00100000
-
-pattern GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000
-
-pattern GL_MAT_DIFFUSE_BIT_PGI = 0x00400000
-
-pattern GL_MAT_EMISSION_BIT_PGI = 0x00800000
-
-pattern GL_MAT_SHININESS_BIT_PGI = 0x02000000
-
-pattern GL_MAT_SPECULAR_BIT_PGI = 0x04000000
-
-pattern GL_MAX_VERTEX_HINT_PGI = 0x1A22D
-
-pattern GL_NORMAL_BIT_PGI = 0x08000000
-
-pattern GL_TEXCOORD1_BIT_PGI = 0x10000000
-
-pattern GL_TEXCOORD2_BIT_PGI = 0x20000000
-
-pattern GL_TEXCOORD3_BIT_PGI = 0x40000000
-
-pattern GL_TEXCOORD4_BIT_PGI = 0x80000000
-
-pattern GL_VERTEX23_BIT_PGI = 0x00000004
-
-pattern GL_VERTEX4_BIT_PGI = 0x00000008
-
-pattern GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B
-
-pattern GL_VERTEX_DATA_HINT_PGI = 0x1A22A
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM (
-  -- * QCOM Extensions
-    module Graphics.GL.Ext.QCOM.AlphaTest
-  , module Graphics.GL.Ext.QCOM.BinningControl
-  , module Graphics.GL.Ext.QCOM.DriverControl
-  , module Graphics.GL.Ext.QCOM.ExtendedGet
-  , module Graphics.GL.Ext.QCOM.ExtendedGet2
-  , module Graphics.GL.Ext.QCOM.PerfmonGlobalMode
-  , module Graphics.GL.Ext.QCOM.TiledRendering
-  , module Graphics.GL.Ext.QCOM.WriteonlyRendering
-) where
-
-import Graphics.GL.Ext.QCOM.AlphaTest
-import Graphics.GL.Ext.QCOM.BinningControl
-import Graphics.GL.Ext.QCOM.DriverControl
-import Graphics.GL.Ext.QCOM.ExtendedGet
-import Graphics.GL.Ext.QCOM.ExtendedGet2
-import Graphics.GL.Ext.QCOM.PerfmonGlobalMode
-import Graphics.GL.Ext.QCOM.TiledRendering
-import Graphics.GL.Ext.QCOM.WriteonlyRendering
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/AlphaTest.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/AlphaTest.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/AlphaTest.hs
+++ /dev/null
@@ -1,43 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.AlphaTest (
-  -- * Extension Support
-    gl_QCOM_alpha_test
-
-  -- * GL_QCOM_alpha_test
-  , glAlphaFuncQCOM
-  , pattern GL_ALPHA_TEST_FUNC_QCOM
-  , pattern GL_ALPHA_TEST_QCOM
-  , pattern GL_ALPHA_TEST_REF_QCOM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_alpha_test.txt GL_QCOM_alpha_test> extension is available.
-
-gl_QCOM_alpha_test :: Bool
-gl_QCOM_alpha_test = member "GL_QCOM_alpha_test" extensions
-{-# NOINLINE gl_QCOM_alpha_test #-}
-
--- | Usage: @'glAlphaFuncQCOM' func ref@
-
-
-glAlphaFuncQCOM :: MonadIO m => GLenum -> GLclampf -> m ()
-glAlphaFuncQCOM = ffienumclampfIOV glAlphaFuncQCOMFunPtr
-
-glAlphaFuncQCOMFunPtr :: FunPtr (GLenum -> GLclampf -> IO ())
-glAlphaFuncQCOMFunPtr = unsafePerformIO (getProcAddress "glAlphaFuncQCOM")
-
-{-# NOINLINE glAlphaFuncQCOMFunPtr #-}
-
-pattern GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1
-
-pattern GL_ALPHA_TEST_QCOM = 0x0BC0
-
-pattern GL_ALPHA_TEST_REF_QCOM = 0x0BC2
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/BinningControl.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/BinningControl.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/BinningControl.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.BinningControl (
-  -- * Extension Support
-    gl_QCOM_binning_control
-
-  -- * GL_QCOM_binning_control
-  , pattern GL_BINNING_CONTROL_HINT_QCOM
-  , pattern GL_CPU_OPTIMIZED_QCOM
-  , pattern GL_GPU_OPTIMIZED_QCOM
-  , pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_binning_control.txt GL_QCOM_binning_control> extension is available.
-
-gl_QCOM_binning_control :: Bool
-gl_QCOM_binning_control = member "GL_QCOM_binning_control" extensions
-{-# NOINLINE gl_QCOM_binning_control #-}
-
-pattern GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0
-
-pattern GL_CPU_OPTIMIZED_QCOM = 0x8FB1
-
-pattern GL_GPU_OPTIMIZED_QCOM = 0x8FB2
-
-pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/DriverControl.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/DriverControl.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/DriverControl.hs
+++ /dev/null
@@ -1,74 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.DriverControl (
-  -- * Extension Support
-    gl_QCOM_driver_control
-
-  -- * GL_QCOM_driver_control
-  , glDisableDriverControlQCOM
-  , glEnableDriverControlQCOM
-  , glGetDriverControlStringQCOM
-  , glGetDriverControlsQCOM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt GL_QCOM_driver_control> extension is available.
-
-gl_QCOM_driver_control :: Bool
-gl_QCOM_driver_control = member "GL_QCOM_driver_control" extensions
-{-# NOINLINE gl_QCOM_driver_control #-}
-
--- | Usage: @'glDisableDriverControlQCOM' driverControl@
-
-
-glDisableDriverControlQCOM :: MonadIO m => GLuint -> m ()
-glDisableDriverControlQCOM = ffiuintIOV glDisableDriverControlQCOMFunPtr
-
-glDisableDriverControlQCOMFunPtr :: FunPtr (GLuint -> IO ())
-glDisableDriverControlQCOMFunPtr = unsafePerformIO (getProcAddress "glDisableDriverControlQCOM")
-
-{-# NOINLINE glDisableDriverControlQCOMFunPtr #-}
-
--- | Usage: @'glEnableDriverControlQCOM' driverControl@
-
-
-glEnableDriverControlQCOM :: MonadIO m => GLuint -> m ()
-glEnableDriverControlQCOM = ffiuintIOV glEnableDriverControlQCOMFunPtr
-
-glEnableDriverControlQCOMFunPtr :: FunPtr (GLuint -> IO ())
-glEnableDriverControlQCOMFunPtr = unsafePerformIO (getProcAddress "glEnableDriverControlQCOM")
-
-{-# NOINLINE glEnableDriverControlQCOMFunPtr #-}
-
--- | Usage: @'glGetDriverControlStringQCOM' driverControl bufSize length driverControlString@
---
--- The length of @driverControlString@ should be @bufSize@.
-
-
-glGetDriverControlStringQCOM :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetDriverControlStringQCOM = ffiuintsizeiPtrsizeiPtrcharIOV glGetDriverControlStringQCOMFunPtr
-
-glGetDriverControlStringQCOMFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetDriverControlStringQCOMFunPtr = unsafePerformIO (getProcAddress "glGetDriverControlStringQCOM")
-
-{-# NOINLINE glGetDriverControlStringQCOMFunPtr #-}
-
--- | Usage: @'glGetDriverControlsQCOM' num size driverControls@
---
--- The length of @driverControls@ should be @size@.
-
-
-glGetDriverControlsQCOM :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetDriverControlsQCOM = ffiPtrintsizeiPtruintIOV glGetDriverControlsQCOMFunPtr
-
-glGetDriverControlsQCOMFunPtr :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetDriverControlsQCOMFunPtr = unsafePerformIO (getProcAddress "glGetDriverControlsQCOM")
-
-{-# NOINLINE glGetDriverControlsQCOMFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/ExtendedGet.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/ExtendedGet.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/ExtendedGet.hs
+++ /dev/null
@@ -1,163 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.ExtendedGet (
-  -- * Extension Support
-    gl_QCOM_extended_get
-
-  -- * GL_QCOM_extended_get
-  , glExtGetBufferPointervQCOM
-  , glExtGetBuffersQCOM
-  , glExtGetFramebuffersQCOM
-  , glExtGetRenderbuffersQCOM
-  , glExtGetTexLevelParameterivQCOM
-  , glExtGetTexSubImageQCOM
-  , glExtGetTexturesQCOM
-  , glExtTexObjectStateOverrideiQCOM
-  , pattern GL_STATE_RESTORE
-  , pattern GL_TEXTURE_DEPTH_QCOM
-  , pattern GL_TEXTURE_FORMAT_QCOM
-  , pattern GL_TEXTURE_HEIGHT_QCOM
-  , pattern GL_TEXTURE_IMAGE_VALID_QCOM
-  , pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM
-  , pattern GL_TEXTURE_NUM_LEVELS_QCOM
-  , pattern GL_TEXTURE_OBJECT_VALID_QCOM
-  , pattern GL_TEXTURE_TARGET_QCOM
-  , pattern GL_TEXTURE_TYPE_QCOM
-  , pattern GL_TEXTURE_WIDTH_QCOM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt GL_QCOM_extended_get> extension is available.
-
-gl_QCOM_extended_get :: Bool
-gl_QCOM_extended_get = member "GL_QCOM_extended_get" extensions
-{-# NOINLINE gl_QCOM_extended_get #-}
-
--- | Usage: @'glExtGetBufferPointervQCOM' target params@
-
-
-glExtGetBufferPointervQCOM :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
-glExtGetBufferPointervQCOM = ffienumPtrPtrVIOV glExtGetBufferPointervQCOMFunPtr
-
-glExtGetBufferPointervQCOMFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-glExtGetBufferPointervQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetBufferPointervQCOM")
-
-{-# NOINLINE glExtGetBufferPointervQCOMFunPtr #-}
-
--- | Usage: @'glExtGetBuffersQCOM' buffers maxBuffers numBuffers@
---
--- The length of @buffers@ should be @maxBuffers@.
---
--- The length of @numBuffers@ should be @1@.
-
-
-glExtGetBuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
-glExtGetBuffersQCOM = ffiPtruintintPtrintIOV glExtGetBuffersQCOMFunPtr
-
-glExtGetBuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
-glExtGetBuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetBuffersQCOM")
-
-{-# NOINLINE glExtGetBuffersQCOMFunPtr #-}
-
--- | Usage: @'glExtGetFramebuffersQCOM' framebuffers maxFramebuffers numFramebuffers@
---
--- The length of @framebuffers@ should be @maxFramebuffers@.
---
--- The length of @numFramebuffers@ should be @1@.
-
-
-glExtGetFramebuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
-glExtGetFramebuffersQCOM = ffiPtruintintPtrintIOV glExtGetFramebuffersQCOMFunPtr
-
-glExtGetFramebuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
-glExtGetFramebuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetFramebuffersQCOM")
-
-{-# NOINLINE glExtGetFramebuffersQCOMFunPtr #-}
-
--- | Usage: @'glExtGetRenderbuffersQCOM' renderbuffers maxRenderbuffers numRenderbuffers@
---
--- The length of @renderbuffers@ should be @maxRenderbuffers@.
---
--- The length of @numRenderbuffers@ should be @1@.
-
-
-glExtGetRenderbuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
-glExtGetRenderbuffersQCOM = ffiPtruintintPtrintIOV glExtGetRenderbuffersQCOMFunPtr
-
-glExtGetRenderbuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
-glExtGetRenderbuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetRenderbuffersQCOM")
-
-{-# NOINLINE glExtGetRenderbuffersQCOMFunPtr #-}
-
--- | Usage: @'glExtGetTexLevelParameterivQCOM' texture face level pname params@
-
-
-glExtGetTexLevelParameterivQCOM :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glExtGetTexLevelParameterivQCOM = ffiuintenumintenumPtrintIOV glExtGetTexLevelParameterivQCOMFunPtr
-
-glExtGetTexLevelParameterivQCOMFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glExtGetTexLevelParameterivQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexLevelParameterivQCOM")
-
-{-# NOINLINE glExtGetTexLevelParameterivQCOMFunPtr #-}
-
--- | Usage: @'glExtGetTexSubImageQCOM' target level xoffset yoffset zoffset width height depth format type texels@
-
-
-glExtGetTexSubImageQCOM :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glExtGetTexSubImageQCOM = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glExtGetTexSubImageQCOMFunPtr
-
-glExtGetTexSubImageQCOMFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glExtGetTexSubImageQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexSubImageQCOM")
-
-{-# NOINLINE glExtGetTexSubImageQCOMFunPtr #-}
-
--- | Usage: @'glExtGetTexturesQCOM' textures maxTextures numTextures@
-
-
-glExtGetTexturesQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
-glExtGetTexturesQCOM = ffiPtruintintPtrintIOV glExtGetTexturesQCOMFunPtr
-
-glExtGetTexturesQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
-glExtGetTexturesQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexturesQCOM")
-
-{-# NOINLINE glExtGetTexturesQCOMFunPtr #-}
-
--- | Usage: @'glExtTexObjectStateOverrideiQCOM' target pname param@
-
-
-glExtTexObjectStateOverrideiQCOM :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glExtTexObjectStateOverrideiQCOM = ffienumenumintIOV glExtTexObjectStateOverrideiQCOMFunPtr
-
-glExtTexObjectStateOverrideiQCOMFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glExtTexObjectStateOverrideiQCOMFunPtr = unsafePerformIO (getProcAddress "glExtTexObjectStateOverrideiQCOM")
-
-{-# NOINLINE glExtTexObjectStateOverrideiQCOMFunPtr #-}
-
-pattern GL_STATE_RESTORE = 0x8BDC
-
-pattern GL_TEXTURE_DEPTH_QCOM = 0x8BD4
-
-pattern GL_TEXTURE_FORMAT_QCOM = 0x8BD6
-
-pattern GL_TEXTURE_HEIGHT_QCOM = 0x8BD3
-
-pattern GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8
-
-pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5
-
-pattern GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9
-
-pattern GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB
-
-pattern GL_TEXTURE_TARGET_QCOM = 0x8BDA
-
-pattern GL_TEXTURE_TYPE_QCOM = 0x8BD7
-
-pattern GL_TEXTURE_WIDTH_QCOM = 0x8BD2
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/ExtendedGet2.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/ExtendedGet2.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/ExtendedGet2.hs
+++ /dev/null
@@ -1,78 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.ExtendedGet2 (
-  -- * Extension Support
-    gl_QCOM_extended_get2
-
-  -- * GL_QCOM_extended_get2
-  , glExtGetProgramBinarySourceQCOM
-  , glExtGetProgramsQCOM
-  , glExtGetShadersQCOM
-  , glExtIsProgramBinaryQCOM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt GL_QCOM_extended_get2> extension is available.
-
-gl_QCOM_extended_get2 :: Bool
-gl_QCOM_extended_get2 = member "GL_QCOM_extended_get2" extensions
-{-# NOINLINE gl_QCOM_extended_get2 #-}
-
--- | Usage: @'glExtGetProgramBinarySourceQCOM' program shadertype source length@
-
-
-glExtGetProgramBinarySourceQCOM :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
-glExtGetProgramBinarySourceQCOM = ffiuintenumPtrcharPtrintIOV glExtGetProgramBinarySourceQCOMFunPtr
-
-glExtGetProgramBinarySourceQCOMFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ())
-glExtGetProgramBinarySourceQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetProgramBinarySourceQCOM")
-
-{-# NOINLINE glExtGetProgramBinarySourceQCOMFunPtr #-}
-
--- | Usage: @'glExtGetProgramsQCOM' programs maxPrograms numPrograms@
---
--- The length of @programs@ should be @maxPrograms@.
---
--- The length of @numPrograms@ should be @1@.
-
-
-glExtGetProgramsQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
-glExtGetProgramsQCOM = ffiPtruintintPtrintIOV glExtGetProgramsQCOMFunPtr
-
-glExtGetProgramsQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
-glExtGetProgramsQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetProgramsQCOM")
-
-{-# NOINLINE glExtGetProgramsQCOMFunPtr #-}
-
--- | Usage: @'glExtGetShadersQCOM' shaders maxShaders numShaders@
---
--- The length of @shaders@ should be @maxShaders@.
---
--- The length of @numShaders@ should be @1@.
-
-
-glExtGetShadersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
-glExtGetShadersQCOM = ffiPtruintintPtrintIOV glExtGetShadersQCOMFunPtr
-
-glExtGetShadersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
-glExtGetShadersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetShadersQCOM")
-
-{-# NOINLINE glExtGetShadersQCOMFunPtr #-}
-
--- | Usage: @'glExtIsProgramBinaryQCOM' program@
-
-
-glExtIsProgramBinaryQCOM :: MonadIO m => GLuint -> m GLboolean
-glExtIsProgramBinaryQCOM = ffiuintIOboolean glExtIsProgramBinaryQCOMFunPtr
-
-glExtIsProgramBinaryQCOMFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glExtIsProgramBinaryQCOMFunPtr = unsafePerformIO (getProcAddress "glExtIsProgramBinaryQCOM")
-
-{-# NOINLINE glExtIsProgramBinaryQCOMFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.PerfmonGlobalMode (
-  -- * Extension Support
-    gl_QCOM_perfmon_global_mode
-
-  -- * GL_QCOM_perfmon_global_mode
-  , pattern GL_PERFMON_GLOBAL_MODE_QCOM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_QCOM_perfmon_global_mode extension is available.
-
-gl_QCOM_perfmon_global_mode :: Bool
-gl_QCOM_perfmon_global_mode = member "GL_QCOM_perfmon_global_mode" extensions
-{-# NOINLINE gl_QCOM_perfmon_global_mode #-}
-
-pattern GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/TiledRendering.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/TiledRendering.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/TiledRendering.hs
+++ /dev/null
@@ -1,142 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.TiledRendering (
-  -- * Extension Support
-    gl_QCOM_tiled_rendering
-
-  -- * GL_QCOM_tiled_rendering
-  , glEndTilingQCOM
-  , glStartTilingQCOM
-  , pattern GL_COLOR_BUFFER_BIT0_QCOM
-  , pattern GL_COLOR_BUFFER_BIT1_QCOM
-  , pattern GL_COLOR_BUFFER_BIT2_QCOM
-  , pattern GL_COLOR_BUFFER_BIT3_QCOM
-  , pattern GL_COLOR_BUFFER_BIT4_QCOM
-  , pattern GL_COLOR_BUFFER_BIT5_QCOM
-  , pattern GL_COLOR_BUFFER_BIT6_QCOM
-  , pattern GL_COLOR_BUFFER_BIT7_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT0_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT1_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT2_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT3_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT4_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT5_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT6_QCOM
-  , pattern GL_DEPTH_BUFFER_BIT7_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM
-  , pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT0_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT1_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT2_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT3_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT4_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT5_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT6_QCOM
-  , pattern GL_STENCIL_BUFFER_BIT7_QCOM
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_tiled_rendering.txt GL_QCOM_tiled_rendering> extension is available.
-
-gl_QCOM_tiled_rendering :: Bool
-gl_QCOM_tiled_rendering = member "GL_QCOM_tiled_rendering" extensions
-{-# NOINLINE gl_QCOM_tiled_rendering #-}
-
--- | Usage: @'glEndTilingQCOM' preserveMask@
-
-
-glEndTilingQCOM :: MonadIO m => GLbitfield -> m ()
-glEndTilingQCOM = ffibitfieldIOV glEndTilingQCOMFunPtr
-
-glEndTilingQCOMFunPtr :: FunPtr (GLbitfield -> IO ())
-glEndTilingQCOMFunPtr = unsafePerformIO (getProcAddress "glEndTilingQCOM")
-
-{-# NOINLINE glEndTilingQCOMFunPtr #-}
-
--- | Usage: @'glStartTilingQCOM' x y width height preserveMask@
-
-
-glStartTilingQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()
-glStartTilingQCOM = ffiuintuintuintuintbitfieldIOV glStartTilingQCOMFunPtr
-
-glStartTilingQCOMFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ())
-glStartTilingQCOMFunPtr = unsafePerformIO (getProcAddress "glStartTilingQCOM")
-
-{-# NOINLINE glStartTilingQCOMFunPtr #-}
-
-pattern GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001
-
-pattern GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002
-
-pattern GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004
-
-pattern GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008
-
-pattern GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010
-
-pattern GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020
-
-pattern GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040
-
-pattern GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080
-
-pattern GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100
-
-pattern GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200
-
-pattern GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400
-
-pattern GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800
-
-pattern GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000
-
-pattern GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000
-
-pattern GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000
-
-pattern GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000
-
-pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000
-
-pattern GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000
-
-pattern GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000
-
-pattern GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000
-
-pattern GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000
-
-pattern GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000
-
-pattern GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000
-
-pattern GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000
-
-pattern GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000
diff --git a/dist/build/autogen/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs b/dist/build/autogen/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.QCOM.WriteonlyRendering (
-  -- * Extension Support
-    gl_QCOM_writeonly_rendering
-
-  -- * GL_QCOM_writeonly_rendering
-  , pattern GL_WRITEONLY_RENDERING_QCOM
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_writeonly_rendering.txt GL_QCOM_writeonly_rendering> extension is available.
-
-gl_QCOM_writeonly_rendering :: Bool
-gl_QCOM_writeonly_rendering = member "GL_QCOM_writeonly_rendering" extensions
-{-# NOINLINE gl_QCOM_writeonly_rendering #-}
-
-pattern GL_WRITEONLY_RENDERING_QCOM = 0x8823
diff --git a/dist/build/autogen/Graphics/GL/Ext/REND.hs b/dist/build/autogen/Graphics/GL/Ext/REND.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/REND.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.REND (
-  -- * REND Extensions
-    module Graphics.GL.Ext.REND.ScreenCoordinates
-) where
-
-import Graphics.GL.Ext.REND.ScreenCoordinates
diff --git a/dist/build/autogen/Graphics/GL/Ext/REND/ScreenCoordinates.hs b/dist/build/autogen/Graphics/GL/Ext/REND/ScreenCoordinates.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/REND/ScreenCoordinates.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.REND.ScreenCoordinates (
-  -- * Extension Support
-    gl_REND_screen_coordinates
-
-  -- * GL_REND_screen_coordinates
-  , pattern GL_INVERTED_SCREEN_W_REND
-  , pattern GL_SCREEN_COORDINATES_REND
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/REND/screen_coordinates.txt GL_REND_screen_coordinates> extension is available.
-
-gl_REND_screen_coordinates :: Bool
-gl_REND_screen_coordinates = member "GL_REND_screen_coordinates" extensions
-{-# NOINLINE gl_REND_screen_coordinates #-}
-
-pattern GL_INVERTED_SCREEN_W_REND = 0x8491
-
-pattern GL_SCREEN_COORDINATES_REND = 0x8490
diff --git a/dist/build/autogen/Graphics/GL/Ext/S3.hs b/dist/build/autogen/Graphics/GL/Ext/S3.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/S3.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.S3 (
-  -- * S3 Extensions
-    module Graphics.GL.Ext.S3.S3tc
-) where
-
-import Graphics.GL.Ext.S3.S3tc
diff --git a/dist/build/autogen/Graphics/GL/Ext/S3/S3tc.hs b/dist/build/autogen/Graphics/GL/Ext/S3/S3tc.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/S3/S3tc.hs
+++ /dev/null
@@ -1,35 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.S3.S3tc (
-  -- * Extension Support
-    gl_S3_s3tc
-
-  -- * GL_S3_s3tc
-  , pattern GL_RGB4_S3TC
-  , pattern GL_RGBA4_DXT5_S3TC
-  , pattern GL_RGBA4_S3TC
-  , pattern GL_RGBA_DXT5_S3TC
-  , pattern GL_RGBA_S3TC
-  , pattern GL_RGB_S3TC
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/S3/s3tc.txt GL_S3_s3tc> extension is available.
-
-gl_S3_s3tc :: Bool
-gl_S3_s3tc = member "GL_S3_s3tc" extensions
-{-# NOINLINE gl_S3_s3tc #-}
-
-pattern GL_RGB4_S3TC = 0x83A1
-
-pattern GL_RGBA4_DXT5_S3TC = 0x83A5
-
-pattern GL_RGBA4_S3TC = 0x83A3
-
-pattern GL_RGBA_DXT5_S3TC = 0x83A4
-
-pattern GL_RGBA_S3TC = 0x83A2
-
-pattern GL_RGB_S3TC = 0x83A0
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGI.hs b/dist/build/autogen/Graphics/GL/Ext/SGI.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGI.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGI (
-  -- * SGI Extensions
-    module Graphics.GL.Ext.SGI.ColorMatrix
-  , module Graphics.GL.Ext.SGI.ColorTable
-  , module Graphics.GL.Ext.SGI.TextureColorTable
-) where
-
-import Graphics.GL.Ext.SGI.ColorMatrix
-import Graphics.GL.Ext.SGI.ColorTable
-import Graphics.GL.Ext.SGI.TextureColorTable
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGI/ColorMatrix.hs b/dist/build/autogen/Graphics/GL/Ext/SGI/ColorMatrix.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGI/ColorMatrix.hs
+++ /dev/null
@@ -1,50 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGI.ColorMatrix (
-  -- * Extension Support
-    gl_SGI_color_matrix
-
-  -- * GL_SGI_color_matrix
-  , pattern GL_COLOR_MATRIX_SGI
-  , pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI
-  , pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
-  , pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
-  , pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
-  , pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
-  , pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
-  , pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
-  , pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
-  , pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI
-  , pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_matrix.txt GL_SGI_color_matrix> extension is available.
-
-gl_SGI_color_matrix :: Bool
-gl_SGI_color_matrix = member "GL_SGI_color_matrix" extensions
-{-# NOINLINE gl_SGI_color_matrix #-}
-
-pattern GL_COLOR_MATRIX_SGI = 0x80B1
-
-pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2
-
-pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3
-
-pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB
-
-pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7
-
-pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA
-
-pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6
-
-pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9
-
-pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5
-
-pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8
-
-pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGI/ColorTable.hs b/dist/build/autogen/Graphics/GL/Ext/SGI/ColorTable.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGI/ColorTable.hs
+++ /dev/null
@@ -1,216 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGI.ColorTable (
-  -- * Extension Support
-    gl_SGI_color_table
-
-  -- * GL_SGI_color_table
-  , glColorTableParameterfvSGI
-  , glColorTableParameterivSGI
-  , glColorTableSGI
-  , glCopyColorTableSGI
-  , glGetColorTableParameterfvSGI
-  , glGetColorTableParameterivSGI
-  , glGetColorTableSGI
-  , pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI
-  , pattern GL_COLOR_TABLE_BIAS_SGI
-  , pattern GL_COLOR_TABLE_BLUE_SIZE_SGI
-  , pattern GL_COLOR_TABLE_FORMAT_SGI
-  , pattern GL_COLOR_TABLE_GREEN_SIZE_SGI
-  , pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI
-  , pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI
-  , pattern GL_COLOR_TABLE_RED_SIZE_SGI
-  , pattern GL_COLOR_TABLE_SCALE_SGI
-  , pattern GL_COLOR_TABLE_SGI
-  , pattern GL_COLOR_TABLE_WIDTH_SGI
-  , pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
-  , pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI
-  , pattern GL_PROXY_COLOR_TABLE_SGI
-  , pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI
-  , pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_table.txt GL_SGI_color_table> extension is available.
-
-gl_SGI_color_table :: Bool
-gl_SGI_color_table = member "GL_SGI_color_table" extensions
-{-# NOINLINE gl_SGI_color_table #-}
-
--- | Usage: @'glColorTableParameterfvSGI' target pname params@
---
--- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
---
--- The parameter @pname@ is a @ColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_BIAS', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_SCALE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTableParameterfv'.
-
-
-glColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glColorTableParameterfvSGI = ffienumenumPtrfloatIOV glColorTableParameterfvSGIFunPtr
-
-glColorTableParameterfvSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glColorTableParameterfvSGIFunPtr = unsafePerformIO (getProcAddress "glColorTableParameterfvSGI")
-
-{-# NOINLINE glColorTableParameterfvSGIFunPtr #-}
-
--- | Usage: @'glColorTableParameterivSGI' target pname params@
---
--- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
---
--- The parameter @pname@ is a @ColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_BIAS', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_SCALE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTableParameteriv'.
-
-
-glColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glColorTableParameterivSGI = ffienumenumPtrintIOV glColorTableParameterivSGIFunPtr
-
-glColorTableParameterivSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glColorTableParameterivSGIFunPtr = unsafePerformIO (getProcAddress "glColorTableParameterivSGI")
-
-{-# NOINLINE glColorTableParameterivSGIFunPtr #-}
-
--- | Usage: @'glColorTableSGI' target internalformat width format type table@
---
--- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @table@ should be @COMPSIZE(format,type,width)@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTable'.
-
-
-glColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glColorTableSGI = ffienumenumsizeienumenumPtrVIOV glColorTableSGIFunPtr
-
-glColorTableSGIFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glColorTableSGIFunPtr = unsafePerformIO (getProcAddress "glColorTableSGI")
-
-{-# NOINLINE glColorTableSGIFunPtr #-}
-
--- | Usage: @'glCopyColorTableSGI' target internalformat x y width@
---
--- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyColorTable'.
-
-
-glCopyColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
-glCopyColorTableSGI = ffienumenumintintsizeiIOV glCopyColorTableSGIFunPtr
-
-glCopyColorTableSGIFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
-glCopyColorTableSGIFunPtr = unsafePerformIO (getProcAddress "glCopyColorTableSGI")
-
-{-# NOINLINE glCopyColorTableSGIFunPtr #-}
-
--- | Usage: @'glGetColorTableParameterfvSGI' target pname params@
---
--- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
---
--- The parameter @pname@ is a @GetColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_ALPHA_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BLUE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_FORMAT_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_GREEN_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_INTENSITY_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_LUMINANCE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_RED_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_WIDTH_SGI'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetColorTableParameterfvSGI = ffienumenumPtrfloatIOV glGetColorTableParameterfvSGIFunPtr
-
-glGetColorTableParameterfvSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetColorTableParameterfvSGIFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfvSGI")
-
-{-# NOINLINE glGetColorTableParameterfvSGIFunPtr #-}
-
--- | Usage: @'glGetColorTableParameterivSGI' target pname params@
---
--- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
---
--- The parameter @pname@ is a @GetColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_ALPHA_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BLUE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_FORMAT_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_GREEN_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_INTENSITY_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_LUMINANCE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_RED_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_WIDTH_SGI'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetColorTableParameterivSGI = ffienumenumPtrintIOV glGetColorTableParameterivSGIFunPtr
-
-glGetColorTableParameterivSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetColorTableParameterivSGIFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterivSGI")
-
-{-# NOINLINE glGetColorTableParameterivSGIFunPtr #-}
-
--- | Usage: @'glGetColorTableSGI' target format type table@
---
--- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @table@ should be @COMPSIZE(target,format,type)@.
-
-
-glGetColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glGetColorTableSGI = ffienumenumenumPtrVIOV glGetColorTableSGIFunPtr
-
-glGetColorTableSGIFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetColorTableSGIFunPtr = unsafePerformIO (getProcAddress "glGetColorTableSGI")
-
-{-# NOINLINE glGetColorTableSGIFunPtr #-}
-
-pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD
-
-pattern GL_COLOR_TABLE_BIAS_SGI = 0x80D7
-
-pattern GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC
-
-pattern GL_COLOR_TABLE_FORMAT_SGI = 0x80D8
-
-pattern GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB
-
-pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF
-
-pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE
-
-pattern GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA
-
-pattern GL_COLOR_TABLE_SCALE_SGI = 0x80D6
-
-pattern GL_COLOR_TABLE_SGI = 0x80D0
-
-pattern GL_COLOR_TABLE_WIDTH_SGI = 0x80D9
-
-pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2
-
-pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1
-
-pattern GL_PROXY_COLOR_TABLE_SGI = 0x80D3
-
-pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5
-
-pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGI/TextureColorTable.hs b/dist/build/autogen/Graphics/GL/Ext/SGI/TextureColorTable.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGI/TextureColorTable.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGI.TextureColorTable (
-  -- * Extension Support
-    gl_SGI_texture_color_table
-
-  -- * GL_SGI_texture_color_table
-  , pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI
-  , pattern GL_TEXTURE_COLOR_TABLE_SGI
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/texture_color_table.txt GL_SGI_texture_color_table> extension is available.
-
-gl_SGI_texture_color_table :: Bool
-gl_SGI_texture_color_table = member "GL_SGI_texture_color_table" extensions
-{-# NOINLINE gl_SGI_texture_color_table #-}
-
-pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD
-
-pattern GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS (
-  -- * SGIS Extensions
-    module Graphics.GL.Ext.SGIS.DetailTexture
-  , module Graphics.GL.Ext.SGIS.FogFunction
-  , module Graphics.GL.Ext.SGIS.GenerateMipmap
-  , module Graphics.GL.Ext.SGIS.Multisample
-  , module Graphics.GL.Ext.SGIS.PixelTexture
-  , module Graphics.GL.Ext.SGIS.PointLineTexgen
-  , module Graphics.GL.Ext.SGIS.PointParameters
-  , module Graphics.GL.Ext.SGIS.SharpenTexture
-  , module Graphics.GL.Ext.SGIS.Texture4D
-  , module Graphics.GL.Ext.SGIS.TextureBorderClamp
-  , module Graphics.GL.Ext.SGIS.TextureColorMask
-  , module Graphics.GL.Ext.SGIS.TextureEdgeClamp
-  , module Graphics.GL.Ext.SGIS.TextureFilter4
-  , module Graphics.GL.Ext.SGIS.TextureLod
-  , module Graphics.GL.Ext.SGIS.TextureSelect
-) where
-
-import Graphics.GL.Ext.SGIS.DetailTexture
-import Graphics.GL.Ext.SGIS.FogFunction
-import Graphics.GL.Ext.SGIS.GenerateMipmap
-import Graphics.GL.Ext.SGIS.Multisample
-import Graphics.GL.Ext.SGIS.PixelTexture
-import Graphics.GL.Ext.SGIS.PointLineTexgen
-import Graphics.GL.Ext.SGIS.PointParameters
-import Graphics.GL.Ext.SGIS.SharpenTexture
-import Graphics.GL.Ext.SGIS.Texture4D
-import Graphics.GL.Ext.SGIS.TextureBorderClamp
-import Graphics.GL.Ext.SGIS.TextureColorMask
-import Graphics.GL.Ext.SGIS.TextureEdgeClamp
-import Graphics.GL.Ext.SGIS.TextureFilter4
-import Graphics.GL.Ext.SGIS.TextureLod
-import Graphics.GL.Ext.SGIS.TextureSelect
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/DetailTexture.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/DetailTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/DetailTexture.hs
+++ /dev/null
@@ -1,78 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.DetailTexture (
-  -- * Extension Support
-    gl_SGIS_detail_texture
-
-  -- * GL_SGIS_detail_texture
-  , glDetailTexFuncSGIS
-  , glGetDetailTexFuncSGIS
-  , pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS
-  , pattern GL_DETAIL_TEXTURE_2D_SGIS
-  , pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS
-  , pattern GL_DETAIL_TEXTURE_LEVEL_SGIS
-  , pattern GL_DETAIL_TEXTURE_MODE_SGIS
-  , pattern GL_LINEAR_DETAIL_ALPHA_SGIS
-  , pattern GL_LINEAR_DETAIL_COLOR_SGIS
-  , pattern GL_LINEAR_DETAIL_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/detail_texture.txt GL_SGIS_detail_texture> extension is available.
-
-gl_SGIS_detail_texture :: Bool
-gl_SGIS_detail_texture = member "GL_SGIS_detail_texture" extensions
-{-# NOINLINE gl_SGIS_detail_texture #-}
-
--- | Usage: @'glDetailTexFuncSGIS' target n points@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The length of @points@ should be @n*2@.
-
-
-glDetailTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glDetailTexFuncSGIS = ffienumsizeiPtrfloatIOV glDetailTexFuncSGISFunPtr
-
-glDetailTexFuncSGISFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glDetailTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glDetailTexFuncSGIS")
-
-{-# NOINLINE glDetailTexFuncSGISFunPtr #-}
-
--- | Usage: @'glGetDetailTexFuncSGIS' target points@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The length of @points@ should be @COMPSIZE(target)@.
-
-
-glGetDetailTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetDetailTexFuncSGIS = ffienumPtrfloatIOV glGetDetailTexFuncSGISFunPtr
-
-glGetDetailTexFuncSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetDetailTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetDetailTexFuncSGIS")
-
-{-# NOINLINE glGetDetailTexFuncSGISFunPtr #-}
-
-pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096
-
-pattern GL_DETAIL_TEXTURE_2D_SGIS = 0x8095
-
-pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C
-
-pattern GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A
-
-pattern GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B
-
-pattern GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098
-
-pattern GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099
-
-pattern GL_LINEAR_DETAIL_SGIS = 0x8097
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/FogFunction.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/FogFunction.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/FogFunction.hs
+++ /dev/null
@@ -1,59 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.FogFunction (
-  -- * Extension Support
-    gl_SGIS_fog_function
-
-  -- * GL_SGIS_fog_function
-  , glFogFuncSGIS
-  , glGetFogFuncSGIS
-  , pattern GL_FOG_FUNC_POINTS_SGIS
-  , pattern GL_FOG_FUNC_SGIS
-  , pattern GL_MAX_FOG_FUNC_POINTS_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_SGIS_fog_function extension is available.
-
-gl_SGIS_fog_function :: Bool
-gl_SGIS_fog_function = member "GL_SGIS_fog_function" extensions
-{-# NOINLINE gl_SGIS_fog_function #-}
-
--- | Usage: @'glFogFuncSGIS' n points@
---
--- The length of @points@ should be @n*2@.
-
-
-glFogFuncSGIS :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
-glFogFuncSGIS = ffisizeiPtrfloatIOV glFogFuncSGISFunPtr
-
-glFogFuncSGISFunPtr :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
-glFogFuncSGISFunPtr = unsafePerformIO (getProcAddress "glFogFuncSGIS")
-
-{-# NOINLINE glFogFuncSGISFunPtr #-}
-
--- | Usage: @'glGetFogFuncSGIS' points@
---
--- The length of @points@ should be @COMPSIZE()@.
-
-
-glGetFogFuncSGIS :: MonadIO m => Ptr GLfloat -> m ()
-glGetFogFuncSGIS = ffiPtrfloatIOV glGetFogFuncSGISFunPtr
-
-glGetFogFuncSGISFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glGetFogFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetFogFuncSGIS")
-
-{-# NOINLINE glGetFogFuncSGISFunPtr #-}
-
-pattern GL_FOG_FUNC_POINTS_SGIS = 0x812B
-
-pattern GL_FOG_FUNC_SGIS = 0x812A
-
-pattern GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/GenerateMipmap.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/GenerateMipmap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/GenerateMipmap.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.GenerateMipmap (
-  -- * Extension Support
-    gl_SGIS_generate_mipmap
-
-  -- * GL_SGIS_generate_mipmap
-  , pattern GL_GENERATE_MIPMAP_HINT_SGIS
-  , pattern GL_GENERATE_MIPMAP_SGIS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/generate_mipmap.txt GL_SGIS_generate_mipmap> extension is available.
-
-gl_SGIS_generate_mipmap :: Bool
-gl_SGIS_generate_mipmap = member "GL_SGIS_generate_mipmap" extensions
-{-# NOINLINE gl_SGIS_generate_mipmap #-}
-
-pattern GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192
-
-pattern GL_GENERATE_MIPMAP_SGIS = 0x8191
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/Multisample.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/Multisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/Multisample.hs
+++ /dev/null
@@ -1,104 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.Multisample (
-  -- * Extension Support
-    gl_SGIS_multisample
-
-  -- * GL_SGIS_multisample
-  , glSampleMaskSGIS
-  , glSamplePatternSGIS
-  , pattern GL_1PASS_SGIS
-  , pattern GL_2PASS_0_SGIS
-  , pattern GL_2PASS_1_SGIS
-  , pattern GL_4PASS_0_SGIS
-  , pattern GL_4PASS_1_SGIS
-  , pattern GL_4PASS_2_SGIS
-  , pattern GL_4PASS_3_SGIS
-  , pattern GL_MULTISAMPLE_SGIS
-  , pattern GL_SAMPLES_SGIS
-  , pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS
-  , pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS
-  , pattern GL_SAMPLE_BUFFERS_SGIS
-  , pattern GL_SAMPLE_MASK_INVERT_SGIS
-  , pattern GL_SAMPLE_MASK_SGIS
-  , pattern GL_SAMPLE_MASK_VALUE_SGIS
-  , pattern GL_SAMPLE_PATTERN_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/multisample.txt GL_SGIS_multisample> extension is available.
-
-gl_SGIS_multisample :: Bool
-gl_SGIS_multisample = member "GL_SGIS_multisample" extensions
-{-# NOINLINE gl_SGIS_multisample #-}
-
--- | Usage: @'glSampleMaskSGIS' value invert@
---
--- The parameter @value@ is a @ClampedFloat32@.
---
--- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- This command is an alias for 'Graphics.GL.Ext.EXT.Multisample.glSampleMaskEXT'.
-
-
-glSampleMaskSGIS :: MonadIO m => GLclampf -> GLboolean -> m ()
-glSampleMaskSGIS = fficlampfbooleanIOV glSampleMaskSGISFunPtr
-
-glSampleMaskSGISFunPtr :: FunPtr (GLclampf -> GLboolean -> IO ())
-glSampleMaskSGISFunPtr = unsafePerformIO (getProcAddress "glSampleMaskSGIS")
-
-{-# NOINLINE glSampleMaskSGISFunPtr #-}
-
--- | Usage: @'glSamplePatternSGIS' pattern@
---
--- The parameter @pattern@ is a @SamplePatternSGIS@, one of: 'Graphics.GL.Ext.EXT.Multisample.GL_1PASS_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_1PASS_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_2PASS_0_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_2PASS_0_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_2PASS_1_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_2PASS_1_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_0_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_0_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_1_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_1_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_2_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_2_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_3_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_3_SGIS'.
---
--- This command is an alias for 'Graphics.GL.Ext.EXT.Multisample.glSamplePatternEXT'.
-
-
-glSamplePatternSGIS :: MonadIO m => GLenum -> m ()
-glSamplePatternSGIS = ffienumIOV glSamplePatternSGISFunPtr
-
-glSamplePatternSGISFunPtr :: FunPtr (GLenum -> IO ())
-glSamplePatternSGISFunPtr = unsafePerformIO (getProcAddress "glSamplePatternSGIS")
-
-{-# NOINLINE glSamplePatternSGISFunPtr #-}
-
-pattern GL_1PASS_SGIS = 0x80A1
-
-pattern GL_2PASS_0_SGIS = 0x80A2
-
-pattern GL_2PASS_1_SGIS = 0x80A3
-
-pattern GL_4PASS_0_SGIS = 0x80A4
-
-pattern GL_4PASS_1_SGIS = 0x80A5
-
-pattern GL_4PASS_2_SGIS = 0x80A6
-
-pattern GL_4PASS_3_SGIS = 0x80A7
-
-pattern GL_MULTISAMPLE_SGIS = 0x809D
-
-pattern GL_SAMPLES_SGIS = 0x80A9
-
-pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E
-
-pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F
-
-pattern GL_SAMPLE_BUFFERS_SGIS = 0x80A8
-
-pattern GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB
-
-pattern GL_SAMPLE_MASK_SGIS = 0x80A0
-
-pattern GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA
-
-pattern GL_SAMPLE_PATTERN_SGIS = 0x80AC
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/PixelTexture.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/PixelTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/PixelTexture.hs
+++ /dev/null
@@ -1,138 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.PixelTexture (
-  -- * Extension Support
-    gl_SGIS_pixel_texture
-
-  -- * GL_SGIS_pixel_texture
-  , glGetPixelTexGenParameterfvSGIS
-  , glGetPixelTexGenParameterivSGIS
-  , glPixelTexGenParameterfSGIS
-  , glPixelTexGenParameterfvSGIS
-  , glPixelTexGenParameteriSGIS
-  , glPixelTexGenParameterivSGIS
-  , pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS
-  , pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS
-  , pattern GL_PIXEL_GROUP_COLOR_SGIS
-  , pattern GL_PIXEL_TEXTURE_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/pixel_texture.txt GL_SGIS_pixel_texture> extension is available.
-
-gl_SGIS_pixel_texture :: Bool
-gl_SGIS_pixel_texture = member "GL_SGIS_pixel_texture" extensions
-{-# NOINLINE gl_SGIS_pixel_texture #-}
-
--- | Usage: @'glGetPixelTexGenParameterfvSGIS' pname params@
---
--- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetPixelTexGenParameterfvSGIS = ffienumPtrfloatIOV glGetPixelTexGenParameterfvSGISFunPtr
-
-glGetPixelTexGenParameterfvSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetPixelTexGenParameterfvSGISFunPtr = unsafePerformIO (getProcAddress "glGetPixelTexGenParameterfvSGIS")
-
-{-# NOINLINE glGetPixelTexGenParameterfvSGISFunPtr #-}
-
--- | Usage: @'glGetPixelTexGenParameterivSGIS' pname params@
---
--- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glGetPixelTexGenParameterivSGIS = ffienumPtrintIOV glGetPixelTexGenParameterivSGISFunPtr
-
-glGetPixelTexGenParameterivSGISFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glGetPixelTexGenParameterivSGISFunPtr = unsafePerformIO (getProcAddress "glGetPixelTexGenParameterivSGIS")
-
-{-# NOINLINE glGetPixelTexGenParameterivSGISFunPtr #-}
-
--- | Usage: @'glPixelTexGenParameterfSGIS' pname param@
---
--- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glPixelTexGenParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
-glPixelTexGenParameterfSGIS = ffienumfloatIOV glPixelTexGenParameterfSGISFunPtr
-
-glPixelTexGenParameterfSGISFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPixelTexGenParameterfSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameterfSGIS")
-
-{-# NOINLINE glPixelTexGenParameterfSGISFunPtr #-}
-
--- | Usage: @'glPixelTexGenParameterfvSGIS' pname params@
---
--- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPixelTexGenParameterfvSGIS = ffienumPtrfloatIOV glPixelTexGenParameterfvSGISFunPtr
-
-glPixelTexGenParameterfvSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPixelTexGenParameterfvSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameterfvSGIS")
-
-{-# NOINLINE glPixelTexGenParameterfvSGISFunPtr #-}
-
--- | Usage: @'glPixelTexGenParameteriSGIS' pname param@
---
--- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glPixelTexGenParameteriSGIS :: MonadIO m => GLenum -> GLint -> m ()
-glPixelTexGenParameteriSGIS = ffienumintIOV glPixelTexGenParameteriSGISFunPtr
-
-glPixelTexGenParameteriSGISFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPixelTexGenParameteriSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameteriSGIS")
-
-{-# NOINLINE glPixelTexGenParameteriSGISFunPtr #-}
-
--- | Usage: @'glPixelTexGenParameterivSGIS' pname params@
---
--- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glPixelTexGenParameterivSGIS = ffienumPtrintIOV glPixelTexGenParameterivSGISFunPtr
-
-glPixelTexGenParameterivSGISFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glPixelTexGenParameterivSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameterivSGIS")
-
-{-# NOINLINE glPixelTexGenParameterivSGISFunPtr #-}
-
-pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355
-
-pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354
-
-pattern GL_PIXEL_GROUP_COLOR_SGIS = 0x8356
-
-pattern GL_PIXEL_TEXTURE_SGIS = 0x8353
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/PointLineTexgen.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/PointLineTexgen.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/PointLineTexgen.hs
+++ /dev/null
@@ -1,41 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.PointLineTexgen (
-  -- * Extension Support
-    gl_SGIS_point_line_texgen
-
-  -- * GL_SGIS_point_line_texgen
-  , pattern GL_EYE_DISTANCE_TO_LINE_SGIS
-  , pattern GL_EYE_DISTANCE_TO_POINT_SGIS
-  , pattern GL_EYE_LINE_SGIS
-  , pattern GL_EYE_POINT_SGIS
-  , pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS
-  , pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS
-  , pattern GL_OBJECT_LINE_SGIS
-  , pattern GL_OBJECT_POINT_SGIS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/point_line_texgen.txt GL_SGIS_point_line_texgen> extension is available.
-
-gl_SGIS_point_line_texgen :: Bool
-gl_SGIS_point_line_texgen = member "GL_SGIS_point_line_texgen" extensions
-{-# NOINLINE gl_SGIS_point_line_texgen #-}
-
-pattern GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2
-
-pattern GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0
-
-pattern GL_EYE_LINE_SGIS = 0x81F6
-
-pattern GL_EYE_POINT_SGIS = 0x81F4
-
-pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3
-
-pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1
-
-pattern GL_OBJECT_LINE_SGIS = 0x81F7
-
-pattern GL_OBJECT_POINT_SGIS = 0x81F5
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/PointParameters.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/PointParameters.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/PointParameters.hs
+++ /dev/null
@@ -1,72 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.PointParameters (
-  -- * Extension Support
-    gl_SGIS_point_parameters
-
-  -- * GL_SGIS_point_parameters
-  , glPointParameterfSGIS
-  , glPointParameterfvSGIS
-  , pattern GL_DISTANCE_ATTENUATION_SGIS
-  , pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS
-  , pattern GL_POINT_SIZE_MAX_SGIS
-  , pattern GL_POINT_SIZE_MIN_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_SGIS_point_parameters extension is available.
-
-gl_SGIS_point_parameters :: Bool
-gl_SGIS_point_parameters = member "GL_SGIS_point_parameters" extensions
-{-# NOINLINE gl_SGIS_point_parameters #-}
-
--- | Usage: @'glPointParameterfSGIS' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @param@ is a @CheckedFloat32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterf'.
-
-
-glPointParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
-glPointParameterfSGIS = ffienumfloatIOV glPointParameterfSGISFunPtr
-
-glPointParameterfSGISFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPointParameterfSGISFunPtr = unsafePerformIO (getProcAddress "glPointParameterfSGIS")
-
-{-# NOINLINE glPointParameterfSGISFunPtr #-}
-
--- | Usage: @'glPointParameterfvSGIS' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterfv'.
-
-
-glPointParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPointParameterfvSGIS = ffienumPtrfloatIOV glPointParameterfvSGISFunPtr
-
-glPointParameterfvSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPointParameterfvSGISFunPtr = unsafePerformIO (getProcAddress "glPointParameterfvSGIS")
-
-{-# NOINLINE glPointParameterfvSGISFunPtr #-}
-
-pattern GL_DISTANCE_ATTENUATION_SGIS = 0x8129
-
-pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128
-
-pattern GL_POINT_SIZE_MAX_SGIS = 0x8127
-
-pattern GL_POINT_SIZE_MIN_SGIS = 0x8126
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/SharpenTexture.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/SharpenTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/SharpenTexture.hs
+++ /dev/null
@@ -1,66 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.SharpenTexture (
-  -- * Extension Support
-    gl_SGIS_sharpen_texture
-
-  -- * GL_SGIS_sharpen_texture
-  , glGetSharpenTexFuncSGIS
-  , glSharpenTexFuncSGIS
-  , pattern GL_LINEAR_SHARPEN_ALPHA_SGIS
-  , pattern GL_LINEAR_SHARPEN_COLOR_SGIS
-  , pattern GL_LINEAR_SHARPEN_SGIS
-  , pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/sharpen_texture.txt GL_SGIS_sharpen_texture> extension is available.
-
-gl_SGIS_sharpen_texture :: Bool
-gl_SGIS_sharpen_texture = member "GL_SGIS_sharpen_texture" extensions
-{-# NOINLINE gl_SGIS_sharpen_texture #-}
-
--- | Usage: @'glGetSharpenTexFuncSGIS' target points@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The length of @points@ should be @COMPSIZE(target)@.
-
-
-glGetSharpenTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetSharpenTexFuncSGIS = ffienumPtrfloatIOV glGetSharpenTexFuncSGISFunPtr
-
-glGetSharpenTexFuncSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetSharpenTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetSharpenTexFuncSGIS")
-
-{-# NOINLINE glGetSharpenTexFuncSGISFunPtr #-}
-
--- | Usage: @'glSharpenTexFuncSGIS' target n points@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The length of @points@ should be @n*2@.
-
-
-glSharpenTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glSharpenTexFuncSGIS = ffienumsizeiPtrfloatIOV glSharpenTexFuncSGISFunPtr
-
-glSharpenTexFuncSGISFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glSharpenTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glSharpenTexFuncSGIS")
-
-{-# NOINLINE glSharpenTexFuncSGISFunPtr #-}
-
-pattern GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE
-
-pattern GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF
-
-pattern GL_LINEAR_SHARPEN_SGIS = 0x80AD
-
-pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/Texture4D.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/Texture4D.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/Texture4D.hs
+++ /dev/null
@@ -1,108 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.Texture4D (
-  -- * Extension Support
-    gl_SGIS_texture4D
-
-  -- * GL_SGIS_texture4D
-  , glTexImage4DSGIS
-  , glTexSubImage4DSGIS
-  , pattern GL_MAX_4D_TEXTURE_SIZE_SGIS
-  , pattern GL_PACK_IMAGE_DEPTH_SGIS
-  , pattern GL_PACK_SKIP_VOLUMES_SGIS
-  , pattern GL_PROXY_TEXTURE_4D_SGIS
-  , pattern GL_TEXTURE_4DSIZE_SGIS
-  , pattern GL_TEXTURE_4D_BINDING_SGIS
-  , pattern GL_TEXTURE_4D_SGIS
-  , pattern GL_TEXTURE_WRAP_Q_SGIS
-  , pattern GL_UNPACK_IMAGE_DEPTH_SGIS
-  , pattern GL_UNPACK_SKIP_VOLUMES_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture4D.txt GL_SGIS_texture4D> extension is available.
-
-gl_SGIS_texture4D :: Bool
-gl_SGIS_texture4D = member "GL_SGIS_texture4D" extensions
-{-# NOINLINE gl_SGIS_texture4D #-}
-
--- | Usage: @'glTexImage4DSGIS' target level internalformat width height depth size4d border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth,size4d)@.
-
-
-glTexImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage4DSGIS = ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV glTexImage4DSGISFunPtr
-
-glTexImage4DSGISFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage4DSGISFunPtr = unsafePerformIO (getProcAddress "glTexImage4DSGIS")
-
-{-# NOINLINE glTexImage4DSGISFunPtr #-}
-
--- | Usage: @'glTexSubImage4DSGIS' target level xoffset yoffset zoffset woffset width height depth size4d format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @woffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth,size4d)@.
-
-
-glTexSubImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage4DSGIS = ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV glTexSubImage4DSGISFunPtr
-
-glTexSubImage4DSGISFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage4DSGISFunPtr = unsafePerformIO (getProcAddress "glTexSubImage4DSGIS")
-
-{-# NOINLINE glTexSubImage4DSGISFunPtr #-}
-
-pattern GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138
-
-pattern GL_PACK_IMAGE_DEPTH_SGIS = 0x8131
-
-pattern GL_PACK_SKIP_VOLUMES_SGIS = 0x8130
-
-pattern GL_PROXY_TEXTURE_4D_SGIS = 0x8135
-
-pattern GL_TEXTURE_4DSIZE_SGIS = 0x8136
-
-pattern GL_TEXTURE_4D_BINDING_SGIS = 0x814F
-
-pattern GL_TEXTURE_4D_SGIS = 0x8134
-
-pattern GL_TEXTURE_WRAP_Q_SGIS = 0x8137
-
-pattern GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133
-
-pattern GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.TextureBorderClamp (
-  -- * Extension Support
-    gl_SGIS_texture_border_clamp
-
-  -- * GL_SGIS_texture_border_clamp
-  , pattern GL_CLAMP_TO_BORDER_SGIS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_border_clamp.txt GL_SGIS_texture_border_clamp> extension is available.
-
-gl_SGIS_texture_border_clamp :: Bool
-gl_SGIS_texture_border_clamp = member "GL_SGIS_texture_border_clamp" extensions
-{-# NOINLINE gl_SGIS_texture_border_clamp #-}
-
-pattern GL_CLAMP_TO_BORDER_SGIS = 0x812D
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureColorMask.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureColorMask.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureColorMask.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.TextureColorMask (
-  -- * Extension Support
-    gl_SGIS_texture_color_mask
-
-  -- * GL_SGIS_texture_color_mask
-  , glTextureColorMaskSGIS
-  , pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_color_mask.txt GL_SGIS_texture_color_mask> extension is available.
-
-gl_SGIS_texture_color_mask :: Bool
-gl_SGIS_texture_color_mask = member "GL_SGIS_texture_color_mask" extensions
-{-# NOINLINE gl_SGIS_texture_color_mask #-}
-
--- | Usage: @'glTextureColorMaskSGIS' red green blue alpha@
---
--- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glTextureColorMaskSGIS :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glTextureColorMaskSGIS = ffibooleanbooleanbooleanbooleanIOV glTextureColorMaskSGISFunPtr
-
-glTextureColorMaskSGISFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glTextureColorMaskSGISFunPtr = unsafePerformIO (getProcAddress "glTextureColorMaskSGIS")
-
-{-# NOINLINE glTextureColorMaskSGISFunPtr #-}
-
-pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.TextureEdgeClamp (
-  -- * Extension Support
-    gl_SGIS_texture_edge_clamp
-
-  -- * GL_SGIS_texture_edge_clamp
-  , pattern GL_CLAMP_TO_EDGE_SGIS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_edge_clamp.txt GL_SGIS_texture_edge_clamp> extension is available.
-
-gl_SGIS_texture_edge_clamp :: Bool
-gl_SGIS_texture_edge_clamp = member "GL_SGIS_texture_edge_clamp" extensions
-{-# NOINLINE gl_SGIS_texture_edge_clamp #-}
-
-pattern GL_CLAMP_TO_EDGE_SGIS = 0x812F
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureFilter4.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureFilter4.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureFilter4.hs
+++ /dev/null
@@ -1,64 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.TextureFilter4 (
-  -- * Extension Support
-    gl_SGIS_texture_filter4
-
-  -- * GL_SGIS_texture_filter4
-  , glGetTexFilterFuncSGIS
-  , glTexFilterFuncSGIS
-  , pattern GL_FILTER4_SGIS
-  , pattern GL_TEXTURE_FILTER4_SIZE_SGIS
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_filter4.txt GL_SGIS_texture_filter4> extension is available.
-
-gl_SGIS_texture_filter4 :: Bool
-gl_SGIS_texture_filter4 = member "GL_SGIS_texture_filter4" extensions
-{-# NOINLINE gl_SGIS_texture_filter4 #-}
-
--- | Usage: @'glGetTexFilterFuncSGIS' target filter weights@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @filter@ is a @TextureFilterSGIS@.
---
--- The length of @weights@ should be @COMPSIZE(target,filter)@.
-
-
-glGetTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexFilterFuncSGIS = ffienumenumPtrfloatIOV glGetTexFilterFuncSGISFunPtr
-
-glGetTexFilterFuncSGISFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexFilterFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetTexFilterFuncSGIS")
-
-{-# NOINLINE glGetTexFilterFuncSGISFunPtr #-}
-
--- | Usage: @'glTexFilterFuncSGIS' target filter n weights@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @filter@ is a @TextureFilterSGIS@.
---
--- The length of @weights@ should be @n@.
-
-
-glTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glTexFilterFuncSGIS = ffienumenumsizeiPtrfloatIOV glTexFilterFuncSGISFunPtr
-
-glTexFilterFuncSGISFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glTexFilterFuncSGISFunPtr = unsafePerformIO (getProcAddress "glTexFilterFuncSGIS")
-
-{-# NOINLINE glTexFilterFuncSGISFunPtr #-}
-
-pattern GL_FILTER4_SGIS = 0x8146
-
-pattern GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureLod.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureLod.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureLod.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.TextureLod (
-  -- * Extension Support
-    gl_SGIS_texture_lod
-
-  -- * GL_SGIS_texture_lod
-  , pattern GL_TEXTURE_BASE_LEVEL_SGIS
-  , pattern GL_TEXTURE_MAX_LEVEL_SGIS
-  , pattern GL_TEXTURE_MAX_LOD_SGIS
-  , pattern GL_TEXTURE_MIN_LOD_SGIS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_lod.txt GL_SGIS_texture_lod> extension is available.
-
-gl_SGIS_texture_lod :: Bool
-gl_SGIS_texture_lod = member "GL_SGIS_texture_lod" extensions
-{-# NOINLINE gl_SGIS_texture_lod #-}
-
-pattern GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C
-
-pattern GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D
-
-pattern GL_TEXTURE_MAX_LOD_SGIS = 0x813B
-
-pattern GL_TEXTURE_MIN_LOD_SGIS = 0x813A
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureSelect.hs b/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureSelect.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIS/TextureSelect.hs
+++ /dev/null
@@ -1,83 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIS.TextureSelect (
-  -- * Extension Support
-    gl_SGIS_texture_select
-
-  -- * GL_SGIS_texture_select
-  , pattern GL_DUAL_ALPHA12_SGIS
-  , pattern GL_DUAL_ALPHA16_SGIS
-  , pattern GL_DUAL_ALPHA4_SGIS
-  , pattern GL_DUAL_ALPHA8_SGIS
-  , pattern GL_DUAL_INTENSITY12_SGIS
-  , pattern GL_DUAL_INTENSITY16_SGIS
-  , pattern GL_DUAL_INTENSITY4_SGIS
-  , pattern GL_DUAL_INTENSITY8_SGIS
-  , pattern GL_DUAL_LUMINANCE12_SGIS
-  , pattern GL_DUAL_LUMINANCE16_SGIS
-  , pattern GL_DUAL_LUMINANCE4_SGIS
-  , pattern GL_DUAL_LUMINANCE8_SGIS
-  , pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS
-  , pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS
-  , pattern GL_DUAL_TEXTURE_SELECT_SGIS
-  , pattern GL_QUAD_ALPHA4_SGIS
-  , pattern GL_QUAD_ALPHA8_SGIS
-  , pattern GL_QUAD_INTENSITY4_SGIS
-  , pattern GL_QUAD_INTENSITY8_SGIS
-  , pattern GL_QUAD_LUMINANCE4_SGIS
-  , pattern GL_QUAD_LUMINANCE8_SGIS
-  , pattern GL_QUAD_TEXTURE_SELECT_SGIS
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_select.txt GL_SGIS_texture_select> extension is available.
-
-gl_SGIS_texture_select :: Bool
-gl_SGIS_texture_select = member "GL_SGIS_texture_select" extensions
-{-# NOINLINE gl_SGIS_texture_select #-}
-
-pattern GL_DUAL_ALPHA12_SGIS = 0x8112
-
-pattern GL_DUAL_ALPHA16_SGIS = 0x8113
-
-pattern GL_DUAL_ALPHA4_SGIS = 0x8110
-
-pattern GL_DUAL_ALPHA8_SGIS = 0x8111
-
-pattern GL_DUAL_INTENSITY12_SGIS = 0x811A
-
-pattern GL_DUAL_INTENSITY16_SGIS = 0x811B
-
-pattern GL_DUAL_INTENSITY4_SGIS = 0x8118
-
-pattern GL_DUAL_INTENSITY8_SGIS = 0x8119
-
-pattern GL_DUAL_LUMINANCE12_SGIS = 0x8116
-
-pattern GL_DUAL_LUMINANCE16_SGIS = 0x8117
-
-pattern GL_DUAL_LUMINANCE4_SGIS = 0x8114
-
-pattern GL_DUAL_LUMINANCE8_SGIS = 0x8115
-
-pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C
-
-pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D
-
-pattern GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124
-
-pattern GL_QUAD_ALPHA4_SGIS = 0x811E
-
-pattern GL_QUAD_ALPHA8_SGIS = 0x811F
-
-pattern GL_QUAD_INTENSITY4_SGIS = 0x8122
-
-pattern GL_QUAD_INTENSITY8_SGIS = 0x8123
-
-pattern GL_QUAD_LUMINANCE4_SGIS = 0x8120
-
-pattern GL_QUAD_LUMINANCE8_SGIS = 0x8121
-
-pattern GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX.hs
+++ /dev/null
@@ -1,82 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX (
-  -- * SGIX Extensions
-    module Graphics.GL.Ext.SGIX.Async
-  , module Graphics.GL.Ext.SGIX.AsyncHistogram
-  , module Graphics.GL.Ext.SGIX.AsyncPixel
-  , module Graphics.GL.Ext.SGIX.BlendAlphaMinmax
-  , module Graphics.GL.Ext.SGIX.CalligraphicFragment
-  , module Graphics.GL.Ext.SGIX.Clipmap
-  , module Graphics.GL.Ext.SGIX.ConvolutionAccuracy
-  , module Graphics.GL.Ext.SGIX.DepthPassInstrument
-  , module Graphics.GL.Ext.SGIX.DepthTexture
-  , module Graphics.GL.Ext.SGIX.FlushRaster
-  , module Graphics.GL.Ext.SGIX.FogOffset
-  , module Graphics.GL.Ext.SGIX.FragmentLighting
-  , module Graphics.GL.Ext.SGIX.Framezoom
-  , module Graphics.GL.Ext.SGIX.IglooInterface
-  , module Graphics.GL.Ext.SGIX.Instruments
-  , module Graphics.GL.Ext.SGIX.Interlace
-  , module Graphics.GL.Ext.SGIX.IrInstrument1
-  , module Graphics.GL.Ext.SGIX.ListPriority
-  , module Graphics.GL.Ext.SGIX.PixelTexture
-  , module Graphics.GL.Ext.SGIX.PixelTiles
-  , module Graphics.GL.Ext.SGIX.PolynomialFfd
-  , module Graphics.GL.Ext.SGIX.ReferencePlane
-  , module Graphics.GL.Ext.SGIX.Resample
-  , module Graphics.GL.Ext.SGIX.ScalebiasHint
-  , module Graphics.GL.Ext.SGIX.Shadow
-  , module Graphics.GL.Ext.SGIX.ShadowAmbient
-  , module Graphics.GL.Ext.SGIX.Sprite
-  , module Graphics.GL.Ext.SGIX.Subsample
-  , module Graphics.GL.Ext.SGIX.TagSampleBuffer
-  , module Graphics.GL.Ext.SGIX.TextureAddEnv
-  , module Graphics.GL.Ext.SGIX.TextureCoordinateClamp
-  , module Graphics.GL.Ext.SGIX.TextureLodBias
-  , module Graphics.GL.Ext.SGIX.TextureMultiBuffer
-  , module Graphics.GL.Ext.SGIX.TextureScaleBias
-  , module Graphics.GL.Ext.SGIX.VertexPreclip
-  , module Graphics.GL.Ext.SGIX.Ycrcb
-  , module Graphics.GL.Ext.SGIX.YcrcbSubsample
-  , module Graphics.GL.Ext.SGIX.Ycrcba
-) where
-
-import Graphics.GL.Ext.SGIX.Async
-import Graphics.GL.Ext.SGIX.AsyncHistogram
-import Graphics.GL.Ext.SGIX.AsyncPixel
-import Graphics.GL.Ext.SGIX.BlendAlphaMinmax
-import Graphics.GL.Ext.SGIX.CalligraphicFragment
-import Graphics.GL.Ext.SGIX.Clipmap
-import Graphics.GL.Ext.SGIX.ConvolutionAccuracy
-import Graphics.GL.Ext.SGIX.DepthPassInstrument
-import Graphics.GL.Ext.SGIX.DepthTexture
-import Graphics.GL.Ext.SGIX.FlushRaster
-import Graphics.GL.Ext.SGIX.FogOffset
-import Graphics.GL.Ext.SGIX.FragmentLighting
-import Graphics.GL.Ext.SGIX.Framezoom
-import Graphics.GL.Ext.SGIX.IglooInterface
-import Graphics.GL.Ext.SGIX.Instruments
-import Graphics.GL.Ext.SGIX.Interlace
-import Graphics.GL.Ext.SGIX.IrInstrument1
-import Graphics.GL.Ext.SGIX.ListPriority
-import Graphics.GL.Ext.SGIX.PixelTexture
-import Graphics.GL.Ext.SGIX.PixelTiles
-import Graphics.GL.Ext.SGIX.PolynomialFfd
-import Graphics.GL.Ext.SGIX.ReferencePlane
-import Graphics.GL.Ext.SGIX.Resample
-import Graphics.GL.Ext.SGIX.ScalebiasHint
-import Graphics.GL.Ext.SGIX.Shadow
-import Graphics.GL.Ext.SGIX.ShadowAmbient
-import Graphics.GL.Ext.SGIX.Sprite
-import Graphics.GL.Ext.SGIX.Subsample
-import Graphics.GL.Ext.SGIX.TagSampleBuffer
-import Graphics.GL.Ext.SGIX.TextureAddEnv
-import Graphics.GL.Ext.SGIX.TextureCoordinateClamp
-import Graphics.GL.Ext.SGIX.TextureLodBias
-import Graphics.GL.Ext.SGIX.TextureMultiBuffer
-import Graphics.GL.Ext.SGIX.TextureScaleBias
-import Graphics.GL.Ext.SGIX.VertexPreclip
-import Graphics.GL.Ext.SGIX.Ycrcb
-import Graphics.GL.Ext.SGIX.YcrcbSubsample
-import Graphics.GL.Ext.SGIX.Ycrcba
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Async.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Async.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Async.hs
+++ /dev/null
@@ -1,101 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Async (
-  -- * Extension Support
-    gl_SGIX_async
-
-  -- * GL_SGIX_async
-  , glAsyncMarkerSGIX
-  , glDeleteAsyncMarkersSGIX
-  , glFinishAsyncSGIX
-  , glGenAsyncMarkersSGIX
-  , glIsAsyncMarkerSGIX
-  , glPollAsyncSGIX
-  , pattern GL_ASYNC_MARKER_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async.txt GL_SGIX_async> extension is available.
-
-gl_SGIX_async :: Bool
-gl_SGIX_async = member "GL_SGIX_async" extensions
-{-# NOINLINE gl_SGIX_async #-}
-
--- | Usage: @'glAsyncMarkerSGIX' marker@
-
-
-glAsyncMarkerSGIX :: MonadIO m => GLuint -> m ()
-glAsyncMarkerSGIX = ffiuintIOV glAsyncMarkerSGIXFunPtr
-
-glAsyncMarkerSGIXFunPtr :: FunPtr (GLuint -> IO ())
-glAsyncMarkerSGIXFunPtr = unsafePerformIO (getProcAddress "glAsyncMarkerSGIX")
-
-{-# NOINLINE glAsyncMarkerSGIXFunPtr #-}
-
--- | Usage: @'glDeleteAsyncMarkersSGIX' marker range@
-
-
-glDeleteAsyncMarkersSGIX :: MonadIO m => GLuint -> GLsizei -> m ()
-glDeleteAsyncMarkersSGIX = ffiuintsizeiIOV glDeleteAsyncMarkersSGIXFunPtr
-
-glDeleteAsyncMarkersSGIXFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
-glDeleteAsyncMarkersSGIXFunPtr = unsafePerformIO (getProcAddress "glDeleteAsyncMarkersSGIX")
-
-{-# NOINLINE glDeleteAsyncMarkersSGIXFunPtr #-}
-
--- | Usage: @'glFinishAsyncSGIX' markerp@
---
--- The length of @markerp@ should be @1@.
-
-
-glFinishAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
-glFinishAsyncSGIX = ffiPtruintIOint glFinishAsyncSGIXFunPtr
-
-glFinishAsyncSGIXFunPtr :: FunPtr (Ptr GLuint -> IO GLint)
-glFinishAsyncSGIXFunPtr = unsafePerformIO (getProcAddress "glFinishAsyncSGIX")
-
-{-# NOINLINE glFinishAsyncSGIXFunPtr #-}
-
--- | Usage: @'glGenAsyncMarkersSGIX' range@
-
-
-glGenAsyncMarkersSGIX :: MonadIO m => GLsizei -> m GLuint
-glGenAsyncMarkersSGIX = ffisizeiIOuint glGenAsyncMarkersSGIXFunPtr
-
-glGenAsyncMarkersSGIXFunPtr :: FunPtr (GLsizei -> IO GLuint)
-glGenAsyncMarkersSGIXFunPtr = unsafePerformIO (getProcAddress "glGenAsyncMarkersSGIX")
-
-{-# NOINLINE glGenAsyncMarkersSGIXFunPtr #-}
-
--- | Usage: @'glIsAsyncMarkerSGIX' marker@
-
-
-glIsAsyncMarkerSGIX :: MonadIO m => GLuint -> m GLboolean
-glIsAsyncMarkerSGIX = ffiuintIOboolean glIsAsyncMarkerSGIXFunPtr
-
-glIsAsyncMarkerSGIXFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsAsyncMarkerSGIXFunPtr = unsafePerformIO (getProcAddress "glIsAsyncMarkerSGIX")
-
-{-# NOINLINE glIsAsyncMarkerSGIXFunPtr #-}
-
--- | Usage: @'glPollAsyncSGIX' markerp@
---
--- The length of @markerp@ should be @1@.
-
-
-glPollAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
-glPollAsyncSGIX = ffiPtruintIOint glPollAsyncSGIXFunPtr
-
-glPollAsyncSGIXFunPtr :: FunPtr (Ptr GLuint -> IO GLint)
-glPollAsyncSGIXFunPtr = unsafePerformIO (getProcAddress "glPollAsyncSGIX")
-
-{-# NOINLINE glPollAsyncSGIXFunPtr #-}
-
-pattern GL_ASYNC_MARKER_SGIX = 0x8329
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/AsyncHistogram.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/AsyncHistogram.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/AsyncHistogram.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.AsyncHistogram (
-  -- * Extension Support
-    gl_SGIX_async_histogram
-
-  -- * GL_SGIX_async_histogram
-  , pattern GL_ASYNC_HISTOGRAM_SGIX
-  , pattern GL_MAX_ASYNC_HISTOGRAM_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_histogram.txt GL_SGIX_async_histogram> extension is available.
-
-gl_SGIX_async_histogram :: Bool
-gl_SGIX_async_histogram = member "GL_SGIX_async_histogram" extensions
-{-# NOINLINE gl_SGIX_async_histogram #-}
-
-pattern GL_ASYNC_HISTOGRAM_SGIX = 0x832C
-
-pattern GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/AsyncPixel.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/AsyncPixel.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/AsyncPixel.hs
+++ /dev/null
@@ -1,35 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.AsyncPixel (
-  -- * Extension Support
-    gl_SGIX_async_pixel
-
-  -- * GL_SGIX_async_pixel
-  , pattern GL_ASYNC_DRAW_PIXELS_SGIX
-  , pattern GL_ASYNC_READ_PIXELS_SGIX
-  , pattern GL_ASYNC_TEX_IMAGE_SGIX
-  , pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX
-  , pattern GL_MAX_ASYNC_READ_PIXELS_SGIX
-  , pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_pixel.txt GL_SGIX_async_pixel> extension is available.
-
-gl_SGIX_async_pixel :: Bool
-gl_SGIX_async_pixel = member "GL_SGIX_async_pixel" extensions
-{-# NOINLINE gl_SGIX_async_pixel #-}
-
-pattern GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D
-
-pattern GL_ASYNC_READ_PIXELS_SGIX = 0x835E
-
-pattern GL_ASYNC_TEX_IMAGE_SGIX = 0x835C
-
-pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360
-
-pattern GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361
-
-pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.BlendAlphaMinmax (
-  -- * Extension Support
-    gl_SGIX_blend_alpha_minmax
-
-  -- * GL_SGIX_blend_alpha_minmax
-  , pattern GL_ALPHA_MAX_SGIX
-  , pattern GL_ALPHA_MIN_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/blend_alpha_minmax.txt GL_SGIX_blend_alpha_minmax> extension is available.
-
-gl_SGIX_blend_alpha_minmax :: Bool
-gl_SGIX_blend_alpha_minmax = member "GL_SGIX_blend_alpha_minmax" extensions
-{-# NOINLINE gl_SGIX_blend_alpha_minmax #-}
-
-pattern GL_ALPHA_MAX_SGIX = 0x8321
-
-pattern GL_ALPHA_MIN_SGIX = 0x8320
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.CalligraphicFragment (
-  -- * Extension Support
-    gl_SGIX_calligraphic_fragment
-
-  -- * GL_SGIX_calligraphic_fragment
-  , pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_calligraphic_fragment extension is available.
-
-gl_SGIX_calligraphic_fragment :: Bool
-gl_SGIX_calligraphic_fragment = member "GL_SGIX_calligraphic_fragment" extensions
-{-# NOINLINE gl_SGIX_calligraphic_fragment #-}
-
-pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Clipmap.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Clipmap.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Clipmap.hs
+++ /dev/null
@@ -1,53 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Clipmap (
-  -- * Extension Support
-    gl_SGIX_clipmap
-
-  -- * GL_SGIX_clipmap
-  , pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX
-  , pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX
-  , pattern GL_MAX_CLIPMAP_DEPTH_SGIX
-  , pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX
-  , pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX
-  , pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX
-  , pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX
-  , pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX
-  , pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX
-  , pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX
-  , pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX
-  , pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/clipmap.txt GL_SGIX_clipmap> extension is available.
-
-gl_SGIX_clipmap :: Bool
-gl_SGIX_clipmap = member "GL_SGIX_clipmap" extensions
-{-# NOINLINE gl_SGIX_clipmap #-}
-
-pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170
-
-pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F
-
-pattern GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177
-
-pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178
-
-pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E
-
-pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D
-
-pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171
-
-pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176
-
-pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172
-
-pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175
-
-pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173
-
-pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.ConvolutionAccuracy (
-  -- * Extension Support
-    gl_SGIX_convolution_accuracy
-
-  -- * GL_SGIX_convolution_accuracy
-  , pattern GL_CONVOLUTION_HINT_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/convolution_accuracy.txt GL_SGIX_convolution_accuracy> extension is available.
-
-gl_SGIX_convolution_accuracy :: Bool
-gl_SGIX_convolution_accuracy = member "GL_SGIX_convolution_accuracy" extensions
-{-# NOINLINE gl_SGIX_convolution_accuracy #-}
-
-pattern GL_CONVOLUTION_HINT_SGIX = 0x8316
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/DepthPassInstrument.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/DepthPassInstrument.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/DepthPassInstrument.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.DepthPassInstrument (
-  -- * Extension Support
-    gl_SGIX_depth_pass_instrument
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_depth_pass_instrument extension is available.
-
-gl_SGIX_depth_pass_instrument :: Bool
-gl_SGIX_depth_pass_instrument = member "GL_SGIX_depth_pass_instrument" extensions
-{-# NOINLINE gl_SGIX_depth_pass_instrument #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/DepthTexture.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/DepthTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/DepthTexture.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.DepthTexture (
-  -- * Extension Support
-    gl_SGIX_depth_texture
-
-  -- * GL_SGIX_depth_texture
-  , pattern GL_DEPTH_COMPONENT16_SGIX
-  , pattern GL_DEPTH_COMPONENT24_SGIX
-  , pattern GL_DEPTH_COMPONENT32_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/depth_texture.txt GL_SGIX_depth_texture> extension is available.
-
-gl_SGIX_depth_texture :: Bool
-gl_SGIX_depth_texture = member "GL_SGIX_depth_texture" extensions
-{-# NOINLINE gl_SGIX_depth_texture #-}
-
-pattern GL_DEPTH_COMPONENT16_SGIX = 0x81A5
-
-pattern GL_DEPTH_COMPONENT24_SGIX = 0x81A6
-
-pattern GL_DEPTH_COMPONENT32_SGIX = 0x81A7
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/FlushRaster.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/FlushRaster.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/FlushRaster.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.FlushRaster (
-  -- * Extension Support
-    gl_SGIX_flush_raster
-
-  -- * GL_SGIX_flush_raster
-  , glFlushRasterSGIX
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/flush_raster.txt GL_SGIX_flush_raster> extension is available.
-
-gl_SGIX_flush_raster :: Bool
-gl_SGIX_flush_raster = member "GL_SGIX_flush_raster" extensions
-{-# NOINLINE gl_SGIX_flush_raster #-}
-
--- | Usage: @'glFlushRasterSGIX'@
-
-
-glFlushRasterSGIX :: MonadIO m => m ()
-glFlushRasterSGIX = ffiIOV glFlushRasterSGIXFunPtr
-
-glFlushRasterSGIXFunPtr :: FunPtr (IO ())
-glFlushRasterSGIXFunPtr = unsafePerformIO (getProcAddress "glFlushRasterSGIX")
-
-{-# NOINLINE glFlushRasterSGIXFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/FogOffset.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/FogOffset.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/FogOffset.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.FogOffset (
-  -- * Extension Support
-    gl_SGIX_fog_offset
-
-  -- * GL_SGIX_fog_offset
-  , pattern GL_FOG_OFFSET_SGIX
-  , pattern GL_FOG_OFFSET_VALUE_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/fog_offset.txt GL_SGIX_fog_offset> extension is available.
-
-gl_SGIX_fog_offset :: Bool
-gl_SGIX_fog_offset = member "GL_SGIX_fog_offset" extensions
-{-# NOINLINE gl_SGIX_fog_offset #-}
-
-pattern GL_FOG_OFFSET_SGIX = 0x8198
-
-pattern GL_FOG_OFFSET_VALUE_SGIX = 0x8199
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/FragmentLighting.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/FragmentLighting.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/FragmentLighting.hs
+++ /dev/null
@@ -1,406 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.FragmentLighting (
-  -- * Extension Support
-    gl_SGIX_fragment_lighting
-
-  -- * GL_SGIX_fragment_lighting
-  , glFragmentColorMaterialSGIX
-  , glFragmentLightModelfSGIX
-  , glFragmentLightModelfvSGIX
-  , glFragmentLightModeliSGIX
-  , glFragmentLightModelivSGIX
-  , glFragmentLightfSGIX
-  , glFragmentLightfvSGIX
-  , glFragmentLightiSGIX
-  , glFragmentLightivSGIX
-  , glFragmentMaterialfSGIX
-  , glFragmentMaterialfvSGIX
-  , glFragmentMaterialiSGIX
-  , glFragmentMaterialivSGIX
-  , glGetFragmentLightfvSGIX
-  , glGetFragmentLightivSGIX
-  , glGetFragmentMaterialfvSGIX
-  , glGetFragmentMaterialivSGIX
-  , glLightEnviSGIX
-  , pattern GL_CURRENT_RASTER_NORMAL_SGIX
-  , pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX
-  , pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX
-  , pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX
-  , pattern GL_FRAGMENT_LIGHT0_SGIX
-  , pattern GL_FRAGMENT_LIGHT1_SGIX
-  , pattern GL_FRAGMENT_LIGHT2_SGIX
-  , pattern GL_FRAGMENT_LIGHT3_SGIX
-  , pattern GL_FRAGMENT_LIGHT4_SGIX
-  , pattern GL_FRAGMENT_LIGHT5_SGIX
-  , pattern GL_FRAGMENT_LIGHT6_SGIX
-  , pattern GL_FRAGMENT_LIGHT7_SGIX
-  , pattern GL_FRAGMENT_LIGHTING_SGIX
-  , pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX
-  , pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX
-  , pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX
-  , pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX
-  , pattern GL_LIGHT_ENV_MODE_SGIX
-  , pattern GL_MAX_ACTIVE_LIGHTS_SGIX
-  , pattern GL_MAX_FRAGMENT_LIGHTS_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_SGIX_fragment_lighting extension is available.
-
-gl_SGIX_fragment_lighting :: Bool
-gl_SGIX_fragment_lighting = member "GL_SGIX_fragment_lighting" extensions
-{-# NOINLINE gl_SGIX_fragment_lighting #-}
-
--- | Usage: @'glFragmentColorMaterialSGIX' face mode@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @mode@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
-
-
-glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()
-glFragmentColorMaterialSGIX = ffienumenumIOV glFragmentColorMaterialSGIXFunPtr
-
-glFragmentColorMaterialSGIXFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glFragmentColorMaterialSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentColorMaterialSGIX")
-
-{-# NOINLINE glFragmentColorMaterialSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightModelfSGIX' pname param@
---
--- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glFragmentLightModelfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
-glFragmentLightModelfSGIX = ffienumfloatIOV glFragmentLightModelfSGIXFunPtr
-
-glFragmentLightModelfSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glFragmentLightModelfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelfSGIX")
-
-{-# NOINLINE glFragmentLightModelfSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightModelfvSGIX' pname params@
---
--- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glFragmentLightModelfvSGIX = ffienumPtrfloatIOV glFragmentLightModelfvSGIXFunPtr
-
-glFragmentLightModelfvSGIXFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glFragmentLightModelfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelfvSGIX")
-
-{-# NOINLINE glFragmentLightModelfvSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightModeliSGIX' pname param@
---
--- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glFragmentLightModeliSGIX :: MonadIO m => GLenum -> GLint -> m ()
-glFragmentLightModeliSGIX = ffienumintIOV glFragmentLightModeliSGIXFunPtr
-
-glFragmentLightModeliSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glFragmentLightModeliSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModeliSGIX")
-
-{-# NOINLINE glFragmentLightModeliSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightModelivSGIX' pname params@
---
--- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glFragmentLightModelivSGIX = ffienumPtrintIOV glFragmentLightModelivSGIXFunPtr
-
-glFragmentLightModelivSGIXFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glFragmentLightModelivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelivSGIX")
-
-{-# NOINLINE glFragmentLightModelivSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightfSGIX' light pname param@
---
--- The parameter @light@ is a @FragmentLightNameSGIX@.
---
--- The parameter @pname@ is a @FragmentLightParameterSGIX@.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glFragmentLightfSGIX = ffienumenumfloatIOV glFragmentLightfSGIXFunPtr
-
-glFragmentLightfSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glFragmentLightfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightfSGIX")
-
-{-# NOINLINE glFragmentLightfSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightfvSGIX' light pname params@
---
--- The parameter @light@ is a @FragmentLightNameSGIX@.
---
--- The parameter @pname@ is a @FragmentLightParameterSGIX@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glFragmentLightfvSGIX = ffienumenumPtrfloatIOV glFragmentLightfvSGIXFunPtr
-
-glFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glFragmentLightfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightfvSGIX")
-
-{-# NOINLINE glFragmentLightfvSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightiSGIX' light pname param@
---
--- The parameter @light@ is a @FragmentLightNameSGIX@.
---
--- The parameter @pname@ is a @FragmentLightParameterSGIX@.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glFragmentLightiSGIX = ffienumenumintIOV glFragmentLightiSGIXFunPtr
-
-glFragmentLightiSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glFragmentLightiSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightiSGIX")
-
-{-# NOINLINE glFragmentLightiSGIXFunPtr #-}
-
--- | Usage: @'glFragmentLightivSGIX' light pname params@
---
--- The parameter @light@ is a @FragmentLightNameSGIX@.
---
--- The parameter @pname@ is a @FragmentLightParameterSGIX@.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glFragmentLightivSGIX = ffienumenumPtrintIOV glFragmentLightivSGIXFunPtr
-
-glFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glFragmentLightivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightivSGIX")
-
-{-# NOINLINE glFragmentLightivSGIXFunPtr #-}
-
--- | Usage: @'glFragmentMaterialfSGIX' face pname param@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glFragmentMaterialfSGIX = ffienumenumfloatIOV glFragmentMaterialfSGIXFunPtr
-
-glFragmentMaterialfSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glFragmentMaterialfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialfSGIX")
-
-{-# NOINLINE glFragmentMaterialfSGIXFunPtr #-}
-
--- | Usage: @'glFragmentMaterialfvSGIX' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glFragmentMaterialfvSGIXFunPtr
-
-glFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glFragmentMaterialfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialfvSGIX")
-
-{-# NOINLINE glFragmentMaterialfvSGIXFunPtr #-}
-
--- | Usage: @'glFragmentMaterialiSGIX' face pname param@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glFragmentMaterialiSGIX = ffienumenumintIOV glFragmentMaterialiSGIXFunPtr
-
-glFragmentMaterialiSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glFragmentMaterialiSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialiSGIX")
-
-{-# NOINLINE glFragmentMaterialiSGIXFunPtr #-}
-
--- | Usage: @'glFragmentMaterialivSGIX' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glFragmentMaterialivSGIX = ffienumenumPtrintIOV glFragmentMaterialivSGIXFunPtr
-
-glFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glFragmentMaterialivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialivSGIX")
-
-{-# NOINLINE glFragmentMaterialivSGIXFunPtr #-}
-
--- | Usage: @'glGetFragmentLightfvSGIX' light pname params@
---
--- The parameter @light@ is a @FragmentLightNameSGIX@.
---
--- The parameter @pname@ is a @FragmentLightParameterSGIX@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetFragmentLightfvSGIX = ffienumenumPtrfloatIOV glGetFragmentLightfvSGIXFunPtr
-
-glGetFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetFragmentLightfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentLightfvSGIX")
-
-{-# NOINLINE glGetFragmentLightfvSGIXFunPtr #-}
-
--- | Usage: @'glGetFragmentLightivSGIX' light pname params@
---
--- The parameter @light@ is a @FragmentLightNameSGIX@.
---
--- The parameter @pname@ is a @FragmentLightParameterSGIX@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFragmentLightivSGIX = ffienumenumPtrintIOV glGetFragmentLightivSGIXFunPtr
-
-glGetFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFragmentLightivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentLightivSGIX")
-
-{-# NOINLINE glGetFragmentLightivSGIXFunPtr #-}
-
--- | Usage: @'glGetFragmentMaterialfvSGIX' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glGetFragmentMaterialfvSGIXFunPtr
-
-glGetFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetFragmentMaterialfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentMaterialfvSGIX")
-
-{-# NOINLINE glGetFragmentMaterialfvSGIXFunPtr #-}
-
--- | Usage: @'glGetFragmentMaterialivSGIX' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFragmentMaterialivSGIX = ffienumenumPtrintIOV glGetFragmentMaterialivSGIXFunPtr
-
-glGetFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFragmentMaterialivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentMaterialivSGIX")
-
-{-# NOINLINE glGetFragmentMaterialivSGIXFunPtr #-}
-
--- | Usage: @'glLightEnviSGIX' pname param@
---
--- The parameter @pname@ is a @LightEnvParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glLightEnviSGIX :: MonadIO m => GLenum -> GLint -> m ()
-glLightEnviSGIX = ffienumintIOV glLightEnviSGIXFunPtr
-
-glLightEnviSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glLightEnviSGIXFunPtr = unsafePerformIO (getProcAddress "glLightEnviSGIX")
-
-{-# NOINLINE glLightEnviSGIXFunPtr #-}
-
-pattern GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406
-
-pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402
-
-pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403
-
-pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401
-
-pattern GL_FRAGMENT_LIGHT0_SGIX = 0x840C
-
-pattern GL_FRAGMENT_LIGHT1_SGIX = 0x840D
-
-pattern GL_FRAGMENT_LIGHT2_SGIX = 0x840E
-
-pattern GL_FRAGMENT_LIGHT3_SGIX = 0x840F
-
-pattern GL_FRAGMENT_LIGHT4_SGIX = 0x8410
-
-pattern GL_FRAGMENT_LIGHT5_SGIX = 0x8411
-
-pattern GL_FRAGMENT_LIGHT6_SGIX = 0x8412
-
-pattern GL_FRAGMENT_LIGHT7_SGIX = 0x8413
-
-pattern GL_FRAGMENT_LIGHTING_SGIX = 0x8400
-
-pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A
-
-pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408
-
-pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B
-
-pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409
-
-pattern GL_LIGHT_ENV_MODE_SGIX = 0x8407
-
-pattern GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405
-
-pattern GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Framezoom.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Framezoom.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Framezoom.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Framezoom (
-  -- * Extension Support
-    gl_SGIX_framezoom
-
-  -- * GL_SGIX_framezoom
-  , glFrameZoomSGIX
-  , pattern GL_FRAMEZOOM_FACTOR_SGIX
-  , pattern GL_FRAMEZOOM_SGIX
-  , pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/framezoom.txt GL_SGIX_framezoom> extension is available.
-
-gl_SGIX_framezoom :: Bool
-gl_SGIX_framezoom = member "GL_SGIX_framezoom" extensions
-{-# NOINLINE gl_SGIX_framezoom #-}
-
--- | Usage: @'glFrameZoomSGIX' factor@
---
--- The parameter @factor@ is a @CheckedInt32@.
-
-
-glFrameZoomSGIX :: MonadIO m => GLint -> m ()
-glFrameZoomSGIX = ffiintIOV glFrameZoomSGIXFunPtr
-
-glFrameZoomSGIXFunPtr :: FunPtr (GLint -> IO ())
-glFrameZoomSGIXFunPtr = unsafePerformIO (getProcAddress "glFrameZoomSGIX")
-
-{-# NOINLINE glFrameZoomSGIXFunPtr #-}
-
-pattern GL_FRAMEZOOM_FACTOR_SGIX = 0x818C
-
-pattern GL_FRAMEZOOM_SGIX = 0x818B
-
-pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/IglooInterface.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/IglooInterface.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/IglooInterface.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.IglooInterface (
-  -- * Extension Support
-    gl_SGIX_igloo_interface
-
-  -- * GL_SGIX_igloo_interface
-  , glIglooInterfaceSGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_SGIX_igloo_interface extension is available.
-
-gl_SGIX_igloo_interface :: Bool
-gl_SGIX_igloo_interface = member "GL_SGIX_igloo_interface" extensions
-{-# NOINLINE gl_SGIX_igloo_interface #-}
-
--- | Usage: @'glIglooInterfaceSGIX' pname params@
---
--- The parameter @pname@ is a @IglooFunctionSelectSGIX@.
---
--- The parameter @params@ is a @IglooParameterSGIX@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glIglooInterfaceSGIX :: MonadIO m => GLenum -> Ptr () -> m ()
-glIglooInterfaceSGIX = ffienumPtrVIOV glIglooInterfaceSGIXFunPtr
-
-glIglooInterfaceSGIXFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
-glIglooInterfaceSGIXFunPtr = unsafePerformIO (getProcAddress "glIglooInterfaceSGIX")
-
-{-# NOINLINE glIglooInterfaceSGIXFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Instruments.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Instruments.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Instruments.hs
+++ /dev/null
@@ -1,104 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Instruments (
-  -- * Extension Support
-    gl_SGIX_instruments
-
-  -- * GL_SGIX_instruments
-  , glGetInstrumentsSGIX
-  , glInstrumentsBufferSGIX
-  , glPollInstrumentsSGIX
-  , glReadInstrumentsSGIX
-  , glStartInstrumentsSGIX
-  , glStopInstrumentsSGIX
-  , pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX
-  , pattern GL_INSTRUMENT_MEASUREMENTS_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/instruments.txt GL_SGIX_instruments> extension is available.
-
-gl_SGIX_instruments :: Bool
-gl_SGIX_instruments = member "GL_SGIX_instruments" extensions
-{-# NOINLINE gl_SGIX_instruments #-}
-
--- | Usage: @'glGetInstrumentsSGIX'@
-
-
-glGetInstrumentsSGIX :: MonadIO m => m GLint
-glGetInstrumentsSGIX = ffiIOint glGetInstrumentsSGIXFunPtr
-
-glGetInstrumentsSGIXFunPtr :: FunPtr (IO GLint)
-glGetInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glGetInstrumentsSGIX")
-
-{-# NOINLINE glGetInstrumentsSGIXFunPtr #-}
-
--- | Usage: @'glInstrumentsBufferSGIX' size buffer@
---
--- The length of @buffer@ should be @size@.
-
-
-glInstrumentsBufferSGIX :: MonadIO m => GLsizei -> Ptr GLint -> m ()
-glInstrumentsBufferSGIX = ffisizeiPtrintIOV glInstrumentsBufferSGIXFunPtr
-
-glInstrumentsBufferSGIXFunPtr :: FunPtr (GLsizei -> Ptr GLint -> IO ())
-glInstrumentsBufferSGIXFunPtr = unsafePerformIO (getProcAddress "glInstrumentsBufferSGIX")
-
-{-# NOINLINE glInstrumentsBufferSGIXFunPtr #-}
-
--- | Usage: @'glPollInstrumentsSGIX' marker_p@
---
--- The length of @marker_p@ should be @1@.
-
-
-glPollInstrumentsSGIX :: MonadIO m => Ptr GLint -> m GLint
-glPollInstrumentsSGIX = ffiPtrintIOint glPollInstrumentsSGIXFunPtr
-
-glPollInstrumentsSGIXFunPtr :: FunPtr (Ptr GLint -> IO GLint)
-glPollInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glPollInstrumentsSGIX")
-
-{-# NOINLINE glPollInstrumentsSGIXFunPtr #-}
-
--- | Usage: @'glReadInstrumentsSGIX' marker@
-
-
-glReadInstrumentsSGIX :: MonadIO m => GLint -> m ()
-glReadInstrumentsSGIX = ffiintIOV glReadInstrumentsSGIXFunPtr
-
-glReadInstrumentsSGIXFunPtr :: FunPtr (GLint -> IO ())
-glReadInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glReadInstrumentsSGIX")
-
-{-# NOINLINE glReadInstrumentsSGIXFunPtr #-}
-
--- | Usage: @'glStartInstrumentsSGIX'@
-
-
-glStartInstrumentsSGIX :: MonadIO m => m ()
-glStartInstrumentsSGIX = ffiIOV glStartInstrumentsSGIXFunPtr
-
-glStartInstrumentsSGIXFunPtr :: FunPtr (IO ())
-glStartInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glStartInstrumentsSGIX")
-
-{-# NOINLINE glStartInstrumentsSGIXFunPtr #-}
-
--- | Usage: @'glStopInstrumentsSGIX' marker@
-
-
-glStopInstrumentsSGIX :: MonadIO m => GLint -> m ()
-glStopInstrumentsSGIX = ffiintIOV glStopInstrumentsSGIXFunPtr
-
-glStopInstrumentsSGIXFunPtr :: FunPtr (GLint -> IO ())
-glStopInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glStopInstrumentsSGIX")
-
-{-# NOINLINE glStopInstrumentsSGIXFunPtr #-}
-
-pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180
-
-pattern GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Interlace.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Interlace.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Interlace.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Interlace (
-  -- * Extension Support
-    gl_SGIX_interlace
-
-  -- * GL_SGIX_interlace
-  , pattern GL_INTERLACE_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/interlace.txt GL_SGIX_interlace> extension is available.
-
-gl_SGIX_interlace :: Bool
-gl_SGIX_interlace = member "GL_SGIX_interlace" extensions
-{-# NOINLINE gl_SGIX_interlace #-}
-
-pattern GL_INTERLACE_SGIX = 0x8094
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/IrInstrument1.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/IrInstrument1.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/IrInstrument1.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.IrInstrument1 (
-  -- * Extension Support
-    gl_SGIX_ir_instrument1
-
-  -- * GL_SGIX_ir_instrument1
-  , pattern GL_IR_INSTRUMENT1_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ir_instrument1.txt GL_SGIX_ir_instrument1> extension is available.
-
-gl_SGIX_ir_instrument1 :: Bool
-gl_SGIX_ir_instrument1 = member "GL_SGIX_ir_instrument1" extensions
-{-# NOINLINE gl_SGIX_ir_instrument1 #-}
-
-pattern GL_IR_INSTRUMENT1_SGIX = 0x817F
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/ListPriority.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/ListPriority.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/ListPriority.hs
+++ /dev/null
@@ -1,141 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.ListPriority (
-  -- * Extension Support
-    gl_SGIX_list_priority
-
-  -- * GL_SGIX_list_priority
-  , glGetListParameterfvSGIX
-  , glGetListParameterivSGIX
-  , glListParameterfSGIX
-  , glListParameterfvSGIX
-  , glListParameteriSGIX
-  , glListParameterivSGIX
-  , pattern GL_LIST_PRIORITY_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/list_priority.txt GL_SGIX_list_priority> extension is available.
-
-gl_SGIX_list_priority :: Bool
-gl_SGIX_list_priority = member "GL_SGIX_list_priority" extensions
-{-# NOINLINE gl_SGIX_list_priority #-}
-
--- | Usage: @'glGetListParameterfvSGIX' list pname params@
---
--- The parameter @list@ is a @List@.
---
--- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetListParameterfvSGIX = ffiuintenumPtrfloatIOV glGetListParameterfvSGIXFunPtr
-
-glGetListParameterfvSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetListParameterfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetListParameterfvSGIX")
-
-{-# NOINLINE glGetListParameterfvSGIXFunPtr #-}
-
--- | Usage: @'glGetListParameterivSGIX' list pname params@
---
--- The parameter @list@ is a @List@.
---
--- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetListParameterivSGIX = ffiuintenumPtrintIOV glGetListParameterivSGIXFunPtr
-
-glGetListParameterivSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetListParameterivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetListParameterivSGIX")
-
-{-# NOINLINE glGetListParameterivSGIXFunPtr #-}
-
--- | Usage: @'glListParameterfSGIX' list pname param@
---
--- The parameter @list@ is a @List@.
---
--- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glListParameterfSGIX :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glListParameterfSGIX = ffiuintenumfloatIOV glListParameterfSGIXFunPtr
-
-glListParameterfSGIXFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glListParameterfSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameterfSGIX")
-
-{-# NOINLINE glListParameterfSGIXFunPtr #-}
-
--- | Usage: @'glListParameterfvSGIX' list pname params@
---
--- The parameter @list@ is a @List@.
---
--- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glListParameterfvSGIX = ffiuintenumPtrfloatIOV glListParameterfvSGIXFunPtr
-
-glListParameterfvSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glListParameterfvSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameterfvSGIX")
-
-{-# NOINLINE glListParameterfvSGIXFunPtr #-}
-
--- | Usage: @'glListParameteriSGIX' list pname param@
---
--- The parameter @list@ is a @List@.
---
--- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glListParameteriSGIX :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glListParameteriSGIX = ffiuintenumintIOV glListParameteriSGIXFunPtr
-
-glListParameteriSGIXFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glListParameteriSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameteriSGIX")
-
-{-# NOINLINE glListParameteriSGIXFunPtr #-}
-
--- | Usage: @'glListParameterivSGIX' list pname params@
---
--- The parameter @list@ is a @List@.
---
--- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glListParameterivSGIX = ffiuintenumPtrintIOV glListParameterivSGIXFunPtr
-
-glListParameterivSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glListParameterivSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameterivSGIX")
-
-{-# NOINLINE glListParameterivSGIXFunPtr #-}
-
-pattern GL_LIST_PRIORITY_SGIX = 0x8182
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/PixelTexture.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/PixelTexture.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/PixelTexture.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.PixelTexture (
-  -- * Extension Support
-    gl_SGIX_pixel_texture
-
-  -- * GL_SGIX_pixel_texture
-  , glPixelTexGenSGIX
-  , pattern GL_PIXEL_TEX_GEN_MODE_SGIX
-  , pattern GL_PIXEL_TEX_GEN_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_SGIX_pixel_texture extension is available.
-
-gl_SGIX_pixel_texture :: Bool
-gl_SGIX_pixel_texture = member "GL_SGIX_pixel_texture" extensions
-{-# NOINLINE gl_SGIX_pixel_texture #-}
-
--- | Usage: @'glPixelTexGenSGIX' mode@
---
--- The parameter @mode@ is a @PixelTexGenModeSGIX@.
-
-
-glPixelTexGenSGIX :: MonadIO m => GLenum -> m ()
-glPixelTexGenSGIX = ffienumIOV glPixelTexGenSGIXFunPtr
-
-glPixelTexGenSGIXFunPtr :: FunPtr (GLenum -> IO ())
-glPixelTexGenSGIXFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenSGIX")
-
-{-# NOINLINE glPixelTexGenSGIXFunPtr #-}
-
-pattern GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B
-
-pattern GL_PIXEL_TEX_GEN_SGIX = 0x8139
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/PixelTiles.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/PixelTiles.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/PixelTiles.hs
+++ /dev/null
@@ -1,41 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.PixelTiles (
-  -- * Extension Support
-    gl_SGIX_pixel_tiles
-
-  -- * GL_SGIX_pixel_tiles
-  , pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX
-  , pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX
-  , pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX
-  , pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX
-  , pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX
-  , pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX
-  , pattern GL_PIXEL_TILE_HEIGHT_SGIX
-  , pattern GL_PIXEL_TILE_WIDTH_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_pixel_tiles extension is available.
-
-gl_SGIX_pixel_tiles :: Bool
-gl_SGIX_pixel_tiles = member "GL_SGIX_pixel_tiles" extensions
-{-# NOINLINE gl_SGIX_pixel_tiles #-}
-
-pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E
-
-pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F
-
-pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145
-
-pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144
-
-pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143
-
-pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142
-
-pattern GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141
-
-pattern GL_PIXEL_TILE_WIDTH_SGIX = 0x8140
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/PolynomialFfd.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/PolynomialFfd.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/PolynomialFfd.hs
+++ /dev/null
@@ -1,140 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.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.Internal.FFI
-import Graphics.GL.Internal.Proc
-import Graphics.GL.Types
-import System.IO.Unsafe
-
--- | Checks that the GL_SGIX_polynomial_ffd extension is available.
-
-gl_SGIX_polynomial_ffd :: Bool
-gl_SGIX_polynomial_ffd = member "GL_SGIX_polynomial_ffd" extensions
-{-# NOINLINE gl_SGIX_polynomial_ffd #-}
-
--- | Usage: @'glDeformSGIX' mask@
---
--- The parameter @mask@ is a @FfdMaskSGIX@, one of: .
-
-
-glDeformSGIX :: MonadIO m => GLbitfield -> m ()
-glDeformSGIX = ffibitfieldIOV glDeformSGIXFunPtr
-
-glDeformSGIXFunPtr :: FunPtr (GLbitfield -> IO ())
-glDeformSGIXFunPtr = unsafePerformIO (getProcAddress "glDeformSGIX")
-
-{-# NOINLINE glDeformSGIXFunPtr #-}
-
--- | Usage: @'glDeformationMap3dSGIX' target u1 u2 ustride uorder v1 v2 vstride vorder w1 w2 wstride worder points@
---
--- The parameter @target@ is a @FfdTargetSGIX@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @u1@ is a @CoordD@.
---
--- The parameter @u2@ is a @CoordD@.
---
--- The parameter @uorder@ is a @CheckedInt32@.
---
--- The parameter @v1@ is a @CoordD@.
---
--- The parameter @v2@ is a @CoordD@.
---
--- The parameter @vorder@ is a @CheckedInt32@.
---
--- The parameter @w1@ is a @CoordD@.
---
--- The parameter @w2@ is a @CoordD@.
---
--- The parameter @worder@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordD@.
---
--- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@.
-
-
-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 #-}
-
--- | Usage: @'glDeformationMap3fSGIX' target u1 u2 ustride uorder v1 v2 vstride vorder w1 w2 wstride worder points@
---
--- The parameter @target@ is a @FfdTargetSGIX@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @u1@ is a @CoordF@.
---
--- The parameter @u2@ is a @CoordF@.
---
--- The parameter @uorder@ is a @CheckedInt32@.
---
--- The parameter @v1@ is a @CoordF@.
---
--- The parameter @v2@ is a @CoordF@.
---
--- The parameter @vorder@ is a @CheckedInt32@.
---
--- The parameter @w1@ is a @CoordF@.
---
--- The parameter @w2@ is a @CoordF@.
---
--- The parameter @worder@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordF@.
---
--- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@.
-
-
-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 #-}
-
--- | Usage: @'glLoadIdentityDeformationMapSGIX' mask@
---
--- The parameter @mask@ is a @FfdMaskSGIX@, one of: .
-
-
-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
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/ReferencePlane.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/ReferencePlane.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/ReferencePlane.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.ReferencePlane (
-  -- * Extension Support
-    gl_SGIX_reference_plane
-
-  -- * GL_SGIX_reference_plane
-  , glReferencePlaneSGIX
-  , pattern GL_REFERENCE_PLANE_EQUATION_SGIX
-  , pattern GL_REFERENCE_PLANE_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/reference_plane.txt GL_SGIX_reference_plane> extension is available.
-
-gl_SGIX_reference_plane :: Bool
-gl_SGIX_reference_plane = member "GL_SGIX_reference_plane" extensions
-{-# NOINLINE gl_SGIX_reference_plane #-}
-
--- | Usage: @'glReferencePlaneSGIX' equation@
---
--- The length of @equation@ should be @4@.
-
-
-glReferencePlaneSGIX :: MonadIO m => Ptr GLdouble -> m ()
-glReferencePlaneSGIX = ffiPtrdoubleIOV glReferencePlaneSGIXFunPtr
-
-glReferencePlaneSGIXFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glReferencePlaneSGIXFunPtr = unsafePerformIO (getProcAddress "glReferencePlaneSGIX")
-
-{-# NOINLINE glReferencePlaneSGIXFunPtr #-}
-
-pattern GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E
-
-pattern GL_REFERENCE_PLANE_SGIX = 0x817D
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Resample.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Resample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Resample.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Resample (
-  -- * Extension Support
-    gl_SGIX_resample
-
-  -- * GL_SGIX_resample
-  , pattern GL_PACK_RESAMPLE_SGIX
-  , pattern GL_RESAMPLE_DECIMATE_SGIX
-  , pattern GL_RESAMPLE_REPLICATE_SGIX
-  , pattern GL_RESAMPLE_ZERO_FILL_SGIX
-  , pattern GL_UNPACK_RESAMPLE_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/resample.txt GL_SGIX_resample> extension is available.
-
-gl_SGIX_resample :: Bool
-gl_SGIX_resample = member "GL_SGIX_resample" extensions
-{-# NOINLINE gl_SGIX_resample #-}
-
-pattern GL_PACK_RESAMPLE_SGIX = 0x842E
-
-pattern GL_RESAMPLE_DECIMATE_SGIX = 0x8430
-
-pattern GL_RESAMPLE_REPLICATE_SGIX = 0x8433
-
-pattern GL_RESAMPLE_ZERO_FILL_SGIX = 0x8434
-
-pattern GL_UNPACK_RESAMPLE_SGIX = 0x842F
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/ScalebiasHint.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/ScalebiasHint.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/ScalebiasHint.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.ScalebiasHint (
-  -- * Extension Support
-    gl_SGIX_scalebias_hint
-
-  -- * GL_SGIX_scalebias_hint
-  , pattern GL_SCALEBIAS_HINT_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_scalebias_hint extension is available.
-
-gl_SGIX_scalebias_hint :: Bool
-gl_SGIX_scalebias_hint = member "GL_SGIX_scalebias_hint" extensions
-{-# NOINLINE gl_SGIX_scalebias_hint #-}
-
-pattern GL_SCALEBIAS_HINT_SGIX = 0x8322
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Shadow.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Shadow.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Shadow.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Shadow (
-  -- * Extension Support
-    gl_SGIX_shadow
-
-  -- * GL_SGIX_shadow
-  , pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX
-  , pattern GL_TEXTURE_COMPARE_SGIX
-  , pattern GL_TEXTURE_GEQUAL_R_SGIX
-  , pattern GL_TEXTURE_LEQUAL_R_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow.txt GL_SGIX_shadow> extension is available.
-
-gl_SGIX_shadow :: Bool
-gl_SGIX_shadow = member "GL_SGIX_shadow" extensions
-{-# NOINLINE gl_SGIX_shadow #-}
-
-pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B
-
-pattern GL_TEXTURE_COMPARE_SGIX = 0x819A
-
-pattern GL_TEXTURE_GEQUAL_R_SGIX = 0x819D
-
-pattern GL_TEXTURE_LEQUAL_R_SGIX = 0x819C
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/ShadowAmbient.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/ShadowAmbient.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/ShadowAmbient.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.ShadowAmbient (
-  -- * Extension Support
-    gl_SGIX_shadow_ambient
-
-  -- * GL_SGIX_shadow_ambient
-  , pattern GL_SHADOW_AMBIENT_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow_ambient.txt GL_SGIX_shadow_ambient> extension is available.
-
-gl_SGIX_shadow_ambient :: Bool
-gl_SGIX_shadow_ambient = member "GL_SGIX_shadow_ambient" extensions
-{-# NOINLINE gl_SGIX_shadow_ambient #-}
-
-pattern GL_SHADOW_AMBIENT_SGIX = 0x80BF
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Sprite.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Sprite.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Sprite.hs
+++ /dev/null
@@ -1,111 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Sprite (
-  -- * Extension Support
-    gl_SGIX_sprite
-
-  -- * GL_SGIX_sprite
-  , glSpriteParameterfSGIX
-  , glSpriteParameterfvSGIX
-  , glSpriteParameteriSGIX
-  , glSpriteParameterivSGIX
-  , pattern GL_SPRITE_AXIAL_SGIX
-  , pattern GL_SPRITE_AXIS_SGIX
-  , pattern GL_SPRITE_EYE_ALIGNED_SGIX
-  , pattern GL_SPRITE_MODE_SGIX
-  , pattern GL_SPRITE_OBJECT_ALIGNED_SGIX
-  , pattern GL_SPRITE_SGIX
-  , pattern GL_SPRITE_TRANSLATION_SGIX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/sprite.txt GL_SGIX_sprite> extension is available.
-
-gl_SGIX_sprite :: Bool
-gl_SGIX_sprite = member "GL_SGIX_sprite" extensions
-{-# NOINLINE gl_SGIX_sprite #-}
-
--- | Usage: @'glSpriteParameterfSGIX' pname param@
---
--- The parameter @pname@ is a @SpriteParameterNameSGIX@.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glSpriteParameterfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
-glSpriteParameterfSGIX = ffienumfloatIOV glSpriteParameterfSGIXFunPtr
-
-glSpriteParameterfSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glSpriteParameterfSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameterfSGIX")
-
-{-# NOINLINE glSpriteParameterfSGIXFunPtr #-}
-
--- | Usage: @'glSpriteParameterfvSGIX' pname params@
---
--- The parameter @pname@ is a @SpriteParameterNameSGIX@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glSpriteParameterfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glSpriteParameterfvSGIX = ffienumPtrfloatIOV glSpriteParameterfvSGIXFunPtr
-
-glSpriteParameterfvSGIXFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glSpriteParameterfvSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameterfvSGIX")
-
-{-# NOINLINE glSpriteParameterfvSGIXFunPtr #-}
-
--- | Usage: @'glSpriteParameteriSGIX' pname param@
---
--- The parameter @pname@ is a @SpriteParameterNameSGIX@.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glSpriteParameteriSGIX :: MonadIO m => GLenum -> GLint -> m ()
-glSpriteParameteriSGIX = ffienumintIOV glSpriteParameteriSGIXFunPtr
-
-glSpriteParameteriSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glSpriteParameteriSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameteriSGIX")
-
-{-# NOINLINE glSpriteParameteriSGIXFunPtr #-}
-
--- | Usage: @'glSpriteParameterivSGIX' pname params@
---
--- The parameter @pname@ is a @SpriteParameterNameSGIX@.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glSpriteParameterivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glSpriteParameterivSGIX = ffienumPtrintIOV glSpriteParameterivSGIXFunPtr
-
-glSpriteParameterivSGIXFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glSpriteParameterivSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameterivSGIX")
-
-{-# NOINLINE glSpriteParameterivSGIXFunPtr #-}
-
-pattern GL_SPRITE_AXIAL_SGIX = 0x814C
-
-pattern GL_SPRITE_AXIS_SGIX = 0x814A
-
-pattern GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E
-
-pattern GL_SPRITE_MODE_SGIX = 0x8149
-
-pattern GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D
-
-pattern GL_SPRITE_SGIX = 0x8148
-
-pattern GL_SPRITE_TRANSLATION_SGIX = 0x814B
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Subsample.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Subsample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Subsample.hs
+++ /dev/null
@@ -1,32 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Subsample (
-  -- * Extension Support
-    gl_SGIX_subsample
-
-  -- * GL_SGIX_subsample
-  , pattern GL_PACK_SUBSAMPLE_RATE_SGIX
-  , pattern GL_PIXEL_SUBSAMPLE_2424_SGIX
-  , pattern GL_PIXEL_SUBSAMPLE_4242_SGIX
-  , pattern GL_PIXEL_SUBSAMPLE_4444_SGIX
-  , pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_subsample extension is available.
-
-gl_SGIX_subsample :: Bool
-gl_SGIX_subsample = member "GL_SGIX_subsample" extensions
-{-# NOINLINE gl_SGIX_subsample #-}
-
-pattern GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0
-
-pattern GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3
-
-pattern GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4
-
-pattern GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2
-
-pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/TagSampleBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/TagSampleBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/TagSampleBuffer.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.TagSampleBuffer (
-  -- * Extension Support
-    gl_SGIX_tag_sample_buffer
-
-  -- * GL_SGIX_tag_sample_buffer
-  , glTagSampleBufferSGIX
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/tag_sample_buffer.txt GL_SGIX_tag_sample_buffer> extension is available.
-
-gl_SGIX_tag_sample_buffer :: Bool
-gl_SGIX_tag_sample_buffer = member "GL_SGIX_tag_sample_buffer" extensions
-{-# NOINLINE gl_SGIX_tag_sample_buffer #-}
-
--- | Usage: @'glTagSampleBufferSGIX'@
-
-
-glTagSampleBufferSGIX :: MonadIO m => m ()
-glTagSampleBufferSGIX = ffiIOV glTagSampleBufferSGIXFunPtr
-
-glTagSampleBufferSGIXFunPtr :: FunPtr (IO ())
-glTagSampleBufferSGIXFunPtr = unsafePerformIO (getProcAddress "glTagSampleBufferSGIX")
-
-{-# NOINLINE glTagSampleBufferSGIXFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureAddEnv.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureAddEnv.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureAddEnv.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.TextureAddEnv (
-  -- * Extension Support
-    gl_SGIX_texture_add_env
-
-  -- * GL_SGIX_texture_add_env
-  , pattern GL_TEXTURE_ENV_BIAS_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_texture_add_env extension is available.
-
-gl_SGIX_texture_add_env :: Bool
-gl_SGIX_texture_add_env = member "GL_SGIX_texture_add_env" extensions
-{-# NOINLINE gl_SGIX_texture_add_env #-}
-
-pattern GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.TextureCoordinateClamp (
-  -- * Extension Support
-    gl_SGIX_texture_coordinate_clamp
-
-  -- * GL_SGIX_texture_coordinate_clamp
-  , pattern GL_TEXTURE_MAX_CLAMP_R_SGIX
-  , pattern GL_TEXTURE_MAX_CLAMP_S_SGIX
-  , pattern GL_TEXTURE_MAX_CLAMP_T_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_coordinate_clamp.txt GL_SGIX_texture_coordinate_clamp> extension is available.
-
-gl_SGIX_texture_coordinate_clamp :: Bool
-gl_SGIX_texture_coordinate_clamp = member "GL_SGIX_texture_coordinate_clamp" extensions
-{-# NOINLINE gl_SGIX_texture_coordinate_clamp #-}
-
-pattern GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B
-
-pattern GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369
-
-pattern GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureLodBias.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureLodBias.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureLodBias.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.TextureLodBias (
-  -- * Extension Support
-    gl_SGIX_texture_lod_bias
-
-  -- * GL_SGIX_texture_lod_bias
-  , pattern GL_TEXTURE_LOD_BIAS_R_SGIX
-  , pattern GL_TEXTURE_LOD_BIAS_S_SGIX
-  , pattern GL_TEXTURE_LOD_BIAS_T_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_lod_bias.txt GL_SGIX_texture_lod_bias> extension is available.
-
-gl_SGIX_texture_lod_bias :: Bool
-gl_SGIX_texture_lod_bias = member "GL_SGIX_texture_lod_bias" extensions
-{-# NOINLINE gl_SGIX_texture_lod_bias #-}
-
-pattern GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190
-
-pattern GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E
-
-pattern GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.TextureMultiBuffer (
-  -- * Extension Support
-    gl_SGIX_texture_multi_buffer
-
-  -- * GL_SGIX_texture_multi_buffer
-  , pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_multi_buffer.txt GL_SGIX_texture_multi_buffer> extension is available.
-
-gl_SGIX_texture_multi_buffer :: Bool
-gl_SGIX_texture_multi_buffer = member "GL_SGIX_texture_multi_buffer" extensions
-{-# NOINLINE gl_SGIX_texture_multi_buffer #-}
-
-pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureScaleBias.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureScaleBias.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/TextureScaleBias.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.TextureScaleBias (
-  -- * Extension Support
-    gl_SGIX_texture_scale_bias
-
-  -- * GL_SGIX_texture_scale_bias
-  , pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX
-  , pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX
-  , pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX
-  , pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_scale_bias.txt GL_SGIX_texture_scale_bias> extension is available.
-
-gl_SGIX_texture_scale_bias :: Bool
-gl_SGIX_texture_scale_bias = member "GL_SGIX_texture_scale_bias" extensions
-{-# NOINLINE gl_SGIX_texture_scale_bias #-}
-
-pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B
-
-pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179
-
-pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C
-
-pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/VertexPreclip.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/VertexPreclip.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/VertexPreclip.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.VertexPreclip (
-  -- * Extension Support
-    gl_SGIX_vertex_preclip
-
-  -- * GL_SGIX_vertex_preclip
-  , pattern GL_VERTEX_PRECLIP_HINT_SGIX
-  , pattern GL_VERTEX_PRECLIP_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/vertex_preclip.txt GL_SGIX_vertex_preclip> extension is available.
-
-gl_SGIX_vertex_preclip :: Bool
-gl_SGIX_vertex_preclip = member "GL_SGIX_vertex_preclip" extensions
-{-# NOINLINE gl_SGIX_vertex_preclip #-}
-
-pattern GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF
-
-pattern GL_VERTEX_PRECLIP_SGIX = 0x83EE
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Ycrcb.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Ycrcb.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Ycrcb.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Ycrcb (
-  -- * Extension Support
-    gl_SGIX_ycrcb
-
-  -- * GL_SGIX_ycrcb
-  , pattern GL_YCRCB_422_SGIX
-  , pattern GL_YCRCB_444_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ycrcb.txt GL_SGIX_ycrcb> extension is available.
-
-gl_SGIX_ycrcb :: Bool
-gl_SGIX_ycrcb = member "GL_SGIX_ycrcb" extensions
-{-# NOINLINE gl_SGIX_ycrcb #-}
-
-pattern GL_YCRCB_422_SGIX = 0x81BB
-
-pattern GL_YCRCB_444_SGIX = 0x81BC
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/YcrcbSubsample.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/YcrcbSubsample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/YcrcbSubsample.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.YcrcbSubsample (
-  -- * Extension Support
-    gl_SGIX_ycrcb_subsample
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_ycrcb_subsample extension is available.
-
-gl_SGIX_ycrcb_subsample :: Bool
-gl_SGIX_ycrcb_subsample = member "GL_SGIX_ycrcb_subsample" extensions
-{-# NOINLINE gl_SGIX_ycrcb_subsample #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/SGIX/Ycrcba.hs b/dist/build/autogen/Graphics/GL/Ext/SGIX/Ycrcba.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SGIX/Ycrcba.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SGIX.Ycrcba (
-  -- * Extension Support
-    gl_SGIX_ycrcba
-
-  -- * GL_SGIX_ycrcba
-  , pattern GL_YCRCBA_SGIX
-  , pattern GL_YCRCB_SGIX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the GL_SGIX_ycrcba extension is available.
-
-gl_SGIX_ycrcba :: Bool
-gl_SGIX_ycrcba = member "GL_SGIX_ycrcba" extensions
-{-# NOINLINE gl_SGIX_ycrcba #-}
-
-pattern GL_YCRCBA_SGIX = 0x8319
-
-pattern GL_YCRCB_SGIX = 0x8318
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUN.hs b/dist/build/autogen/Graphics/GL/Ext/SUN.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUN.hs
+++ /dev/null
@@ -1,18 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUN (
-  -- * SUN Extensions
-    module Graphics.GL.Ext.SUN.ConvolutionBorderModes
-  , module Graphics.GL.Ext.SUN.GlobalAlpha
-  , module Graphics.GL.Ext.SUN.MeshArray
-  , module Graphics.GL.Ext.SUN.SliceAccum
-  , module Graphics.GL.Ext.SUN.TriangleList
-  , module Graphics.GL.Ext.SUN.Vertex
-) where
-
-import Graphics.GL.Ext.SUN.ConvolutionBorderModes
-import Graphics.GL.Ext.SUN.GlobalAlpha
-import Graphics.GL.Ext.SUN.MeshArray
-import Graphics.GL.Ext.SUN.SliceAccum
-import Graphics.GL.Ext.SUN.TriangleList
-import Graphics.GL.Ext.SUN.Vertex
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs b/dist/build/autogen/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUN.ConvolutionBorderModes (
-  -- * Extension Support
-    gl_SUN_convolution_border_modes
-
-  -- * GL_SUN_convolution_border_modes
-  , pattern GL_WRAP_BORDER_SUN
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/convolution_border_modes.txt GL_SUN_convolution_border_modes> extension is available.
-
-gl_SUN_convolution_border_modes :: Bool
-gl_SUN_convolution_border_modes = member "GL_SUN_convolution_border_modes" extensions
-{-# NOINLINE gl_SUN_convolution_border_modes #-}
-
-pattern GL_WRAP_BORDER_SUN = 0x81D4
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUN/GlobalAlpha.hs b/dist/build/autogen/Graphics/GL/Ext/SUN/GlobalAlpha.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUN/GlobalAlpha.hs
+++ /dev/null
@@ -1,124 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUN.GlobalAlpha (
-  -- * Extension Support
-    gl_SUN_global_alpha
-
-  -- * GL_SUN_global_alpha
-  , glGlobalAlphaFactorbSUN
-  , glGlobalAlphaFactordSUN
-  , glGlobalAlphaFactorfSUN
-  , glGlobalAlphaFactoriSUN
-  , glGlobalAlphaFactorsSUN
-  , glGlobalAlphaFactorubSUN
-  , glGlobalAlphaFactoruiSUN
-  , glGlobalAlphaFactorusSUN
-  , pattern GL_GLOBAL_ALPHA_FACTOR_SUN
-  , pattern GL_GLOBAL_ALPHA_SUN
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/global_alpha.txt GL_SUN_global_alpha> extension is available.
-
-gl_SUN_global_alpha :: Bool
-gl_SUN_global_alpha = member "GL_SUN_global_alpha" extensions
-{-# NOINLINE gl_SUN_global_alpha #-}
-
--- | Usage: @'glGlobalAlphaFactorbSUN' factor@
-
-
-glGlobalAlphaFactorbSUN :: MonadIO m => GLbyte -> m ()
-glGlobalAlphaFactorbSUN = ffibyteIOV glGlobalAlphaFactorbSUNFunPtr
-
-glGlobalAlphaFactorbSUNFunPtr :: FunPtr (GLbyte -> IO ())
-glGlobalAlphaFactorbSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorbSUN")
-
-{-# NOINLINE glGlobalAlphaFactorbSUNFunPtr #-}
-
--- | Usage: @'glGlobalAlphaFactordSUN' factor@
-
-
-glGlobalAlphaFactordSUN :: MonadIO m => GLdouble -> m ()
-glGlobalAlphaFactordSUN = ffidoubleIOV glGlobalAlphaFactordSUNFunPtr
-
-glGlobalAlphaFactordSUNFunPtr :: FunPtr (GLdouble -> IO ())
-glGlobalAlphaFactordSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactordSUN")
-
-{-# NOINLINE glGlobalAlphaFactordSUNFunPtr #-}
-
--- | Usage: @'glGlobalAlphaFactorfSUN' factor@
-
-
-glGlobalAlphaFactorfSUN :: MonadIO m => GLfloat -> m ()
-glGlobalAlphaFactorfSUN = ffifloatIOV glGlobalAlphaFactorfSUNFunPtr
-
-glGlobalAlphaFactorfSUNFunPtr :: FunPtr (GLfloat -> IO ())
-glGlobalAlphaFactorfSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorfSUN")
-
-{-# NOINLINE glGlobalAlphaFactorfSUNFunPtr #-}
-
--- | Usage: @'glGlobalAlphaFactoriSUN' factor@
-
-
-glGlobalAlphaFactoriSUN :: MonadIO m => GLint -> m ()
-glGlobalAlphaFactoriSUN = ffiintIOV glGlobalAlphaFactoriSUNFunPtr
-
-glGlobalAlphaFactoriSUNFunPtr :: FunPtr (GLint -> IO ())
-glGlobalAlphaFactoriSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactoriSUN")
-
-{-# NOINLINE glGlobalAlphaFactoriSUNFunPtr #-}
-
--- | Usage: @'glGlobalAlphaFactorsSUN' factor@
-
-
-glGlobalAlphaFactorsSUN :: MonadIO m => GLshort -> m ()
-glGlobalAlphaFactorsSUN = ffishortIOV glGlobalAlphaFactorsSUNFunPtr
-
-glGlobalAlphaFactorsSUNFunPtr :: FunPtr (GLshort -> IO ())
-glGlobalAlphaFactorsSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorsSUN")
-
-{-# NOINLINE glGlobalAlphaFactorsSUNFunPtr #-}
-
--- | Usage: @'glGlobalAlphaFactorubSUN' factor@
-
-
-glGlobalAlphaFactorubSUN :: MonadIO m => GLubyte -> m ()
-glGlobalAlphaFactorubSUN = ffiubyteIOV glGlobalAlphaFactorubSUNFunPtr
-
-glGlobalAlphaFactorubSUNFunPtr :: FunPtr (GLubyte -> IO ())
-glGlobalAlphaFactorubSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorubSUN")
-
-{-# NOINLINE glGlobalAlphaFactorubSUNFunPtr #-}
-
--- | Usage: @'glGlobalAlphaFactoruiSUN' factor@
-
-
-glGlobalAlphaFactoruiSUN :: MonadIO m => GLuint -> m ()
-glGlobalAlphaFactoruiSUN = ffiuintIOV glGlobalAlphaFactoruiSUNFunPtr
-
-glGlobalAlphaFactoruiSUNFunPtr :: FunPtr (GLuint -> IO ())
-glGlobalAlphaFactoruiSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactoruiSUN")
-
-{-# NOINLINE glGlobalAlphaFactoruiSUNFunPtr #-}
-
--- | Usage: @'glGlobalAlphaFactorusSUN' factor@
-
-
-glGlobalAlphaFactorusSUN :: MonadIO m => GLushort -> m ()
-glGlobalAlphaFactorusSUN = ffiushortIOV glGlobalAlphaFactorusSUNFunPtr
-
-glGlobalAlphaFactorusSUNFunPtr :: FunPtr (GLushort -> IO ())
-glGlobalAlphaFactorusSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorusSUN")
-
-{-# NOINLINE glGlobalAlphaFactorusSUNFunPtr #-}
-
-pattern GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA
-
-pattern GL_GLOBAL_ALPHA_SUN = 0x81D9
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUN/MeshArray.hs b/dist/build/autogen/Graphics/GL/Ext/SUN/MeshArray.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUN/MeshArray.hs
+++ /dev/null
@@ -1,42 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUN.MeshArray (
-  -- * Extension Support
-    gl_SUN_mesh_array
-
-  -- * GL_SUN_mesh_array
-  , glDrawMeshArraysSUN
-  , pattern GL_QUAD_MESH_SUN
-  , pattern GL_TRIANGLE_MESH_SUN
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/mesh_array.txt GL_SUN_mesh_array> extension is available.
-
-gl_SUN_mesh_array :: Bool
-gl_SUN_mesh_array = member "GL_SUN_mesh_array" extensions
-{-# NOINLINE gl_SUN_mesh_array #-}
-
--- | Usage: @'glDrawMeshArraysSUN' mode first count width@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
-
-
-glDrawMeshArraysSUN :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawMeshArraysSUN = ffienumintsizeisizeiIOV glDrawMeshArraysSUNFunPtr
-
-glDrawMeshArraysSUNFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawMeshArraysSUNFunPtr = unsafePerformIO (getProcAddress "glDrawMeshArraysSUN")
-
-{-# NOINLINE glDrawMeshArraysSUNFunPtr #-}
-
-pattern GL_QUAD_MESH_SUN = 0x8614
-
-pattern GL_TRIANGLE_MESH_SUN = 0x8615
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUN/SliceAccum.hs b/dist/build/autogen/Graphics/GL/Ext/SUN/SliceAccum.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUN/SliceAccum.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUN.SliceAccum (
-  -- * Extension Support
-    gl_SUN_slice_accum
-
-  -- * GL_SUN_slice_accum
-  , pattern GL_SLICE_ACCUM_SUN
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/slice_accum.txt GL_SUN_slice_accum> extension is available.
-
-gl_SUN_slice_accum :: Bool
-gl_SUN_slice_accum = member "GL_SUN_slice_accum" extensions
-{-# NOINLINE gl_SUN_slice_accum #-}
-
-pattern GL_SLICE_ACCUM_SUN = 0x85CC
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUN/TriangleList.hs b/dist/build/autogen/Graphics/GL/Ext/SUN/TriangleList.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUN/TriangleList.hs
+++ /dev/null
@@ -1,167 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUN.TriangleList (
-  -- * Extension Support
-    gl_SUN_triangle_list
-
-  -- * GL_SUN_triangle_list
-  , glReplacementCodePointerSUN
-  , glReplacementCodeubSUN
-  , glReplacementCodeubvSUN
-  , glReplacementCodeuiSUN
-  , glReplacementCodeuivSUN
-  , glReplacementCodeusSUN
-  , glReplacementCodeusvSUN
-  , pattern GL_R1UI_C3F_V3F_SUN
-  , pattern GL_R1UI_C4F_N3F_V3F_SUN
-  , pattern GL_R1UI_C4UB_V3F_SUN
-  , pattern GL_R1UI_N3F_V3F_SUN
-  , pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN
-  , pattern GL_R1UI_T2F_N3F_V3F_SUN
-  , pattern GL_R1UI_T2F_V3F_SUN
-  , pattern GL_R1UI_V3F_SUN
-  , pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN
-  , pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN
-  , pattern GL_REPLACEMENT_CODE_ARRAY_SUN
-  , pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN
-  , pattern GL_REPLACEMENT_CODE_SUN
-  , pattern GL_REPLACE_MIDDLE_SUN
-  , pattern GL_REPLACE_OLDEST_SUN
-  , pattern GL_RESTART_SUN
-  , pattern GL_TRIANGLE_LIST_SUN
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/triangle_list.txt GL_SUN_triangle_list> extension is available.
-
-gl_SUN_triangle_list :: Bool
-gl_SUN_triangle_list = member "GL_SUN_triangle_list" extensions
-{-# NOINLINE gl_SUN_triangle_list #-}
-
--- | Usage: @'glReplacementCodePointerSUN' type stride pointer@
---
--- The parameter @type@ is a @ReplacementCodeTypeSUN@.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
-glReplacementCodePointerSUN = ffienumsizeiPtrPtrVIOV glReplacementCodePointerSUNFunPtr
-
-glReplacementCodePointerSUNFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
-glReplacementCodePointerSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodePointerSUN")
-
-{-# NOINLINE glReplacementCodePointerSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeubSUN' code@
-
-
-glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()
-glReplacementCodeubSUN = ffiubyteIOV glReplacementCodeubSUNFunPtr
-
-glReplacementCodeubSUNFunPtr :: FunPtr (GLubyte -> IO ())
-glReplacementCodeubSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeubSUN")
-
-{-# NOINLINE glReplacementCodeubSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeubvSUN' code@
---
--- The length of @code@ should be @COMPSIZE()@.
-
-
-glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()
-glReplacementCodeubvSUN = ffiPtrubyteIOV glReplacementCodeubvSUNFunPtr
-
-glReplacementCodeubvSUNFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glReplacementCodeubvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeubvSUN")
-
-{-# NOINLINE glReplacementCodeubvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiSUN' code@
-
-
-glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()
-glReplacementCodeuiSUN = ffiuintIOV glReplacementCodeuiSUNFunPtr
-
-glReplacementCodeuiSUNFunPtr :: FunPtr (GLuint -> IO ())
-glReplacementCodeuiSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiSUN")
-
-{-# NOINLINE glReplacementCodeuiSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuivSUN' code@
---
--- The length of @code@ should be @COMPSIZE()@.
-
-
-glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()
-glReplacementCodeuivSUN = ffiPtruintIOV glReplacementCodeuivSUNFunPtr
-
-glReplacementCodeuivSUNFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glReplacementCodeuivSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuivSUN")
-
-{-# NOINLINE glReplacementCodeuivSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeusSUN' code@
-
-
-glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()
-glReplacementCodeusSUN = ffiushortIOV glReplacementCodeusSUNFunPtr
-
-glReplacementCodeusSUNFunPtr :: FunPtr (GLushort -> IO ())
-glReplacementCodeusSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeusSUN")
-
-{-# NOINLINE glReplacementCodeusSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeusvSUN' code@
---
--- The length of @code@ should be @COMPSIZE()@.
-
-
-glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()
-glReplacementCodeusvSUN = ffiPtrushortIOV glReplacementCodeusvSUNFunPtr
-
-glReplacementCodeusvSUNFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glReplacementCodeusvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeusvSUN")
-
-{-# NOINLINE glReplacementCodeusvSUNFunPtr #-}
-
-pattern GL_R1UI_C3F_V3F_SUN = 0x85C6
-
-pattern GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8
-
-pattern GL_R1UI_C4UB_V3F_SUN = 0x85C5
-
-pattern GL_R1UI_N3F_V3F_SUN = 0x85C7
-
-pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB
-
-pattern GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA
-
-pattern GL_R1UI_T2F_V3F_SUN = 0x85C9
-
-pattern GL_R1UI_V3F_SUN = 0x85C4
-
-pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3
-
-pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2
-
-pattern GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0
-
-pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1
-
-pattern GL_REPLACEMENT_CODE_SUN = 0x81D8
-
-pattern GL_REPLACE_MIDDLE_SUN = 0x0002
-
-pattern GL_REPLACE_OLDEST_SUN = 0x0003
-
-pattern GL_RESTART_SUN = 0x0001
-
-pattern GL_TRIANGLE_LIST_SUN = 0x81D7
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUN/Vertex.hs b/dist/build/autogen/Graphics/GL/Ext/SUN/Vertex.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUN/Vertex.hs
+++ /dev/null
@@ -1,652 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUN.Vertex (
-  -- * Extension Support
-    gl_SUN_vertex
-
-  -- * GL_SUN_vertex
-  , glColor3fVertex3fSUN
-  , glColor3fVertex3fvSUN
-  , glColor4fNormal3fVertex3fSUN
-  , glColor4fNormal3fVertex3fvSUN
-  , glColor4ubVertex2fSUN
-  , glColor4ubVertex2fvSUN
-  , glColor4ubVertex3fSUN
-  , glColor4ubVertex3fvSUN
-  , glNormal3fVertex3fSUN
-  , glNormal3fVertex3fvSUN
-  , glReplacementCodeuiColor3fVertex3fSUN
-  , glReplacementCodeuiColor3fVertex3fvSUN
-  , glReplacementCodeuiColor4fNormal3fVertex3fSUN
-  , glReplacementCodeuiColor4fNormal3fVertex3fvSUN
-  , glReplacementCodeuiColor4ubVertex3fSUN
-  , glReplacementCodeuiColor4ubVertex3fvSUN
-  , glReplacementCodeuiNormal3fVertex3fSUN
-  , glReplacementCodeuiNormal3fVertex3fvSUN
-  , glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN
-  , glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN
-  , glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN
-  , glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN
-  , glReplacementCodeuiTexCoord2fVertex3fSUN
-  , glReplacementCodeuiTexCoord2fVertex3fvSUN
-  , glReplacementCodeuiVertex3fSUN
-  , glReplacementCodeuiVertex3fvSUN
-  , glTexCoord2fColor3fVertex3fSUN
-  , glTexCoord2fColor3fVertex3fvSUN
-  , glTexCoord2fColor4fNormal3fVertex3fSUN
-  , glTexCoord2fColor4fNormal3fVertex3fvSUN
-  , glTexCoord2fColor4ubVertex3fSUN
-  , glTexCoord2fColor4ubVertex3fvSUN
-  , glTexCoord2fNormal3fVertex3fSUN
-  , glTexCoord2fNormal3fVertex3fvSUN
-  , glTexCoord2fVertex3fSUN
-  , glTexCoord2fVertex3fvSUN
-  , glTexCoord4fColor4fNormal3fVertex4fSUN
-  , glTexCoord4fColor4fNormal3fVertex4fvSUN
-  , glTexCoord4fVertex4fSUN
-  , glTexCoord4fVertex4fvSUN
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/vertex.txt GL_SUN_vertex> extension is available.
-
-gl_SUN_vertex :: Bool
-gl_SUN_vertex = member "GL_SUN_vertex" extensions
-{-# NOINLINE gl_SUN_vertex #-}
-
--- | Usage: @'glColor3fVertex3fSUN' r g b x y z@
-
-
-glColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glColor3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatIOV glColor3fVertex3fSUNFunPtr
-
-glColor3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glColor3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glColor3fVertex3fSUN")
-
-{-# NOINLINE glColor3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glColor3fVertex3fvSUN' c v@
---
--- The length of @c@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
-glColor3fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glColor3fVertex3fvSUNFunPtr
-
-glColor3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
-glColor3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor3fVertex3fvSUN")
-
-{-# NOINLINE glColor3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glColor4fNormal3fVertex3fSUN' r g b a nx ny nz x y z@
-
-
-glColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glColor4fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glColor4fNormal3fVertex3fSUNFunPtr
-
-glColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glColor4fNormal3fVertex3fSUN")
-
-{-# NOINLINE glColor4fNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glColor4fNormal3fVertex3fvSUN' c n v@
---
--- The length of @c@ should be @4@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glColor4fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glColor4fNormal3fVertex3fvSUNFunPtr
-
-glColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor4fNormal3fVertex3fvSUN")
-
-{-# NOINLINE glColor4fNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glColor4ubVertex2fSUN' r g b a x y@
-
-
-glColor4ubVertex2fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
-glColor4ubVertex2fSUN = ffiubyteubyteubyteubytefloatfloatIOV glColor4ubVertex2fSUNFunPtr
-
-glColor4ubVertex2fSUNFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ())
-glColor4ubVertex2fSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex2fSUN")
-
-{-# NOINLINE glColor4ubVertex2fSUNFunPtr #-}
-
--- | Usage: @'glColor4ubVertex2fvSUN' c v@
---
--- The length of @c@ should be @4@.
---
--- The length of @v@ should be @2@.
-
-
-glColor4ubVertex2fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
-glColor4ubVertex2fvSUN = ffiPtrubytePtrfloatIOV glColor4ubVertex2fvSUNFunPtr
-
-glColor4ubVertex2fvSUNFunPtr :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ())
-glColor4ubVertex2fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex2fvSUN")
-
-{-# NOINLINE glColor4ubVertex2fvSUNFunPtr #-}
-
--- | Usage: @'glColor4ubVertex3fSUN' r g b a x y z@
-
-
-glColor4ubVertex3fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
-glColor4ubVertex3fSUN = ffiubyteubyteubyteubytefloatfloatfloatIOV glColor4ubVertex3fSUNFunPtr
-
-glColor4ubVertex3fSUNFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glColor4ubVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex3fSUN")
-
-{-# NOINLINE glColor4ubVertex3fSUNFunPtr #-}
-
--- | Usage: @'glColor4ubVertex3fvSUN' c v@
---
--- The length of @c@ should be @4@.
---
--- The length of @v@ should be @3@.
-
-
-glColor4ubVertex3fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
-glColor4ubVertex3fvSUN = ffiPtrubytePtrfloatIOV glColor4ubVertex3fvSUNFunPtr
-
-glColor4ubVertex3fvSUNFunPtr :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ())
-glColor4ubVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex3fvSUN")
-
-{-# NOINLINE glColor4ubVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glNormal3fVertex3fSUN' nx ny nz x y z@
-
-
-glNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatIOV glNormal3fVertex3fSUNFunPtr
-
-glNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glNormal3fVertex3fSUN")
-
-{-# NOINLINE glNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glNormal3fVertex3fvSUN' n v@
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
-glNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glNormal3fVertex3fvSUNFunPtr
-
-glNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
-glNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glNormal3fVertex3fvSUN")
-
-{-# NOINLINE glNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiColor3fVertex3fSUN' rc r g b x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiColor3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiColor3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiColor3fVertex3fSUNFunPtr
-
-glReplacementCodeuiColor3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiColor3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor3fVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiColor3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiColor3fVertex3fvSUN' rc c v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @c@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiColor3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glReplacementCodeuiColor3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiColor3fVertex3fvSUNFunPtr
-
-glReplacementCodeuiColor3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glReplacementCodeuiColor3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor3fVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiColor3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiColor4fNormal3fVertex3fSUN' rc r g b a nx ny nz x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiColor4fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr
-
-glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4fNormal3fVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiColor4fNormal3fVertex3fvSUN' rc c n v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @c@ should be @4@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glReplacementCodeuiColor4fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr
-
-glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiColor4ubVertex3fSUN' rc r g b a x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiColor4ubVertex3fSUN :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiColor4ubVertex3fSUN = ffiuintubyteubyteubyteubytefloatfloatfloatIOV glReplacementCodeuiColor4ubVertex3fSUNFunPtr
-
-glReplacementCodeuiColor4ubVertex3fSUNFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiColor4ubVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4ubVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiColor4ubVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiColor4ubVertex3fvSUN' rc c v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @c@ should be @4@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiColor4ubVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
-glReplacementCodeuiColor4ubVertex3fvSUN = ffiPtruintPtrubytePtrfloatIOV glReplacementCodeuiColor4ubVertex3fvSUNFunPtr
-
-glReplacementCodeuiColor4ubVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
-glReplacementCodeuiColor4ubVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4ubVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiColor4ubVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiNormal3fVertex3fSUN' rc nx ny nz x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiNormal3fVertex3fSUNFunPtr
-
-glReplacementCodeuiNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiNormal3fVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiNormal3fVertex3fvSUN' rc n v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glReplacementCodeuiNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiNormal3fVertex3fvSUNFunPtr
-
-glReplacementCodeuiNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glReplacementCodeuiNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiNormal3fVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN' rc s t r g b a nx ny nz x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr
-
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN' rc tc c n v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @tc@ should be @2@.
---
--- The length of @c@ should be @4@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr
-
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN' rc s t nx ny nz x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr
-
-glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN' rc tc n v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @tc@ should be @2@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr
-
-glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiTexCoord2fVertex3fSUN' rc s t x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiTexCoord2fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiTexCoord2fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr
-
-glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiTexCoord2fVertex3fvSUN' rc tc v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @tc@ should be @2@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glReplacementCodeuiTexCoord2fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr
-
-glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiVertex3fSUN' rc x y z@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
-
-
-glReplacementCodeuiVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glReplacementCodeuiVertex3fSUN = ffiuintfloatfloatfloatIOV glReplacementCodeuiVertex3fSUNFunPtr
-
-glReplacementCodeuiVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glReplacementCodeuiVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiVertex3fSUN")
-
-{-# NOINLINE glReplacementCodeuiVertex3fSUNFunPtr #-}
-
--- | Usage: @'glReplacementCodeuiVertex3fvSUN' rc v@
---
--- The parameter @rc@ is a @ReplacementCodeSUN@.
---
--- The length of @rc@ should be @1@.
---
--- The length of @v@ should be @3@.
-
-
-glReplacementCodeuiVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> m ()
-glReplacementCodeuiVertex3fvSUN = ffiPtruintPtrfloatIOV glReplacementCodeuiVertex3fvSUNFunPtr
-
-glReplacementCodeuiVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ())
-glReplacementCodeuiVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiVertex3fvSUN")
-
-{-# NOINLINE glReplacementCodeuiVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fColor3fVertex3fSUN' s t r g b x y z@
-
-
-glTexCoord2fColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord2fColor3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fColor3fVertex3fSUNFunPtr
-
-glTexCoord2fColor3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord2fColor3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor3fVertex3fSUN")
-
-{-# NOINLINE glTexCoord2fColor3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fColor3fVertex3fvSUN' tc c v@
---
--- The length of @tc@ should be @2@.
---
--- The length of @c@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord2fColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glTexCoord2fColor3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glTexCoord2fColor3fVertex3fvSUNFunPtr
-
-glTexCoord2fColor3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glTexCoord2fColor3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor3fVertex3fvSUN")
-
-{-# NOINLINE glTexCoord2fColor3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fColor4fNormal3fVertex3fSUN' s t r g b a nx ny nz x y z@
-
-
-glTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord2fColor4fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr
-
-glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4fNormal3fVertex3fSUN")
-
-{-# NOINLINE glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fColor4fNormal3fVertex3fvSUN' tc c n v@
---
--- The length of @tc@ should be @2@.
---
--- The length of @c@ should be @4@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glTexCoord2fColor4fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr
-
-glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4fNormal3fVertex3fvSUN")
-
-{-# NOINLINE glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fColor4ubVertex3fSUN' s t r g b a x y z@
-
-
-glTexCoord2fColor4ubVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord2fColor4ubVertex3fSUN = ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV glTexCoord2fColor4ubVertex3fSUNFunPtr
-
-glTexCoord2fColor4ubVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord2fColor4ubVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4ubVertex3fSUN")
-
-{-# NOINLINE glTexCoord2fColor4ubVertex3fSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fColor4ubVertex3fvSUN' tc c v@
---
--- The length of @tc@ should be @2@.
---
--- The length of @c@ should be @4@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord2fColor4ubVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
-glTexCoord2fColor4ubVertex3fvSUN = ffiPtrfloatPtrubytePtrfloatIOV glTexCoord2fColor4ubVertex3fvSUNFunPtr
-
-glTexCoord2fColor4ubVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ())
-glTexCoord2fColor4ubVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4ubVertex3fvSUN")
-
-{-# NOINLINE glTexCoord2fColor4ubVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fNormal3fVertex3fSUN' s t nx ny nz x y z@
-
-
-glTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord2fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fNormal3fVertex3fSUNFunPtr
-
-glTexCoord2fNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord2fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fNormal3fVertex3fSUN")
-
-{-# NOINLINE glTexCoord2fNormal3fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fNormal3fVertex3fvSUN' tc n v@
---
--- The length of @tc@ should be @2@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glTexCoord2fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glTexCoord2fNormal3fVertex3fvSUNFunPtr
-
-glTexCoord2fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glTexCoord2fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fNormal3fVertex3fvSUN")
-
-{-# NOINLINE glTexCoord2fNormal3fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fVertex3fSUN' s t x y z@
-
-
-glTexCoord2fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord2fVertex3fSUN = ffifloatfloatfloatfloatfloatIOV glTexCoord2fVertex3fSUNFunPtr
-
-glTexCoord2fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord2fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fVertex3fSUN")
-
-{-# NOINLINE glTexCoord2fVertex3fSUNFunPtr #-}
-
--- | Usage: @'glTexCoord2fVertex3fvSUN' tc v@
---
--- The length of @tc@ should be @2@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
-glTexCoord2fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glTexCoord2fVertex3fvSUNFunPtr
-
-glTexCoord2fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
-glTexCoord2fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fVertex3fvSUN")
-
-{-# NOINLINE glTexCoord2fVertex3fvSUNFunPtr #-}
-
--- | Usage: @'glTexCoord4fColor4fNormal3fVertex4fSUN' s t p q r g b a nx ny nz x y z w@
-
-
-glTexCoord4fColor4fNormal3fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord4fColor4fNormal3fVertex4fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr
-
-glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fColor4fNormal3fVertex4fSUN")
-
-{-# NOINLINE glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr #-}
-
--- | Usage: @'glTexCoord4fColor4fNormal3fVertex4fvSUN' tc c n v@
---
--- The length of @tc@ should be @4@.
---
--- The length of @c@ should be @4@.
---
--- The length of @n@ should be @3@.
---
--- The length of @v@ should be @4@.
-
-
-glTexCoord4fColor4fNormal3fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-glTexCoord4fColor4fNormal3fVertex4fvSUN = ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr
-
-glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
-glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fColor4fNormal3fVertex4fvSUN")
-
-{-# NOINLINE glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr #-}
-
--- | Usage: @'glTexCoord4fVertex4fSUN' s t p q x y z w@
-
-
-glTexCoord4fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord4fVertex4fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord4fVertex4fSUNFunPtr
-
-glTexCoord4fVertex4fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord4fVertex4fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fVertex4fSUN")
-
-{-# NOINLINE glTexCoord4fVertex4fSUNFunPtr #-}
-
--- | Usage: @'glTexCoord4fVertex4fvSUN' tc v@
---
--- The length of @tc@ should be @4@.
---
--- The length of @v@ should be @4@.
-
-
-glTexCoord4fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
-glTexCoord4fVertex4fvSUN = ffiPtrfloatPtrfloatIOV glTexCoord4fVertex4fvSUNFunPtr
-
-glTexCoord4fVertex4fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
-glTexCoord4fVertex4fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fVertex4fvSUN")
-
-{-# NOINLINE glTexCoord4fVertex4fvSUNFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUNX.hs b/dist/build/autogen/Graphics/GL/Ext/SUNX.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUNX.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUNX (
-  -- * SUNX Extensions
-    module Graphics.GL.Ext.SUNX.ConstantData
-) where
-
-import Graphics.GL.Ext.SUNX.ConstantData
diff --git a/dist/build/autogen/Graphics/GL/Ext/SUNX/ConstantData.hs b/dist/build/autogen/Graphics/GL/Ext/SUNX/ConstantData.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/SUNX/ConstantData.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.SUNX.ConstantData (
-  -- * Extension Support
-    gl_SUNX_constant_data
-
-  -- * GL_SUNX_constant_data
-  , glFinishTextureSUNX
-  , pattern GL_TEXTURE_CONSTANT_DATA_SUNX
-  , pattern GL_UNPACK_CONSTANT_DATA_SUNX
-) where
-
-import Control.Monad.IO.Class
-import Data.Set
-import Foreign.Ptr
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUNX/constant_data.txt GL_SUNX_constant_data> extension is available.
-
-gl_SUNX_constant_data :: Bool
-gl_SUNX_constant_data = member "GL_SUNX_constant_data" extensions
-{-# NOINLINE gl_SUNX_constant_data #-}
-
--- | Usage: @'glFinishTextureSUNX'@
-
-
-glFinishTextureSUNX :: MonadIO m => m ()
-glFinishTextureSUNX = ffiIOV glFinishTextureSUNXFunPtr
-
-glFinishTextureSUNXFunPtr :: FunPtr (IO ())
-glFinishTextureSUNXFunPtr = unsafePerformIO (getProcAddress "glFinishTextureSUNX")
-
-{-# NOINLINE glFinishTextureSUNXFunPtr #-}
-
-pattern GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6
-
-pattern GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5
diff --git a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX.hs b/dist/build/autogen/Graphics/GL/Ext/ThreeDFX.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ThreeDFX (
-  -- * 3DFX Extensions
-    module Graphics.GL.Ext.ThreeDFX.Multisample
-  , module Graphics.GL.Ext.ThreeDFX.Tbuffer
-  , module Graphics.GL.Ext.ThreeDFX.TextureCompressionFXT1
-) where
-
-import Graphics.GL.Ext.ThreeDFX.Multisample
-import Graphics.GL.Ext.ThreeDFX.Tbuffer
-import Graphics.GL.Ext.ThreeDFX.TextureCompressionFXT1
diff --git a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/Multisample.hs b/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/Multisample.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/Multisample.hs
+++ /dev/null
@@ -1,29 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ThreeDFX.Multisample (
-  -- * Extension Support
-    gl_3DFX_multisample
-
-  -- * GL_3DFX_multisample
-  , pattern GL_MULTISAMPLE_3DFX
-  , pattern GL_MULTISAMPLE_BIT_3DFX
-  , pattern GL_SAMPLES_3DFX
-  , pattern GL_SAMPLE_BUFFERS_3DFX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/3dfx_multisample.txt GL_3DFX_multisample> extension is available.
-
-gl_3DFX_multisample :: Bool
-gl_3DFX_multisample = member "GL_3DFX_multisample" extensions
-{-# NOINLINE gl_3DFX_multisample #-}
-
-pattern GL_MULTISAMPLE_3DFX = 0x86B2
-
-pattern GL_MULTISAMPLE_BIT_3DFX = 0x20000000
-
-pattern GL_SAMPLES_3DFX = 0x86B4
-
-pattern GL_SAMPLE_BUFFERS_3DFX = 0x86B3
diff --git a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/Tbuffer.hs b/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/Tbuffer.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/Tbuffer.hs
+++ /dev/null
@@ -1,34 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ThreeDFX.Tbuffer (
-  -- * Extension Support
-    gl_3DFX_tbuffer
-
-  -- * GL_3DFX_tbuffer
-  , glTbufferMask3DFX
-) 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.Types
-import System.IO.Unsafe
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/tbuffer.txt GL_3DFX_tbuffer> extension is available.
-
-gl_3DFX_tbuffer :: Bool
-gl_3DFX_tbuffer = member "GL_3DFX_tbuffer" extensions
-{-# NOINLINE gl_3DFX_tbuffer #-}
-
--- | Usage: @'glTbufferMask3DFX' mask@
-
-
-glTbufferMask3DFX :: MonadIO m => GLuint -> m ()
-glTbufferMask3DFX = ffiuintIOV glTbufferMask3DFXFunPtr
-
-glTbufferMask3DFXFunPtr :: FunPtr (GLuint -> IO ())
-glTbufferMask3DFXFunPtr = unsafePerformIO (getProcAddress "glTbufferMask3DFX")
-
-{-# NOINLINE glTbufferMask3DFXFunPtr #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs b/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.ThreeDFX.TextureCompressionFXT1 (
-  -- * Extension Support
-    gl_3DFX_texture_compression_FXT1
-
-  -- * GL_3DFX_texture_compression_FXT1
-  , pattern GL_COMPRESSED_RGBA_FXT1_3DFX
-  , pattern GL_COMPRESSED_RGB_FXT1_3DFX
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/texture_compression_FXT1.txt GL_3DFX_texture_compression_FXT1> extension is available.
-
-gl_3DFX_texture_compression_FXT1 :: Bool
-gl_3DFX_texture_compression_FXT1 = member "GL_3DFX_texture_compression_FXT1" extensions
-{-# NOINLINE gl_3DFX_texture_compression_FXT1 #-}
-
-pattern GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1
-
-pattern GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0
diff --git a/dist/build/autogen/Graphics/GL/Ext/VIV.hs b/dist/build/autogen/Graphics/GL/Ext/VIV.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/VIV.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.VIV (
-  -- * VIV Extensions
-    module Graphics.GL.Ext.VIV.ShaderBinary
-) where
-
-import Graphics.GL.Ext.VIV.ShaderBinary
diff --git a/dist/build/autogen/Graphics/GL/Ext/VIV/ShaderBinary.hs b/dist/build/autogen/Graphics/GL/Ext/VIV/ShaderBinary.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/VIV/ShaderBinary.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.VIV.ShaderBinary (
-  -- * Extension Support
-    gl_VIV_shader_binary
-
-  -- * GL_VIV_shader_binary
-  , pattern GL_SHADER_BINARY_VIV
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://www.khronos.org/registry/gles/extensions/VIV/VIV_shader_binary.txt GL_VIV_shader_binary> extension is available.
-
-gl_VIV_shader_binary :: Bool
-gl_VIV_shader_binary = member "GL_VIV_shader_binary" extensions
-{-# NOINLINE gl_VIV_shader_binary #-}
-
-pattern GL_SHADER_BINARY_VIV = 0x8FC4
diff --git a/dist/build/autogen/Graphics/GL/Ext/WIN.hs b/dist/build/autogen/Graphics/GL/Ext/WIN.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/WIN.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.WIN (
-  -- * WIN Extensions
-    module Graphics.GL.Ext.WIN.PhongShading
-  , module Graphics.GL.Ext.WIN.SpecularFog
-) where
-
-import Graphics.GL.Ext.WIN.PhongShading
-import Graphics.GL.Ext.WIN.SpecularFog
diff --git a/dist/build/autogen/Graphics/GL/Ext/WIN/PhongShading.hs b/dist/build/autogen/Graphics/GL/Ext/WIN/PhongShading.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/WIN/PhongShading.hs
+++ /dev/null
@@ -1,23 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.WIN.PhongShading (
-  -- * Extension Support
-    gl_WIN_phong_shading
-
-  -- * GL_WIN_phong_shading
-  , pattern GL_PHONG_HINT_WIN
-  , pattern GL_PHONG_WIN
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/phong_shading.txt GL_WIN_phong_shading> extension is available.
-
-gl_WIN_phong_shading :: Bool
-gl_WIN_phong_shading = member "GL_WIN_phong_shading" extensions
-{-# NOINLINE gl_WIN_phong_shading #-}
-
-pattern GL_PHONG_HINT_WIN = 0x80EB
-
-pattern GL_PHONG_WIN = 0x80EA
diff --git a/dist/build/autogen/Graphics/GL/Ext/WIN/SpecularFog.hs b/dist/build/autogen/Graphics/GL/Ext/WIN/SpecularFog.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Ext/WIN/SpecularFog.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Ext.WIN.SpecularFog (
-  -- * Extension Support
-    gl_WIN_specular_fog
-
-  -- * GL_WIN_specular_fog
-  , pattern GL_FOG_SPECULAR_TEXTURE_WIN
-) where
-
-import Data.Set
-import Graphics.GL.Internal.Proc
-
--- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/specular_fog.txt GL_WIN_specular_fog> extension is available.
-
-gl_WIN_specular_fog :: Bool
-gl_WIN_specular_fog = member "GL_WIN_specular_fog" extensions
-{-# NOINLINE gl_WIN_specular_fog #-}
-
-pattern GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC
diff --git a/dist/build/autogen/Graphics/GL/Internal/FFI.hs b/dist/build/autogen/Graphics/GL/Internal/FFI.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Internal/FFI.hs
+++ /dev/null
@@ -1,5358 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Internal.FFI (
-  -- * Invokers
-    ffienumfloatIOV
-  , ffienumfixedIOV
-  , ffiuintIOV
-  , ffiuintuintIOV
-  , ffienumIOV
-  , ffiuintPtrcharIOV
-  , ffienumuintuintuintuintuintIOV
-  , ffienumuintuintuintuintuintuintuintuintIOV
-  , ffienumuintuintuintuintuintuintuintuintuintuintuintIOV
-  , ffienumclampfIOV
-  , ffiIOV
-  , ffisizeiPtruintPtrbooleanIOboolean
-  , ffiintIOV
-  , ffienumintenumsizeiuintuintIOV
-  , ffihandleARBhandleARBIOV
-  , ffiuintenumIOV
-  , ffienumuintIOV
-  , ffienumuintuintIOV
-  , ffiuintuintPtrcharIOV
-  , ffihandleARBuintPtrcharARBIOV
-  , ffienumuintuintintptrIOV
-  , ffienumuintuintintptrsizeiptrIOV
-  , ffienumuintsizeiPtruintIOV
-  , ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV
-  , ffiuintuintuintPtrcharIOV
-  , ffiuintuintintbooleanintenumenumIOV
-  , ffiuintuintintbooleanintenumintIOV
-  , ffiuintsizeiPtruintIOV
-  , ffienumenumIOuint
-  , ffienumenumuintIOV
-  , ffienumIOuint
-  , ffienumenumenumIOuint
-  , ffiuintuintintptrsizeiIOV
-  , ffiuintsizeiPtruintPtrintptrPtrsizeiIOV
-  , ffiuintuintenumintptrARBIOV
-  , ffiuintuintenumenumuintIOV
-  , ffibytebytebyteIOV
-  , ffiPtrbyteIOV
-  , ffidoubledoubledoubleIOV
-  , ffiPtrdoubleIOV
-  , ffifloatfloatfloatIOV
-  , ffiPtrfloatIOV
-  , ffiintintintIOV
-  , ffiPtrintIOV
-  , ffishortshortshortIOV
-  , ffiPtrshortIOV
-  , ffienumsizeiPtrVIOV
-  , ffisizeisizeifloatfloatfloatfloatPtrubyteIOV
-  , ffisizeisizeifixedfixedfixedfixedPtrubyteIOV
-  , ffifloatfloatfloatfloatIOV
-  , ffifixedfixedfixedfixedIOV
-  , ffienumenumIOV
-  , ffiuintenumenumIOV
-  , ffienumenumenumenumIOV
-  , ffiuintenumenumenumenumIOV
-  , ffienumintIOV
-  , ffiintintintintintintintintbitfieldenumIOV
-  , ffiuintuintintintintintintintintintbitfieldenumIOV
-  , ffienumuintuint64EXTsizeiptrIOV
-  , ffienumsizeiptrPtrVenumIOV
-  , ffienumsizeiptrARBPtrVenumIOV
-  , ffienumintptrsizeiptrbooleanIOV
-  , ffienumenumintIOV
-  , ffienumsizeiptrPtrVbitfieldIOV
-  , ffienumintptrsizeiptrPtrVIOV
-  , ffienumintptrARBsizeiptrARBPtrVIOV
-  , ffisizeienumPtrVIOV
-  , ffienumIOenum
-  , ffiuintenumIOenum
-  , ffibitfieldIOV
-  , ffienumenumenumenumPtrVIOV
-  , ffienumenumintptrsizeiptrenumenumPtrVIOV
-  , ffienumintfloatintIOV
-  , ffienumintPtrfloatIOV
-  , ffienumintPtrintIOV
-  , ffienumintPtruintIOV
-  , ffiintintintintIOV
-  , ffiuintuintuintuintIOV
-  , ffidoubleIOV
-  , ffifloatIOV
-  , fficlampfIOV
-  , ffifixedIOV
-  , ffiuintenumenumenumPtrVIOV
-  , ffiuintenumintptrsizeiptrenumenumPtrVIOV
-  , ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV
-  , ffiuintenumintfloatintIOV
-  , ffiuintenumintPtrfloatIOV
-  , ffiuintenumintPtrintIOV
-  , ffiuintenumintPtruintIOV
-  , ffisizeisizeiPtruintIOV
-  , ffiuintintenumenumPtrVIOV
-  , ffiuintintintintintsizeisizeisizeienumenumPtrVIOV
-  , ffisyncbitfielduint64IOenum
-  , ffienumPtrdoubleIOV
-  , ffienumPtrfloatIOV
-  , ffienumPtrfixedIOV
-  , ffifloatfloatfloatfloatfloatfloatIOV
-  , ffiPtrfloatPtrfloatIOV
-  , ffihalfNVhalfNVhalfNVIOV
-  , ffiPtrhalfNVIOV
-  , ffiubyteubyteubyteIOV
-  , ffiPtrubyteIOV
-  , ffiuintuintuintIOV
-  , ffiPtruintIOV
-  , ffiushortushortushortIOV
-  , ffiPtrushortIOV
-  , ffifixedfixedfixedIOV
-  , ffiPtrfixedIOV
-  , ffibytebytebytebyteIOV
-  , ffidoubledoubledoubledoubleIOV
-  , ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffiPtrfloatPtrfloatPtrfloatIOV
-  , ffihalfNVhalfNVhalfNVhalfNVIOV
-  , ffishortshortshortshortIOV
-  , ffiubyteubyteubyteubyteIOV
-  , ffiubyteubyteubyteubytefloatfloatIOV
-  , ffiPtrubytePtrfloatIOV
-  , ffiubyteubyteubyteubytefloatfloatfloatIOV
-  , ffiushortushortushortushortIOV
-  , ffiintenumsizeiIOV
-  , ffienumuintuintuintuintuintuintIOV
-  , ffienumuintuintuintuintuintuintuintuintuintIOV
-  , ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV
-  , ffibooleanbooleanbooleanbooleanIOV
-  , ffiuintbooleanbooleanbooleanbooleanIOV
-  , ffienumPtruintIOV
-  , ffiintenumsizeiPtrVIOV
-  , ffiintenumsizeisizeiPtrVIOV
-  , ffiintenumintPtrPtrVintIOV
-  , ffiintenumPtrPtrVIOV
-  , ffienumsizeisizeienumenumPtrVIOV
-  , ffienumenumsizeienumenumPtrVIOV
-  , ffienumenumPtrfloatIOV
-  , ffienumenumPtrintIOV
-  , ffienumenumenumenumenumenumIOV
-  , ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV
-  , ffienumPtrintIOV
-  , ffihandleARBIOV
-  , ffiuintsizeiPtrPtrcharPtrintIOV
-  , ffienumenumintenumsizeiintsizeiPtrVIOV
-  , ffienumenumintenumsizeisizeiintsizeiPtrVIOV
-  , ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV
-  , ffienumenumintintsizeienumsizeiPtrVIOV
-  , ffienumenumintintintsizeisizeienumsizeiPtrVIOV
-  , ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV
-  , ffienumintenumsizeiintsizeiPtrVIOV
-  , ffienumintenumsizeisizeiintsizeiPtrVIOV
-  , ffienumintenumsizeisizeisizeiintsizeiPtrVIOV
-  , ffienumintintsizeienumsizeiPtrVIOV
-  , ffienumintintintsizeisizeienumsizeiPtrVIOV
-  , ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV
-  , ffiuintenumintenumsizeiintsizeiPtrVIOV
-  , ffiuintenumintenumsizeisizeiintsizeiPtrVIOV
-  , ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV
-  , ffiuintintintsizeienumsizeiPtrVIOV
-  , ffiuintenumintintsizeienumsizeiPtrVIOV
-  , ffiuintintintintsizeisizeienumsizeiPtrVIOV
-  , ffiuintenumintintintsizeisizeienumsizeiPtrVIOV
-  , ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV
-  , ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV
-  , ffienumenumsizeisizeienumenumPtrVIOV
-  , ffienumenumfloatIOV
-  , ffienumenumfixedIOV
-  , ffienumenumPtrfixedIOV
-  , ffienumenumintptrintptrsizeiptrIOV
-  , ffienumsizeiintintsizeiIOV
-  , ffienumenumintintsizeiIOV
-  , ffienumenumintintsizeisizeiIOV
-  , ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV
-  , ffienumenumintenumintintsizeiintIOV
-  , ffienumenumintenumintintsizeisizeiintIOV
-  , ffienumenumintintintintsizeiIOV
-  , ffienumenumintintintintintsizeisizeiIOV
-  , ffienumenumintintintintintintsizeisizeiIOV
-  , ffiuintuintintptrintptrsizeiptrIOV
-  , ffiintintsizeisizeienumIOV
-  , ffienumintenumintintsizeiintIOV
-  , ffienumintenumintintsizeisizeiintIOV
-  , ffienumintintintintsizeiIOV
-  , ffienumintintintintintsizeisizeiIOV
-  , ffienumintintintintintintsizeisizeiIOV
-  , ffiuintenumintenumintintsizeiintIOV
-  , ffiuintenumintenumintintsizeisizeiintIOV
-  , ffiuintuintintsizeiIOV
-  , ffiuintintintintintsizeiIOV
-  , ffiuintenumintintintintsizeiIOV
-  , ffiuintintintintintintsizeisizeiIOV
-  , ffiuintenumintintintintintsizeisizeiIOV
-  , ffiuintintintintintintintsizeisizeiIOV
-  , ffiuintenumintintintintintintsizeisizeiIOV
-  , ffisizeienumPtrVuintenumenumPtrfloatIOV
-  , ffibooleanIOV
-  , ffisizeiPtrfloatIOV
-  , ffisizeiPtruintIOV
-  , ffiuintPtruintIOV
-  , ffiIOuint
-  , ffiIOhandleARB
-  , ffienumsizeiPtruintIOV
-  , ffienumIOhandleARB
-  , ffienumPtrcharIOuint
-  , ffienumsizeiPtrPtrcharIOuint
-  , ffiPtrVPtrVbitfieldIOsync
-  , ffiDEBUGPROCPtrVIOV
-  , ffiDEBUGPROCAMDPtrVIOV
-  , ffiDEBUGPROCARBPtrVIOV
-  , ffiDEBUGPROCKHRPtrVIOV
-  , ffienumenumenumsizeiPtruintbooleanIOV
-  , ffienumenumsizeiPtruintbooleanIOV
-  , ffienumenumuintenumsizeiPtrcharIOV
-  , ffienumenumuintsizeiPtrcharIOV
-  , ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV
-  , ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV
-  , ffiuintsizeiIOV
-  , ffiintPtrcharIOV
-  , ffienumuintPtruintIOV
-  , ffisyncIOV
-  , fficlampdclampdIOV
-  , ffidoubledoubleIOV
-  , ffiuintsizeiPtrfloatIOV
-  , ffiuintsizeiPtrdoubleIOV
-  , ffiuintdoubledoubleIOV
-  , ffiuintfloatfloatIOV
-  , ffifloatfloatIOV
-  , fficlampfclampfIOV
-  , ffifixedfixedIOV
-  , ffienumsizeiPtrfloatIOV
-  , ffienumsizeiPtrenumIOV
-  , ffiuintuintuintuintuintuintIOV
-  , ffiintptrIOV
-  , ffienumintsizeiIOV
-  , ffienumPtrVIOV
-  , ffienumintsizeisizeiIOV
-  , ffienumintsizeisizeiuintIOV
-  , ffisizeiPtrenumIOV
-  , ffiintPtrenumPtrintIOV
-  , ffienumPtruint64PtrsizeiuintIOV
-  , ffienumuintPtrintptrPtrsizeiuintIOV
-  , ffiPtruint64PtrsizeiPtruintPtruintuintIOV
-  , ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV
-  , ffienumsizeiIOV
-  , ffienumsizeienumPtrVIOV
-  , ffienumsizeienumPtrVintIOV
-  , ffienumenumPtrVIOV
-  , ffienumsizeienumPtrVsizeiIOV
-  , ffienumsizeienumPtrVsizeiuintIOV
-  , ffienumsizeienumPtrVsizeiintIOV
-  , ffienumsizeienumPtrVsizeiintuintIOV
-  , ffisizeisizeienumenumPtrVIOV
-  , ffienumuintuintintsizeiIOV
-  , ffienumuintuintsizeiIOV
-  , ffienumuintuintsizeienumPtrVIOV
-  , ffienumuintuintsizeienumPtrVintIOV
-  , ffifloatfloatfloatfloatfloatIOV
-  , ffiintintintintintIOV
-  , ffishortshortshortshortshortIOV
-  , ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffifixedfixedfixedfixedfixedIOV
-  , ffienumuintsizeiIOV
-  , ffienumeglImageOESIOV
-  , ffisizeiIOV
-  , ffisizeiPtrVIOV
-  , ffisizeisizeiPtrbooleanIOV
-  , ffiintPtrPtrbooleanintIOV
-  , ffiPtrbooleanIOV
-  , ffienumintintIOV
-  , ffienumintintintintIOV
-  , ffiintintIOV
-  , ffienumuintPtrfloatIOV
-  , ffienumPtrPtrVIOV
-  , ffiPtruintintPtrintIOV
-  , ffiuintenumPtrcharPtrintIOV
-  , ffiuintenumintenumPtrintIOV
-  , ffienumintintintintsizeisizeisizeienumenumPtrVIOV
-  , ffiuintIOboolean
-  , ffisizeienumPtrfloatIOV
-  , ffisizeienumPtrfixedIOV
-  , ffienumbitfieldIOsync
-  , ffiPtruintIOint
-  , ffienumintptrsizeiptrIOV
-  , ffiuintintptrsizeiptrIOV
-  , ffienumintPtrPtrVintIOV
-  , ffihalfNVIOV
-  , ffiuintsizeiPtrenumIOV
-  , ffienumenumenumuintIOV
-  , ffienumuintsizeiPtrfloatIOV
-  , ffienumuintuintPtrfloatIOV
-  , ffienumenumuintintIOV
-  , ffienumenumenumuintintIOV
-  , ffienumenumenumuintintintintIOV
-  , ffienumenumenumuintintsizeiIOV
-  , ffienumenumenumuintintintIOV
-  , ffienumenumuintintenumIOV
-  , ffienumenumuintintintIOV
-  , ffienumenumuintintintintintIOV
-  , ffienumenumuintintsizeiintsizeiIOV
-  , ffienumenumuintintintsizeiIOV
-  , ffidoubledoubledoubledoubledoubledoubleIOV
-  , ffifixedfixedfixedfixedfixedfixedIOV
-  , ffisizeiIOuint
-  , ffiuintIOuint
-  , ffienumenumenumuintIOuint
-  , ffiuintuintenumPtrintIOV
-  , ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV
-  , ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV
-  , ffiuintenumuintsizeiPtrsizeiPtrcharIOV
-  , ffiuintenumuintenumPtrintIOV
-  , ffiuintuintsizeiPtrsizeiPtrcharIOV
-  , ffiuintsizeiPtruintenumPtrintIOV
-  , ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV
-  , ffihandleARBsizeiPtrsizeiPtrhandleARBIOV
-  , ffiuintsizeiPtrsizeiPtruintIOV
-  , ffiuintPtrcharIOint
-  , ffihandleARBPtrcharARBIOint
-  , ffienumuintPtrbooleanIOV
-  , ffienumPtrbooleanIOV
-  , ffienumenumPtrint64IOV
-  , ffienumenumPtruint64EXTIOV
-  , ffienumenumPtrPtrVIOV
-  , ffienumenumenumPtrVIOV
-  , ffienumenumenumenumPtrfloatIOV
-  , ffienumenumenumenumPtrintIOV
-  , ffienumenumenumPtrfloatIOV
-  , ffienumenumenumPtrintIOV
-  , ffienumuintIOuint
-  , ffienumenumintPtrVIOV
-  , ffienumintPtrVIOV
-  , ffiuintintsizeiPtrVIOV
-  , ffiuintenumintPtrVIOV
-  , ffiuintintintintintsizeisizeisizeisizeiPtrVIOV
-  , ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint
-  , ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint
-  , ffienumuintPtrdoubleIOV
-  , ffiuintsizeiPtrsizeiPtrcharIOV
-  , ffiPtrintsizeiPtruintIOV
-  , ffiIOenum
-  , ffiuintenumPtrintIOV
-  , ffienumenumuintuintsizeiPtrfloatIOV
-  , ffiuintIOsizei
-  , ffienumbooleanenumenumPtrVIOV
-  , ffiuintintbooleanintenumIOuint64
-  , ffihandleARBsizeiPtrsizeiPtrcharARBIOV
-  , ffiIOint
-  , ffienumuintPtrint64IOV
-  , ffienumPtrint64IOV
-  , ffienumuintPtrintIOV
-  , ffienumuintPtruint64EXTIOV
-  , ffienumPtruint64EXTIOV
-  , ffienumenumsizeienumsizeiPtrintIOV
-  , ffienumenumenumsizeiPtrint64IOV
-  , ffienumenumenumsizeiPtrintIOV
-  , ffiuintenumPtrbooleanIOV
-  , ffiuintenumPtrfloatIOV
-  , ffienumuintenumPtrfloatIOV
-  , ffienumuintenumPtrintIOV
-  , ffienumuintenumsizeisizeibooleanPtrVIOV
-  , ffienumenumPtrdoubleIOV
-  , ffienumenumenumPtrdoubleIOV
-  , ffienumenumintenumenumPtrVIOV
-  , ffienumenumintenumPtrfloatIOV
-  , ffienumenumintenumPtrintIOV
-  , ffienumenumenumPtruintIOV
-  , ffiuintenumPtrint64IOV
-  , ffiuintenumPtruint64EXTIOV
-  , ffiuintenumPtrPtrVIOV
-  , ffiuintintptrsizeiptrPtrVIOV
-  , ffiuintenumenumPtrintIOV
-  , ffiuintenumuintPtrintIOV
-  , ffiuintenumuintPtruintIOV
-  , ffiuintenumuintPtrdoubleIOV
-  , ffiuintenumuintPtrfloatIOV
-  , ffiuintenumenumPtrVIOV
-  , ffiintPtrcharsizeiPtrintPtrcharIOV
-  , ffiintPtrcharenumPtrintIOV
-  , ffienumuintsizeiPtrsizeiPtrcharIOV
-  , ffihandleARBenumPtrfloatIOV
-  , ffihandleARBenumPtrintIOV
-  , ffiPtrVsizeiPtrsizeiPtrcharIOV
-  , ffiuintenumPtruintIOV
-  , ffiuintPtrubyteIOV
-  , ffiuintPtrfloatIOV
-  , ffiuintsizeisizeiIOfloat
-  , ffibitfielduintsizeisizeiPtrfloatIOV
-  , ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV
-  , ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV
-  , ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV
-  , ffiuintenumsizeiPtruintPtrintIOV
-  , ffiuintuintenumPtrVIOV
-  , ffiuintPtrintPtrintsizeiPtruintIOV
-  , ffiuintuintsizeiPtrVPtruintIOV
-  , ffiPtrcharPtruintIOV
-  , ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV
-  , ffienumPtrushortIOV
-  , ffienumintPtrfixedIOV
-  , ffienumuintPtrPtrVIOV
-  , ffiuintsizeiPtrsizeiPtrenumPtrVIOV
-  , ffiuintsizeiPtrubytePtrdoubleIOV
-  , ffiuintsizeiPtrubytePtrfloatIOV
-  , ffienumuintenumPtrdoubleIOV
-  , ffiuintenumPtrcharIOuint
-  , ffiuintenumPtrcharIOint
-  , ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV
-  , ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV
-  , ffiuintenumPtrubyteIOV
-  , ffiuintuintenumintptrIOV
-  , ffiuintenumPtruint64IOV
-  , ffienumenumenumPtrVPtrVPtrVIOV
-  , ffienumenumPtrintPtrintIOV
-  , ffienumIOushort
-  , ffienumIOPtrubyte
-  , ffienumuintIOPtrubyte
-  , ffisyncenumsizeiPtrsizeiPtrintIOV
-  , ffienumintenumenumPtrVIOV
-  , ffienumintenumPtrfloatIOV
-  , ffienumintenumPtrintIOV
-  , ffienumintenumPtrfixedIOV
-  , ffienumenumPtruintIOV
-  , ffiuintIOuint64
-  , ffiuintintenumenumsizeiPtrVIOV
-  , ffiuintenumintenumenumPtrVIOV
-  , ffiuintintenumPtrfloatIOV
-  , ffiuintenumintenumPtrfloatIOV
-  , ffiuintintenumPtrintIOV
-  , ffiuintenumenumPtruintIOV
-  , ffiuintenumenumPtrfloatIOV
-  , ffiuintuintIOuint64
-  , ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV
-  , ffiuintuintPtrintIOV
-  , ffiuintenumuintPtrint64IOV
-  , ffiuintPtrcharIOuint
-  , ffiuintintIOint
-  , ffiuintsizeiPtrPtrcharPtruintIOV
-  , ffiuintintIOintptr
-  , ffiuintintPtrdoubleIOV
-  , ffiuintintPtrfloatIOV
-  , ffihandleARBintPtrfloatIOV
-  , ffiuintintPtrint64IOV
-  , ffiuintintPtrint64EXTIOV
-  , ffiuintintPtrintIOV
-  , ffihandleARBintPtrintIOV
-  , ffiuintintPtruint64IOV
-  , ffiuintintPtruint64EXTIOV
-  , ffiuintintPtruintIOV
-  , ffiuintuintenumPtrint64IOV
-  , ffiuintuintenumPtrPtrVIOV
-  , ffiuintenumPtrdoubleIOV
-  , ffiuintenumPtrint64EXTIOV
-  , ffiuintuintenumPtrdoubleIOV
-  , ffiuintuintenumPtrfloatIOV
-  , ffienumenumenumsizeiPtrVIOV
-  , ffienumintsizeiPtrVIOV
-  , ffienumbooleanenumenumsizeiPtrVIOV
-  , ffienumenumsizeiPtrdoubleIOV
-  , ffienumenumsizeiPtrfloatIOV
-  , ffienumenumsizeiPtrintIOV
-  , ffienumsizeiPtrushortIOV
-  , ffisizeiPtrubyteIOV
-  , ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV
-  , ffienumintenumenumsizeiPtrVIOV
-  , ffiuintintsizeiPtrdoubleIOV
-  , ffiuintintsizeiPtrfloatIOV
-  , ffiuintintsizeiPtrint64IOV
-  , ffiuintintsizeiPtrintIOV
-  , ffiuintintsizeiPtruint64IOV
-  , ffiuintintsizeiPtruintIOV
-  , ffibyteIOV
-  , ffishortIOV
-  , ffiubyteIOV
-  , ffiushortIOV
-  , ffienumsizeienumbooleanIOV
-  , ffienumintptrbitfieldIOsync
-  , ffienumsizeisizeiPtrVIOV
-  , ffisizeiPtrcharIOV
-  , ffisizeiPtrintIOV
-  , ffiuintuintuintfloatIOV
-  , ffiuintsizeiPtrenumintintsizeisizeiIOV
-  , ffienumsizeiPtrenumintintsizeisizeiIOV
-  , ffiuintintIOV
-  , ffiuintintintintintsizeisizeisizeiIOV
-  , ffienumIOboolean
-  , ffienumuintIOboolean
-  , ffiuint64IOboolean
-  , ffiintPtrcharIOboolean
-  , ffiuintuintfloatfloatIOboolean
-  , ffiuintfloatfloatIOboolean
-  , ffisyncIOboolean
-  , ffiuintenumIOboolean
-  , ffienumuintsizeiPtrcharIOV
-  , ffiintushortIOV
-  , ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV
-  , ffiuintenumfloatIOV
-  , ffiuintenumintIOV
-  , ffienumuintsizeiPtrubyteIOV
-  , ffiintsizeiIOV
-  , ffiuint64IOV
-  , ffiuint64enumIOV
-  , ffienumdoubledoubleintintPtrdoubleIOV
-  , ffienumfloatfloatintintPtrfloatIOV
-  , ffienumfixedfixedintintfixedIOV
-  , ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV
-  , ffienumfloatfloatintintfloatfloatintintPtrfloatIOV
-  , ffienumfixedfixedintintfixedfixedintintfixedIOV
-  , ffienumenumIOPtrV
-  , ffienumintptrsizeiptrbitfieldIOPtrV
-  , ffienumuintenumsizeisizeiintintbooleanPtrVIOV
-  , ffiintdoubledoubleIOV
-  , ffiintfloatfloatIOV
-  , ffiintfixedfixedIOV
-  , ffiintdoubledoubleintdoubledoubleIOV
-  , ffiintfloatfloatintfloatfloatIOV
-  , ffiintfixedfixedfixedfixedIOV
-  , ffiuintenumIOPtrV
-  , ffiuintintptrsizeiptrbitfieldIOPtrV
-  , ffiuintIOPtrV
-  , ffiuintintbitfieldPtrintPtrenumIOPtrV
-  , ffiuintuintdoubledoubleintintPtrdoubleIOV
-  , ffiuintuintfloatfloatintintPtrfloatIOV
-  , ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV
-  , ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV
-  , ffienumdoubledoubledoubledoubledoubledoubleIOV
-  , ffiintPtrubyteIOV
-  , ffiintPtruintIOV
-  , ffiintPtrushortIOV
-  , ffienumdoubledoubledoubledoubleIOV
-  , ffienumfloatfloatfloatfloatIOV
-  , ffienumdoubledoubledoubleIOV
-  , ffienumfloatfloatfloatIOV
-  , ffienumenumbooleanIOV
-  , ffienumPtrintPtrsizeisizeiIOV
-  , ffienumPtrVsizeisizeiIOV
-  , ffienumPtrVsizeisizeisizeiintIOV
-  , ffienumPtrVsizeisizeiintIOV
-  , ffienumintptrintptrsizeisizeiIOV
-  , ffienumPtrsizeienumPtrPtrVsizeiIOV
-  , ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV
-  , ffienumenumPtrVsizeisizeiIOV
-  , ffienumenumPtrVsizeisizeisizeiintIOV
-  , ffienumenumPtrVsizeisizeiintIOV
-  , ffienumenumintptrintptrsizeisizeiIOV
-  , ffienumuintuintPtrintPtrsizeisizeiIOV
-  , ffiPtrenumPtrintPtrsizeisizeiintIOV
-  , ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV
-  , ffienumbyteIOV
-  , ffienumPtrbyteIOV
-  , ffienumdoubleIOV
-  , ffienumhalfNVIOV
-  , ffienumPtrhalfNVIOV
-  , ffienumshortIOV
-  , ffienumPtrshortIOV
-  , ffienumbytebyteIOV
-  , ffienumdoubledoubleIOV
-  , ffienumfloatfloatIOV
-  , ffienumhalfNVhalfNVIOV
-  , ffienumshortshortIOV
-  , ffienumfixedfixedIOV
-  , ffienumbytebytebyteIOV
-  , ffienumhalfNVhalfNVhalfNVIOV
-  , ffienumintintintIOV
-  , ffienumshortshortshortIOV
-  , ffienumfixedfixedfixedIOV
-  , ffienumbytebytebytebyteIOV
-  , ffienumhalfNVhalfNVhalfNVhalfNVIOV
-  , ffienumshortshortshortshortIOV
-  , ffienumfixedfixedfixedfixedIOV
-  , ffienumintenumsizeiPtrVIOV
-  , ffienumenumenumfloatIOV
-  , ffienumenumenumintIOV
-  , ffienumenumenumdoubleIOV
-  , ffienumenumintintsizeiintenumenumPtrVIOV
-  , ffienumenumintintsizeisizeiintenumenumPtrVIOV
-  , ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV
-  , ffienumenumintintsizeienumenumPtrVIOV
-  , ffienumenumintintintsizeisizeienumenumPtrVIOV
-  , ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV
-  , ffiuintsizeiptrPtrVenumIOV
-  , ffiuintintptrsizeiptrbooleanIOV
-  , ffiuintsizeiptrPtrVbitfieldIOV
-  , ffiuintenumenumuintIOV
-  , ffiuintuintsizeiPtrfloatIOV
-  , ffiuintuintuintPtrfloatIOV
-  , ffiuintenumuintintIOV
-  , ffiuintenumenumuintintIOV
-  , ffiuintenumenumuintintintIOV
-  , ffiuintenumuintintenumIOV
-  , ffiuintenumuintintintIOV
-  , ffiuintenumuintdoubledoubledoubledoubleIOV
-  , ffiuintenumuintfloatfloatfloatfloatIOV
-  , ffiuintenumuintintintintintIOV
-  , ffiuintenumuintuintuintuintuintIOV
-  , ffiuintenumuintsizeiPtrfloatIOV
-  , ffiuintenumuintsizeiPtrintIOV
-  , ffiuintenumuintsizeiPtruintIOV
-  , ffiuintenumenumsizeiPtrVIOV
-  , ffiuintenumsizeisizeiIOV
-  , ffiuintsizeienumsizeisizeiIOV
-  , ffiuintsizeisizeienumsizeisizeiIOV
-  , ffienumintPtrcharintPtrcharIOV
-  , ffisizeiPtrVenumIOuint
-  , ffiPtrVsizeiPtrcharIOV
-  , ffienumuintenumIOenum
-  , ffiuintuintenumIOV
-  , ffiuintsizeiPtrubytesizeienumPtrVIOV
-  , ffiuintsizeienumPtrVIOV
-  , ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum
-  , ffienumPtrVbitfielduintfloatPtruintIOenum
-  , ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV
-  , ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV
-  , ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum
-  , ffienumintuintIOV
-  , ffiuintenumsizeiPtrVIOV
-  , ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV
-  , ffiuintsizeisizeienumPtrVIOV
-  , ffienumenumintPtrfloatIOV
-  , ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean
-  , ffiPtrintIOint
-  , ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV
-  , ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV
-  , ffifloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffisizeiPtruintPtrfloatIOV
-  , ffisizeiPtruintPtrclampfIOV
-  , ffisizeiPtruintPtrfixedIOV
-  , ffiuintenumPtrVsizeiIOV
-  , ffiuintenumPtrVintIOV
-  , ffienumuintuintsizeiPtrintIOV
-  , ffienumuintuintsizeiPtruintIOV
-  , ffienumuintuintsizeiPtrfloatIOV
-  , ffienumuintdoubledoubledoubledoubleIOV
-  , ffienumuintfloatfloatfloatfloatIOV
-  , ffienumuintintintintintIOV
-  , ffienumuintsizeiPtrintIOV
-  , ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV
-  , ffiuintsizeiPtrubytefloatfloatfloatfloatIOV
-  , ffienumuintsizeiPtrdoubleIOV
-  , ffiuintintenumintPtrfloatIOV
-  , ffienumenumsizeiPtrVIOV
-  , ffiuintintdoubleIOV
-  , ffiuintintfloatIOV
-  , ffiuintintintIOV
-  , ffiuintintint64IOV
-  , ffiuintintint64EXTIOV
-  , ffiuintintsizeiPtrint64EXTIOV
-  , ffiuintintuintIOV
-  , ffiuintintuint64IOV
-  , ffiuintintuint64EXTIOV
-  , ffiuintintsizeiPtruint64EXTIOV
-  , ffiuintintdoubledoubleIOV
-  , ffiuintintfloatfloatIOV
-  , ffiuintintintintIOV
-  , ffiuintintint64int64IOV
-  , ffiuintintint64EXTint64EXTIOV
-  , ffiuintintuintuintIOV
-  , ffiuintintuint64uint64IOV
-  , ffiuintintuint64EXTuint64EXTIOV
-  , ffiuintintdoubledoubledoubleIOV
-  , ffiuintintfloatfloatfloatIOV
-  , ffiuintintintintintIOV
-  , ffiuintintint64int64int64IOV
-  , ffiuintintint64EXTint64EXTint64EXTIOV
-  , ffiuintintuintuintuintIOV
-  , ffiuintintuint64uint64uint64IOV
-  , ffiuintintuint64EXTuint64EXTuint64EXTIOV
-  , ffiuintintdoubledoubledoubledoubleIOV
-  , ffiuintintfloatfloatfloatfloatIOV
-  , ffiuintintintintintintIOV
-  , ffiuintintint64int64int64int64IOV
-  , ffiuintintint64EXTint64EXTint64EXTint64EXTIOV
-  , ffiuintintuintuintuintuintIOV
-  , ffiuintintuint64uint64uint64uint64IOV
-  , ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV
-  , ffiuintintsizeibooleanPtrdoubleIOV
-  , ffiuintintsizeibooleanPtrfloatIOV
-  , ffiPtrfixedPtrintIObitfield
-  , ffienumuintenumuintIOV
-  , ffishortshortIOV
-  , ffiuintbooleanIOV
-  , ffiintintsizeisizeienumenumPtrVIOV
-  , ffiintintsizeisizeienumenumsizeiPtrVIOV
-  , ffiPtrdoublePtrdoubleIOV
-  , ffiPtrintPtrintIOV
-  , ffiPtrshortPtrshortIOV
-  , ffiPtrfixedPtrfixedIOV
-  , ffienumIOint
-  , ffienumenumsizeisizeiIOV
-  , ffienumsizeienumsizeisizeiIOV
-  , ffienumsizeisizeienumsizeisizeiIOV
-  , ffienumsizeiPtrPtrVIOV
-  , ffiuintfloatfloatfloatfloatfloatfloatIOV
-  , ffiPtruintPtrfloatPtrfloatIOV
-  , ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffiPtruintPtrfloatPtrfloatPtrfloatIOV
-  , ffiuintubyteubyteubyteubytefloatfloatfloatIOV
-  , ffiPtruintPtrubytePtrfloatIOV
-  , ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV
-  , ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffiuintfloatfloatfloatfloatfloatIOV
-  , ffiuintfloatfloatfloatIOV
-  , ffiPtruintPtrfloatIOV
-  , ffifloatbooleanIOV
-  , fficlampxbooleanIOV
-  , fficlampfbooleanIOV
-  , ffiuintbitfieldIOV
-  , ffiintintsizeisizeiIOV
-  , ffiuintsizeiPtrintIOV
-  , ffiuintintintsizeisizeiIOV
-  , ffiuintPtrintIOV
-  , ffiuintbooleanuintintPtruintIOV
-  , ffienumenumsizeisizeienumenumPtrVPtrVIOV
-  , ffiuintenumPtrVIOV
-  , ffisizeiPtruintenumPtrVsizeiIOV
-  , ffienumuintuintuintIOV
-  , ffienumuintuintuintuintIOV
-  , ffihandleARBsizeiPtrPtrcharARBPtrintIOV
-  , ffiuintuintuintuintbitfieldIOV
-  , ffisizeiuintIOV
-  , ffisizeienumPtrVuintenumuintenumPtrfloatIOV
-  , ffiuintenumuintIOV
-  , ffienumenumintuintIOV
-  , ffienumenumenumIOV
-  , ffisizeienumPtrVuintintuintenumPtrfloatIOV
-  , ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV
-  , ffiuintenumuintenumIOV
-  , ffisizeienumPtrVuintintuintenumenumPtrfloatIOV
-  , ffiuintintuintenumIOV
-  , ffiuintuintenumenumenumenumIOV
-  , ffienumenumuintintptrsizeiptrIOV
-  , ffibytebyteIOV
-  , ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV
-  , ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV
-  , ffiPtrfloatPtrubytePtrfloatIOV
-  , ffihalfNVhalfNVIOV
-  , ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
-  , ffienumenumdoubleIOV
-  , ffienumintintsizeiintenumenumPtrVIOV
-  , ffienumintintsizeisizeiintenumenumPtrVIOV
-  , ffienumsizeienumsizeisizeibooleanIOV
-  , ffienumsizeisizeiintsizeisizeibooleanIOV
-  , ffienumintintsizeisizeisizeiintenumenumPtrVIOV
-  , ffienumintenumsizeisizeisizeiintenumenumPtrVIOV
-  , ffienumsizeienumsizeisizeisizeibooleanIOV
-  , ffienumsizeisizeiintsizeisizeisizeibooleanIOV
-  , ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV
-  , ffienumintintintintsizeisizeisizeibooleanIOV
-  , ffienumsizeienumsizeiIOV
-  , ffienumsizeienumsizeisizeisizeiIOV
-  , ffienumenumsizeisizeisizeisizeibitfieldIOV
-  , ffienumintintsizeienumenumPtrVIOV
-  , ffienumintintintsizeisizeienumenumPtrVIOV
-  , ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV
-  , ffiuintenumuintintptrsizeiptrIOV
-  , ffiuintenumenumuintintptrsizeiptrIOV
-  , ffiuintenumintintsizeiintenumenumPtrVIOV
-  , ffiuintenumintintsizeisizeiintenumenumPtrVIOV
-  , ffiuintenumsizeisizeiintsizeisizeibooleanIOV
-  , ffiuintenumsizeiintsizeisizeibooleanIOV
-  , ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV
-  , ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV
-  , ffiuintenumsizeiintsizeisizeisizeibooleanIOV
-  , ffiuintintintintintsizeisizeisizeibooleanIOV
-  , ffiuintenumenumfloatIOV
-  , ffiuintenumenumintIOV
-  , ffiuintsizeienumsizeiIOV
-  , ffiuintenumsizeienumsizeiIOV
-  , ffiuintenumsizeienumsizeisizeiIOV
-  , ffiuintsizeienumsizeisizeibooleanIOV
-  , ffiuintenumsizeienumsizeisizeibooleanIOV
-  , ffiuintsizeienumsizeisizeisizeiIOV
-  , ffiuintenumsizeienumsizeisizeisizeiIOV
-  , ffiuintsizeienumsizeisizeisizeibooleanIOV
-  , ffiuintenumsizeienumsizeisizeisizeibooleanIOV
-  , ffiuintenumenumsizeisizeisizeisizeibitfieldIOV
-  , ffiuintintintsizeienumenumPtrVIOV
-  , ffiuintenumintintsizeienumenumPtrVIOV
-  , ffiuintintintintsizeisizeienumenumPtrVIOV
-  , ffiuintenumintintintsizeisizeienumenumPtrVIOV
-  , ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV
-  , ffiuintenumuintenumuintuintuintuintIOV
-  , ffienumuintenumenumIOV
-  , ffisizeiPtrintenumIOV
-  , ffiuintuintuintintptrsizeiptrIOV
-  , ffisizeiPtrintsizeiPtrintenumIOV
-  , ffiuintsizeiPtrPtrcharenumIOV
-  , ffiuintsizeiPtrintenumIOV
-  , ffiintdoubleIOV
-  , ffiintsizeiPtrdoubleIOV
-  , ffiintfloatIOV
-  , ffiintsizeiPtrfloatIOV
-  , ffiintint64IOV
-  , ffiintint64EXTIOV
-  , ffiintsizeiPtrint64IOV
-  , ffiintsizeiPtrint64EXTIOV
-  , ffiintsizeiPtrintIOV
-  , ffiintuintIOV
-  , ffiintuint64IOV
-  , ffiintuint64EXTIOV
-  , ffiintsizeiPtruint64IOV
-  , ffiintsizeiPtruint64EXTIOV
-  , ffiintsizeiPtruintIOV
-  , ffiintint64int64IOV
-  , ffiintint64EXTint64EXTIOV
-  , ffiintuintuintIOV
-  , ffiintuint64uint64IOV
-  , ffiintuint64EXTuint64EXTIOV
-  , ffiintdoubledoubledoubleIOV
-  , ffiintfloatfloatfloatIOV
-  , ffiintint64int64int64IOV
-  , ffiintint64EXTint64EXTint64EXTIOV
-  , ffiintuintuintuintIOV
-  , ffiintuint64uint64uint64IOV
-  , ffiintuint64EXTuint64EXTuint64EXTIOV
-  , ffiintdoubledoubledoubledoubleIOV
-  , ffiintfloatfloatfloatfloatIOV
-  , ffiintint64int64int64int64IOV
-  , ffiintint64EXTint64EXTint64EXTint64EXTIOV
-  , ffiintuintuintuintuintIOV
-  , ffiintuint64uint64uint64uint64IOV
-  , ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV
-  , ffiintsizeibooleanPtrdoubleIOV
-  , ffiintsizeibooleanPtrfloatIOV
-  , ffiuintuintsizeiPtrVenumIOV
-  , ffiuintbitfielduintIOV
-  , ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV
-  , ffiPtrVPtrVIOV
-  , ffivdpauSurfaceNVIOboolean
-  , ffisizeiPtrvdpauSurfaceNVIOV
-  , ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV
-  , ffivdpauSurfaceNVenumIOV
-  , ffivdpauSurfaceNVIOV
-  , ffiuintenumsizeiuintuintIOV
-  , ffiuintenumuintPtrVIOV
-  , ffiuintPtrbyteIOV
-  , ffiuintPtrdoubleIOV
-  , ffiuintPtrshortIOV
-  , ffiuintPtrushortIOV
-  , ffiuintuintintenumbooleanuintIOV
-  , ffiuintuintintenumuintIOV
-  , ffiuintuintuintintptrsizeiIOV
-  , ffiuintuintintenumsizeiintptrIOV
-  , ffiuintuintsizeiintptrIOV
-  , ffiuintuintenumsizeiintptrIOV
-  , ffiuintuintenumintenumsizeiintptrIOV
-  , ffiuintuintuintintenumsizeiintptrIOV
-  , ffiuintuintuintintenumbooleansizeiintptrIOV
-  , ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV
-  , ffiuintdoubleIOV
-  , ffiuintfloatIOV
-  , ffiuinthalfNVIOV
-  , ffiuintPtrhalfNVIOV
-  , ffiuintshortIOV
-  , ffiuinthalfNVhalfNVIOV
-  , ffiuintshortshortIOV
-  , ffiuintdoubledoubledoubleIOV
-  , ffiuinthalfNVhalfNVhalfNVIOV
-  , ffiuintshortshortshortIOV
-  , ffiuintubyteubyteubyteubyteIOV
-  , ffiuintdoubledoubledoubledoubleIOV
-  , ffiuintfloatfloatfloatfloatIOV
-  , ffiuinthalfNVhalfNVhalfNVhalfNVIOV
-  , ffiuintshortshortshortshortIOV
-  , ffiuintintenumbooleansizeiuintuintIOV
-  , ffiuintintenumbooleanuintIOV
-  , ffiuintintenumbooleansizeiIOV
-  , ffiuintuintuintuintuintIOV
-  , ffiuintintenumuintIOV
-  , ffiuintintenumsizeiIOV
-  , ffiuintintenumsizeiPtrVIOV
-  , ffiuintint64EXTIOV
-  , ffiuintPtrint64EXTIOV
-  , ffiuintuint64EXTIOV
-  , ffiuintPtruint64EXTIOV
-  , ffiuintint64EXTint64EXTIOV
-  , ffiuintuint64EXTuint64EXTIOV
-  , ffiuintint64EXTint64EXTint64EXTIOV
-  , ffiuintuint64EXTuint64EXTuint64EXTIOV
-  , ffiuintint64EXTint64EXTint64EXTint64EXTIOV
-  , ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV
-  , ffiuintenumbooleanuintIOV
-  , ffiuintenumbooleanPtruintIOV
-  , ffiuintintenumbooleansizeiPtrVIOV
-  , ffiuintsizeiPtrhalfNVIOV
-  , ffiuintsizeiPtrshortIOV
-  , ffiuintsizeiPtrubyteIOV
-  , ffiuintPtruintPtruint64EXTIOenum
-  , ffisyncbitfielduint64IOV
-  , ffiuintsizeiPtruintPtrfloatIOV
-  , ffiintPtrbyteIOV
-  , ffiintPtrdoubleIOV
-  , ffiintPtrfloatIOV
-  , ffiintPtrintIOV
-  , ffiintPtrshortIOV
-  , ffienumsizeiPtrintIOV
-) where
-
-import Control.Monad.IO.Class
-import Foreign.C.Types
-import Foreign.Ptr
-import Graphics.GL.Types
-import Numeric.Fixed
-import Numeric.Half
-
-foreign import CALLCONV "dynamic" dynenumfloatIOV :: FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> IO ()
-
-ffienumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
-ffienumfloatIOV fp v0 v1 = liftIO (dynenumfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumfixedIOV :: FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> IO ()
-
-ffienumfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> m ()
-ffienumfixedIOV fp v0 v1 = liftIO (dynenumfixedIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintIOV :: FunPtr (GLuint -> IO ()) -> GLuint -> IO ()
-
-ffiuintIOV :: MonadIO m => FunPtr (GLuint -> IO ()) -> GLuint -> m ()
-ffiuintIOV fp v0 = liftIO (dynuintIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintuintIOV :: FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
-
-ffiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> m ()
-ffiuintuintIOV fp v0 v1 = liftIO (dynuintuintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumIOV :: FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
-
-ffienumIOV :: MonadIO m => FunPtr (GLenum -> IO ()) -> GLenum -> m ()
-ffienumIOV fp v0 = liftIO (dynenumIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintPtrcharIOV :: FunPtr (GLuint -> Ptr GLchar -> IO ()) -> GLuint -> Ptr GLchar -> IO ()
-
-ffiuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO ()) -> GLuint -> Ptr GLchar -> m ()
-ffiuintPtrcharIOV fp v0 v1 = liftIO (dynuintPtrcharIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynenumuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynenumclampfIOV :: FunPtr (GLenum -> GLclampf -> IO ()) -> GLenum -> GLclampf -> IO ()
-
-ffienumclampfIOV :: MonadIO m => FunPtr (GLenum -> GLclampf -> IO ()) -> GLenum -> GLclampf -> m ()
-ffienumclampfIOV fp v0 v1 = liftIO (dynenumclampfIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynIOV :: FunPtr (IO ()) -> IO ()
-
-ffiIOV :: MonadIO m => FunPtr (IO ()) -> m ()
-ffiIOV fp  = liftIO (dynIOV fp )
-
-foreign import CALLCONV "dynamic" dynsizeiPtruintPtrbooleanIOboolean :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean) -> GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean
-
-ffisizeiPtruintPtrbooleanIOboolean :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean) -> GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
-ffisizeiPtruintPtrbooleanIOboolean fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrbooleanIOboolean fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintIOV :: FunPtr (GLint -> IO ()) -> GLint -> IO ()
-
-ffiintIOV :: MonadIO m => FunPtr (GLint -> IO ()) -> GLint -> m ()
-ffiintIOV fp v0 = liftIO (dynintIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynenumintenumsizeiuintuintIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()
-
-ffienumintenumsizeiuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
-ffienumintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynhandleARBhandleARBIOV :: FunPtr (GLhandleARB -> GLhandleARB -> IO ()) -> GLhandleARB -> GLhandleARB -> IO ()
-
-ffihandleARBhandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLhandleARB -> IO ()) -> GLhandleARB -> GLhandleARB -> m ()
-ffihandleARBhandleARBIOV fp v0 v1 = liftIO (dynhandleARBhandleARBIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintenumIOV :: FunPtr (GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> IO ()
-
-ffiuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> m ()
-ffiuintenumIOV fp v0 v1 = liftIO (dynuintenumIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintIOV :: FunPtr (GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> IO ()
-
-ffienumuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> m ()
-ffienumuintIOV fp v0 v1 = liftIO (dynenumuintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> m ()
-ffienumuintuintIOV fp v0 v1 v2 = liftIO (dynenumuintuintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintPtrcharIOV :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> IO ()
-
-ffiuintuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> m ()
-ffiuintuintPtrcharIOV fp v0 v1 v2 = liftIO (dynuintuintPtrcharIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynhandleARBuintPtrcharARBIOV :: FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()
-
-ffihandleARBuintPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()
-ffihandleARBuintPtrcharARBIOV fp v0 v1 v2 = liftIO (dynhandleARBuintPtrcharARBIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumuintuintintptrIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> IO ()
-
-ffienumuintuintintptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> m ()
-ffienumuintuintintptrIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintintptrIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintuintintptrsizeiptrIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
-
-ffienumuintuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-ffienumuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtruintIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffienumuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-ffienumuintsizeiPtruintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtruintPtrintptrPtrsizeiptrIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()
-
-ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
-ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintsizeiPtruintPtrintptrPtrsizeiptrIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintuintuintPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()
-
-ffiuintuintuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
-ffiuintuintuintPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintPtrcharIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintintbooleanintenumenumIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()
-
-ffiuintuintintbooleanintenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
-ffiuintuintintbooleanintenumenumIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintintbooleanintenumenumIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintuintintbooleanintenumintIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()
-
-ffiuintuintintbooleanintenumintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()
-ffiuintuintintbooleanintenumintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintintbooleanintenumintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffiuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-ffiuintsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumIOuint :: FunPtr (GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> IO GLuint
-
-ffienumenumIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> m GLuint
-ffienumenumIOuint fp v0 v1 = liftIO (dynenumenumIOuint fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumenumuintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLuint -> IO ()
-
-ffienumenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLuint -> m ()
-ffienumenumuintIOV fp v0 v1 v2 = liftIO (dynenumenumuintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumIOuint :: FunPtr (GLenum -> IO GLuint) -> GLenum -> IO GLuint
-
-ffienumIOuint :: MonadIO m => FunPtr (GLenum -> IO GLuint) -> GLenum -> m GLuint
-ffienumIOuint fp v0 = liftIO (dynenumIOuint fp v0)
-
-foreign import CALLCONV "dynamic" dynenumenumenumIOuint :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> GLenum -> IO GLuint
-
-ffienumenumenumIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> GLenum -> m GLuint
-ffienumenumenumIOuint fp v0 v1 v2 = liftIO (dynenumenumenumIOuint fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintintptrsizeiIOV :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()
-
-ffiuintuintintptrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-ffiuintuintintptrsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintuintintptrsizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtruintPtrintptrPtrsizeiIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()
-
-ffiuintsizeiPtruintPtrintptrPtrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-ffiuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintenumintptrARBIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()
-
-ffiuintuintenumintptrARBIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
-ffiuintuintenumintptrARBIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumintptrARBIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintenumenumuintIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()
-
-ffiuintuintenumenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
-ffiuintuintenumenumuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintenumenumuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynbytebytebyteIOV :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> IO ()
-
-ffibytebytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> m ()
-ffibytebytebyteIOV fp v0 v1 v2 = liftIO (dynbytebytebyteIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrbyteIOV :: FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> IO ()
-
-ffiPtrbyteIOV :: MonadIO m => FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
-ffiPtrbyteIOV fp v0 = liftIO (dynPtrbyteIOV fp v0)
-
-foreign import CALLCONV "dynamic" dyndoubledoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffidoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffidoubledoubledoubleIOV fp v0 v1 v2 = liftIO (dyndoubledoubledoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrdoubleIOV :: FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> IO ()
-
-ffiPtrdoubleIOV :: MonadIO m => FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
-ffiPtrdoubleIOV fp v0 = liftIO (dynPtrdoubleIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatIOV fp v0 v1 v2 = liftIO (dynfloatfloatfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrfloatIOV :: FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
-
-ffiPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
-ffiPtrfloatIOV fp v0 = liftIO (dynPtrfloatIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynintintintIOV :: FunPtr (GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> IO ()
-
-ffiintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> m ()
-ffiintintintIOV fp v0 v1 v2 = liftIO (dynintintintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrintIOV :: FunPtr (Ptr GLint -> IO ()) -> Ptr GLint -> IO ()
-
-ffiPtrintIOV :: MonadIO m => FunPtr (Ptr GLint -> IO ()) -> Ptr GLint -> m ()
-ffiPtrintIOV fp v0 = liftIO (dynPtrintIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynshortshortshortIOV :: FunPtr (GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> IO ()
-
-ffishortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> m ()
-ffishortshortshortIOV fp v0 v1 v2 = liftIO (dynshortshortshortIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrshortIOV :: FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
-
-ffiPtrshortIOV :: MonadIO m => FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
-ffiPtrshortIOV fp v0 = liftIO (dynPtrshortIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrVIOV :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumsizeiPtrVIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsizeisizeifloatfloatfloatfloatPtrubyteIOV :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()
-
-ffisizeisizeifloatfloatfloatfloatPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
-ffisizeisizeifloatfloatfloatfloatPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynsizeisizeifloatfloatfloatfloatPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynsizeisizeifixedfixedfixedfixedPtrubyteIOV :: FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()
-
-ffisizeisizeifixedfixedfixedfixedPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
-ffisizeisizeifixedfixedfixedfixedPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynsizeisizeifixedfixedfixedfixedPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynfloatfloatfloatfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynfixedfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
-
-ffifixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-ffifixedfixedfixedfixedIOV fp v0 v1 v2 v3 = liftIO (dynfixedfixedfixedfixedIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumIOV :: FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
-
-ffienumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
-ffienumenumIOV fp v0 v1 = liftIO (dynenumenumIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintenumenumIOV :: FunPtr (GLuint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> IO ()
-
-ffiuintenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> m ()
-ffiuintenumenumIOV fp v0 v1 v2 = liftIO (dynuintenumenumIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumenumenumIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
-
-ffienumenumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-ffienumenumenumenumIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumenumenumIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
-
-ffiuintenumenumenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-ffiuintenumenumenumenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumenumenumIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintIOV :: FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> IO ()
-
-ffienumintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> m ()
-ffienumintIOV fp v0 v1 = liftIO (dynenumintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintintintintintintintintbitfieldenumIOV :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()
-
-ffiintintintintintintintintbitfieldenumIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-ffiintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintuintintintintintintintintintbitfieldenumIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()
-
-ffiuintuintintintintintintintintintbitfieldenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-ffiuintuintintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintuintintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynenumuintuint64EXTsizeiptrIOV :: FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()
-
-ffienumuintuint64EXTsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()
-ffienumuintuint64EXTsizeiptrIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuint64EXTsizeiptrIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumsizeiptrPtrVenumIOV :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ()
-
-ffienumsizeiptrPtrVenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-ffienumsizeiptrPtrVenumIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeiptrPtrVenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumsizeiptrARBPtrVenumIOV :: FunPtr (GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ()
-
-ffienumsizeiptrARBPtrVenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> m ()
-ffienumsizeiptrARBPtrVenumIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeiptrARBPtrVenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintptrsizeiptrbooleanIOV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()
-
-ffienumintptrsizeiptrbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
-ffienumintptrsizeiptrbooleanIOV fp v0 v1 v2 v3 = liftIO (dynenumintptrsizeiptrbooleanIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumintIOV :: FunPtr (GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> IO ()
-
-ffienumenumintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> m ()
-ffienumenumintIOV fp v0 v1 v2 = liftIO (dynenumenumintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumsizeiptrPtrVbitfieldIOV :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()
-
-ffienumsizeiptrPtrVbitfieldIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-ffienumsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintptrsizeiptrPtrVIOV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()
-
-ffienumintptrsizeiptrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-ffienumintptrsizeiptrPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumintptrsizeiptrPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintptrARBsizeiptrARBPtrVIOV :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ()) -> GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ()
-
-ffienumintptrARBsizeiptrARBPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ()) -> GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
-ffienumintptrARBsizeiptrARBPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumintptrARBsizeiptrARBPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrVIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLenum -> Ptr () -> IO ()
-
-ffisizeienumPtrVIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLenum -> Ptr () -> m ()
-ffisizeienumPtrVIOV fp v0 v1 v2 = liftIO (dynsizeienumPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumIOenum :: FunPtr (GLenum -> IO GLenum) -> GLenum -> IO GLenum
-
-ffienumIOenum :: MonadIO m => FunPtr (GLenum -> IO GLenum) -> GLenum -> m GLenum
-ffienumIOenum fp v0 = liftIO (dynenumIOenum fp v0)
-
-foreign import CALLCONV "dynamic" dynuintenumIOenum :: FunPtr (GLuint -> GLenum -> IO GLenum) -> GLuint -> GLenum -> IO GLenum
-
-ffiuintenumIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> IO GLenum) -> GLuint -> GLenum -> m GLenum
-ffiuintenumIOenum fp v0 v1 = liftIO (dynuintenumIOenum fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynbitfieldIOV :: FunPtr (GLbitfield -> IO ()) -> GLbitfield -> IO ()
-
-ffibitfieldIOV :: MonadIO m => FunPtr (GLbitfield -> IO ()) -> GLbitfield -> m ()
-ffibitfieldIOV fp v0 = liftIO (dynbitfieldIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynenumenumenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumenumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumintptrsizeiptrenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumintfloatintIOV :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLenum -> GLint -> GLfloat -> GLint -> IO ()
-
-ffienumintfloatintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLenum -> GLint -> GLfloat -> GLint -> m ()
-ffienumintfloatintIOV fp v0 v1 v2 v3 = liftIO (dynenumintfloatintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintPtrfloatIOV :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> Ptr GLfloat -> IO ()
-
-ffienumintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> Ptr GLfloat -> m ()
-ffienumintPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumintPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumintPtrintIOV :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ()) -> GLenum -> GLint -> Ptr GLint -> IO ()
-
-ffienumintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLint -> IO ()) -> GLenum -> GLint -> Ptr GLint -> m ()
-ffienumintPtrintIOV fp v0 v1 v2 = liftIO (dynenumintPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumintPtruintIOV :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLenum -> GLint -> Ptr GLuint -> IO ()
-
-ffienumintPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLenum -> GLint -> Ptr GLuint -> m ()
-ffienumintPtruintIOV fp v0 v1 v2 = liftIO (dynenumintPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintintintintIOV :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffiintintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> m ()
-ffiintintintintIOV fp v0 v1 v2 v3 = liftIO (dynintintintintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintuintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dyndoubleIOV :: FunPtr (GLdouble -> IO ()) -> GLdouble -> IO ()
-
-ffidoubleIOV :: MonadIO m => FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
-ffidoubleIOV fp v0 = liftIO (dyndoubleIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynfloatIOV :: FunPtr (GLfloat -> IO ()) -> GLfloat -> IO ()
-
-ffifloatIOV :: MonadIO m => FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
-ffifloatIOV fp v0 = liftIO (dynfloatIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynclampfIOV :: FunPtr (GLclampf -> IO ()) -> GLclampf -> IO ()
-
-fficlampfIOV :: MonadIO m => FunPtr (GLclampf -> IO ()) -> GLclampf -> m ()
-fficlampfIOV fp v0 = liftIO (dynclampfIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynfixedIOV :: FunPtr (GLfixed -> IO ()) -> GLfixed -> IO ()
-
-ffifixedIOV :: MonadIO m => FunPtr (GLfixed -> IO ()) -> GLfixed -> m ()
-ffifixedIOV fp v0 = liftIO (dynfixedIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintenumenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumenumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumintptrsizeiptrenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeiptrsizeiptrenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeiptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumintfloatintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()
-
-ffiuintenumintfloatintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
-ffiuintenumintfloatintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumintfloatintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumintPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()
-
-ffiuintenumintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
-ffiuintenumintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumintPtrintIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()
-
-ffiuintenumintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
-ffiuintenumintPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumintPtruintIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()
-
-ffiuintenumintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
-ffiuintenumintPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynsizeisizeiPtruintIOV :: FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
-
-ffisizeisizeiPtruintIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
-ffisizeisizeiPtruintIOV fp v0 v1 v2 = liftIO (dynsizeisizeiPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintenumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintintenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumenumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynsyncbitfielduint64IOenum :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum) -> GLsync -> GLbitfield -> GLuint64 -> IO GLenum
-
-ffisyncbitfielduint64IOenum :: MonadIO m => FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum) -> GLsync -> GLbitfield -> GLuint64 -> m GLenum
-ffisyncbitfielduint64IOenum fp v0 v1 v2 = liftIO (dynsyncbitfielduint64IOenum fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtrdoubleIOV :: FunPtr (GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> Ptr GLdouble -> IO ()
-
-ffienumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> Ptr GLdouble -> m ()
-ffienumPtrdoubleIOV fp v0 v1 = liftIO (dynenumPtrdoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumPtrfloatIOV :: FunPtr (GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> Ptr GLfloat -> m ()
-ffienumPtrfloatIOV fp v0 v1 = liftIO (dynenumPtrfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumPtrfixedIOV :: FunPtr (GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> Ptr GLfixed -> IO ()
-
-ffienumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> Ptr GLfixed -> m ()
-ffienumPtrfixedIOV fp v0 v1 = liftIO (dynenumPtrfixedIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynPtrfloatPtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> IO ()
-
-ffiPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> m ()
-ffiPtrfloatPtrfloatIOV fp v0 v1 = liftIO (dynPtrfloatPtrfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynhalfNVhalfNVhalfNVIOV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffihalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-ffihalfNVhalfNVhalfNVIOV fp v0 v1 v2 = liftIO (dynhalfNVhalfNVhalfNVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrhalfNVIOV :: FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> IO ()
-
-ffiPtrhalfNVIOV :: MonadIO m => FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
-ffiPtrhalfNVIOV fp v0 = liftIO (dynPtrhalfNVIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynubyteubyteubyteIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> IO ()
-
-ffiubyteubyteubyteIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> m ()
-ffiubyteubyteubyteIOV fp v0 v1 v2 = liftIO (dynubyteubyteubyteIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrubyteIOV :: FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> IO ()
-
-ffiPtrubyteIOV :: MonadIO m => FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> m ()
-ffiPtrubyteIOV fp v0 = liftIO (dynPtrubyteIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintuintuintIOV fp v0 v1 v2 = liftIO (dynuintuintuintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtruintIOV :: FunPtr (Ptr GLuint -> IO ()) -> Ptr GLuint -> IO ()
-
-ffiPtruintIOV :: MonadIO m => FunPtr (Ptr GLuint -> IO ()) -> Ptr GLuint -> m ()
-ffiPtruintIOV fp v0 = liftIO (dynPtruintIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynushortushortushortIOV :: FunPtr (GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> IO ()
-
-ffiushortushortushortIOV :: MonadIO m => FunPtr (GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> m ()
-ffiushortushortushortIOV fp v0 v1 v2 = liftIO (dynushortushortushortIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrushortIOV :: FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> IO ()
-
-ffiPtrushortIOV :: MonadIO m => FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
-ffiPtrushortIOV fp v0 = liftIO (dynPtrushortIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> IO ()
-
-ffifixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> m ()
-ffifixedfixedfixedIOV fp v0 v1 v2 = liftIO (dynfixedfixedfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrfixedIOV :: FunPtr (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> IO ()
-
-ffiPtrfixedIOV :: MonadIO m => FunPtr (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> m ()
-ffiPtrfixedIOV fp v0 = liftIO (dynPtrfixedIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynbytebytebytebyteIOV :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()
-
-ffibytebytebytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
-ffibytebytebytebyteIOV fp v0 v1 v2 v3 = liftIO (dynbytebytebytebyteIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dyndoubledoubledoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffidoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffidoubledoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dyndoubledoubledoubledoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
-
-ffiPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-ffiPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 = liftIO (dynPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynhalfNVhalfNVhalfNVhalfNVIOV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffihalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-ffihalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 = liftIO (dynhalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynshortshortshortshortIOV :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
-
-ffishortshortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-ffishortshortshortshortIOV fp v0 v1 v2 v3 = liftIO (dynshortshortshortshortIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynubyteubyteubyteubyteIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()
-
-ffiubyteubyteubyteubyteIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-ffiubyteubyteubyteubyteIOV fp v0 v1 v2 v3 = liftIO (dynubyteubyteubyteubyteIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynubyteubyteubyteubytefloatfloatIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()
-
-ffiubyteubyteubyteubytefloatfloatIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
-ffiubyteubyteubyteubytefloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynubyteubyteubyteubytefloatfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynPtrubytePtrfloatIOV :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLubyte -> Ptr GLfloat -> IO ()
-
-ffiPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLubyte -> Ptr GLfloat -> m ()
-ffiPtrubytePtrfloatIOV fp v0 v1 = liftIO (dynPtrubytePtrfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynubyteubyteubyteubytefloatfloatfloatIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynushortushortushortushortIOV :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> GLushort -> IO ()
-
-ffiushortushortushortushortIOV :: MonadIO m => FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> GLushort -> m ()
-ffiushortushortushortushortIOV fp v0 v1 v2 v3 = liftIO (dynushortushortushortushortIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintenumsizeiIOV :: FunPtr (GLint -> GLenum -> GLsizei -> IO ()) -> GLint -> GLenum -> GLsizei -> IO ()
-
-ffiintenumsizeiIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> IO ()) -> GLint -> GLenum -> GLsizei -> m ()
-ffiintenumsizeiIOV fp v0 v1 v2 = liftIO (dynintenumsizeiIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynenumuintuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
-
-foreign import CALLCONV "dynamic" dynbooleanbooleanbooleanbooleanIOV :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
-
-ffibooleanbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-ffibooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3 = liftIO (dynbooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintbooleanbooleanbooleanbooleanIOV :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
-
-ffiuintbooleanbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-ffiuintbooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintbooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumPtruintIOV :: FunPtr (GLenum -> Ptr GLuint -> IO ()) -> GLenum -> Ptr GLuint -> IO ()
-
-ffienumPtruintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint -> IO ()) -> GLenum -> Ptr GLuint -> m ()
-ffienumPtruintIOV fp v0 v1 = liftIO (dynenumPtruintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintenumsizeiPtrVIOV :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiintenumsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynintenumsizeiPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintenumsizeisizeiPtrVIOV :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()
-
-ffiintenumsizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
-ffiintenumsizeisizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynintenumsizeisizeiPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintenumintPtrPtrVintIOV :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()
-
-ffiintenumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-ffiintenumintPtrPtrVintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintenumintPtrPtrVintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintenumPtrPtrVIOV :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLint -> GLenum -> Ptr (Ptr ()) -> IO ()
-
-ffiintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
-ffiintenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynintenumPtrPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-ffienumenumPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumenumPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrintIOV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> IO ()
-
-ffienumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> m ()
-ffienumenumPtrintIOV fp v0 v1 v2 = liftIO (dynenumenumPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumenumenumenumenumIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
-
-ffienumenumenumenumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-ffienumenumenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumenumenumenumenumenumbooleanbooleanbooleanIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()
-
-ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
-ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumenumenumenumenumenumbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumPtrintIOV :: FunPtr (GLenum -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLint -> IO ()
-
-ffienumPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLint -> m ()
-ffienumPtrintIOV fp v0 v1 = liftIO (dynenumPtrintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynhandleARBIOV :: FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> IO ()
-
-ffihandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
-ffihandleARBIOV fp v0 = liftIO (dynhandleARBIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrPtrcharPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()
-
-ffiuintsizeiPtrPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
-ffiuintsizeiPtrPtrcharPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumsizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffienumenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumsizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffienumenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumsizeisizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumenumintintsizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumenumintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynenumenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynenumintenumsizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffienumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffienumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumintenumsizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffienumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffienumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumintenumsizeisizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffienumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffienumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumintintsizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumsizeiintsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffiuintenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumsizeisizeiintsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffiuintenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumsizeisizeisizeiintsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintintintsizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumintintsizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumenumfloatIOV :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLfloat -> IO ()
-
-ffienumenumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLfloat -> m ()
-ffienumenumfloatIOV fp v0 v1 v2 = liftIO (dynenumenumfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumfixedIOV :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ()) -> GLenum -> GLenum -> GLfixed -> IO ()
-
-ffienumenumfixedIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLfixed -> IO ()) -> GLenum -> GLenum -> GLfixed -> m ()
-ffienumenumfixedIOV fp v0 v1 v2 = liftIO (dynenumenumfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrfixedIOV :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLenum -> Ptr GLfixed -> IO ()
-
-ffienumenumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLenum -> Ptr GLfixed -> m ()
-ffienumenumPtrfixedIOV fp v0 v1 v2 = liftIO (dynenumenumPtrfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumintptrintptrsizeiptrIOV :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()
-
-ffienumenumintptrintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-ffienumenumintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumsizeiintintsizeiIOV :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()
-
-ffienumsizeiintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
-ffienumsizeiintintsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeiintintsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()
-
-ffienumenumintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
-ffienumenumintintsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintintsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumintintsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffienumenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffienumenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintintuintenumintintintintsizeisizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()
-
-ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 = liftIO (dynuintenumintintintintuintenumintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumintintsizeiintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
-
-ffienumenumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-ffienumenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumintintsizeisizeiintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
-
-ffienumenumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-ffienumenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumenumintintintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
-
-ffienumenumintintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-ffienumenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumenumintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffienumenumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffienumenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumenumintintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffienumenumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffienumenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintuintintptrintptrsizeiptrIOV :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()
-
-ffiuintuintintptrintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-ffiuintuintintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintintsizeisizeienumIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()
-
-ffiintintsizeisizeienumIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
-ffiintintsizeisizeienumIOV fp v0 v1 v2 v3 v4 = liftIO (dynintintsizeisizeienumIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintenumintintsizeiintIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
-
-ffienumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-ffienumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumintenumintintsizeisizeiintIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
-
-ffienumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-ffienumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumintintintintsizeiIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
-
-ffienumintintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-ffienumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffienumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffienumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumintintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffienumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffienumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumintintsizeiintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
-
-ffiuintenumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-ffiuintenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumintintsizeisizeiintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
-
-ffiuintenumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-ffiuintenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintuintintsizeiIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()
-
-ffiuintuintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
-ffiuintuintintsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintuintintsizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintintintintsizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
-
-ffiuintintintintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-ffiuintintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintintsizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
-
-ffiuintenumintintintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-ffiuintenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffiuintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffiuintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffiuintenumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffiuintenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintintintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffiuintintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffiuintintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffiuintenumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffiuintenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrVuintenumenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
-
-ffisizeienumPtrVuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-ffisizeienumPtrVuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynsizeienumPtrVuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynbooleanIOV :: FunPtr (GLboolean -> IO ()) -> GLboolean -> IO ()
-
-ffibooleanIOV :: MonadIO m => FunPtr (GLboolean -> IO ()) -> GLboolean -> m ()
-ffibooleanIOV fp v0 = liftIO (dynbooleanIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrfloatIOV :: FunPtr (GLsizei -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffisizeiPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLfloat -> m ()
-ffisizeiPtrfloatIOV fp v0 v1 = liftIO (dynsizeiPtrfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynsizeiPtruintIOV :: FunPtr (GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> Ptr GLuint -> IO ()
-
-ffisizeiPtruintIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> Ptr GLuint -> m ()
-ffisizeiPtruintIOV fp v0 v1 = liftIO (dynsizeiPtruintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtruintIOV :: FunPtr (GLuint -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLuint -> IO ()
-
-ffiuintPtruintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLuint -> m ()
-ffiuintPtruintIOV fp v0 v1 = liftIO (dynuintPtruintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynIOuint :: FunPtr (IO GLuint) -> IO GLuint
-
-ffiIOuint :: MonadIO m => FunPtr (IO GLuint) -> m GLuint
-ffiIOuint fp  = liftIO (dynIOuint fp )
-
-foreign import CALLCONV "dynamic" dynIOhandleARB :: FunPtr (IO GLhandleARB) -> IO GLhandleARB
-
-ffiIOhandleARB :: MonadIO m => FunPtr (IO GLhandleARB) -> m GLhandleARB
-ffiIOhandleARB fp  = liftIO (dynIOhandleARB fp )
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtruintIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLsizei -> Ptr GLuint -> IO ()
-
-ffienumsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLsizei -> Ptr GLuint -> m ()
-ffienumsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumIOhandleARB :: FunPtr (GLenum -> IO GLhandleARB) -> GLenum -> IO GLhandleARB
-
-ffienumIOhandleARB :: MonadIO m => FunPtr (GLenum -> IO GLhandleARB) -> GLenum -> m GLhandleARB
-ffienumIOhandleARB fp v0 = liftIO (dynenumIOhandleARB fp v0)
-
-foreign import CALLCONV "dynamic" dynenumPtrcharIOuint :: FunPtr (GLenum -> Ptr GLchar -> IO GLuint) -> GLenum -> Ptr GLchar -> IO GLuint
-
-ffienumPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> Ptr GLchar -> IO GLuint) -> GLenum -> Ptr GLchar -> m GLuint
-ffienumPtrcharIOuint fp v0 v1 = liftIO (dynenumPtrcharIOuint fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrPtrcharIOuint :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint) -> GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint
-
-ffienumsizeiPtrPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint) -> GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
-ffienumsizeiPtrPtrcharIOuint fp v0 v1 v2 = liftIO (dynenumsizeiPtrPtrcharIOuint fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrVPtrVbitfieldIOsync :: FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync) -> Ptr () -> Ptr () -> GLbitfield -> IO GLsync
-
-ffiPtrVPtrVbitfieldIOsync :: MonadIO m => FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync) -> Ptr () -> Ptr () -> GLbitfield -> m GLsync
-ffiPtrVPtrVbitfieldIOsync fp v0 v1 v2 = liftIO (dynPtrVPtrVbitfieldIOsync fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynDEBUGPROCPtrVIOV :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ()) -> GLDEBUGPROC -> Ptr () -> IO ()
-
-ffiDEBUGPROCPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROC -> Ptr () -> IO ()) -> GLDEBUGPROC -> Ptr () -> m ()
-ffiDEBUGPROCPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynDEBUGPROCAMDPtrVIOV :: FunPtr (GLDEBUGPROCAMD -> Ptr () -> IO ()) -> GLDEBUGPROCAMD -> Ptr () -> IO ()
-
-ffiDEBUGPROCAMDPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCAMD -> Ptr () -> IO ()) -> GLDEBUGPROCAMD -> Ptr () -> m ()
-ffiDEBUGPROCAMDPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCAMDPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynDEBUGPROCARBPtrVIOV :: FunPtr (GLDEBUGPROCARB -> Ptr () -> IO ()) -> GLDEBUGPROCARB -> Ptr () -> IO ()
-
-ffiDEBUGPROCARBPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCARB -> Ptr () -> IO ()) -> GLDEBUGPROCARB -> Ptr () -> m ()
-ffiDEBUGPROCARBPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCARBPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynDEBUGPROCKHRPtrVIOV :: FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ()) -> GLDEBUGPROCKHR -> Ptr () -> IO ()
-
-ffiDEBUGPROCKHRPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ()) -> GLDEBUGPROCKHR -> Ptr () -> m ()
-ffiDEBUGPROCKHRPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCKHRPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtruintbooleanIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()
-
-ffienumenumenumsizeiPtruintbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-ffienumenumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeiPtruintbooleanIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()
-
-ffienumenumsizeiPtruintbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-ffienumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumuintenumsizeiPtrcharIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()
-
-ffienumenumuintenumsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
-ffienumenumuintenumsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumuintenumsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumuintsizeiPtrcharIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()
-
-ffienumenumuintsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-ffienumenumuintsizeiPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintsizeiPtrcharIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
-
-ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO (dynenumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13)
-
-foreign import CALLCONV "dynamic" dynenumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
-
-ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO (dynenumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13)
-
-foreign import CALLCONV "dynamic" dynuintsizeiIOV :: FunPtr (GLuint -> GLsizei -> IO ()) -> GLuint -> GLsizei -> IO ()
-
-ffiuintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> IO ()) -> GLuint -> GLsizei -> m ()
-ffiuintsizeiIOV fp v0 v1 = liftIO (dynuintsizeiIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtrcharIOV :: FunPtr (GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> IO ()
-
-ffiintPtrcharIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> m ()
-ffiintPtrcharIOV fp v0 v1 = liftIO (dynintPtrcharIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintPtruintIOV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLuint -> IO ()
-
-ffienumuintPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLuint -> m ()
-ffienumuintPtruintIOV fp v0 v1 v2 = liftIO (dynenumuintPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsyncIOV :: FunPtr (GLsync -> IO ()) -> GLsync -> IO ()
-
-ffisyncIOV :: MonadIO m => FunPtr (GLsync -> IO ()) -> GLsync -> m ()
-ffisyncIOV fp v0 = liftIO (dynsyncIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynclampdclampdIOV :: FunPtr (GLclampd -> GLclampd -> IO ()) -> GLclampd -> GLclampd -> IO ()
-
-fficlampdclampdIOV :: MonadIO m => FunPtr (GLclampd -> GLclampd -> IO ()) -> GLclampd -> GLclampd -> m ()
-fficlampdclampdIOV fp v0 v1 = liftIO (dynclampdclampdIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dyndoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> IO ()
-
-ffidoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> m ()
-ffidoubledoubleIOV fp v0 v1 = liftIO (dyndoubledoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffiuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-ffiuintsizeiPtrfloatIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrdoubleIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()
-
-ffiuintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
-ffiuintsizeiPtrdoubleIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintdoubledoubleIOV :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> IO ()
-
-ffiuintdoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> m ()
-ffiuintdoubledoubleIOV fp v0 v1 v2 = liftIO (dynuintdoubledoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatIOV fp v0 v1 v2 = liftIO (dynuintfloatfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> m ()
-ffifloatfloatIOV fp v0 v1 = liftIO (dynfloatfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynclampfclampfIOV :: FunPtr (GLclampf -> GLclampf -> IO ()) -> GLclampf -> GLclampf -> IO ()
-
-fficlampfclampfIOV :: MonadIO m => FunPtr (GLclampf -> GLclampf -> IO ()) -> GLclampf -> GLclampf -> m ()
-fficlampfclampfIOV fp v0 v1 = liftIO (dynclampfclampfIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> IO ()
-
-ffifixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> m ()
-ffifixedfixedIOV fp v0 v1 = liftIO (dynfixedfixedIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrfloatIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffienumsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
-ffienumsizeiPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrenumIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> IO ()
-
-ffienumsizeiPtrenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> m ()
-ffienumsizeiPtrenumIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrenumIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintuintuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynintptrIOV :: FunPtr (GLintptr -> IO ()) -> GLintptr -> IO ()
-
-ffiintptrIOV :: MonadIO m => FunPtr (GLintptr -> IO ()) -> GLintptr -> m ()
-ffiintptrIOV fp v0 = liftIO (dynintptrIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynenumintsizeiIOV :: FunPtr (GLenum -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> IO ()
-
-ffienumintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> m ()
-ffienumintsizeiIOV fp v0 v1 v2 = liftIO (dynenumintsizeiIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtrVIOV :: FunPtr (GLenum -> Ptr () -> IO ()) -> GLenum -> Ptr () -> IO ()
-
-ffienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> IO ()) -> GLenum -> Ptr () -> m ()
-ffienumPtrVIOV fp v0 v1 = liftIO (dynenumPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumintsizeisizeiIOV :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffienumintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-ffienumintsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumintsizeisizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintsizeisizeiuintIOV :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()
-
-ffienumintsizeisizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
-ffienumintsizeisizeiuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintsizeisizeiuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrenumIOV :: FunPtr (GLsizei -> Ptr GLenum -> IO ()) -> GLsizei -> Ptr GLenum -> IO ()
-
-ffisizeiPtrenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLenum -> IO ()) -> GLsizei -> Ptr GLenum -> m ()
-ffisizeiPtrenumIOV fp v0 v1 = liftIO (dynsizeiPtrenumIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtrenumPtrintIOV :: FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLenum -> Ptr GLint -> IO ()
-
-ffiintPtrenumPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLenum -> Ptr GLint -> m ()
-ffiintPtrenumPtrintIOV fp v0 v1 v2 = liftIO (dynintPtrenumPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtruint64PtrsizeiuintIOV :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()
-
-ffienumPtruint64PtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
-ffienumPtruint64PtrsizeiuintIOV fp v0 v1 v2 v3 = liftIO (dynenumPtruint64PtrsizeiuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintPtrintptrPtrsizeiuintIOV :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()
-
-ffienumuintPtrintptrPtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
-ffienumuintPtrintptrPtrsizeiuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintPtrintptrPtrsizeiuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynPtruint64PtrsizeiPtruintPtruintuintIOV :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
-
-ffiPtruint64PtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
-ffiPtruint64PtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtruint64PtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintPtrintptrPtrsizeiPtruintPtruintuintIOV :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
-
-ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
-ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintPtrintptrPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumsizeiIOV :: FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> IO ()
-
-ffienumsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
-ffienumsizeiIOV fp v0 v1 = liftIO (dynenumsizeiIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumPtrVIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> IO ()
-
-ffienumsizeienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
-ffienumsizeienumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeienumPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumPtrVintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()
-
-ffienumsizeienumPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-ffienumsizeienumPtrVintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeienumPtrVintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumPtrVIOV fp v0 v1 v2 = liftIO (dynenumenumPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()
-
-ffienumsizeienumPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-ffienumsizeienumPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeienumPtrVsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiuintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ()
-
-ffienumsizeienumPtrVsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
-ffienumsizeienumPtrVsizeiuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumPtrVsizeiuintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()
-
-ffienumsizeienumPtrVsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-ffienumsizeienumPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiintuintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ()
-
-ffienumsizeienumPtrVsizeiintuintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
-ffienumsizeienumPtrVsizeiintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeienumPtrVsizeiintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynsizeisizeienumenumPtrVIOV :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintuintintsizeiIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()
-
-ffienumuintuintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
-ffienumuintuintintsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintintsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintuintsizeiIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> IO ()
-
-ffienumuintuintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> m ()
-ffienumuintuintsizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintsizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintuintsizeienumPtrVIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()
-
-ffienumuintuintsizeienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
-ffienumuintuintsizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintuintsizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumuintuintsizeienumPtrVintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()
-
-ffienumuintuintsizeienumPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-ffienumuintuintsizeienumPtrVintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumuintuintsizeienumPtrVintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintintintintintIOV :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffiintintintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-ffiintintintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintintintintintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynshortshortshortshortshortIOV :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
-
-ffishortshortshortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-ffishortshortshortshortshortIOV fp v0 v1 v2 v3 v4 = liftIO (dynshortshortshortshortshortIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynfixedfixedfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
-
-ffifixedfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-ffifixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 = liftIO (dynfixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLsizei -> IO ()
-
-ffienumuintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLsizei -> m ()
-ffienumuintsizeiIOV fp v0 v1 v2 = liftIO (dynenumuintsizeiIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumeglImageOESIOV :: FunPtr (GLenum -> GLeglImageOES -> IO ()) -> GLenum -> GLeglImageOES -> IO ()
-
-ffienumeglImageOESIOV :: MonadIO m => FunPtr (GLenum -> GLeglImageOES -> IO ()) -> GLenum -> GLeglImageOES -> m ()
-ffienumeglImageOESIOV fp v0 v1 = liftIO (dynenumeglImageOESIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynsizeiIOV :: FunPtr (GLsizei -> IO ()) -> GLsizei -> IO ()
-
-ffisizeiIOV :: MonadIO m => FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
-ffisizeiIOV fp v0 = liftIO (dynsizeiIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrVIOV :: FunPtr (GLsizei -> Ptr () -> IO ()) -> GLsizei -> Ptr () -> IO ()
-
-ffisizeiPtrVIOV :: MonadIO m => FunPtr (GLsizei -> Ptr () -> IO ()) -> GLsizei -> Ptr () -> m ()
-ffisizeiPtrVIOV fp v0 v1 = liftIO (dynsizeiPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynsizeisizeiPtrbooleanIOV :: FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ()) -> GLsizei -> GLsizei -> Ptr GLboolean -> IO ()
-
-ffisizeisizeiPtrbooleanIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ()) -> GLsizei -> GLsizei -> Ptr GLboolean -> m ()
-ffisizeisizeiPtrbooleanIOV fp v0 v1 v2 = liftIO (dynsizeisizeiPtrbooleanIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintPtrPtrbooleanintIOV :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()) -> GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()
-
-ffiintPtrPtrbooleanintIOV :: MonadIO m => FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()) -> GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
-ffiintPtrPtrbooleanintIOV fp v0 v1 v2 = liftIO (dynintPtrPtrbooleanintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrbooleanIOV :: FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> IO ()
-
-ffiPtrbooleanIOV :: MonadIO m => FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
-ffiPtrbooleanIOV fp v0 = liftIO (dynPtrbooleanIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynenumintintIOV :: FunPtr (GLenum -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> IO ()
-
-ffienumintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> m ()
-ffienumintintIOV fp v0 v1 v2 = liftIO (dynenumintintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumintintintintIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffienumintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
-ffienumintintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintintintintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintintIOV :: FunPtr (GLint -> GLint -> IO ()) -> GLint -> GLint -> IO ()
-
-ffiintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> IO ()) -> GLint -> GLint -> m ()
-ffiintintIOV fp v0 v1 = liftIO (dynintintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintPtrfloatIOV :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> Ptr GLfloat -> IO ()
-
-ffienumuintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> Ptr GLfloat -> m ()
-ffienumuintPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumuintPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtrPtrVIOV :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> Ptr (Ptr ()) -> IO ()
-
-ffienumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> Ptr (Ptr ()) -> m ()
-ffienumPtrPtrVIOV fp v0 v1 = liftIO (dynenumPtrPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynPtruintintPtrintIOV :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ()) -> Ptr GLuint -> GLint -> Ptr GLint -> IO ()
-
-ffiPtruintintPtrintIOV :: MonadIO m => FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ()) -> Ptr GLuint -> GLint -> Ptr GLint -> m ()
-ffiPtruintintPtrintIOV fp v0 v1 v2 = liftIO (dynPtruintintPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrcharPtrintIOV :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()
-
-ffiuintenumPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
-ffiuintenumPtrcharPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumPtrcharPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumPtrintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
-
-ffiuintenumintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-ffiuintenumintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumintenumPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynuintIOboolean :: FunPtr (GLuint -> IO GLboolean) -> GLuint -> IO GLboolean
-
-ffiuintIOboolean :: MonadIO m => FunPtr (GLuint -> IO GLboolean) -> GLuint -> m GLboolean
-ffiuintIOboolean fp v0 = liftIO (dynuintIOboolean fp v0)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr GLfloat -> IO ()
-
-ffisizeienumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr GLfloat -> m ()
-ffisizeienumPtrfloatIOV fp v0 v1 v2 = liftIO (dynsizeienumPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrfixedIOV :: FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ()) -> GLsizei -> GLenum -> Ptr GLfixed -> IO ()
-
-ffisizeienumPtrfixedIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ()) -> GLsizei -> GLenum -> Ptr GLfixed -> m ()
-ffisizeienumPtrfixedIOV fp v0 v1 v2 = liftIO (dynsizeienumPtrfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumbitfieldIOsync :: FunPtr (GLenum -> GLbitfield -> IO GLsync) -> GLenum -> GLbitfield -> IO GLsync
-
-ffienumbitfieldIOsync :: MonadIO m => FunPtr (GLenum -> GLbitfield -> IO GLsync) -> GLenum -> GLbitfield -> m GLsync
-ffienumbitfieldIOsync fp v0 v1 = liftIO (dynenumbitfieldIOsync fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynPtruintIOint :: FunPtr (Ptr GLuint -> IO GLint) -> Ptr GLuint -> IO GLint
-
-ffiPtruintIOint :: MonadIO m => FunPtr (Ptr GLuint -> IO GLint) -> Ptr GLuint -> m GLint
-ffiPtruintIOint fp v0 = liftIO (dynPtruintIOint fp v0)
-
-foreign import CALLCONV "dynamic" dynenumintptrsizeiptrIOV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> IO ()
-
-ffienumintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> m ()
-ffienumintptrsizeiptrIOV fp v0 v1 v2 = liftIO (dynenumintptrsizeiptrIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
-
-ffiuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-ffiuintintptrsizeiptrIOV fp v0 v1 v2 = liftIO (dynuintintptrsizeiptrIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumintPtrPtrVintIOV :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()
-
-ffienumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
-ffienumintPtrPtrVintIOV fp v0 v1 v2 v3 = liftIO (dynenumintPtrPtrVintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynhalfNVIOV :: FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> IO ()
-
-ffihalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
-ffihalfNVIOV fp v0 = liftIO (dynhalfNVIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> IO ()
-
-ffiuintsizeiPtrenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> m ()
-ffiuintsizeiPtrenumIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrenumIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumenumuintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> IO ()
-
-ffienumenumenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> m ()
-ffienumenumenumuintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffienumuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-ffienumuintsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintuintPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
-
-ffienumuintuintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()
-ffienumuintuintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumuintintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
-
-ffienumenumuintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-ffienumenumuintintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumuintintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumenumuintintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
-
-ffienumenumenumuintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-ffienumenumenumuintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumuintintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumenumuintintintintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()
-
-ffienumenumenumuintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> m ()
-ffienumenumenumuintintintintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumenumuintintintintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumenumenumuintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()
-
-ffienumenumenumuintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
-ffienumenumenumuintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumuintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumenumuintintintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
-
-ffienumenumenumuintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-ffienumenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumuintintenumIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()
-
-ffienumenumuintintenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
-ffienumenumuintintenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintintenumIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumuintintintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
-
-ffienumenumuintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-ffienumenumuintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintintintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumuintintintintintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffienumenumuintintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-ffienumenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumenumuintintsizeiintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()
-
-ffienumenumuintintsizeiintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> m ()
-ffienumenumuintintsizeiintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumuintintsizeiintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumenumuintintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()
-
-ffienumenumuintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()
-ffienumenumuintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumuintintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dyndoubledoubledoubledoubledoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffidoubledoubledoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffidoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dyndoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynfixedfixedfixedfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
-
-ffifixedfixedfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-ffifixedfixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynfixedfixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynsizeiIOuint :: FunPtr (GLsizei -> IO GLuint) -> GLsizei -> IO GLuint
-
-ffisizeiIOuint :: MonadIO m => FunPtr (GLsizei -> IO GLuint) -> GLsizei -> m GLuint
-ffisizeiIOuint fp v0 = liftIO (dynsizeiIOuint fp v0)
-
-foreign import CALLCONV "dynamic" dynuintIOuint :: FunPtr (GLuint -> IO GLuint) -> GLuint -> IO GLuint
-
-ffiuintIOuint :: MonadIO m => FunPtr (GLuint -> IO GLuint) -> GLuint -> m GLuint
-ffiuintIOuint fp v0 = liftIO (dynuintIOuint fp v0)
-
-foreign import CALLCONV "dynamic" dynenumenumenumuintIOuint :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint) -> GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint
-
-ffienumenumenumuintIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint) -> GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
-ffienumenumenumuintIOuint fp v0 v1 v2 v3 = liftIO (dynenumenumenumuintIOuint fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintenumPtrintIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()
-
-ffiuintuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-ffiuintuintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()
-
-ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
-ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynhandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()
-
-ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
-ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynhandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
-
-ffiuintenumuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-ffiuintenumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumuintenumPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()
-
-ffiuintenumuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-ffiuintenumuintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintenumPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
-
-ffiuintuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-ffiuintuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtruintenumPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()
-
-ffiuintsizeiPtruintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
-ffiuintsizeiPtruintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeiPtruintenumPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()
-
-ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
-ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynhandleARBsizeiPtrsizeiPtrhandleARBIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()
-
-ffihandleARBsizeiPtrsizeiPtrhandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
-ffihandleARBsizeiPtrsizeiPtrhandleARBIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrsizeiPtrhandleARBIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrsizeiPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()
-
-ffiuintsizeiPtrsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
-ffiuintsizeiPtrsizeiPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrsizeiPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintPtrcharIOint :: FunPtr (GLuint -> Ptr GLchar -> IO GLint) -> GLuint -> Ptr GLchar -> IO GLint
-
-ffiuintPtrcharIOint :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO GLint) -> GLuint -> Ptr GLchar -> m GLint
-ffiuintPtrcharIOint fp v0 v1 = liftIO (dynuintPtrcharIOint fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynhandleARBPtrcharARBIOint :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint) -> GLhandleARB -> Ptr GLcharARB -> IO GLint
-
-ffihandleARBPtrcharARBIOint :: MonadIO m => FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint) -> GLhandleARB -> Ptr GLcharARB -> m GLint
-ffihandleARBPtrcharARBIOint fp v0 v1 = liftIO (dynhandleARBPtrcharARBIOint fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintPtrbooleanIOV :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ()) -> GLenum -> GLuint -> Ptr GLboolean -> IO ()
-
-ffienumuintPtrbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ()) -> GLenum -> GLuint -> Ptr GLboolean -> m ()
-ffienumuintPtrbooleanIOV fp v0 v1 v2 = liftIO (dynenumuintPtrbooleanIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtrbooleanIOV :: FunPtr (GLenum -> Ptr GLboolean -> IO ()) -> GLenum -> Ptr GLboolean -> IO ()
-
-ffienumPtrbooleanIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLboolean -> IO ()) -> GLenum -> Ptr GLboolean -> m ()
-ffienumPtrbooleanIOV fp v0 v1 = liftIO (dynenumPtrbooleanIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrint64IOV :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> Ptr GLint64 -> IO ()
-
-ffienumenumPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> Ptr GLint64 -> m ()
-ffienumenumPtrint64IOV fp v0 v1 v2 = liftIO (dynenumenumPtrint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumPtruint64EXTIOV :: FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()
-
-ffienumenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
-ffienumenumPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynenumenumPtruint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrPtrVIOV :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()
-
-ffienumenumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
-ffienumenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumenumPtrPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumenumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumenumenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumenumenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-ffienumenumenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumenumPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumenumenumPtrintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
-
-ffienumenumenumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-ffienumenumenumenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumenumPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-ffienumenumenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumenumPtrintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
-
-ffienumenumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-ffienumenumenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintIOuint :: FunPtr (GLenum -> GLuint -> IO GLuint) -> GLenum -> GLuint -> IO GLuint
-
-ffienumuintIOuint :: MonadIO m => FunPtr (GLenum -> GLuint -> IO GLuint) -> GLenum -> GLuint -> m GLuint
-ffienumuintIOuint fp v0 v1 = liftIO (dynenumuintIOuint fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumenumintPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr () -> IO ()
-
-ffienumenumintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr () -> m ()
-ffienumenumintPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumenumintPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintPtrVIOV :: FunPtr (GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLint -> Ptr () -> IO ()
-
-ffienumintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLint -> Ptr () -> m ()
-ffienumintPtrVIOV fp v0 v1 v2 = liftIO (dynenumintPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr () -> m ()
-ffiuintintsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumintPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr () -> IO ()
-
-ffiuintenumintPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr () -> m ()
-ffiuintenumintPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeisizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintintintintsizeisizeisizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
-ffiuintintintintintsizeisizeisizeisizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintintintintintsizeisizeisizeisizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint
-
-ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint
-
-ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumuintPtrdoubleIOV :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> Ptr GLdouble -> IO ()
-
-ffienumuintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> Ptr GLdouble -> m ()
-ffienumuintPtrdoubleIOV fp v0 v1 v2 = liftIO (dynenumuintPtrdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
-
-ffiuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-ffiuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynPtrintsizeiPtruintIOV :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffiPtrintsizeiPtruintIOV :: MonadIO m => FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
-ffiPtrintsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynPtrintsizeiPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynIOenum :: FunPtr (IO GLenum) -> IO GLenum
-
-ffiIOenum :: MonadIO m => FunPtr (IO GLenum) -> m GLenum
-ffiIOenum fp  = liftIO (dynIOenum fp )
-
-foreign import CALLCONV "dynamic" dynuintenumPtrintIOV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLint -> IO ()
-
-ffiuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLint -> m ()
-ffiuintenumPtrintIOV fp v0 v1 v2 = liftIO (dynuintenumPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumuintuintsizeiPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffienumenumuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-ffienumenumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintIOsizei :: FunPtr (GLuint -> IO GLsizei) -> GLuint -> IO GLsizei
-
-ffiuintIOsizei :: MonadIO m => FunPtr (GLuint -> IO GLsizei) -> GLuint -> m GLsizei
-ffiuintIOsizei fp v0 = liftIO (dynuintIOsizei fp v0)
-
-foreign import CALLCONV "dynamic" dynenumbooleanenumenumPtrVIOV :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumbooleanenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumbooleanenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumbooleanenumenumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintbooleanintenumIOuint64 :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64) -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64
-
-ffiuintintbooleanintenumIOuint64 :: MonadIO m => FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64) -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
-ffiuintintbooleanintenumIOuint64 fp v0 v1 v2 v3 v4 = liftIO (dynuintintbooleanintenumIOuint64 fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynhandleARBsizeiPtrsizeiPtrcharARBIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()
-
-ffihandleARBsizeiPtrsizeiPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
-ffihandleARBsizeiPtrsizeiPtrcharARBIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrsizeiPtrcharARBIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynIOint :: FunPtr (IO GLint) -> IO GLint
-
-ffiIOint :: MonadIO m => FunPtr (IO GLint) -> m GLint
-ffiIOint fp  = liftIO (dynIOint fp )
-
-foreign import CALLCONV "dynamic" dynenumuintPtrint64IOV :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLenum -> GLuint -> Ptr GLint64 -> IO ()
-
-ffienumuintPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLenum -> GLuint -> Ptr GLint64 -> m ()
-ffienumuintPtrint64IOV fp v0 v1 v2 = liftIO (dynenumuintPtrint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtrint64IOV :: FunPtr (GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> Ptr GLint64 -> IO ()
-
-ffienumPtrint64IOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> Ptr GLint64 -> m ()
-ffienumPtrint64IOV fp v0 v1 = liftIO (dynenumPtrint64IOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintPtrintIOV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> Ptr GLint -> IO ()
-
-ffienumuintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> Ptr GLint -> m ()
-ffienumuintPtrintIOV fp v0 v1 v2 = liftIO (dynenumuintPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumuintPtruint64EXTIOV :: FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()
-
-ffienumuintPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
-ffienumuintPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynenumuintPtruint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtruint64EXTIOV :: FunPtr (GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> Ptr GLuint64EXT -> IO ()
-
-ffienumPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> Ptr GLuint64EXT -> m ()
-ffienumPtruint64EXTIOV fp v0 v1 = liftIO (dynenumPtruint64EXTIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeienumsizeiPtrintIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()
-
-ffienumenumsizeienumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()
-ffienumenumsizeienumsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumsizeienumsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrint64IOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()
-
-ffienumenumenumsizeiPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
-ffienumenumenumsizeiPtrint64IOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumsizeiPtrint64IOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()
-
-ffienumenumenumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
-ffienumenumenumsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumsizeiPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrbooleanIOV :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ()) -> GLuint -> GLenum -> Ptr GLboolean -> IO ()
-
-ffiuintenumPtrbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ()) -> GLuint -> GLenum -> Ptr GLboolean -> m ()
-ffiuintenumPtrbooleanIOV fp v0 v1 v2 = liftIO (dynuintenumPtrbooleanIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrfloatIOV :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffiuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-ffiuintenumPtrfloatIOV fp v0 v1 v2 = liftIO (dynuintenumPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumuintenumPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-ffienumuintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintenumPtrintIOV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()
-
-ffienumuintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-ffienumuintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintenumsizeisizeibooleanPtrVIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ()
-
-ffienumuintenumsizeisizeibooleanPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> m ()
-ffienumuintenumsizeisizeibooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumuintenumsizeisizeibooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrdoubleIOV :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
-
-ffienumenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> Ptr GLdouble -> m ()
-ffienumenumPtrdoubleIOV fp v0 v1 v2 = liftIO (dynenumenumPtrdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumenumPtrdoubleIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
-
-ffienumenumenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
-ffienumenumenumPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumenumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-ffienumenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumintenumPtrintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
-
-ffienumenumintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-ffienumenumintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintenumPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumenumPtruintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()
-
-ffienumenumenumPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
-ffienumenumenumPtruintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrint64IOV :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLint64 -> IO ()
-
-ffiuintenumPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLint64 -> m ()
-ffiuintenumPtrint64IOV fp v0 v1 v2 = liftIO (dynuintenumPtrint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumPtruint64EXTIOV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()
-
-ffiuintenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
-ffiuintenumPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynuintenumPtruint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrPtrVIOV :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()
-
-ffiuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-ffiuintenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynuintenumPtrPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintptrsizeiptrPtrVIOV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()
-
-ffiuintintptrsizeiptrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-ffiuintintptrsizeiptrPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintintptrsizeiptrPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumPtrintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()
-
-ffiuintenumenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-ffiuintenumenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumuintPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()
-
-ffiuintenumuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-ffiuintenumuintPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumuintPtruintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()
-
-ffiuintenumuintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
-ffiuintenumuintPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumuintPtrdoubleIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()
-
-ffiuintenumuintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
-ffiuintenumuintPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumuintPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()
-
-ffiuintenumuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
-ffiuintenumuintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumenumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintPtrcharsizeiPtrintPtrcharIOV :: FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()
-
-ffiintPtrcharsizeiPtrintPtrcharIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
-ffiintPtrcharsizeiPtrintPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynintPtrcharsizeiPtrintPtrcharIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintPtrcharenumPtrintIOV :: FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()
-
-ffiintPtrcharenumPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
-ffiintPtrcharenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynintPtrcharenumPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
-
-ffienumuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-ffienumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynhandleARBenumPtrfloatIOV :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()
-
-ffihandleARBenumPtrfloatIOV :: MonadIO m => FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
-ffihandleARBenumPtrfloatIOV fp v0 v1 v2 = liftIO (dynhandleARBenumPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynhandleARBenumPtrintIOV :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLint -> IO ()
-
-ffihandleARBenumPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLint -> m ()
-ffihandleARBenumPtrintIOV fp v0 v1 v2 = liftIO (dynhandleARBenumPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrVsizeiPtrsizeiPtrcharIOV :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
-
-ffiPtrVsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-ffiPtrVsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynPtrVsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumPtruintIOV :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> Ptr GLuint -> IO ()
-
-ffiuintenumPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> Ptr GLuint -> m ()
-ffiuintenumPtruintIOV fp v0 v1 v2 = liftIO (dynuintenumPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintPtrubyteIOV :: FunPtr (GLuint -> Ptr GLubyte -> IO ()) -> GLuint -> Ptr GLubyte -> IO ()
-
-ffiuintPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLubyte -> IO ()) -> GLuint -> Ptr GLubyte -> m ()
-ffiuintPtrubyteIOV fp v0 v1 = liftIO (dynuintPtrubyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtrfloatIOV :: FunPtr (GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> Ptr GLfloat -> IO ()
-
-ffiuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> Ptr GLfloat -> m ()
-ffiuintPtrfloatIOV fp v0 v1 = liftIO (dynuintPtrfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintsizeisizeiIOfloat :: FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat) -> GLuint -> GLsizei -> GLsizei -> IO GLfloat
-
-ffiuintsizeisizeiIOfloat :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat) -> GLuint -> GLsizei -> GLsizei -> m GLfloat
-ffiuintsizeisizeiIOfloat fp v0 v1 v2 = liftIO (dynuintsizeisizeiIOfloat fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynbitfielduintsizeisizeiPtrfloatIOV :: FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffibitfielduintsizeisizeiPtrfloatIOV :: MonadIO m => FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
-ffibitfielduintsizeisizeiPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynbitfielduintsizeisizeiPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynbitfieldsizeienumPtrVuintsizeiPtrfloatIOV :: FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynbitfieldsizeienumPtrVuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumPtrVuintfloatfloatenumPtrfloatIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
-ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumsizeienumPtrVuintfloatfloatenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()
-
-ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
-ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeiPtruintPtrintIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()
-
-ffiuintenumsizeiPtruintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
-ffiuintenumsizeiPtruintPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumsizeiPtruintPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintenumPtrVIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr () -> IO ()
-
-ffiuintuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr () -> m ()
-ffiuintuintenumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintPtrintPtrintsizeiPtruintIOV :: FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffiuintPtrintPtrintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
-ffiuintPtrintPtrintsizeiPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintPtrintPtrintsizeiPtruintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiPtrVPtruintIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ()
-
-ffiuintuintsizeiPtrVPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()
-ffiuintuintsizeiPtrVPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintsizeiPtrVPtruintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynPtrcharPtruintIOV :: FunPtr (Ptr GLchar -> Ptr GLuint -> IO ()) -> Ptr GLchar -> Ptr GLuint -> IO ()
-
-ffiPtrcharPtruintIOV :: MonadIO m => FunPtr (Ptr GLchar -> Ptr GLuint -> IO ()) -> Ptr GLchar -> Ptr GLuint -> m ()
-ffiPtrcharPtruintIOV fp v0 v1 = liftIO (dynPtrcharPtruintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintuintPtrcharPtruintPtruintPtruintPtruintIOV :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()
-
-ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
-ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintPtrcharPtruintPtruintPtruintPtruintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumPtrushortIOV :: FunPtr (GLenum -> Ptr GLushort -> IO ()) -> GLenum -> Ptr GLushort -> IO ()
-
-ffienumPtrushortIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLushort -> IO ()) -> GLenum -> Ptr GLushort -> m ()
-ffienumPtrushortIOV fp v0 v1 = liftIO (dynenumPtrushortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumintPtrfixedIOV :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> Ptr GLfixed -> IO ()
-
-ffienumintPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> Ptr GLfixed -> m ()
-ffienumintPtrfixedIOV fp v0 v1 v2 = liftIO (dynenumintPtrfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumuintPtrPtrVIOV :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()
-
-ffienumuintPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
-ffienumuintPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumuintPtrPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrsizeiPtrenumPtrVIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()
-
-ffiuintsizeiPtrsizeiPtrenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
-ffiuintsizeiPtrsizeiPtrenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeiPtrsizeiPtrenumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrubytePtrdoubleIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()
-
-ffiuintsizeiPtrubytePtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
-ffiuintsizeiPtrubytePtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrubytePtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrubytePtrfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()
-
-ffiuintsizeiPtrubytePtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
-ffiuintsizeiPtrubytePtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrubytePtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintenumPtrdoubleIOV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
-
-ffienumuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
-ffienumuintenumPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrcharIOuint :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint) -> GLuint -> GLenum -> Ptr GLchar -> IO GLuint
-
-ffiuintenumPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint) -> GLuint -> GLenum -> Ptr GLchar -> m GLuint
-ffiuintenumPtrcharIOuint fp v0 v1 v2 = liftIO (dynuintenumPtrcharIOuint fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrcharIOint :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint) -> GLuint -> GLenum -> Ptr GLchar -> IO GLint
-
-ffiuintenumPtrcharIOint :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint) -> GLuint -> GLenum -> Ptr GLchar -> m GLint
-ffiuintenumPtrcharIOint fp v0 v1 v2 = liftIO (dynuintenumPtrcharIOint fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()
-
-ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
-ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
-
-ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrubyteIOV :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ()) -> GLuint -> GLenum -> Ptr GLubyte -> IO ()
-
-ffiuintenumPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ()) -> GLuint -> GLenum -> Ptr GLubyte -> m ()
-ffiuintenumPtrubyteIOV fp v0 v1 v2 = liftIO (dynuintenumPtrubyteIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintenumintptrIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptr -> IO ()
-
-ffiuintuintenumintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-ffiuintuintenumintptrIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumintptrIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumPtruint64IOV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64 -> IO ()
-
-ffiuintenumPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64 -> m ()
-ffiuintenumPtruint64IOV fp v0 v1 v2 = liftIO (dynuintenumPtruint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumenumPtrVPtrVPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ()
-
-ffienumenumenumPtrVPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
-ffienumenumenumPtrVPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumPtrVPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrintPtrintIOV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()
-
-ffienumenumPtrintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
-ffienumenumPtrintPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumPtrintPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumIOushort :: FunPtr (GLenum -> IO GLushort) -> GLenum -> IO GLushort
-
-ffienumIOushort :: MonadIO m => FunPtr (GLenum -> IO GLushort) -> GLenum -> m GLushort
-ffienumIOushort fp v0 = liftIO (dynenumIOushort fp v0)
-
-foreign import CALLCONV "dynamic" dynenumIOPtrubyte :: FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> IO (Ptr GLubyte)
-
-ffienumIOPtrubyte :: MonadIO m => FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> m (Ptr GLubyte)
-ffienumIOPtrubyte fp v0 = liftIO (dynenumIOPtrubyte fp v0)
-
-foreign import CALLCONV "dynamic" dynenumuintIOPtrubyte :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte)) -> GLenum -> GLuint -> IO (Ptr GLubyte)
-
-ffienumuintIOPtrubyte :: MonadIO m => FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte)) -> GLenum -> GLuint -> m (Ptr GLubyte)
-ffienumuintIOPtrubyte fp v0 v1 = liftIO (dynenumuintIOPtrubyte fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynsyncenumsizeiPtrsizeiPtrintIOV :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
-
-ffisyncenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-ffisyncenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynsyncenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintenumPtrfloatIOV :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffienumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-ffienumintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumintenumPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintenumPtrintIOV :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
-
-ffienumintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-ffienumintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumintenumPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintenumPtrfixedIOV :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()
-
-ffienumintenumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
-ffienumintenumPtrfixedIOV fp v0 v1 v2 v3 = liftIO (dynenumintenumPtrfixedIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumPtruintIOV :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> Ptr GLuint -> IO ()
-
-ffienumenumPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> Ptr GLuint -> m ()
-ffienumenumPtruintIOV fp v0 v1 v2 = liftIO (dynenumenumPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintIOuint64 :: FunPtr (GLuint -> IO GLuint64) -> GLuint -> IO GLuint64
-
-ffiuintIOuint64 :: MonadIO m => FunPtr (GLuint -> IO GLuint64) -> GLuint -> m GLuint64
-ffiuintIOuint64 fp v0 = liftIO (dynuintIOuint64 fp v0)
-
-foreign import CALLCONV "dynamic" dynuintintenumenumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintenumPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffiuintintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
-ffiuintintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumintenumPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffiuintenumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-ffiuintenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintenumPtrintIOV :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()
-
-ffiuintintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
-ffiuintintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumPtruintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()
-
-ffiuintenumenumPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
-ffiuintenumenumPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
-
-ffiuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-ffiuintenumenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintIOuint64 :: FunPtr (GLuint -> GLuint -> IO GLuint64) -> GLuint -> GLuint -> IO GLuint64
-
-ffiuintuintIOuint64 :: MonadIO m => FunPtr (GLuint -> GLuint -> IO GLuint64) -> GLuint -> GLuint -> m GLuint64
-ffiuintuintIOuint64 fp v0 v1 = liftIO (dynuintuintIOuint64 fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynuintuintPtrintIOV :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> Ptr GLint -> IO ()
-
-ffiuintuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> Ptr GLint -> m ()
-ffiuintuintPtrintIOV fp v0 v1 v2 = liftIO (dynuintuintPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumuintPtrint64IOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()
-
-ffiuintenumuintPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
-ffiuintenumuintPtrint64IOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrint64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintPtrcharIOuint :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint) -> GLuint -> Ptr GLchar -> IO GLuint
-
-ffiuintPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO GLuint) -> GLuint -> Ptr GLchar -> m GLuint
-ffiuintPtrcharIOuint fp v0 v1 = liftIO (dynuintPtrcharIOuint fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintintIOint :: FunPtr (GLuint -> GLint -> IO GLint) -> GLuint -> GLint -> IO GLint
-
-ffiuintintIOint :: MonadIO m => FunPtr (GLuint -> GLint -> IO GLint) -> GLuint -> GLint -> m GLint
-ffiuintintIOint fp v0 v1 = liftIO (dynuintintIOint fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrPtrcharPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()
-
-ffiuintsizeiPtrPtrcharPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
-ffiuintsizeiPtrPtrcharPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintIOintptr :: FunPtr (GLuint -> GLint -> IO GLintptr) -> GLuint -> GLint -> IO GLintptr
-
-ffiuintintIOintptr :: MonadIO m => FunPtr (GLuint -> GLint -> IO GLintptr) -> GLuint -> GLint -> m GLintptr
-ffiuintintIOintptr fp v0 v1 = liftIO (dynuintintIOintptr fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintintPtrdoubleIOV :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> Ptr GLdouble -> IO ()
-
-ffiuintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> Ptr GLdouble -> m ()
-ffiuintintPtrdoubleIOV fp v0 v1 v2 = liftIO (dynuintintPtrdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintPtrfloatIOV :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> Ptr GLfloat -> IO ()
-
-ffiuintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> Ptr GLfloat -> m ()
-ffiuintintPtrfloatIOV fp v0 v1 v2 = liftIO (dynuintintPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynhandleARBintPtrfloatIOV :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLint -> Ptr GLfloat -> IO ()
-
-ffihandleARBintPtrfloatIOV :: MonadIO m => FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLint -> Ptr GLfloat -> m ()
-ffihandleARBintPtrfloatIOV fp v0 v1 v2 = liftIO (dynhandleARBintPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintPtrint64IOV :: FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> Ptr GLint64 -> IO ()
-
-ffiuintintPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> Ptr GLint64 -> m ()
-ffiuintintPtrint64IOV fp v0 v1 v2 = liftIO (dynuintintPtrint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintPtrint64EXTIOV :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLint64EXT -> IO ()
-
-ffiuintintPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLint64EXT -> m ()
-ffiuintintPtrint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintPtrint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintPtrintIOV :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLint -> Ptr GLint -> IO ()
-
-ffiuintintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLint -> Ptr GLint -> m ()
-ffiuintintPtrintIOV fp v0 v1 v2 = liftIO (dynuintintPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynhandleARBintPtrintIOV :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ()) -> GLhandleARB -> GLint -> Ptr GLint -> IO ()
-
-ffihandleARBintPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ()) -> GLhandleARB -> GLint -> Ptr GLint -> m ()
-ffihandleARBintPtrintIOV fp v0 v1 v2 = liftIO (dynhandleARBintPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintPtruint64IOV :: FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> Ptr GLuint64 -> IO ()
-
-ffiuintintPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> Ptr GLuint64 -> m ()
-ffiuintintPtruint64IOV fp v0 v1 v2 = liftIO (dynuintintPtruint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintPtruint64EXTIOV :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLuint64EXT -> IO ()
-
-ffiuintintPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLuint64EXT -> m ()
-ffiuintintPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintPtruint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintPtruintIOV :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> Ptr GLuint -> IO ()
-
-ffiuintintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> Ptr GLuint -> m ()
-ffiuintintPtruintIOV fp v0 v1 v2 = liftIO (dynuintintPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintenumPtrint64IOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()
-
-ffiuintuintenumPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
-ffiuintuintenumPtrint64IOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrint64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintenumPtrPtrVIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()
-
-ffiuintuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-ffiuintuintenumPtrPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrdoubleIOV :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
-
-ffiuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> Ptr GLdouble -> m ()
-ffiuintenumPtrdoubleIOV fp v0 v1 v2 = liftIO (dynuintenumPtrdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrint64EXTIOV :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLint64EXT -> IO ()
-
-ffiuintenumPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLint64EXT -> m ()
-ffiuintenumPtrint64EXTIOV fp v0 v1 v2 = liftIO (dynuintenumPtrint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintenumPtrdoubleIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
-
-ffiuintuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
-ffiuintuintenumPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintenumPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffiuintuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-ffiuintuintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLsizei -> Ptr () -> IO ()
-
-ffienumintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLsizei -> Ptr () -> m ()
-ffienumintsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumintsizeiPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumbooleanenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumbooleanenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumbooleanenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumbooleanenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeiPtrdoubleIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()
-
-ffienumenumsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
-ffienumenumsizeiPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeiPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffienumenumsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
-ffienumenumsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeiPtrintIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()
-
-ffienumenumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
-ffienumenumsizeiPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrushortIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ()) -> GLenum -> GLsizei -> Ptr GLushort -> IO ()
-
-ffienumsizeiPtrushortIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ()) -> GLenum -> GLsizei -> Ptr GLushort -> m ()
-ffienumsizeiPtrushortIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrushortIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrubyteIOV :: FunPtr (GLsizei -> Ptr GLubyte -> IO ()) -> GLsizei -> Ptr GLubyte -> IO ()
-
-ffisizeiPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLubyte -> IO ()) -> GLsizei -> Ptr GLubyte -> m ()
-ffisizeiPtrubyteIOV fp v0 v1 = liftIO (dynsizeiPtrubyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrVsizeiPtrVPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ()
-
-ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
-ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumenumsizeiPtrVsizeiPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumintenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtrdoubleIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()
-
-ffiuintintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-ffiuintintsizeiPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffiuintintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-ffiuintintsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtrint64IOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()
-
-ffiuintintsizeiPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
-ffiuintintsizeiPtrint64IOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrint64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtrintIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()
-
-ffiuintintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-ffiuintintsizeiPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtruint64IOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()
-
-ffiuintintsizeiPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-ffiuintintsizeiPtruint64IOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtruint64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtruintIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffiuintintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-ffiuintintsizeiPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynbyteIOV :: FunPtr (GLbyte -> IO ()) -> GLbyte -> IO ()
-
-ffibyteIOV :: MonadIO m => FunPtr (GLbyte -> IO ()) -> GLbyte -> m ()
-ffibyteIOV fp v0 = liftIO (dynbyteIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynshortIOV :: FunPtr (GLshort -> IO ()) -> GLshort -> IO ()
-
-ffishortIOV :: MonadIO m => FunPtr (GLshort -> IO ()) -> GLshort -> m ()
-ffishortIOV fp v0 = liftIO (dynshortIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynubyteIOV :: FunPtr (GLubyte -> IO ()) -> GLubyte -> IO ()
-
-ffiubyteIOV :: MonadIO m => FunPtr (GLubyte -> IO ()) -> GLubyte -> m ()
-ffiubyteIOV fp v0 = liftIO (dynubyteIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynushortIOV :: FunPtr (GLushort -> IO ()) -> GLushort -> IO ()
-
-ffiushortIOV :: MonadIO m => FunPtr (GLushort -> IO ()) -> GLushort -> m ()
-ffiushortIOV fp v0 = liftIO (dynushortIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumbooleanIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()
-
-ffienumsizeienumbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
-ffienumsizeienumbooleanIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeienumbooleanIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintptrbitfieldIOsync :: FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync) -> GLenum -> GLintptr -> GLbitfield -> IO GLsync
-
-ffienumintptrbitfieldIOsync :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync) -> GLenum -> GLintptr -> GLbitfield -> m GLsync
-ffienumintptrbitfieldIOsync fp v0 v1 v2 = liftIO (dynenumintptrbitfieldIOsync fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumsizeisizeiPtrVIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()
-
-ffienumsizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
-ffienumsizeisizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeisizeiPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrcharIOV :: FunPtr (GLsizei -> Ptr GLchar -> IO ()) -> GLsizei -> Ptr GLchar -> IO ()
-
-ffisizeiPtrcharIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLchar -> IO ()) -> GLsizei -> Ptr GLchar -> m ()
-ffisizeiPtrcharIOV fp v0 v1 = liftIO (dynsizeiPtrcharIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrintIOV :: FunPtr (GLsizei -> Ptr GLint -> IO ()) -> GLsizei -> Ptr GLint -> IO ()
-
-ffisizeiPtrintIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> IO ()) -> GLsizei -> Ptr GLint -> m ()
-ffisizeiPtrintIOV fp v0 v1 = liftIO (dynsizeiPtrintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintuintuintfloatIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> GLfloat -> IO ()
-
-ffiuintuintuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> GLfloat -> m ()
-ffiuintuintuintfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrenumintintsizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffiuintsizeiPtrenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffiuintsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrenumintintsizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffienumsizeiPtrenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffienumsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintintIOV :: FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> IO ()
-
-ffiuintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> m ()
-ffiuintintIOV fp v0 v1 = liftIO (dynuintintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()
-
-ffiuintintintintintsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-ffiuintintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumIOboolean :: FunPtr (GLenum -> IO GLboolean) -> GLenum -> IO GLboolean
-
-ffienumIOboolean :: MonadIO m => FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
-ffienumIOboolean fp v0 = liftIO (dynenumIOboolean fp v0)
-
-foreign import CALLCONV "dynamic" dynenumuintIOboolean :: FunPtr (GLenum -> GLuint -> IO GLboolean) -> GLenum -> GLuint -> IO GLboolean
-
-ffienumuintIOboolean :: MonadIO m => FunPtr (GLenum -> GLuint -> IO GLboolean) -> GLenum -> GLuint -> m GLboolean
-ffienumuintIOboolean fp v0 v1 = liftIO (dynenumuintIOboolean fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuint64IOboolean :: FunPtr (GLuint64 -> IO GLboolean) -> GLuint64 -> IO GLboolean
-
-ffiuint64IOboolean :: MonadIO m => FunPtr (GLuint64 -> IO GLboolean) -> GLuint64 -> m GLboolean
-ffiuint64IOboolean fp v0 = liftIO (dynuint64IOboolean fp v0)
-
-foreign import CALLCONV "dynamic" dynintPtrcharIOboolean :: FunPtr (GLint -> Ptr GLchar -> IO GLboolean) -> GLint -> Ptr GLchar -> IO GLboolean
-
-ffiintPtrcharIOboolean :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> IO GLboolean) -> GLint -> Ptr GLchar -> m GLboolean
-ffiintPtrcharIOboolean fp v0 v1 = liftIO (dynintPtrcharIOboolean fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintuintfloatfloatIOboolean :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean
-
-ffiuintuintfloatfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
-ffiuintuintfloatfloatIOboolean fp v0 v1 v2 v3 = liftIO (dynuintuintfloatfloatIOboolean fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatIOboolean :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLfloat -> GLfloat -> IO GLboolean
-
-ffiuintfloatfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLfloat -> GLfloat -> m GLboolean
-ffiuintfloatfloatIOboolean fp v0 v1 v2 = liftIO (dynuintfloatfloatIOboolean fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsyncIOboolean :: FunPtr (GLsync -> IO GLboolean) -> GLsync -> IO GLboolean
-
-ffisyncIOboolean :: MonadIO m => FunPtr (GLsync -> IO GLboolean) -> GLsync -> m GLboolean
-ffisyncIOboolean fp v0 = liftIO (dynsyncIOboolean fp v0)
-
-foreign import CALLCONV "dynamic" dynuintenumIOboolean :: FunPtr (GLuint -> GLenum -> IO GLboolean) -> GLuint -> GLenum -> IO GLboolean
-
-ffiuintenumIOboolean :: MonadIO m => FunPtr (GLuint -> GLenum -> IO GLboolean) -> GLuint -> GLenum -> m GLboolean
-ffiuintenumIOboolean fp v0 v1 = liftIO (dynuintenumIOboolean fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtrcharIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()
-
-ffienumuintsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-ffienumuintsizeiPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrcharIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintushortIOV :: FunPtr (GLint -> GLushort -> IO ()) -> GLint -> GLushort -> IO ()
-
-ffiintushortIOV :: MonadIO m => FunPtr (GLint -> GLushort -> IO ()) -> GLint -> GLushort -> m ()
-ffiintushortIOV fp v0 v1 = liftIO (dynintushortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV :: FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
-
-ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
-ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumfloatIOV :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLfloat -> IO ()
-
-ffiuintenumfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLfloat -> m ()
-ffiuintenumfloatIOV fp v0 v1 v2 = liftIO (dynuintenumfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumintIOV :: FunPtr (GLuint -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> IO ()
-
-ffiuintenumintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> m ()
-ffiuintenumintIOV fp v0 v1 v2 = liftIO (dynuintenumintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtrubyteIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()
-
-ffienumuintsizeiPtrubyteIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
-ffienumuintsizeiPtrubyteIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrubyteIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintsizeiIOV :: FunPtr (GLint -> GLsizei -> IO ()) -> GLint -> GLsizei -> IO ()
-
-ffiintsizeiIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> IO ()) -> GLint -> GLsizei -> m ()
-ffiintsizeiIOV fp v0 v1 = liftIO (dynintsizeiIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuint64IOV :: FunPtr (GLuint64 -> IO ()) -> GLuint64 -> IO ()
-
-ffiuint64IOV :: MonadIO m => FunPtr (GLuint64 -> IO ()) -> GLuint64 -> m ()
-ffiuint64IOV fp v0 = liftIO (dynuint64IOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuint64enumIOV :: FunPtr (GLuint64 -> GLenum -> IO ()) -> GLuint64 -> GLenum -> IO ()
-
-ffiuint64enumIOV :: MonadIO m => FunPtr (GLuint64 -> GLenum -> IO ()) -> GLuint64 -> GLenum -> m ()
-ffiuint64enumIOV fp v0 v1 = liftIO (dynuint64enumIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumdoubledoubleintintPtrdoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
-
-ffienumdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-ffienumdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumfloatfloatintintPtrfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
-
-ffienumfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-ffienumfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumfixedfixedintintfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()
-
-ffienumfixedfixedintintfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
-ffienumfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
-
-ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumfloatfloatintintfloatfloatintintPtrfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
-
-ffienumfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-ffienumfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumfixedfixedintintfixedfixedintintfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()
-
-ffienumfixedfixedintintfixedfixedintintfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
-ffienumfixedfixedintintfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumfixedfixedintintfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumenumIOPtrV :: FunPtr (GLenum -> GLenum -> IO (Ptr ())) -> GLenum -> GLenum -> IO (Ptr ())
-
-ffienumenumIOPtrV :: MonadIO m => FunPtr (GLenum -> GLenum -> IO (Ptr ())) -> GLenum -> GLenum -> m (Ptr ())
-ffienumenumIOPtrV fp v0 v1 = liftIO (dynenumenumIOPtrV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumintptrsizeiptrbitfieldIOPtrV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())
-
-ffienumintptrsizeiptrbitfieldIOPtrV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-ffienumintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3 = liftIO (dynenumintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintenumsizeisizeiintintbooleanPtrVIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ()
-
-ffienumuintenumsizeisizeiintintbooleanPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> m ()
-ffienumuintenumsizeisizeiintintbooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumuintenumsizeisizeiintintbooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynintdoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> IO ()
-
-ffiintdoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> m ()
-ffiintdoubledoubleIOV fp v0 v1 v2 = liftIO (dynintdoubledoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> IO ()
-
-ffiintfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> m ()
-ffiintfloatfloatIOV fp v0 v1 v2 = liftIO (dynintfloatfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintfixedfixedIOV :: FunPtr (GLint -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> IO ()
-
-ffiintfixedfixedIOV :: MonadIO m => FunPtr (GLint -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> m ()
-ffiintfixedfixedIOV fp v0 v1 v2 = liftIO (dynintfixedfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintdoubledoubleintdoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()
-
-ffiintdoubledoubleintdoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
-ffiintdoubledoubleintdoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynintdoubledoubleintdoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynintfloatfloatintfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()
-
-ffiintfloatfloatintfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
-ffiintfloatfloatintfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynintfloatfloatintfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynintfixedfixedfixedfixedIOV :: FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
-
-ffiintfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-ffiintfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 = liftIO (dynintfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumIOPtrV :: FunPtr (GLuint -> GLenum -> IO (Ptr ())) -> GLuint -> GLenum -> IO (Ptr ())
-
-ffiuintenumIOPtrV :: MonadIO m => FunPtr (GLuint -> GLenum -> IO (Ptr ())) -> GLuint -> GLenum -> m (Ptr ())
-ffiuintenumIOPtrV fp v0 v1 = liftIO (dynuintenumIOPtrV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintintptrsizeiptrbitfieldIOPtrV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())
-
-ffiuintintptrsizeiptrbitfieldIOPtrV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-ffiuintintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3 = liftIO (dynuintintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintIOPtrV :: FunPtr (GLuint -> IO (Ptr ())) -> GLuint -> IO (Ptr ())
-
-ffiuintIOPtrV :: MonadIO m => FunPtr (GLuint -> IO (Ptr ())) -> GLuint -> m (Ptr ())
-ffiuintIOPtrV fp v0 = liftIO (dynuintIOPtrV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintintbitfieldPtrintPtrenumIOPtrV :: FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ())) -> GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ())
-
-ffiuintintbitfieldPtrintPtrenumIOPtrV :: MonadIO m => FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ())) -> GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr ())
-ffiuintintbitfieldPtrintPtrenumIOPtrV fp v0 v1 v2 v3 v4 = liftIO (dynuintintbitfieldPtrintPtrenumIOPtrV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
-
-ffiuintuintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-ffiuintuintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintuintfloatfloatintintPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
-
-ffiuintuintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-ffiuintuintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
-
-ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynuintuintfloatfloatintintfloatfloatintintPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
-
-ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynenumdoubledoubledoubledoubledoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffienumdoubledoubledoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffienumdoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumdoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynintPtrubyteIOV :: FunPtr (GLint -> Ptr GLubyte -> IO ()) -> GLint -> Ptr GLubyte -> IO ()
-
-ffiintPtrubyteIOV :: MonadIO m => FunPtr (GLint -> Ptr GLubyte -> IO ()) -> GLint -> Ptr GLubyte -> m ()
-ffiintPtrubyteIOV fp v0 v1 = liftIO (dynintPtrubyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtruintIOV :: FunPtr (GLint -> Ptr GLuint -> IO ()) -> GLint -> Ptr GLuint -> IO ()
-
-ffiintPtruintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLuint -> IO ()) -> GLint -> Ptr GLuint -> m ()
-ffiintPtruintIOV fp v0 v1 = liftIO (dynintPtruintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtrushortIOV :: FunPtr (GLint -> Ptr GLushort -> IO ()) -> GLint -> Ptr GLushort -> IO ()
-
-ffiintPtrushortIOV :: MonadIO m => FunPtr (GLint -> Ptr GLushort -> IO ()) -> GLint -> Ptr GLushort -> m ()
-ffiintPtrushortIOV fp v0 v1 = liftIO (dynintPtrushortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumdoubledoubledoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffienumdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffienumdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumfloatfloatfloatfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffienumfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffienumfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumdoubledoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffienumdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffienumdoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumdoubledoubledoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumfloatfloatfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffienumfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffienumfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumfloatfloatfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumbooleanIOV :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLboolean -> IO ()
-
-ffienumenumbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLboolean -> m ()
-ffienumenumbooleanIOV fp v0 v1 v2 = liftIO (dynenumenumbooleanIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumPtrintPtrsizeisizeiIOV :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()
-
-ffienumPtrintPtrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-ffienumPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumPtrVsizeisizeiIOV :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()
-
-ffienumPtrVsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-ffienumPtrVsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumPtrVsizeisizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumPtrVsizeisizeisizeiintIOV :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()
-
-ffienumPtrVsizeisizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
-ffienumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumPtrVsizeisizeiintIOV :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()
-
-ffienumPtrVsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
-ffienumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintptrintptrsizeisizeiIOV :: FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()
-
-ffienumintptrintptrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
-ffienumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumPtrsizeienumPtrPtrVsizeiIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()
-
-ffienumPtrsizeienumPtrPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
-ffienumPtrsizeienumPtrPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumPtrsizeienumPtrPtrVsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumPtrsizeienumPtrPtrVsizeiPtrintIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()
-
-ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
-ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrsizeienumPtrPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrVsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()
-
-ffienumenumPtrVsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-ffienumenumPtrVsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumPtrVsizeisizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrVsizeisizeisizeiintIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()
-
-ffienumenumPtrVsizeisizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
-ffienumenumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumenumPtrVsizeisizeiintIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()
-
-ffienumenumPtrVsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
-ffienumenumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumintptrintptrsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()
-
-ffienumenumintptrintptrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
-ffienumenumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumuintuintPtrintPtrsizeisizeiIOV :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()
-
-ffienumuintuintPtrintPtrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-ffienumuintuintPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintuintPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynPtrenumPtrintPtrsizeisizeiintIOV :: FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()
-
-ffiPtrenumPtrintPtrsizeisizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
-ffiPtrenumPtrintPtrsizeisizeiintIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtrenumPtrintPtrsizeisizeiintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynPtrenumPtrsizeienumPtrPtrVsizeiintIOV :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()
-
-ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()
-ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynPtrenumPtrsizeienumPtrPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumbyteIOV :: FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> IO ()
-
-ffienumbyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> m ()
-ffienumbyteIOV fp v0 v1 = liftIO (dynenumbyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumPtrbyteIOV :: FunPtr (GLenum -> Ptr GLbyte -> IO ()) -> GLenum -> Ptr GLbyte -> IO ()
-
-ffienumPtrbyteIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLbyte -> IO ()) -> GLenum -> Ptr GLbyte -> m ()
-ffienumPtrbyteIOV fp v0 v1 = liftIO (dynenumPtrbyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumdoubleIOV :: FunPtr (GLenum -> GLdouble -> IO ()) -> GLenum -> GLdouble -> IO ()
-
-ffienumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> IO ()) -> GLenum -> GLdouble -> m ()
-ffienumdoubleIOV fp v0 v1 = liftIO (dynenumdoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> IO ()
-
-ffienumhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> m ()
-ffienumhalfNVIOV fp v0 v1 = liftIO (dynenumhalfNVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumPtrhalfNVIOV :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ()) -> GLenum -> Ptr GLhalfNV -> IO ()
-
-ffienumPtrhalfNVIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLhalfNV -> IO ()) -> GLenum -> Ptr GLhalfNV -> m ()
-ffienumPtrhalfNVIOV fp v0 v1 = liftIO (dynenumPtrhalfNVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumshortIOV :: FunPtr (GLenum -> GLshort -> IO ()) -> GLenum -> GLshort -> IO ()
-
-ffienumshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> IO ()) -> GLenum -> GLshort -> m ()
-ffienumshortIOV fp v0 v1 = liftIO (dynenumshortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumPtrshortIOV :: FunPtr (GLenum -> Ptr GLshort -> IO ()) -> GLenum -> Ptr GLshort -> IO ()
-
-ffienumPtrshortIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLshort -> IO ()) -> GLenum -> Ptr GLshort -> m ()
-ffienumPtrshortIOV fp v0 v1 = liftIO (dynenumPtrshortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumbytebyteIOV :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> IO ()
-
-ffienumbytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> m ()
-ffienumbytebyteIOV fp v0 v1 v2 = liftIO (dynenumbytebyteIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumdoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> IO ()
-
-ffienumdoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> m ()
-ffienumdoubledoubleIOV fp v0 v1 v2 = liftIO (dynenumdoubledoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumfloatfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> IO ()
-
-ffienumfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> m ()
-ffienumfloatfloatIOV fp v0 v1 v2 = liftIO (dynenumfloatfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumhalfNVhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffienumhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> m ()
-ffienumhalfNVhalfNVIOV fp v0 v1 v2 = liftIO (dynenumhalfNVhalfNVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumshortshortIOV :: FunPtr (GLenum -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> IO ()
-
-ffienumshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> m ()
-ffienumshortshortIOV fp v0 v1 v2 = liftIO (dynenumshortshortIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumfixedfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> IO ()
-
-ffienumfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> m ()
-ffienumfixedfixedIOV fp v0 v1 v2 = liftIO (dynenumfixedfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumbytebytebyteIOV :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()
-
-ffienumbytebytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
-ffienumbytebytebyteIOV fp v0 v1 v2 v3 = liftIO (dynenumbytebytebyteIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumhalfNVhalfNVhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffienumhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-ffienumhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 = liftIO (dynenumhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumintintintIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> IO ()
-
-ffienumintintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> m ()
-ffienumintintintIOV fp v0 v1 v2 v3 = liftIO (dynenumintintintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumshortshortshortIOV :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> IO ()
-
-ffienumshortshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> m ()
-ffienumshortshortshortIOV fp v0 v1 v2 v3 = liftIO (dynenumshortshortshortIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumfixedfixedfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()
-
-ffienumfixedfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
-ffienumfixedfixedfixedIOV fp v0 v1 v2 v3 = liftIO (dynenumfixedfixedfixedIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumbytebytebytebyteIOV :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()
-
-ffienumbytebytebytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
-ffienumbytebytebytebyteIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumbytebytebytebyteIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumhalfNVhalfNVhalfNVhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffienumhalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-ffienumhalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumhalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumshortshortshortshortIOV :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
-
-ffienumshortshortshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-ffienumshortshortshortshortIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumshortshortshortshortIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumfixedfixedfixedfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
-
-ffienumfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
-ffienumfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumintenumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumenumfloatIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLfloat -> IO ()
-
-ffienumenumenumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLfloat -> m ()
-ffienumenumenumfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumenumintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLint -> IO ()
-
-ffienumenumenumintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLint -> m ()
-ffienumenumenumintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumenumdoubleIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> GLdouble -> IO ()
-
-ffienumenumenumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> GLdouble -> m ()
-ffienumenumenumdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumintintsizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumenumintintsizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumenumintintsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynenumenumintintsizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumenumintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumenumintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynenumenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynuintsizeiptrPtrVenumIOV :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ()
-
-ffiuintsizeiptrPtrVenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-ffiuintsizeiptrPtrVenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiptrPtrVenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintptrsizeiptrbooleanIOV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()
-
-ffiuintintptrsizeiptrbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
-ffiuintintptrsizeiptrbooleanIOV fp v0 v1 v2 v3 = liftIO (dynuintintptrsizeiptrbooleanIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiptrPtrVbitfieldIOV :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()
-
-ffiuintsizeiptrPtrVbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-ffiuintsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumuintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()
-
-ffiuintenumenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
-ffiuintenumenumuintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffiuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-ffiuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintuintPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
-
-ffiuintuintuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
-ffiuintuintuintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumuintintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> IO ()
-
-ffiuintenumuintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> m ()
-ffiuintenumuintintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumuintintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
-
-ffiuintenumenumuintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-ffiuintenumenumuintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumuintintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumenumuintintintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
-
-ffiuintenumenumuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-ffiuintenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumuintintenumIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()
-
-ffiuintenumuintintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
-ffiuintenumuintintenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintintenumIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumuintintintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()
-
-ffiuintenumuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
-ffiuintenumuintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintintintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumuintdoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiuintenumuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiuintenumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumuintfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintenumuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintenumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumuintintintintintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffiuintenumuintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-ffiuintenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumuintuintuintuintuintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintenumuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintenumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffiuintenumuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-ffiuintenumuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()
-
-ffiuintenumuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
-ffiuintenumuintsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintsizeiPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtruintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffiuintenumuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-ffiuintenumuintsizeiPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintsizeiPtruintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumenumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()
-
-ffiuintenumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
-ffiuintenumsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintenumsizeisizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
-
-ffiuintsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-ffiuintsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintsizeisizeienumsizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
-
-ffiuintsizeisizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-ffiuintsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumintPtrcharintPtrcharIOV :: FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()) -> GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()
-
-ffienumintPtrcharintPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()) -> GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()
-ffienumintPtrcharintPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintPtrcharintPtrcharIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrVenumIOuint :: FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint) -> GLsizei -> Ptr () -> GLenum -> IO GLuint
-
-ffisizeiPtrVenumIOuint :: MonadIO m => FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint) -> GLsizei -> Ptr () -> GLenum -> m GLuint
-ffisizeiPtrVenumIOuint fp v0 v1 v2 = liftIO (dynsizeiPtrVenumIOuint fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynPtrVsizeiPtrcharIOV :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLchar -> IO ()
-
-ffiPtrVsizeiPtrcharIOV :: MonadIO m => FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLchar -> m ()
-ffiPtrVsizeiPtrcharIOV fp v0 v1 v2 = liftIO (dynPtrVsizeiPtrcharIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumuintenumIOenum :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum) -> GLenum -> GLuint -> GLenum -> IO GLenum
-
-ffienumuintenumIOenum :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum) -> GLenum -> GLuint -> GLenum -> m GLenum
-ffienumuintenumIOenum fp v0 v1 v2 = liftIO (dynenumuintenumIOenum fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintenumIOV :: FunPtr (GLuint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> IO ()
-
-ffiuintuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> m ()
-ffiuintuintenumIOV fp v0 v1 v2 = liftIO (dynuintuintenumIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrubytesizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()
-
-ffiuintsizeiPtrubytesizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
-ffiuintsizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintsizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()
-
-ffiuintsizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
-ffiuintsizeienumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeienumPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrVbitfielduintsizeiuintfloatIOenum :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum
-
-ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
-ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumPtrVbitfielduintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumPtrVbitfielduintfloatPtruintIOenum :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum
-
-ffienumPtrVbitfielduintfloatPtruintIOenum :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
-ffienumPtrVbitfielduintfloatPtruintIOenum fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrVbitfielduintfloatPtruintIOenum fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrVbitfielduintsizeienumuintfloatIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()
-
-ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
-ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumPtrVbitfielduintsizeienumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ()
-
-ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> m ()
-ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum
-
-ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
-ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumintuintIOV :: FunPtr (GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLint -> GLuint -> IO ()
-
-ffienumintuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLint -> GLuint -> m ()
-ffienumintuintIOV fp v0 v1 v2 = liftIO (dynenumintuintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintenumsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumsizeiPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeisizeisizeiPtrubytesizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()
-
-ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
-ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintsizeisizeisizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintsizeisizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ()
-
-ffiuintsizeisizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> m ()
-ffiuintsizeisizeienumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeisizeienumPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumintPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()
-
-ffienumenumintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()
-ffienumenumintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumintPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean) -> GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean
-
-ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean) -> GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
-ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynPtrintIOint :: FunPtr (Ptr GLint -> IO GLint) -> Ptr GLint -> IO GLint
-
-ffiPtrintIOint :: MonadIO m => FunPtr (Ptr GLint -> IO GLint) -> Ptr GLint -> m GLint
-ffiPtrintIOint fp v0 = liftIO (dynPtrintIOint fp v0)
-
-foreign import CALLCONV "dynamic" dynuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()
-
-ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
-ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
-
-foreign import CALLCONV "dynamic" dynuintuint64EXTuintuintenumenumuintuintenumuintuintIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()
-
-ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()
-ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuint64EXTuintuintenumenumuintuintenumuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynsizeiPtruintPtrfloatIOV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()
-
-ffisizeiPtruintPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
-ffisizeiPtruintPtrfloatIOV fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsizeiPtruintPtrclampfIOV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()
-
-ffisizeiPtruintPtrclampfIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()
-ffisizeiPtruintPtrclampfIOV fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrclampfIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsizeiPtruintPtrfixedIOV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()
-
-ffisizeiPtruintPtrfixedIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()
-ffisizeiPtruintPtrfixedIOV fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrfixedIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrVsizeiIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()
-
-ffiuintenumPtrVsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-ffiuintenumPtrVsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintenumPtrVsizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrVintIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLint -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLint -> IO ()
-
-ffiuintenumPtrVintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLint -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLint -> m ()
-ffiuintenumPtrVintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumPtrVintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintuintsizeiPtrintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()
-
-ffienumuintuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
-ffienumuintuintsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintsizeiPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintuintsizeiPtruintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffienumuintuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-ffienumuintuintsizeiPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintsizeiPtruintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintuintsizeiPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffienumuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
-ffienumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintdoubledoubledoubledoubleIOV :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffienumuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffienumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumuintfloatfloatfloatfloatIOV :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffienumuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffienumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumuintintintintintIOV :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffienumuintintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-ffienumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtrintIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()
-
-ffienumuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
-ffienumuintsizeiPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrubytedoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrubytedoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrubytefloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintsizeiPtrubytefloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintsizeiPtrubytefloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrubytefloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumuintsizeiPtrdoubleIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()
-
-ffienumuintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
-ffienumuintsizeiPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintenumintPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()
-
-ffiuintintenumintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
-ffiuintintenumintPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumintPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffienumenumsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintdoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> IO ()
-
-ffiuintintdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> m ()
-ffiuintintdoubleIOV fp v0 v1 v2 = liftIO (dynuintintdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> IO ()
-
-ffiuintintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> m ()
-ffiuintintfloatIOV fp v0 v1 v2 = liftIO (dynuintintfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> IO ()
-
-ffiuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> m ()
-ffiuintintintIOV fp v0 v1 v2 = liftIO (dynuintintintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintint64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> IO ()
-
-ffiuintintint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> m ()
-ffiuintintint64IOV fp v0 v1 v2 = liftIO (dynuintintint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> IO ()
-
-ffiuintintint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> m ()
-ffiuintintint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtrint64EXTIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()
-
-ffiuintintsizeiPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-ffiuintintsizeiPtrint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> IO ()
-
-ffiuintintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> m ()
-ffiuintintuintIOV fp v0 v1 v2 = liftIO (dynuintintuintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintuint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> IO ()
-
-ffiuintintuint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> m ()
-ffiuintintuint64IOV fp v0 v1 v2 = liftIO (dynuintintuint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> IO ()
-
-ffiuintintuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> m ()
-ffiuintintuint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintuint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintsizeiPtruint64EXTIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()
-
-ffiuintintsizeiPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-ffiuintintsizeiPtruint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtruint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintdoubledoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> IO ()
-
-ffiuintintdoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> m ()
-ffiuintintdoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintintdoubledoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintfloatfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> IO ()
-
-ffiuintintfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> m ()
-ffiuintintfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintintfloatfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> IO ()
-
-ffiuintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> m ()
-ffiuintintintintIOV fp v0 v1 v2 v3 = liftIO (dynuintintintintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintint64int64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> IO ()
-
-ffiuintintint64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> m ()
-ffiuintintint64int64IOV fp v0 v1 v2 v3 = liftIO (dynuintintint64int64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiuintintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
-ffiuintintint64EXTint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintint64EXTint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintuintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> IO ()
-
-ffiuintintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> m ()
-ffiuintintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynuintintuintuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintuint64uint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()
-
-ffiuintintuint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()
-ffiuintintuint64uint64IOV fp v0 v1 v2 v3 = liftIO (dynuintintuint64uint64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiuintintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiuintintuint64EXTuint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintuint64EXTuint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintdoubledoubledoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiuintintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiuintintdoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintdoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintfloatfloatfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintintfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffiuintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-ffiuintintintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintintintintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintint64int64int64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
-
-ffiuintintint64int64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
-ffiuintintint64int64int64IOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintint64int64int64IOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiuintintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-ffiuintintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintuintuintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintuintuintuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintuint64uint64uint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
-
-ffiuintintuint64uint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-ffiuintintuint64uint64uint64IOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintuint64uint64uint64IOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiuintintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiuintintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintdoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiuintintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiuintintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintintintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
-
-ffiuintintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-ffiuintintintintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintintintintintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintint64int64int64int64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
-
-ffiuintintint64int64int64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
-ffiuintintint64int64int64int64IOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintint64int64int64int64IOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintint64EXTint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiuintintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-ffiuintintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintuintuintuintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintuint64uint64uint64uint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
-
-ffiuintintuint64uint64uint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-ffiuintintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintintsizeibooleanPtrdoubleIOV :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()
-
-ffiuintintsizeibooleanPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-ffiuintintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintsizeibooleanPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()
-
-ffiuintintsizeibooleanPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-ffiuintintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynPtrfixedPtrintIObitfield :: FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield) -> Ptr GLfixed -> Ptr GLint -> IO GLbitfield
-
-ffiPtrfixedPtrintIObitfield :: MonadIO m => FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield) -> Ptr GLfixed -> Ptr GLint -> m GLbitfield
-ffiPtrfixedPtrintIObitfield fp v0 v1 = liftIO (dynPtrfixedPtrintIObitfield fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumuintenumuintIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()
-
-ffienumuintenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
-ffienumuintenumuintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynshortshortIOV :: FunPtr (GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> IO ()
-
-ffishortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> m ()
-ffishortshortIOV fp v0 v1 = liftIO (dynshortshortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintbooleanIOV :: FunPtr (GLuint -> GLboolean -> IO ()) -> GLuint -> GLboolean -> IO ()
-
-ffiuintbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> IO ()) -> GLuint -> GLboolean -> m ()
-ffiuintbooleanIOV fp v0 v1 = liftIO (dynuintbooleanIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintintsizeisizeienumenumPtrVIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffiintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynintintsizeisizeienumenumsizeiPtrVIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiintintsizeisizeienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiintintsizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynintintsizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynPtrdoublePtrdoubleIOV :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ()) -> Ptr GLdouble -> Ptr GLdouble -> IO ()
-
-ffiPtrdoublePtrdoubleIOV :: MonadIO m => FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ()) -> Ptr GLdouble -> Ptr GLdouble -> m ()
-ffiPtrdoublePtrdoubleIOV fp v0 v1 = liftIO (dynPtrdoublePtrdoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynPtrintPtrintIOV :: FunPtr (Ptr GLint -> Ptr GLint -> IO ()) -> Ptr GLint -> Ptr GLint -> IO ()
-
-ffiPtrintPtrintIOV :: MonadIO m => FunPtr (Ptr GLint -> Ptr GLint -> IO ()) -> Ptr GLint -> Ptr GLint -> m ()
-ffiPtrintPtrintIOV fp v0 v1 = liftIO (dynPtrintPtrintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynPtrshortPtrshortIOV :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ()) -> Ptr GLshort -> Ptr GLshort -> IO ()
-
-ffiPtrshortPtrshortIOV :: MonadIO m => FunPtr (Ptr GLshort -> Ptr GLshort -> IO ()) -> Ptr GLshort -> Ptr GLshort -> m ()
-ffiPtrshortPtrshortIOV fp v0 v1 = liftIO (dynPtrshortPtrshortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynPtrfixedPtrfixedIOV :: FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ()) -> Ptr GLfixed -> Ptr GLfixed -> IO ()
-
-ffiPtrfixedPtrfixedIOV :: MonadIO m => FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ()) -> Ptr GLfixed -> Ptr GLfixed -> m ()
-ffiPtrfixedPtrfixedIOV fp v0 v1 = liftIO (dynPtrfixedPtrfixedIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumIOint :: FunPtr (GLenum -> IO GLint) -> GLenum -> IO GLint
-
-ffienumIOint :: MonadIO m => FunPtr (GLenum -> IO GLint) -> GLenum -> m GLint
-ffienumIOint fp v0 = liftIO (dynenumIOint fp v0)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()
-
-ffienumenumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
-ffienumenumsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeisizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
-
-ffienumsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-ffienumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumsizeisizeienumsizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
-
-ffienumsizeisizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-ffienumsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrPtrVIOV :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()
-
-ffienumsizeiPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
-ffienumsizeiPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynPtruintPtrfloatPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()
-
-ffiPtruintPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
-ffiPtruintPtrfloatPtrfloatIOV fp v0 v1 v2 = liftIO (dynPtruintPtrfloatPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynPtruintPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
-
-ffiPtruintPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-ffiPtruintPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynPtruintPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintubyteubyteubyteubytefloatfloatfloatIOV :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynPtruintPtrubytePtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()
-
-ffiPtruintPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
-ffiPtruintPtrubytePtrfloatIOV fp v0 v1 v2 = liftIO (dynPtruintPtrubytePtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
-
-foreign import CALLCONV "dynamic" dynPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
-
-ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintfloatfloatfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynPtruintPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> IO ()
-
-ffiPtruintPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> m ()
-ffiPtruintPtrfloatIOV fp v0 v1 = liftIO (dynPtruintPtrfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynfloatbooleanIOV :: FunPtr (GLfloat -> GLboolean -> IO ()) -> GLfloat -> GLboolean -> IO ()
-
-ffifloatbooleanIOV :: MonadIO m => FunPtr (GLfloat -> GLboolean -> IO ()) -> GLfloat -> GLboolean -> m ()
-ffifloatbooleanIOV fp v0 v1 = liftIO (dynfloatbooleanIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynclampxbooleanIOV :: FunPtr (GLclampx -> GLboolean -> IO ()) -> GLclampx -> GLboolean -> IO ()
-
-fficlampxbooleanIOV :: MonadIO m => FunPtr (GLclampx -> GLboolean -> IO ()) -> GLclampx -> GLboolean -> m ()
-fficlampxbooleanIOV fp v0 v1 = liftIO (dynclampxbooleanIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynclampfbooleanIOV :: FunPtr (GLclampf -> GLboolean -> IO ()) -> GLclampf -> GLboolean -> IO ()
-
-fficlampfbooleanIOV :: MonadIO m => FunPtr (GLclampf -> GLboolean -> IO ()) -> GLclampf -> GLboolean -> m ()
-fficlampfbooleanIOV fp v0 v1 = liftIO (dynclampfbooleanIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintbitfieldIOV :: FunPtr (GLuint -> GLbitfield -> IO ()) -> GLuint -> GLbitfield -> IO ()
-
-ffiuintbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLbitfield -> IO ()) -> GLuint -> GLbitfield -> m ()
-ffiuintbitfieldIOV fp v0 v1 = liftIO (dynuintbitfieldIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintintsizeisizeiIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffiintintsizeisizeiIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffiintintsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynintintsizeisizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> IO ()
-
-ffiuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> m ()
-ffiuintsizeiPtrintIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintintintsizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
-
-ffiuintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-ffiuintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintintsizeisizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintPtrintIOV :: FunPtr (GLuint -> Ptr GLint -> IO ()) -> GLuint -> Ptr GLint -> IO ()
-
-ffiuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint -> IO ()) -> GLuint -> Ptr GLint -> m ()
-ffiuintPtrintIOV fp v0 v1 = liftIO (dynuintPtrintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintbooleanuintintPtruintIOV :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()
-
-ffiuintbooleanuintintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
-ffiuintbooleanuintintPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintbooleanuintintPtruintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeisizeienumenumPtrVPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()
-
-ffienumenumsizeisizeienumenumPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
-ffienumenumsizeisizeienumenumPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumsizeisizeienumenumPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumPtrVIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> m ()
-ffiuintenumPtrVIOV fp v0 v1 v2 = liftIO (dynuintenumPtrVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsizeiPtruintenumPtrVsizeiIOV :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()
-
-ffisizeiPtruintenumPtrVsizeiIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-ffisizeiPtruintenumPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynsizeiPtruintenumPtrVsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffienumuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffienumuintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintuintuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynhandleARBsizeiPtrPtrcharARBPtrintIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()
-
-ffihandleARBsizeiPtrPtrcharARBPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
-ffihandleARBsizeiPtrPtrcharARBPtrintIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrPtrcharARBPtrintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintuintuintbitfieldIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()
-
-ffiuintuintuintuintbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()
-ffiuintuintuintuintbitfieldIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintuintbitfieldIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynsizeiuintIOV :: FunPtr (GLsizei -> GLuint -> IO ()) -> GLsizei -> GLuint -> IO ()
-
-ffisizeiuintIOV :: MonadIO m => FunPtr (GLsizei -> GLuint -> IO ()) -> GLsizei -> GLuint -> m ()
-ffisizeiuintIOV fp v0 v1 = liftIO (dynsizeiuintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrVuintenumuintenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffisizeienumPtrVuintenumuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-ffisizeienumPtrVuintenumuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynsizeienumPtrVuintenumuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumuintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> IO ()
-
-ffiuintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> m ()
-ffiuintenumuintIOV fp v0 v1 v2 = liftIO (dynuintenumuintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumenumintuintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLenum -> GLint -> GLuint -> IO ()
-
-ffienumenumintuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLenum -> GLint -> GLuint -> m ()
-ffienumenumintuintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumintuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumenumenumIOV :: FunPtr (GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> IO ()
-
-ffienumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> m ()
-ffienumenumenumIOV fp v0 v1 v2 = liftIO (dynenumenumenumIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrVuintintuintenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
-
-ffisizeienumPtrVuintintuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
-ffisizeienumPtrVuintintuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynsizeienumPtrVuintintuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrVuintenumuintenumenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
-
-ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynsizeienumPtrVuintenumuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumuintenumIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> IO ()
-
-ffiuintenumuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> m ()
-ffiuintenumuintenumIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynsizeienumPtrVuintintuintenumenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
-
-ffisizeienumPtrVuintintuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
-ffisizeienumPtrVuintintuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynsizeienumPtrVuintintuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintintuintenumIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLint -> GLuint -> GLenum -> IO ()
-
-ffiuintintuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLint -> GLuint -> GLenum -> m ()
-ffiuintintuintenumIOV fp v0 v1 v2 v3 = liftIO (dynuintintuintenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintenumenumenumenumIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
-
-ffiuintuintenumenumenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-ffiuintuintenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumuintintptrsizeiptrIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
-
-ffienumenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-ffienumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynbytebyteIOV :: FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> IO ()
-
-ffibytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> m ()
-ffibytebyteIOV fp v0 v1 = liftIO (dynbytebyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynPtrfloatPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
-
-ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
-ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynfloatfloatubyteubyteubyteubytefloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynfloatfloatubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynPtrfloatPtrubytePtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()
-
-ffiPtrfloatPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
-ffiPtrfloatPtrubytePtrfloatIOV fp v0 v1 v2 = liftIO (dynPtrfloatPtrubytePtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynhalfNVhalfNVIOV :: FunPtr (GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffihalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> m ()
-ffihalfNVhalfNVIOV fp v0 v1 = liftIO (dynhalfNVhalfNVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14)
-
-foreign import CALLCONV "dynamic" dynenumenumdoubleIOV :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLdouble -> IO ()
-
-ffienumenumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLdouble -> m ()
-ffienumenumdoubleIOV fp v0 v1 v2 = liftIO (dynenumenumdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynenumintintsizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumintintsizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffienumsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffienumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumsizeisizeiintsizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffienumsizeisizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffienumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumintintsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumintenumsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintenumsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintenumsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumintenumsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffienumsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffienumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumsizeisizeiintsizeisizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffienumsizeisizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffienumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumintenumsizeisizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumintenumsizeisizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynenumintintintintsizeisizeisizeibooleanIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffienumintintintintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffienumintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumsizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()
-
-ffienumsizeienumsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-ffienumsizeienumsizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeienumsizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
-
-ffienumsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-ffienumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynenumenumsizeisizeisizeisizeibitfieldIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()
-
-ffienumenumsizeisizeisizeisizeibitfieldIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
-ffienumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumintintsizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynenumintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynenumintintintintintsizeisizeisizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynenumintintintintintsizeisizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
-
-foreign import CALLCONV "dynamic" dynuintenumuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
-
-ffiuintenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-ffiuintenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumenumuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
-
-ffiuintenumenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-ffiuintenumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumintintsizeiintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumintintsizeisizeiintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeisizeiintsizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintenumsizeisizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintenumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeiintsizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintenumsizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintenumsizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumintintsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeisizeiintsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeiintsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintenumsizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintenumsizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumsizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintintintintintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumenumfloatIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> GLfloat -> IO ()
-
-ffiuintenumenumfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> GLfloat -> m ()
-ffiuintenumenumfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumenumintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLint -> IO ()
-
-ffiuintenumenumintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLint -> m ()
-ffiuintenumenumintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeienumsizeiIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()
-
-ffiuintsizeienumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
-ffiuintsizeienumsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeienumsizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()
-
-ffiuintenumsizeienumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-ffiuintenumsizeienumsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumsizeienumsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
-
-ffiuintenumsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-ffiuintenumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeibooleanIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintenumsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintenumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
-
-ffiuintsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-ffiuintsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
-
-ffiuintenumsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-ffiuintenumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
-
-ffiuintenumsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-ffiuintenumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintenumenumsizeisizeisizeisizeibitfieldIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()
-
-ffiuintenumenumsizeisizeisizeisizeibitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
-ffiuintenumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintintintsizeienumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintenumintintsizeienumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
-
-foreign import CALLCONV "dynamic" dynuintenumintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
-
-ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
-
-foreign import CALLCONV "dynamic" dynuintenumuintenumuintuintuintuintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintenumuintenumuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintenumuintenumuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumuintenumuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynenumuintenumenumIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ()) -> GLenum -> GLuint -> GLenum -> GLenum -> IO ()
-
-ffienumuintenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ()) -> GLenum -> GLuint -> GLenum -> GLenum -> m ()
-ffienumuintenumenumIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrintenumIOV :: FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLenum -> IO ()
-
-ffisizeiPtrintenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLenum -> m ()
-ffisizeiPtrintenumIOV fp v0 v1 v2 = liftIO (dynsizeiPtrintenumIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuintuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
-
-ffiuintuintuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-ffiuintuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrintsizeiPtrintenumIOV :: FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()
-
-ffisizeiPtrintsizeiPtrintenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
-ffisizeiPtrintsizeiPtrintenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynsizeiPtrintsizeiPtrintenumIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrPtrcharenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()
-
-ffiuintsizeiPtrPtrcharenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
-ffiuintsizeiPtrPtrcharenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrintenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()
-
-ffiuintsizeiPtrintenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
-ffiuintsizeiPtrintenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrintenumIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintdoubleIOV :: FunPtr (GLint -> GLdouble -> IO ()) -> GLint -> GLdouble -> IO ()
-
-ffiintdoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> IO ()) -> GLint -> GLdouble -> m ()
-ffiintdoubleIOV fp v0 v1 = liftIO (dynintdoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtrdoubleIOV :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> Ptr GLdouble -> IO ()
-
-ffiintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-ffiintsizeiPtrdoubleIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrdoubleIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintfloatIOV :: FunPtr (GLint -> GLfloat -> IO ()) -> GLint -> GLfloat -> IO ()
-
-ffiintfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> IO ()) -> GLint -> GLfloat -> m ()
-ffiintfloatIOV fp v0 v1 = liftIO (dynintfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtrfloatIOV :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> Ptr GLfloat -> IO ()
-
-ffiintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-ffiintsizeiPtrfloatIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrfloatIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintint64IOV :: FunPtr (GLint -> GLint64 -> IO ()) -> GLint -> GLint64 -> IO ()
-
-ffiintint64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> IO ()) -> GLint -> GLint64 -> m ()
-ffiintint64IOV fp v0 v1 = liftIO (dynintint64IOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> IO ()
-
-ffiintint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> m ()
-ffiintint64EXTIOV fp v0 v1 = liftIO (dynintint64EXTIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtrint64IOV :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLint64 -> IO ()
-
-ffiintsizeiPtrint64IOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLint64 -> m ()
-ffiintsizeiPtrint64IOV fp v0 v1 v2 = liftIO (dynintsizeiPtrint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtrint64EXTIOV :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()
-
-ffiintsizeiPtrint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-ffiintsizeiPtrint64EXTIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtrintIOV :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLint -> GLsizei -> Ptr GLint -> IO ()
-
-ffiintsizeiPtrintIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLint -> GLsizei -> Ptr GLint -> m ()
-ffiintsizeiPtrintIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintuintIOV :: FunPtr (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> IO ()
-
-ffiintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> m ()
-ffiintuintIOV fp v0 v1 = liftIO (dynintuintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintuint64IOV :: FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> IO ()
-
-ffiintuint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> m ()
-ffiintuint64IOV fp v0 v1 = liftIO (dynintuint64IOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> IO ()
-
-ffiintuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> m ()
-ffiintuint64EXTIOV fp v0 v1 = liftIO (dynintuint64EXTIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtruint64IOV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()
-
-ffiintsizeiPtruint64IOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
-ffiintsizeiPtruint64IOV fp v0 v1 v2 = liftIO (dynintsizeiPtruint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtruint64EXTIOV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()
-
-ffiintsizeiPtruint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-ffiintsizeiPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynintsizeiPtruint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintsizeiPtruintIOV :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLint -> GLsizei -> Ptr GLuint -> IO ()
-
-ffiintsizeiPtruintIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLint -> GLsizei -> Ptr GLuint -> m ()
-ffiintsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynintsizeiPtruintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintint64int64IOV :: FunPtr (GLint -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> IO ()
-
-ffiintint64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> m ()
-ffiintint64int64IOV fp v0 v1 v2 = liftIO (dynintint64int64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintint64EXTint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> m ()
-ffiintint64EXTint64EXTIOV fp v0 v1 v2 = liftIO (dynintint64EXTint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintuintuintIOV :: FunPtr (GLint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> IO ()
-
-ffiintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> m ()
-ffiintuintuintIOV fp v0 v1 v2 = liftIO (dynintuintuintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintuint64uint64IOV :: FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> IO ()
-
-ffiintuint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> m ()
-ffiintuint64uint64IOV fp v0 v1 v2 = liftIO (dynintuint64uint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintuint64EXTuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiintuint64EXTuint64EXTIOV fp v0 v1 v2 = liftIO (dynintuint64EXTuint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynintdoubledoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiintdoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynintdoubledoubledoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintfloatfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiintfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynintfloatfloatfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintint64int64int64IOV :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
-
-ffiintint64int64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
-ffiintint64int64int64IOV fp v0 v1 v2 v3 = liftIO (dynintint64int64int64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintint64EXTint64EXTint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-ffiintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintuintuintuintIOV :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiintuintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-ffiintuintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynintuintuintuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintuint64uint64uint64IOV :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
-
-ffiintuint64uint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-ffiintuint64uint64uint64IOV fp v0 v1 v2 v3 = liftIO (dynintuint64uint64uint64IOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintdoubledoubledoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintfloatfloatfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintint64int64int64int64IOV :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
-
-ffiintint64int64int64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
-ffiintint64int64int64int64IOV fp v0 v1 v2 v3 v4 = liftIO (dynintint64int64int64int64IOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintint64EXTint64EXTint64EXTint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-ffiintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintuintuintuintuintIOV :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiintuintuintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffiintuintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintuintuintuintuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintuint64uint64uint64uint64IOV :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
-
-ffiintuint64uint64uint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
-ffiintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4 = liftIO (dynintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynintsizeibooleanPtrdoubleIOV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()
-
-ffiintsizeibooleanPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-ffiintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintsizeibooleanPtrfloatIOV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()
-
-ffiintsizeibooleanPtrfloatIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-ffiintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiPtrVenumIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ()
-
-ffiuintuintsizeiPtrVenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
-ffiuintuintsizeiPtrVenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintsizeiPtrVenumIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintbitfielduintIOV :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ()) -> GLuint -> GLbitfield -> GLuint -> IO ()
-
-ffiuintbitfielduintIOV :: MonadIO m => FunPtr (GLuint -> GLbitfield -> GLuint -> IO ()) -> GLuint -> GLbitfield -> GLuint -> m ()
-ffiuintbitfielduintIOV fp v0 v1 v2 = liftIO (dynuintbitfielduintIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynvdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
-
-ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynvdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynPtrVPtrVIOV :: FunPtr (Ptr () -> Ptr () -> IO ()) -> Ptr () -> Ptr () -> IO ()
-
-ffiPtrVPtrVIOV :: MonadIO m => FunPtr (Ptr () -> Ptr () -> IO ()) -> Ptr () -> Ptr () -> m ()
-ffiPtrVPtrVIOV fp v0 v1 = liftIO (dynPtrVPtrVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynvdpauSurfaceNVIOboolean :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean) -> GLvdpauSurfaceNV -> IO GLboolean
-
-ffivdpauSurfaceNVIOboolean :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> IO GLboolean) -> GLvdpauSurfaceNV -> m GLboolean
-ffivdpauSurfaceNVIOboolean fp v0 = liftIO (dynvdpauSurfaceNVIOboolean fp v0)
-
-foreign import CALLCONV "dynamic" dynsizeiPtrvdpauSurfaceNVIOV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()) -> GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()
-
-ffisizeiPtrvdpauSurfaceNVIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()) -> GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
-ffisizeiPtrvdpauSurfaceNVIOV fp v0 v1 = liftIO (dynsizeiPtrvdpauSurfaceNVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynPtrVenumsizeiPtruintIOvdpauSurfaceNV :: FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV) -> Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV
-
-ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV :: MonadIO m => FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV) -> Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
-ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV fp v0 v1 v2 v3 = liftIO (dynPtrVenumsizeiPtruintIOvdpauSurfaceNV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynvdpauSurfaceNVenumIOV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> IO ()
-
-ffivdpauSurfaceNVenumIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> m ()
-ffivdpauSurfaceNVenumIOV fp v0 v1 = liftIO (dynvdpauSurfaceNVenumIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynvdpauSurfaceNVIOV :: FunPtr (GLvdpauSurfaceNV -> IO ()) -> GLvdpauSurfaceNV -> IO ()
-
-ffivdpauSurfaceNVIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> IO ()) -> GLvdpauSurfaceNV -> m ()
-ffivdpauSurfaceNVIOV fp v0 = liftIO (dynvdpauSurfaceNVIOV fp v0)
-
-foreign import CALLCONV "dynamic" dynuintenumsizeiuintuintIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()
-
-ffiuintenumsizeiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
-ffiuintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumuintPtrVIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr () -> IO ()
-
-ffiuintenumuintPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr () -> m ()
-ffiuintenumuintPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintPtrbyteIOV :: FunPtr (GLuint -> Ptr GLbyte -> IO ()) -> GLuint -> Ptr GLbyte -> IO ()
-
-ffiuintPtrbyteIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLbyte -> IO ()) -> GLuint -> Ptr GLbyte -> m ()
-ffiuintPtrbyteIOV fp v0 v1 = liftIO (dynuintPtrbyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtrdoubleIOV :: FunPtr (GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> Ptr GLdouble -> IO ()
-
-ffiuintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> Ptr GLdouble -> m ()
-ffiuintPtrdoubleIOV fp v0 v1 = liftIO (dynuintPtrdoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtrshortIOV :: FunPtr (GLuint -> Ptr GLshort -> IO ()) -> GLuint -> Ptr GLshort -> IO ()
-
-ffiuintPtrshortIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLshort -> IO ()) -> GLuint -> Ptr GLshort -> m ()
-ffiuintPtrshortIOV fp v0 v1 = liftIO (dynuintPtrshortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtrushortIOV :: FunPtr (GLuint -> Ptr GLushort -> IO ()) -> GLuint -> Ptr GLushort -> IO ()
-
-ffiuintPtrushortIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLushort -> IO ()) -> GLuint -> Ptr GLushort -> m ()
-ffiuintPtrushortIOV fp v0 v1 = liftIO (dynuintPtrushortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintuintintenumbooleanuintIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()
-
-ffiuintuintintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-ffiuintuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintuintintenumuintIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()
-
-ffiuintuintintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-ffiuintuintintenumuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintintenumuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintuintintptrsizeiIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()
-
-ffiuintuintuintintptrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-ffiuintuintuintintptrsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintintptrsizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
-
-ffiuintuintintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-ffiuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()
-
-ffiuintuintsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
-ffiuintuintsizeiintptrIOV fp v0 v1 v2 v3 = liftIO (dynuintuintsizeiintptrIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()
-
-ffiuintuintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
-ffiuintuintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintenumsizeiintptrIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintenumintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
-
-ffiuintuintenumintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-ffiuintuintenumintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintenumintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintuintuintintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
-
-ffiuintuintuintintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
-ffiuintuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintuintuintintenumbooleansizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()
-
-ffiuintuintuintintenumbooleansizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
-ffiuintuintuintintenumbooleansizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintuintuintintenumbooleansizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
-
-foreign import CALLCONV "dynamic" dynuintuintsizeiPtruintPtrintptrPtrsizeiIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()
-
-ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintdoubleIOV :: FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> IO ()
-
-ffiuintdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> m ()
-ffiuintdoubleIOV fp v0 v1 = liftIO (dynuintdoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintfloatIOV :: FunPtr (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> IO ()
-
-ffiuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> m ()
-ffiuintfloatIOV fp v0 v1 = liftIO (dynuintfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuinthalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> IO ()
-
-ffiuinthalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> m ()
-ffiuinthalfNVIOV fp v0 v1 = liftIO (dynuinthalfNVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtrhalfNVIOV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ()) -> GLuint -> Ptr GLhalfNV -> IO ()
-
-ffiuintPtrhalfNVIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLhalfNV -> IO ()) -> GLuint -> Ptr GLhalfNV -> m ()
-ffiuintPtrhalfNVIOV fp v0 v1 = liftIO (dynuintPtrhalfNVIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintshortIOV :: FunPtr (GLuint -> GLshort -> IO ()) -> GLuint -> GLshort -> IO ()
-
-ffiuintshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> IO ()) -> GLuint -> GLshort -> m ()
-ffiuintshortIOV fp v0 v1 = liftIO (dynuintshortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuinthalfNVhalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffiuinthalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> m ()
-ffiuinthalfNVhalfNVIOV fp v0 v1 v2 = liftIO (dynuinthalfNVhalfNVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintshortshortIOV :: FunPtr (GLuint -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> IO ()
-
-ffiuintshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> m ()
-ffiuintshortshortIOV fp v0 v1 v2 = liftIO (dynuintshortshortIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintdoubledoubledoubleIOV :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiuintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiuintdoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintdoubledoubledoubleIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuinthalfNVhalfNVhalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffiuinthalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-ffiuinthalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 = liftIO (dynuinthalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintshortshortshortIOV :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> IO ()
-
-ffiuintshortshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> m ()
-ffiuintshortshortshortIOV fp v0 v1 v2 v3 = liftIO (dynuintshortshortshortIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintubyteubyteubyteubyteIOV :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()
-
-ffiuintubyteubyteubyteubyteIOV :: MonadIO m => FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-ffiuintubyteubyteubyteubyteIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintubyteubyteubyteubyteIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintdoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
-
-ffiuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-ffiuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
-
-ffiuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-ffiuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuinthalfNVhalfNVhalfNVhalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
-
-ffiuinthalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
-ffiuinthalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuinthalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintshortshortshortshortIOV :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
-
-ffiuintshortshortshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-ffiuintshortshortshortshortIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintshortshortshortshortIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintenumbooleansizeiuintuintIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()
-
-ffiuintintenumbooleansizeiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()
-ffiuintintenumbooleansizeiuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintintenumbooleansizeiuintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
-
-foreign import CALLCONV "dynamic" dynuintintenumbooleanuintIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()
-
-ffiuintintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-ffiuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintenumbooleansizeiIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()
-
-ffiuintintenumbooleansizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()
-ffiuintintenumbooleansizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumbooleansizeiIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuintuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
-
-ffiuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-ffiuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintuintuintIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintintenumuintIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLuint -> IO ()
-
-ffiuintintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-ffiuintintenumuintIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintenumsizeiIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> IO ()
-
-ffiuintintenumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> m ()
-ffiuintintenumsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumsizeiIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintenumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-ffiuintintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> IO ()
-
-ffiuintint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> m ()
-ffiuintint64EXTIOV fp v0 v1 = liftIO (dynuintint64EXTIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtrint64EXTIOV :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ()) -> GLuint -> Ptr GLint64EXT -> IO ()
-
-ffiuintPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint64EXT -> IO ()) -> GLuint -> Ptr GLint64EXT -> m ()
-ffiuintPtrint64EXTIOV fp v0 v1 = liftIO (dynuintPtrint64EXTIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> IO ()
-
-ffiuintuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> m ()
-ffiuintuint64EXTIOV fp v0 v1 = liftIO (dynuintuint64EXTIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintPtruint64EXTIOV :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> Ptr GLuint64EXT -> IO ()
-
-ffiuintPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> Ptr GLuint64EXT -> m ()
-ffiuintPtruint64EXTIOV fp v0 v1 = liftIO (dynuintPtruint64EXTIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynuintint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiuintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> m ()
-ffiuintint64EXTint64EXTIOV fp v0 v1 v2 = liftIO (dynuintint64EXTint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiuintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiuintuint64EXTuint64EXTIOV fp v0 v1 v2 = liftIO (dynuintuint64EXTuint64EXTIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiuintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-ffiuintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiuintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiuintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintint64EXTint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
-
-ffiuintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-ffiuintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
-
-ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4)
-
-foreign import CALLCONV "dynamic" dynuintenumbooleanuintIOV :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> GLuint -> IO ()
-
-ffiuintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-ffiuintenumbooleanuintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumbooleanuintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintenumbooleanPtruintIOV :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()
-
-ffiuintenumbooleanPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-ffiuintenumbooleanPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumbooleanPtruintIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynuintintenumbooleansizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ()
-
-ffiuintintenumbooleansizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
-ffiuintintenumbooleansizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintenumbooleansizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrhalfNVIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()) -> GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()
-
-ffiuintsizeiPtrhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()) -> GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
-ffiuintsizeiPtrhalfNVIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrhalfNVIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrshortIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()) -> GLuint -> GLsizei -> Ptr GLshort -> IO ()
-
-ffiuintsizeiPtrshortIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()) -> GLuint -> GLsizei -> Ptr GLshort -> m ()
-ffiuintsizeiPtrshortIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrshortIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtrubyteIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()
-
-ffiuintsizeiPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
-ffiuintsizeiPtrubyteIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrubyteIOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintPtruintPtruint64EXTIOenum :: FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum) -> GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum
-
-ffiuintPtruintPtruint64EXTIOenum :: MonadIO m => FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum) -> GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
-ffiuintPtruintPtruint64EXTIOenum fp v0 v1 v2 = liftIO (dynuintPtruintPtruint64EXTIOenum fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynsyncbitfielduint64IOV :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ()) -> GLsync -> GLbitfield -> GLuint64 -> IO ()
-
-ffisyncbitfielduint64IOV :: MonadIO m => FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ()) -> GLsync -> GLbitfield -> GLuint64 -> m ()
-ffisyncbitfielduint64IOV fp v0 v1 v2 = liftIO (dynsyncbitfielduint64IOV fp v0 v1 v2)
-
-foreign import CALLCONV "dynamic" dynuintsizeiPtruintPtrfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()
-
-ffiuintsizeiPtruintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
-ffiuintsizeiPtruintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtruintPtrfloatIOV fp v0 v1 v2 v3)
-
-foreign import CALLCONV "dynamic" dynintPtrbyteIOV :: FunPtr (GLint -> Ptr GLbyte -> IO ()) -> GLint -> Ptr GLbyte -> IO ()
-
-ffiintPtrbyteIOV :: MonadIO m => FunPtr (GLint -> Ptr GLbyte -> IO ()) -> GLint -> Ptr GLbyte -> m ()
-ffiintPtrbyteIOV fp v0 v1 = liftIO (dynintPtrbyteIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtrdoubleIOV :: FunPtr (GLint -> Ptr GLdouble -> IO ()) -> GLint -> Ptr GLdouble -> IO ()
-
-ffiintPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> Ptr GLdouble -> IO ()) -> GLint -> Ptr GLdouble -> m ()
-ffiintPtrdoubleIOV fp v0 v1 = liftIO (dynintPtrdoubleIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtrfloatIOV :: FunPtr (GLint -> Ptr GLfloat -> IO ()) -> GLint -> Ptr GLfloat -> IO ()
-
-ffiintPtrfloatIOV :: MonadIO m => FunPtr (GLint -> Ptr GLfloat -> IO ()) -> GLint -> Ptr GLfloat -> m ()
-ffiintPtrfloatIOV fp v0 v1 = liftIO (dynintPtrfloatIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtrintIOV :: FunPtr (GLint -> Ptr GLint -> IO ()) -> GLint -> Ptr GLint -> IO ()
-
-ffiintPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLint -> IO ()) -> GLint -> Ptr GLint -> m ()
-ffiintPtrintIOV fp v0 v1 = liftIO (dynintPtrintIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynintPtrshortIOV :: FunPtr (GLint -> Ptr GLshort -> IO ()) -> GLint -> Ptr GLshort -> IO ()
-
-ffiintPtrshortIOV :: MonadIO m => FunPtr (GLint -> Ptr GLshort -> IO ()) -> GLint -> Ptr GLshort -> m ()
-ffiintPtrshortIOV fp v0 v1 = liftIO (dynintPtrshortIOV fp v0 v1)
-
-foreign import CALLCONV "dynamic" dynenumsizeiPtrintIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLsizei -> Ptr GLint -> IO ()
-
-ffienumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLsizei -> Ptr GLint -> m ()
-ffienumsizeiPtrintIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrintIOV fp v0 v1 v2)
diff --git a/dist/build/autogen/Graphics/GL/Internal/Shared.hs b/dist/build/autogen/Graphics/GL/Internal/Shared.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Internal/Shared.hs
+++ /dev/null
@@ -1,21704 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Internal.Shared where
-
-import Control.Monad.IO.Class
-import Foreign.Ptr
-import Graphics.GL.Types
-import Graphics.GL.Internal.FFI
-import Graphics.GL.Internal.Proc
-import System.IO.Unsafe
-
--- | Usage: @'glAccum' op value@
---
--- The parameter @op@ is a @AccumOp@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM', 'Graphics.GL.Internal.Shared.GL_LOAD', 'Graphics.GL.Internal.Shared.GL_RETURN', 'Graphics.GL.Internal.Shared.GL_MULT', 'Graphics.GL.Internal.Shared.GL_ADD'.
---
--- The parameter @value@ is a @CoordF@.
-
-
-glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
-glAccum = ffienumfloatIOV glAccumFunPtr
-
-glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glAccumFunPtr = unsafePerformIO (getProcAddress "glAccum")
-
-{-# NOINLINE glAccumFunPtr #-}
-
--- | Usage: @'glAlphaFunc' func ref@
---
--- The parameter @func@ is a @AlphaFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
-
-
-glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
-glAlphaFunc = ffienumfloatIOV glAlphaFuncFunPtr
-
-glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glAlphaFuncFunPtr = unsafePerformIO (getProcAddress "glAlphaFunc")
-
-{-# NOINLINE glAlphaFuncFunPtr #-}
-
--- | Usage: @'glAreTexturesResident' n textures residences@
---
--- The parameter @textures@ is a @Texture@.
---
--- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @textures@ should be @n@.
---
--- The length of @residences@ should be @n@.
-
-
-glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
-glAreTexturesResident = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentFunPtr
-
-glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-glAreTexturesResidentFunPtr = unsafePerformIO (getProcAddress "glAreTexturesResident")
-
-{-# NOINLINE glAreTexturesResidentFunPtr #-}
-
--- | Usage: @'glArrayElement' i@
-
-
-glArrayElement :: MonadIO m => GLint -> m ()
-glArrayElement = ffiintIOV glArrayElementFunPtr
-
-glArrayElementFunPtr :: FunPtr (GLint -> IO ())
-glArrayElementFunPtr = unsafePerformIO (getProcAddress "glArrayElement")
-
-{-# NOINLINE glArrayElementFunPtr #-}
-
--- | Usage: @'glBegin' mode@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
-
-
-glBegin :: MonadIO m => GLenum -> m ()
-glBegin = ffienumIOV glBeginFunPtr
-
-glBeginFunPtr :: FunPtr (GLenum -> IO ())
-glBeginFunPtr = unsafePerformIO (getProcAddress "glBegin")
-
-{-# NOINLINE glBeginFunPtr #-}
-
--- | Usage: @'glBitmap' width height xorig yorig xmove ymove bitmap@
---
--- The parameter @xorig@ is a @CoordF@.
---
--- The parameter @yorig@ is a @CoordF@.
---
--- The parameter @xmove@ is a @CoordF@.
---
--- The parameter @ymove@ is a @CoordF@.
---
--- The length of @bitmap@ should be @COMPSIZE(width,height)@.
-
-
-glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
-glBitmap = ffisizeisizeifloatfloatfloatfloatPtrubyteIOV glBitmapFunPtr
-
-glBitmapFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
-glBitmapFunPtr = unsafePerformIO (getProcAddress "glBitmap")
-
-{-# NOINLINE glBitmapFunPtr #-}
-
--- | Usage: @'glCallList' list@
---
--- The parameter @list@ is a @List@.
-
-
-glCallList :: MonadIO m => GLuint -> m ()
-glCallList = ffiuintIOV glCallListFunPtr
-
-glCallListFunPtr :: FunPtr (GLuint -> IO ())
-glCallListFunPtr = unsafePerformIO (getProcAddress "glCallList")
-
-{-# NOINLINE glCallListFunPtr #-}
-
--- | Usage: @'glCallLists' n type lists@
---
--- The parameter @type@ is a @ListNameType@, one of: 'Graphics.GL.Internal.Shared.GL_2_BYTES', 'Graphics.GL.Internal.Shared.GL_3_BYTES', 'Graphics.GL.Internal.Shared.GL_4_BYTES', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
---
--- The length of @lists@ should be @COMPSIZE(n,type)@.
-
-
-glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()
-glCallLists = ffisizeienumPtrVIOV glCallListsFunPtr
-
-glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
-glCallListsFunPtr = unsafePerformIO (getProcAddress "glCallLists")
-
-{-# NOINLINE glCallListsFunPtr #-}
-
--- | Usage: @'glClearAccum' red green blue alpha@
-
-
-glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glClearAccum = ffifloatfloatfloatfloatIOV glClearAccumFunPtr
-
-glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glClearAccumFunPtr = unsafePerformIO (getProcAddress "glClearAccum")
-
-{-# NOINLINE glClearAccumFunPtr #-}
-
--- | Usage: @'glClearIndex' c@
---
--- The parameter @c@ is a @MaskedColorIndexValueF@.
-
-
-glClearIndex :: MonadIO m => GLfloat -> m ()
-glClearIndex = ffifloatIOV glClearIndexFunPtr
-
-glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())
-glClearIndexFunPtr = unsafePerformIO (getProcAddress "glClearIndex")
-
-{-# NOINLINE glClearIndexFunPtr #-}
-
--- | Usage: @'glClientActiveTexture' texture@
---
--- The parameter @texture@ is a @TextureUnit@.
-
-
-glClientActiveTexture :: MonadIO m => GLenum -> m ()
-glClientActiveTexture = ffienumIOV glClientActiveTextureFunPtr
-
-glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
-glClientActiveTextureFunPtr = unsafePerformIO (getProcAddress "glClientActiveTexture")
-
-{-# NOINLINE glClientActiveTextureFunPtr #-}
-
--- | Usage: @'glClipPlane' plane equation@
---
--- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5'.
---
--- The length of @equation@ should be @4@.
-
-
-glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glClipPlane = ffienumPtrdoubleIOV glClipPlaneFunPtr
-
-glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glClipPlaneFunPtr = unsafePerformIO (getProcAddress "glClipPlane")
-
-{-# NOINLINE glClipPlaneFunPtr #-}
-
--- | Usage: @'glColor3b' red green blue@
---
--- The parameter @red@ is a @ColorB@.
---
--- The parameter @green@ is a @ColorB@.
---
--- The parameter @blue@ is a @ColorB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3bv'.
-
-
-glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glColor3b = ffibytebytebyteIOV glColor3bFunPtr
-
-glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glColor3bFunPtr = unsafePerformIO (getProcAddress "glColor3b")
-
-{-# NOINLINE glColor3bFunPtr #-}
-
--- | Usage: @'glColor3bv' v@
---
--- The parameter @v@ is a @ColorB@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3bv :: MonadIO m => Ptr GLbyte -> m ()
-glColor3bv = ffiPtrbyteIOV glColor3bvFunPtr
-
-glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glColor3bvFunPtr = unsafePerformIO (getProcAddress "glColor3bv")
-
-{-# NOINLINE glColor3bvFunPtr #-}
-
--- | Usage: @'glColor3d' red green blue@
---
--- The parameter @red@ is a @ColorD@.
---
--- The parameter @green@ is a @ColorD@.
---
--- The parameter @blue@ is a @ColorD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3dv'.
-
-
-glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glColor3d = ffidoubledoubledoubleIOV glColor3dFunPtr
-
-glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glColor3dFunPtr = unsafePerformIO (getProcAddress "glColor3d")
-
-{-# NOINLINE glColor3dFunPtr #-}
-
--- | Usage: @'glColor3dv' v@
---
--- The parameter @v@ is a @ColorD@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3dv :: MonadIO m => Ptr GLdouble -> m ()
-glColor3dv = ffiPtrdoubleIOV glColor3dvFunPtr
-
-glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glColor3dvFunPtr = unsafePerformIO (getProcAddress "glColor3dv")
-
-{-# NOINLINE glColor3dvFunPtr #-}
-
--- | Usage: @'glColor3f' red green blue@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3fv'.
-
-
-glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glColor3f = ffifloatfloatfloatIOV glColor3fFunPtr
-
-glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glColor3fFunPtr = unsafePerformIO (getProcAddress "glColor3f")
-
-{-# NOINLINE glColor3fFunPtr #-}
-
--- | Usage: @'glColor3fv' v@
---
--- The parameter @v@ is a @ColorF@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3fv :: MonadIO m => Ptr GLfloat -> m ()
-glColor3fv = ffiPtrfloatIOV glColor3fvFunPtr
-
-glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glColor3fvFunPtr = unsafePerformIO (getProcAddress "glColor3fv")
-
-{-# NOINLINE glColor3fvFunPtr #-}
-
--- | Usage: @'glColor3i' red green blue@
---
--- The parameter @red@ is a @ColorI@.
---
--- The parameter @green@ is a @ColorI@.
---
--- The parameter @blue@ is a @ColorI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3iv'.
-
-
-glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glColor3i = ffiintintintIOV glColor3iFunPtr
-
-glColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glColor3iFunPtr = unsafePerformIO (getProcAddress "glColor3i")
-
-{-# NOINLINE glColor3iFunPtr #-}
-
--- | Usage: @'glColor3iv' v@
---
--- The parameter @v@ is a @ColorI@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3iv :: MonadIO m => Ptr GLint -> m ()
-glColor3iv = ffiPtrintIOV glColor3ivFunPtr
-
-glColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glColor3ivFunPtr = unsafePerformIO (getProcAddress "glColor3iv")
-
-{-# NOINLINE glColor3ivFunPtr #-}
-
--- | Usage: @'glColor3s' red green blue@
---
--- The parameter @red@ is a @ColorS@.
---
--- The parameter @green@ is a @ColorS@.
---
--- The parameter @blue@ is a @ColorS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3sv'.
-
-
-glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glColor3s = ffishortshortshortIOV glColor3sFunPtr
-
-glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glColor3sFunPtr = unsafePerformIO (getProcAddress "glColor3s")
-
-{-# NOINLINE glColor3sFunPtr #-}
-
--- | Usage: @'glColor3sv' v@
---
--- The parameter @v@ is a @ColorS@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3sv :: MonadIO m => Ptr GLshort -> m ()
-glColor3sv = ffiPtrshortIOV glColor3svFunPtr
-
-glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glColor3svFunPtr = unsafePerformIO (getProcAddress "glColor3sv")
-
-{-# NOINLINE glColor3svFunPtr #-}
-
--- | Usage: @'glColor3ub' red green blue@
---
--- The parameter @red@ is a @ColorUB@.
---
--- The parameter @green@ is a @ColorUB@.
---
--- The parameter @blue@ is a @ColorUB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3ubv'.
-
-
-glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
-glColor3ub = ffiubyteubyteubyteIOV glColor3ubFunPtr
-
-glColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
-glColor3ubFunPtr = unsafePerformIO (getProcAddress "glColor3ub")
-
-{-# NOINLINE glColor3ubFunPtr #-}
-
--- | Usage: @'glColor3ubv' v@
---
--- The parameter @v@ is a @ColorUB@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
-glColor3ubv = ffiPtrubyteIOV glColor3ubvFunPtr
-
-glColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glColor3ubvFunPtr = unsafePerformIO (getProcAddress "glColor3ubv")
-
-{-# NOINLINE glColor3ubvFunPtr #-}
-
--- | Usage: @'glColor3ui' red green blue@
---
--- The parameter @red@ is a @ColorUI@.
---
--- The parameter @green@ is a @ColorUI@.
---
--- The parameter @blue@ is a @ColorUI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3uiv'.
-
-
-glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glColor3ui = ffiuintuintuintIOV glColor3uiFunPtr
-
-glColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glColor3uiFunPtr = unsafePerformIO (getProcAddress "glColor3ui")
-
-{-# NOINLINE glColor3uiFunPtr #-}
-
--- | Usage: @'glColor3uiv' v@
---
--- The parameter @v@ is a @ColorUI@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3uiv :: MonadIO m => Ptr GLuint -> m ()
-glColor3uiv = ffiPtruintIOV glColor3uivFunPtr
-
-glColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glColor3uivFunPtr = unsafePerformIO (getProcAddress "glColor3uiv")
-
-{-# NOINLINE glColor3uivFunPtr #-}
-
--- | Usage: @'glColor3us' red green blue@
---
--- The parameter @red@ is a @ColorUS@.
---
--- The parameter @green@ is a @ColorUS@.
---
--- The parameter @blue@ is a @ColorUS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3usv'.
-
-
-glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
-glColor3us = ffiushortushortushortIOV glColor3usFunPtr
-
-glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-glColor3usFunPtr = unsafePerformIO (getProcAddress "glColor3us")
-
-{-# NOINLINE glColor3usFunPtr #-}
-
--- | Usage: @'glColor3usv' v@
---
--- The parameter @v@ is a @ColorUS@.
---
--- The length of @v@ should be @3@.
-
-
-glColor3usv :: MonadIO m => Ptr GLushort -> m ()
-glColor3usv = ffiPtrushortIOV glColor3usvFunPtr
-
-glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glColor3usvFunPtr = unsafePerformIO (getProcAddress "glColor3usv")
-
-{-# NOINLINE glColor3usvFunPtr #-}
-
--- | Usage: @'glColor4b' red green blue alpha@
---
--- The parameter @red@ is a @ColorB@.
---
--- The parameter @green@ is a @ColorB@.
---
--- The parameter @blue@ is a @ColorB@.
---
--- The parameter @alpha@ is a @ColorB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4bv'.
-
-
-glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
-glColor4b = ffibytebytebytebyteIOV glColor4bFunPtr
-
-glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-glColor4bFunPtr = unsafePerformIO (getProcAddress "glColor4b")
-
-{-# NOINLINE glColor4bFunPtr #-}
-
--- | Usage: @'glColor4bv' v@
---
--- The parameter @v@ is a @ColorB@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4bv :: MonadIO m => Ptr GLbyte -> m ()
-glColor4bv = ffiPtrbyteIOV glColor4bvFunPtr
-
-glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glColor4bvFunPtr = unsafePerformIO (getProcAddress "glColor4bv")
-
-{-# NOINLINE glColor4bvFunPtr #-}
-
--- | Usage: @'glColor4d' red green blue alpha@
---
--- The parameter @red@ is a @ColorD@.
---
--- The parameter @green@ is a @ColorD@.
---
--- The parameter @blue@ is a @ColorD@.
---
--- The parameter @alpha@ is a @ColorD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4dv'.
-
-
-glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glColor4d = ffidoubledoubledoubledoubleIOV glColor4dFunPtr
-
-glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glColor4dFunPtr = unsafePerformIO (getProcAddress "glColor4d")
-
-{-# NOINLINE glColor4dFunPtr #-}
-
--- | Usage: @'glColor4dv' v@
---
--- The parameter @v@ is a @ColorD@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4dv :: MonadIO m => Ptr GLdouble -> m ()
-glColor4dv = ffiPtrdoubleIOV glColor4dvFunPtr
-
-glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glColor4dvFunPtr = unsafePerformIO (getProcAddress "glColor4dv")
-
-{-# NOINLINE glColor4dvFunPtr #-}
-
--- | Usage: @'glColor4f' red green blue alpha@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The parameter @alpha@ is a @ColorF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4fv'.
-
-
-glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glColor4f = ffifloatfloatfloatfloatIOV glColor4fFunPtr
-
-glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glColor4fFunPtr = unsafePerformIO (getProcAddress "glColor4f")
-
-{-# NOINLINE glColor4fFunPtr #-}
-
--- | Usage: @'glColor4fv' v@
---
--- The parameter @v@ is a @ColorF@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4fv :: MonadIO m => Ptr GLfloat -> m ()
-glColor4fv = ffiPtrfloatIOV glColor4fvFunPtr
-
-glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glColor4fvFunPtr = unsafePerformIO (getProcAddress "glColor4fv")
-
-{-# NOINLINE glColor4fvFunPtr #-}
-
--- | Usage: @'glColor4i' red green blue alpha@
---
--- The parameter @red@ is a @ColorI@.
---
--- The parameter @green@ is a @ColorI@.
---
--- The parameter @blue@ is a @ColorI@.
---
--- The parameter @alpha@ is a @ColorI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4iv'.
-
-
-glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glColor4i = ffiintintintintIOV glColor4iFunPtr
-
-glColor4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glColor4iFunPtr = unsafePerformIO (getProcAddress "glColor4i")
-
-{-# NOINLINE glColor4iFunPtr #-}
-
--- | Usage: @'glColor4iv' v@
---
--- The parameter @v@ is a @ColorI@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4iv :: MonadIO m => Ptr GLint -> m ()
-glColor4iv = ffiPtrintIOV glColor4ivFunPtr
-
-glColor4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glColor4ivFunPtr = unsafePerformIO (getProcAddress "glColor4iv")
-
-{-# NOINLINE glColor4ivFunPtr #-}
-
--- | Usage: @'glColor4s' red green blue alpha@
---
--- The parameter @red@ is a @ColorS@.
---
--- The parameter @green@ is a @ColorS@.
---
--- The parameter @blue@ is a @ColorS@.
---
--- The parameter @alpha@ is a @ColorS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4sv'.
-
-
-glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glColor4s = ffishortshortshortshortIOV glColor4sFunPtr
-
-glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glColor4sFunPtr = unsafePerformIO (getProcAddress "glColor4s")
-
-{-# NOINLINE glColor4sFunPtr #-}
-
--- | Usage: @'glColor4sv' v@
---
--- The parameter @v@ is a @ColorS@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4sv :: MonadIO m => Ptr GLshort -> m ()
-glColor4sv = ffiPtrshortIOV glColor4svFunPtr
-
-glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glColor4svFunPtr = unsafePerformIO (getProcAddress "glColor4sv")
-
-{-# NOINLINE glColor4svFunPtr #-}
-
--- | Usage: @'glColor4ub' red green blue alpha@
---
--- The parameter @red@ is a @ColorUB@.
---
--- The parameter @green@ is a @ColorUB@.
---
--- The parameter @blue@ is a @ColorUB@.
---
--- The parameter @alpha@ is a @ColorUB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4ubv'.
-
-
-glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glColor4ub = ffiubyteubyteubyteubyteIOV glColor4ubFunPtr
-
-glColor4ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glColor4ubFunPtr = unsafePerformIO (getProcAddress "glColor4ub")
-
-{-# NOINLINE glColor4ubFunPtr #-}
-
--- | Usage: @'glColor4ubv' v@
---
--- The parameter @v@ is a @ColorUB@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()
-glColor4ubv = ffiPtrubyteIOV glColor4ubvFunPtr
-
-glColor4ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glColor4ubvFunPtr = unsafePerformIO (getProcAddress "glColor4ubv")
-
-{-# NOINLINE glColor4ubvFunPtr #-}
-
--- | Usage: @'glColor4ui' red green blue alpha@
---
--- The parameter @red@ is a @ColorUI@.
---
--- The parameter @green@ is a @ColorUI@.
---
--- The parameter @blue@ is a @ColorUI@.
---
--- The parameter @alpha@ is a @ColorUI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4uiv'.
-
-
-glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glColor4ui = ffiuintuintuintuintIOV glColor4uiFunPtr
-
-glColor4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glColor4uiFunPtr = unsafePerformIO (getProcAddress "glColor4ui")
-
-{-# NOINLINE glColor4uiFunPtr #-}
-
--- | Usage: @'glColor4uiv' v@
---
--- The parameter @v@ is a @ColorUI@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4uiv :: MonadIO m => Ptr GLuint -> m ()
-glColor4uiv = ffiPtruintIOV glColor4uivFunPtr
-
-glColor4uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glColor4uivFunPtr = unsafePerformIO (getProcAddress "glColor4uiv")
-
-{-# NOINLINE glColor4uivFunPtr #-}
-
--- | Usage: @'glColor4us' red green blue alpha@
---
--- The parameter @red@ is a @ColorUS@.
---
--- The parameter @green@ is a @ColorUS@.
---
--- The parameter @blue@ is a @ColorUS@.
---
--- The parameter @alpha@ is a @ColorUS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4usv'.
-
-
-glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()
-glColor4us = ffiushortushortushortushortIOV glColor4usFunPtr
-
-glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
-glColor4usFunPtr = unsafePerformIO (getProcAddress "glColor4us")
-
-{-# NOINLINE glColor4usFunPtr #-}
-
--- | Usage: @'glColor4usv' v@
---
--- The parameter @v@ is a @ColorUS@.
---
--- The length of @v@ should be @4@.
-
-
-glColor4usv :: MonadIO m => Ptr GLushort -> m ()
-glColor4usv = ffiPtrushortIOV glColor4usvFunPtr
-
-glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glColor4usvFunPtr = unsafePerformIO (getProcAddress "glColor4usv")
-
-{-# NOINLINE glColor4usvFunPtr #-}
-
--- | Usage: @'glColorMaterial' face mode@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @mode@ is a @ColorMaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
-
-
-glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
-glColorMaterial = ffienumenumIOV glColorMaterialFunPtr
-
-glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glColorMaterialFunPtr = unsafePerformIO (getProcAddress "glColorMaterial")
-
-{-# NOINLINE glColorMaterialFunPtr #-}
-
--- | Usage: @'glColorPointer' size type stride pointer@
---
--- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glColorPointer = ffiintenumsizeiPtrVIOV glColorPointerFunPtr
-
-glColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glColorPointerFunPtr = unsafePerformIO (getProcAddress "glColorPointer")
-
-{-# NOINLINE glColorPointerFunPtr #-}
-
--- | Usage: @'glCopyPixels' x y width height type@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @type@ is a @PixelCopyType@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DEPTH', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_STENCIL', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_STENCIL_EXT'.
-
-
-glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
-glCopyPixels = ffiintintsizeisizeienumIOV glCopyPixelsFunPtr
-
-glCopyPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
-glCopyPixelsFunPtr = unsafePerformIO (getProcAddress "glCopyPixels")
-
-{-# NOINLINE glCopyPixelsFunPtr #-}
-
--- | Usage: @'glDeleteLists' list range@
---
--- The parameter @list@ is a @List@.
-
-
-glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
-glDeleteLists = ffiuintsizeiIOV glDeleteListsFunPtr
-
-glDeleteListsFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
-glDeleteListsFunPtr = unsafePerformIO (getProcAddress "glDeleteLists")
-
-{-# NOINLINE glDeleteListsFunPtr #-}
-
--- | Usage: @'glDisableClientState' array@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glDisableClientState :: MonadIO m => GLenum -> m ()
-glDisableClientState = ffienumIOV glDisableClientStateFunPtr
-
-glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())
-glDisableClientStateFunPtr = unsafePerformIO (getProcAddress "glDisableClientState")
-
-{-# NOINLINE glDisableClientStateFunPtr #-}
-
--- | Usage: @'glDrawPixels' width height format type pixels@
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
-
-
-glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glDrawPixels = ffisizeisizeienumenumPtrVIOV glDrawPixelsFunPtr
-
-glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glDrawPixelsFunPtr = unsafePerformIO (getProcAddress "glDrawPixels")
-
-{-# NOINLINE glDrawPixelsFunPtr #-}
-
--- | Usage: @'glEdgeFlag' flag@
---
--- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEdgeFlagv'.
-
-
-glEdgeFlag :: MonadIO m => GLboolean -> m ()
-glEdgeFlag = ffibooleanIOV glEdgeFlagFunPtr
-
-glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())
-glEdgeFlagFunPtr = unsafePerformIO (getProcAddress "glEdgeFlag")
-
-{-# NOINLINE glEdgeFlagFunPtr #-}
-
--- | Usage: @'glEdgeFlagPointer' stride pointer@
---
--- The length of @pointer@ should be @COMPSIZE(stride)@.
-
-
-glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()
-glEdgeFlagPointer = ffisizeiPtrVIOV glEdgeFlagPointerFunPtr
-
-glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
-glEdgeFlagPointerFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointer")
-
-{-# NOINLINE glEdgeFlagPointerFunPtr #-}
-
--- | Usage: @'glEdgeFlagv' flag@
---
--- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @flag@ should be @1@.
-
-
-glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
-glEdgeFlagv = ffiPtrbooleanIOV glEdgeFlagvFunPtr
-
-glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
-glEdgeFlagvFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagv")
-
-{-# NOINLINE glEdgeFlagvFunPtr #-}
-
--- | Usage: @'glEnableClientState' array@
---
--- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glEnableClientState :: MonadIO m => GLenum -> m ()
-glEnableClientState = ffienumIOV glEnableClientStateFunPtr
-
-glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())
-glEnableClientStateFunPtr = unsafePerformIO (getProcAddress "glEnableClientState")
-
-{-# NOINLINE glEnableClientStateFunPtr #-}
-
--- | Usage: @'glEnd'@
-
-
-glEnd :: MonadIO m => m ()
-glEnd = ffiIOV glEndFunPtr
-
-glEndFunPtr :: FunPtr (IO ())
-glEndFunPtr = unsafePerformIO (getProcAddress "glEnd")
-
-{-# NOINLINE glEndFunPtr #-}
-
--- | Usage: @'glEndList'@
-
-
-glEndList :: MonadIO m => m ()
-glEndList = ffiIOV glEndListFunPtr
-
-glEndListFunPtr :: FunPtr (IO ())
-glEndListFunPtr = unsafePerformIO (getProcAddress "glEndList")
-
-{-# NOINLINE glEndListFunPtr #-}
-
--- | Usage: @'glEvalCoord1d' u@
---
--- The parameter @u@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord1dv'.
-
-
-glEvalCoord1d :: MonadIO m => GLdouble -> m ()
-glEvalCoord1d = ffidoubleIOV glEvalCoord1dFunPtr
-
-glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
-glEvalCoord1dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1d")
-
-{-# NOINLINE glEvalCoord1dFunPtr #-}
-
--- | Usage: @'glEvalCoord1dv' u@
---
--- The parameter @u@ is a @CoordD@.
---
--- The length of @u@ should be @1@.
-
-
-glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
-glEvalCoord1dv = ffiPtrdoubleIOV glEvalCoord1dvFunPtr
-
-glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glEvalCoord1dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1dv")
-
-{-# NOINLINE glEvalCoord1dvFunPtr #-}
-
--- | Usage: @'glEvalCoord1f' u@
---
--- The parameter @u@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord1fv'.
-
-
-glEvalCoord1f :: MonadIO m => GLfloat -> m ()
-glEvalCoord1f = ffifloatIOV glEvalCoord1fFunPtr
-
-glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
-glEvalCoord1fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1f")
-
-{-# NOINLINE glEvalCoord1fFunPtr #-}
-
--- | Usage: @'glEvalCoord1fv' u@
---
--- The parameter @u@ is a @CoordF@.
---
--- The length of @u@ should be @1@.
-
-
-glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
-glEvalCoord1fv = ffiPtrfloatIOV glEvalCoord1fvFunPtr
-
-glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glEvalCoord1fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1fv")
-
-{-# NOINLINE glEvalCoord1fvFunPtr #-}
-
--- | Usage: @'glEvalCoord2d' u v@
---
--- The parameter @u@ is a @CoordD@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord2dv'.
-
-
-glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glEvalCoord2d = ffidoubledoubleIOV glEvalCoord2dFunPtr
-
-glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glEvalCoord2dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2d")
-
-{-# NOINLINE glEvalCoord2dFunPtr #-}
-
--- | Usage: @'glEvalCoord2dv' u@
---
--- The parameter @u@ is a @CoordD@.
---
--- The length of @u@ should be @2@.
-
-
-glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
-glEvalCoord2dv = ffiPtrdoubleIOV glEvalCoord2dvFunPtr
-
-glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glEvalCoord2dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2dv")
-
-{-# NOINLINE glEvalCoord2dvFunPtr #-}
-
--- | Usage: @'glEvalCoord2f' u v@
---
--- The parameter @u@ is a @CoordF@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord2fv'.
-
-
-glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glEvalCoord2f = ffifloatfloatIOV glEvalCoord2fFunPtr
-
-glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glEvalCoord2fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2f")
-
-{-# NOINLINE glEvalCoord2fFunPtr #-}
-
--- | Usage: @'glEvalCoord2fv' u@
---
--- The parameter @u@ is a @CoordF@.
---
--- The length of @u@ should be @2@.
-
-
-glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
-glEvalCoord2fv = ffiPtrfloatIOV glEvalCoord2fvFunPtr
-
-glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glEvalCoord2fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2fv")
-
-{-# NOINLINE glEvalCoord2fvFunPtr #-}
-
--- | Usage: @'glEvalMesh1' mode i1 i2@
---
--- The parameter @mode@ is a @MeshMode1@, one of: 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
---
--- The parameter @i1@ is a @CheckedInt32@.
---
--- The parameter @i2@ is a @CheckedInt32@.
-
-
-glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()
-glEvalMesh1 = ffienumintintIOV glEvalMesh1FunPtr
-
-glEvalMesh1FunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
-glEvalMesh1FunPtr = unsafePerformIO (getProcAddress "glEvalMesh1")
-
-{-# NOINLINE glEvalMesh1FunPtr #-}
-
--- | Usage: @'glEvalMesh2' mode i1 i2 j1 j2@
---
--- The parameter @mode@ is a @MeshMode2@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
---
--- The parameter @i1@ is a @CheckedInt32@.
---
--- The parameter @i2@ is a @CheckedInt32@.
---
--- The parameter @j1@ is a @CheckedInt32@.
---
--- The parameter @j2@ is a @CheckedInt32@.
-
-
-glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
-glEvalMesh2 = ffienumintintintintIOV glEvalMesh2FunPtr
-
-glEvalMesh2FunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-glEvalMesh2FunPtr = unsafePerformIO (getProcAddress "glEvalMesh2")
-
-{-# NOINLINE glEvalMesh2FunPtr #-}
-
--- | Usage: @'glEvalPoint1' i@
-
-
-glEvalPoint1 :: MonadIO m => GLint -> m ()
-glEvalPoint1 = ffiintIOV glEvalPoint1FunPtr
-
-glEvalPoint1FunPtr :: FunPtr (GLint -> IO ())
-glEvalPoint1FunPtr = unsafePerformIO (getProcAddress "glEvalPoint1")
-
-{-# NOINLINE glEvalPoint1FunPtr #-}
-
--- | Usage: @'glEvalPoint2' i j@
---
--- The parameter @i@ is a @CheckedInt32@.
---
--- The parameter @j@ is a @CheckedInt32@.
-
-
-glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
-glEvalPoint2 = ffiintintIOV glEvalPoint2FunPtr
-
-glEvalPoint2FunPtr :: FunPtr (GLint -> GLint -> IO ())
-glEvalPoint2FunPtr = unsafePerformIO (getProcAddress "glEvalPoint2")
-
-{-# NOINLINE glEvalPoint2FunPtr #-}
-
--- | Usage: @'glFeedbackBuffer' size type buffer@
---
--- The parameter @type@ is a @FeedbackType@, one of: 'Graphics.GL.Internal.Shared.GL_2D', 'Graphics.GL.Internal.Shared.GL_3D', 'Graphics.GL.Internal.Shared.GL_3D_COLOR', 'Graphics.GL.Internal.Shared.GL_3D_COLOR_TEXTURE', 'Graphics.GL.Internal.Shared.GL_4D_COLOR_TEXTURE'.
---
--- The parameter @buffer@ is a @FeedbackElement@.
---
--- The length of @buffer@ should be @size@.
-
-
-glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
-glFeedbackBuffer = ffisizeienumPtrfloatIOV glFeedbackBufferFunPtr
-
-glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
-glFeedbackBufferFunPtr = unsafePerformIO (getProcAddress "glFeedbackBuffer")
-
-{-# NOINLINE glFeedbackBufferFunPtr #-}
-
--- | Usage: @'glFogCoordPointer' type stride pointer@
---
--- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glFogCoordPointer = ffienumsizeiPtrVIOV glFogCoordPointerFunPtr
-
-glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glFogCoordPointerFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointer")
-
-{-# NOINLINE glFogCoordPointerFunPtr #-}
-
--- | Usage: @'glFogCoordd' coord@
---
--- The parameter @coord@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glFogCoorddv'.
-
-
-glFogCoordd :: MonadIO m => GLdouble -> m ()
-glFogCoordd = ffidoubleIOV glFogCoorddFunPtr
-
-glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())
-glFogCoorddFunPtr = unsafePerformIO (getProcAddress "glFogCoordd")
-
-{-# NOINLINE glFogCoorddFunPtr #-}
-
--- | Usage: @'glFogCoorddv' coord@
---
--- The parameter @coord@ is a @CoordD@.
---
--- The length of @coord@ should be @1@.
-
-
-glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()
-glFogCoorddv = ffiPtrdoubleIOV glFogCoorddvFunPtr
-
-glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glFogCoorddvFunPtr = unsafePerformIO (getProcAddress "glFogCoorddv")
-
-{-# NOINLINE glFogCoorddvFunPtr #-}
-
--- | Usage: @'glFogCoordf' coord@
---
--- The parameter @coord@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glFogCoordfv'.
-
-
-glFogCoordf :: MonadIO m => GLfloat -> m ()
-glFogCoordf = ffifloatIOV glFogCoordfFunPtr
-
-glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())
-glFogCoordfFunPtr = unsafePerformIO (getProcAddress "glFogCoordf")
-
-{-# NOINLINE glFogCoordfFunPtr #-}
-
--- | Usage: @'glFogCoordfv' coord@
---
--- The parameter @coord@ is a @CoordF@.
---
--- The length of @coord@ should be @1@.
-
-
-glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()
-glFogCoordfv = ffiPtrfloatIOV glFogCoordfvFunPtr
-
-glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glFogCoordfvFunPtr = unsafePerformIO (getProcAddress "glFogCoordfv")
-
-{-# NOINLINE glFogCoordfvFunPtr #-}
-
--- | Usage: @'glFogf' pname param@
---
--- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glFogf :: MonadIO m => GLenum -> GLfloat -> m ()
-glFogf = ffienumfloatIOV glFogfFunPtr
-
-glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glFogfFunPtr = unsafePerformIO (getProcAddress "glFogf")
-
-{-# NOINLINE glFogfFunPtr #-}
-
--- | Usage: @'glFogfv' pname params@
---
--- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glFogfv = ffienumPtrfloatIOV glFogfvFunPtr
-
-glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glFogfvFunPtr = unsafePerformIO (getProcAddress "glFogfv")
-
-{-# NOINLINE glFogfvFunPtr #-}
-
--- | Usage: @'glFogi' pname param@
---
--- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glFogi :: MonadIO m => GLenum -> GLint -> m ()
-glFogi = ffienumintIOV glFogiFunPtr
-
-glFogiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glFogiFunPtr = unsafePerformIO (getProcAddress "glFogi")
-
-{-# NOINLINE glFogiFunPtr #-}
-
--- | Usage: @'glFogiv' pname params@
---
--- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glFogiv = ffienumPtrintIOV glFogivFunPtr
-
-glFogivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glFogivFunPtr = unsafePerformIO (getProcAddress "glFogiv")
-
-{-# NOINLINE glFogivFunPtr #-}
-
--- | Usage: @'glFrustum' left right bottom top zNear zFar@
-
-
-glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glFrustum = ffidoubledoubledoubledoubledoubledoubleIOV glFrustumFunPtr
-
-glFrustumFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glFrustumFunPtr = unsafePerformIO (getProcAddress "glFrustum")
-
-{-# NOINLINE glFrustumFunPtr #-}
-
--- | Usage: @'glGenLists' range@
-
-
-glGenLists :: MonadIO m => GLsizei -> m GLuint
-glGenLists = ffisizeiIOuint glGenListsFunPtr
-
-glGenListsFunPtr :: FunPtr (GLsizei -> IO GLuint)
-glGenListsFunPtr = unsafePerformIO (getProcAddress "glGenLists")
-
-{-# NOINLINE glGenListsFunPtr #-}
-
--- | Usage: @'glGetClipPlane' plane equation@
---
--- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5'.
---
--- The length of @equation@ should be @4@.
-
-
-glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glGetClipPlane = ffienumPtrdoubleIOV glGetClipPlaneFunPtr
-
-glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glGetClipPlaneFunPtr = unsafePerformIO (getProcAddress "glGetClipPlane")
-
-{-# NOINLINE glGetClipPlaneFunPtr #-}
-
--- | Usage: @'glGetLightfv' light pname params@
---
--- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
---
--- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetLightfv = ffienumenumPtrfloatIOV glGetLightfvFunPtr
-
-glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetLightfvFunPtr = unsafePerformIO (getProcAddress "glGetLightfv")
-
-{-# NOINLINE glGetLightfvFunPtr #-}
-
--- | Usage: @'glGetLightiv' light pname params@
---
--- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
---
--- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetLightiv = ffienumenumPtrintIOV glGetLightivFunPtr
-
-glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetLightivFunPtr = unsafePerformIO (getProcAddress "glGetLightiv")
-
-{-# NOINLINE glGetLightivFunPtr #-}
-
--- | Usage: @'glGetMapdv' target query v@
---
--- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
---
--- The length of @v@ should be @COMPSIZE(target,query)@.
-
-
-glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
-glGetMapdv = ffienumenumPtrdoubleIOV glGetMapdvFunPtr
-
-glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glGetMapdvFunPtr = unsafePerformIO (getProcAddress "glGetMapdv")
-
-{-# NOINLINE glGetMapdvFunPtr #-}
-
--- | Usage: @'glGetMapfv' target query v@
---
--- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
---
--- The length of @v@ should be @COMPSIZE(target,query)@.
-
-
-glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMapfv = ffienumenumPtrfloatIOV glGetMapfvFunPtr
-
-glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMapfvFunPtr = unsafePerformIO (getProcAddress "glGetMapfv")
-
-{-# NOINLINE glGetMapfvFunPtr #-}
-
--- | Usage: @'glGetMapiv' target query v@
---
--- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
---
--- The length of @v@ should be @COMPSIZE(target,query)@.
-
-
-glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMapiv = ffienumenumPtrintIOV glGetMapivFunPtr
-
-glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMapivFunPtr = unsafePerformIO (getProcAddress "glGetMapiv")
-
-{-# NOINLINE glGetMapivFunPtr #-}
-
--- | Usage: @'glGetMaterialfv' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetMaterialfv = ffienumenumPtrfloatIOV glGetMaterialfvFunPtr
-
-glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetMaterialfvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialfv")
-
-{-# NOINLINE glGetMaterialfvFunPtr #-}
-
--- | Usage: @'glGetMaterialiv' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetMaterialiv = ffienumenumPtrintIOV glGetMaterialivFunPtr
-
-glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetMaterialivFunPtr = unsafePerformIO (getProcAddress "glGetMaterialiv")
-
-{-# NOINLINE glGetMaterialivFunPtr #-}
-
--- | Usage: @'glGetPixelMapfv' map values@
---
--- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
---
--- The length of @values@ should be @COMPSIZE(map)@.
-
-
-glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetPixelMapfv = ffienumPtrfloatIOV glGetPixelMapfvFunPtr
-
-glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapfv")
-
-{-# NOINLINE glGetPixelMapfvFunPtr #-}
-
--- | Usage: @'glGetPixelMapuiv' map values@
---
--- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
---
--- The length of @values@ should be @COMPSIZE(map)@.
-
-
-glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glGetPixelMapuiv = ffienumPtruintIOV glGetPixelMapuivFunPtr
-
-glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glGetPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapuiv")
-
-{-# NOINLINE glGetPixelMapuivFunPtr #-}
-
--- | Usage: @'glGetPixelMapusv' map values@
---
--- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
---
--- The length of @values@ should be @COMPSIZE(map)@.
-
-
-glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
-glGetPixelMapusv = ffienumPtrushortIOV glGetPixelMapusvFunPtr
-
-glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())
-glGetPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapusv")
-
-{-# NOINLINE glGetPixelMapusvFunPtr #-}
-
--- | Usage: @'glGetPointerv' pname params@
---
--- The parameter @pname@ is a @GetPointervPName@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_POINTER_EXT', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_BUFFER_POINTER_SGIX', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_POINTER_EXT'.
---
--- The length of @params@ should be @1@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml>
-
-
-glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
-glGetPointerv = ffienumPtrPtrVIOV glGetPointervFunPtr
-
-glGetPointervFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
-glGetPointervFunPtr = unsafePerformIO (getProcAddress "glGetPointerv")
-
-{-# NOINLINE glGetPointervFunPtr #-}
-
--- | Usage: @'glGetPolygonStipple' mask@
---
--- The length of @mask@ should be @COMPSIZE()@.
-
-
-glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
-glGetPolygonStipple = ffiPtrubyteIOV glGetPolygonStippleFunPtr
-
-glGetPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glGetPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glGetPolygonStipple")
-
-{-# NOINLINE glGetPolygonStippleFunPtr #-}
-
--- | Usage: @'glGetTexEnvfv' target pname params@
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexEnvfv = ffienumenumPtrfloatIOV glGetTexEnvfvFunPtr
-
-glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvfv")
-
-{-# NOINLINE glGetTexEnvfvFunPtr #-}
-
--- | Usage: @'glGetTexEnviv' target pname params@
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexEnviv = ffienumenumPtrintIOV glGetTexEnvivFunPtr
-
-glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexEnvivFunPtr = unsafePerformIO (getProcAddress "glGetTexEnviv")
-
-{-# NOINLINE glGetTexEnvivFunPtr #-}
-
--- | Usage: @'glGetTexGendv' coord pname params@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
-glGetTexGendv = ffienumenumPtrdoubleIOV glGetTexGendvFunPtr
-
-glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glGetTexGendvFunPtr = unsafePerformIO (getProcAddress "glGetTexGendv")
-
-{-# NOINLINE glGetTexGendvFunPtr #-}
-
--- | Usage: @'glGetTexGenfv' coord pname params@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexGenfv = ffienumenumPtrfloatIOV glGetTexGenfvFunPtr
-
-glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexGenfvFunPtr = unsafePerformIO (getProcAddress "glGetTexGenfv")
-
-{-# NOINLINE glGetTexGenfvFunPtr #-}
-
--- | Usage: @'glGetTexGeniv' coord pname params@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexGeniv = ffienumenumPtrintIOV glGetTexGenivFunPtr
-
-glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexGenivFunPtr = unsafePerformIO (getProcAddress "glGetTexGeniv")
-
-{-# NOINLINE glGetTexGenivFunPtr #-}
-
--- | Usage: @'glIndexMask' mask@
---
--- The parameter @mask@ is a @MaskedColorIndexValueI@.
-
-
-glIndexMask :: MonadIO m => GLuint -> m ()
-glIndexMask = ffiuintIOV glIndexMaskFunPtr
-
-glIndexMaskFunPtr :: FunPtr (GLuint -> IO ())
-glIndexMaskFunPtr = unsafePerformIO (getProcAddress "glIndexMask")
-
-{-# NOINLINE glIndexMaskFunPtr #-}
-
--- | Usage: @'glIndexPointer' type stride pointer@
---
--- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glIndexPointer = ffienumsizeiPtrVIOV glIndexPointerFunPtr
-
-glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glIndexPointerFunPtr = unsafePerformIO (getProcAddress "glIndexPointer")
-
-{-# NOINLINE glIndexPointerFunPtr #-}
-
--- | Usage: @'glIndexd' c@
---
--- The parameter @c@ is a @ColorIndexValueD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexdv'.
-
-
-glIndexd :: MonadIO m => GLdouble -> m ()
-glIndexd = ffidoubleIOV glIndexdFunPtr
-
-glIndexdFunPtr :: FunPtr (GLdouble -> IO ())
-glIndexdFunPtr = unsafePerformIO (getProcAddress "glIndexd")
-
-{-# NOINLINE glIndexdFunPtr #-}
-
--- | Usage: @'glIndexdv' c@
---
--- The parameter @c@ is a @ColorIndexValueD@.
---
--- The length of @c@ should be @1@.
-
-
-glIndexdv :: MonadIO m => Ptr GLdouble -> m ()
-glIndexdv = ffiPtrdoubleIOV glIndexdvFunPtr
-
-glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glIndexdvFunPtr = unsafePerformIO (getProcAddress "glIndexdv")
-
-{-# NOINLINE glIndexdvFunPtr #-}
-
--- | Usage: @'glIndexf' c@
---
--- The parameter @c@ is a @ColorIndexValueF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexfv'.
-
-
-glIndexf :: MonadIO m => GLfloat -> m ()
-glIndexf = ffifloatIOV glIndexfFunPtr
-
-glIndexfFunPtr :: FunPtr (GLfloat -> IO ())
-glIndexfFunPtr = unsafePerformIO (getProcAddress "glIndexf")
-
-{-# NOINLINE glIndexfFunPtr #-}
-
--- | Usage: @'glIndexfv' c@
---
--- The parameter @c@ is a @ColorIndexValueF@.
---
--- The length of @c@ should be @1@.
-
-
-glIndexfv :: MonadIO m => Ptr GLfloat -> m ()
-glIndexfv = ffiPtrfloatIOV glIndexfvFunPtr
-
-glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glIndexfvFunPtr = unsafePerformIO (getProcAddress "glIndexfv")
-
-{-# NOINLINE glIndexfvFunPtr #-}
-
--- | Usage: @'glIndexi' c@
---
--- The parameter @c@ is a @ColorIndexValueI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexiv'.
-
-
-glIndexi :: MonadIO m => GLint -> m ()
-glIndexi = ffiintIOV glIndexiFunPtr
-
-glIndexiFunPtr :: FunPtr (GLint -> IO ())
-glIndexiFunPtr = unsafePerformIO (getProcAddress "glIndexi")
-
-{-# NOINLINE glIndexiFunPtr #-}
-
--- | Usage: @'glIndexiv' c@
---
--- The parameter @c@ is a @ColorIndexValueI@.
---
--- The length of @c@ should be @1@.
-
-
-glIndexiv :: MonadIO m => Ptr GLint -> m ()
-glIndexiv = ffiPtrintIOV glIndexivFunPtr
-
-glIndexivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glIndexivFunPtr = unsafePerformIO (getProcAddress "glIndexiv")
-
-{-# NOINLINE glIndexivFunPtr #-}
-
--- | Usage: @'glIndexs' c@
---
--- The parameter @c@ is a @ColorIndexValueS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexsv'.
-
-
-glIndexs :: MonadIO m => GLshort -> m ()
-glIndexs = ffishortIOV glIndexsFunPtr
-
-glIndexsFunPtr :: FunPtr (GLshort -> IO ())
-glIndexsFunPtr = unsafePerformIO (getProcAddress "glIndexs")
-
-{-# NOINLINE glIndexsFunPtr #-}
-
--- | Usage: @'glIndexsv' c@
---
--- The parameter @c@ is a @ColorIndexValueS@.
---
--- The length of @c@ should be @1@.
-
-
-glIndexsv :: MonadIO m => Ptr GLshort -> m ()
-glIndexsv = ffiPtrshortIOV glIndexsvFunPtr
-
-glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glIndexsvFunPtr = unsafePerformIO (getProcAddress "glIndexsv")
-
-{-# NOINLINE glIndexsvFunPtr #-}
-
--- | Usage: @'glIndexub' c@
---
--- The parameter @c@ is a @ColorIndexValueUB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexubv'.
-
-
-glIndexub :: MonadIO m => GLubyte -> m ()
-glIndexub = ffiubyteIOV glIndexubFunPtr
-
-glIndexubFunPtr :: FunPtr (GLubyte -> IO ())
-glIndexubFunPtr = unsafePerformIO (getProcAddress "glIndexub")
-
-{-# NOINLINE glIndexubFunPtr #-}
-
--- | Usage: @'glIndexubv' c@
---
--- The parameter @c@ is a @ColorIndexValueUB@.
---
--- The length of @c@ should be @1@.
-
-
-glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
-glIndexubv = ffiPtrubyteIOV glIndexubvFunPtr
-
-glIndexubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glIndexubvFunPtr = unsafePerformIO (getProcAddress "glIndexubv")
-
-{-# NOINLINE glIndexubvFunPtr #-}
-
--- | Usage: @'glInitNames'@
-
-
-glInitNames :: MonadIO m => m ()
-glInitNames = ffiIOV glInitNamesFunPtr
-
-glInitNamesFunPtr :: FunPtr (IO ())
-glInitNamesFunPtr = unsafePerformIO (getProcAddress "glInitNames")
-
-{-# NOINLINE glInitNamesFunPtr #-}
-
--- | Usage: @'glInterleavedArrays' format stride pointer@
---
--- The parameter @format@ is a @InterleavedArrayFormat@, one of: 'Graphics.GL.Internal.Shared.GL_C3F_V3F', 'Graphics.GL.Internal.Shared.GL_C4F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_C4UB_V2F', 'Graphics.GL.Internal.Shared.GL_C4UB_V3F', 'Graphics.GL.Internal.Shared.GL_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C4F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C4UB_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_V3F', 'Graphics.GL.Internal.Shared.GL_T4F_C4F_N3F_V4F', 'Graphics.GL.Internal.Shared.GL_T4F_V4F', 'Graphics.GL.Internal.Shared.GL_V2F', 'Graphics.GL.Internal.Shared.GL_V3F'.
---
--- The length of @pointer@ should be @COMPSIZE(format,stride)@.
-
-
-glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glInterleavedArrays = ffienumsizeiPtrVIOV glInterleavedArraysFunPtr
-
-glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glInterleavedArraysFunPtr = unsafePerformIO (getProcAddress "glInterleavedArrays")
-
-{-# NOINLINE glInterleavedArraysFunPtr #-}
-
--- | Usage: @'glIsList' list@
---
--- The parameter @list@ is a @List@.
-
-
-glIsList :: MonadIO m => GLuint -> m GLboolean
-glIsList = ffiuintIOboolean glIsListFunPtr
-
-glIsListFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsListFunPtr = unsafePerformIO (getProcAddress "glIsList")
-
-{-# NOINLINE glIsListFunPtr #-}
-
--- | Usage: @'glLightModelf' pname param@
---
--- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
-
-
-glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()
-glLightModelf = ffienumfloatIOV glLightModelfFunPtr
-
-glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glLightModelfFunPtr = unsafePerformIO (getProcAddress "glLightModelf")
-
-{-# NOINLINE glLightModelfFunPtr #-}
-
--- | Usage: @'glLightModelfv' pname params@
---
--- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glLightModelfv = ffienumPtrfloatIOV glLightModelfvFunPtr
-
-glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glLightModelfvFunPtr = unsafePerformIO (getProcAddress "glLightModelfv")
-
-{-# NOINLINE glLightModelfvFunPtr #-}
-
--- | Usage: @'glLightModeli' pname param@
---
--- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
-
-
-glLightModeli :: MonadIO m => GLenum -> GLint -> m ()
-glLightModeli = ffienumintIOV glLightModeliFunPtr
-
-glLightModeliFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glLightModeliFunPtr = unsafePerformIO (getProcAddress "glLightModeli")
-
-{-# NOINLINE glLightModeliFunPtr #-}
-
--- | Usage: @'glLightModeliv' pname params@
---
--- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glLightModeliv = ffienumPtrintIOV glLightModelivFunPtr
-
-glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glLightModelivFunPtr = unsafePerformIO (getProcAddress "glLightModeliv")
-
-{-# NOINLINE glLightModelivFunPtr #-}
-
--- | Usage: @'glLightf' light pname param@
---
--- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
---
--- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glLightf = ffienumenumfloatIOV glLightfFunPtr
-
-glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glLightfFunPtr = unsafePerformIO (getProcAddress "glLightf")
-
-{-# NOINLINE glLightfFunPtr #-}
-
--- | Usage: @'glLightfv' light pname params@
---
--- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
---
--- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glLightfv = ffienumenumPtrfloatIOV glLightfvFunPtr
-
-glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glLightfvFunPtr = unsafePerformIO (getProcAddress "glLightfv")
-
-{-# NOINLINE glLightfvFunPtr #-}
-
--- | Usage: @'glLighti' light pname param@
---
--- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
---
--- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glLighti = ffienumenumintIOV glLightiFunPtr
-
-glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glLightiFunPtr = unsafePerformIO (getProcAddress "glLighti")
-
-{-# NOINLINE glLightiFunPtr #-}
-
--- | Usage: @'glLightiv' light pname params@
---
--- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
---
--- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glLightiv = ffienumenumPtrintIOV glLightivFunPtr
-
-glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glLightivFunPtr = unsafePerformIO (getProcAddress "glLightiv")
-
-{-# NOINLINE glLightivFunPtr #-}
-
--- | Usage: @'glLineStipple' factor pattern@
---
--- The parameter @factor@ is a @CheckedInt32@.
---
--- The parameter @pattern@ is a @LineStipple@.
-
-
-glLineStipple :: MonadIO m => GLint -> GLushort -> m ()
-glLineStipple = ffiintushortIOV glLineStippleFunPtr
-
-glLineStippleFunPtr :: FunPtr (GLint -> GLushort -> IO ())
-glLineStippleFunPtr = unsafePerformIO (getProcAddress "glLineStipple")
-
-{-# NOINLINE glLineStippleFunPtr #-}
-
--- | Usage: @'glListBase' base@
---
--- The parameter @base@ is a @List@.
-
-
-glListBase :: MonadIO m => GLuint -> m ()
-glListBase = ffiuintIOV glListBaseFunPtr
-
-glListBaseFunPtr :: FunPtr (GLuint -> IO ())
-glListBaseFunPtr = unsafePerformIO (getProcAddress "glListBase")
-
-{-# NOINLINE glListBaseFunPtr #-}
-
--- | Usage: @'glLoadIdentity'@
-
-
-glLoadIdentity :: MonadIO m => m ()
-glLoadIdentity = ffiIOV glLoadIdentityFunPtr
-
-glLoadIdentityFunPtr :: FunPtr (IO ())
-glLoadIdentityFunPtr = unsafePerformIO (getProcAddress "glLoadIdentity")
-
-{-# NOINLINE glLoadIdentityFunPtr #-}
-
--- | Usage: @'glLoadMatrixd' m@
---
--- The length of @m@ should be @16@.
-
-
-glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glLoadMatrixd = ffiPtrdoubleIOV glLoadMatrixdFunPtr
-
-glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glLoadMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixd")
-
-{-# NOINLINE glLoadMatrixdFunPtr #-}
-
--- | Usage: @'glLoadMatrixf' m@
---
--- The length of @m@ should be @16@.
-
-
-glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glLoadMatrixf = ffiPtrfloatIOV glLoadMatrixfFunPtr
-
-glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glLoadMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixf")
-
-{-# NOINLINE glLoadMatrixfFunPtr #-}
-
--- | Usage: @'glLoadName' name@
---
--- The parameter @name@ is a @SelectName@.
-
-
-glLoadName :: MonadIO m => GLuint -> m ()
-glLoadName = ffiuintIOV glLoadNameFunPtr
-
-glLoadNameFunPtr :: FunPtr (GLuint -> IO ())
-glLoadNameFunPtr = unsafePerformIO (getProcAddress "glLoadName")
-
-{-# NOINLINE glLoadNameFunPtr #-}
-
--- | Usage: @'glLoadTransposeMatrixd' m@
---
--- The length of @m@ should be @16@.
-
-
-glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glLoadTransposeMatrixd = ffiPtrdoubleIOV glLoadTransposeMatrixdFunPtr
-
-glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glLoadTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixd")
-
-{-# NOINLINE glLoadTransposeMatrixdFunPtr #-}
-
--- | Usage: @'glLoadTransposeMatrixf' m@
---
--- The length of @m@ should be @16@.
-
-
-glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glLoadTransposeMatrixf = ffiPtrfloatIOV glLoadTransposeMatrixfFunPtr
-
-glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glLoadTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixf")
-
-{-# NOINLINE glLoadTransposeMatrixfFunPtr #-}
-
--- | Usage: @'glMap1d' target u1 u2 stride order points@
---
--- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @u1@ is a @CoordD@.
---
--- The parameter @u2@ is a @CoordD@.
---
--- The parameter @order@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordD@.
---
--- The length of @points@ should be @COMPSIZE(target,stride,order)@.
-
-
-glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-glMap1d = ffienumdoubledoubleintintPtrdoubleIOV glMap1dFunPtr
-
-glMap1dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-glMap1dFunPtr = unsafePerformIO (getProcAddress "glMap1d")
-
-{-# NOINLINE glMap1dFunPtr #-}
-
--- | Usage: @'glMap1f' target u1 u2 stride order points@
---
--- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @u1@ is a @CoordF@.
---
--- The parameter @u2@ is a @CoordF@.
---
--- The parameter @order@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordF@.
---
--- The length of @points@ should be @COMPSIZE(target,stride,order)@.
-
-
-glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-glMap1f = ffienumfloatfloatintintPtrfloatIOV glMap1fFunPtr
-
-glMap1fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-glMap1fFunPtr = unsafePerformIO (getProcAddress "glMap1f")
-
-{-# NOINLINE glMap1fFunPtr #-}
-
--- | Usage: @'glMap2d' target u1 u2 ustride uorder v1 v2 vstride vorder points@
---
--- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @u1@ is a @CoordD@.
---
--- The parameter @u2@ is a @CoordD@.
---
--- The parameter @uorder@ is a @CheckedInt32@.
---
--- The parameter @v1@ is a @CoordD@.
---
--- The parameter @v2@ is a @CoordD@.
---
--- The parameter @vorder@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordD@.
---
--- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.
-
-
-glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
-glMap2d = ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMap2dFunPtr
-
-glMap2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-glMap2dFunPtr = unsafePerformIO (getProcAddress "glMap2d")
-
-{-# NOINLINE glMap2dFunPtr #-}
-
--- | Usage: @'glMap2f' target u1 u2 ustride uorder v1 v2 vstride vorder points@
---
--- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
---
--- The parameter @u1@ is a @CoordF@.
---
--- The parameter @u2@ is a @CoordF@.
---
--- The parameter @uorder@ is a @CheckedInt32@.
---
--- The parameter @v1@ is a @CoordF@.
---
--- The parameter @v2@ is a @CoordF@.
---
--- The parameter @vorder@ is a @CheckedInt32@.
---
--- The parameter @points@ is a @CoordF@.
---
--- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.
-
-
-glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
-glMap2f = ffienumfloatfloatintintfloatfloatintintPtrfloatIOV glMap2fFunPtr
-
-glMap2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-glMap2fFunPtr = unsafePerformIO (getProcAddress "glMap2f")
-
-{-# NOINLINE glMap2fFunPtr #-}
-
--- | Usage: @'glMapGrid1d' un u1 u2@
---
--- The parameter @u1@ is a @CoordD@.
---
--- The parameter @u2@ is a @CoordD@.
-
-
-glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
-glMapGrid1d = ffiintdoubledoubleIOV glMapGrid1dFunPtr
-
-glMapGrid1dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
-glMapGrid1dFunPtr = unsafePerformIO (getProcAddress "glMapGrid1d")
-
-{-# NOINLINE glMapGrid1dFunPtr #-}
-
--- | Usage: @'glMapGrid1f' un u1 u2@
---
--- The parameter @u1@ is a @CoordF@.
---
--- The parameter @u2@ is a @CoordF@.
-
-
-glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
-glMapGrid1f = ffiintfloatfloatIOV glMapGrid1fFunPtr
-
-glMapGrid1fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
-glMapGrid1fFunPtr = unsafePerformIO (getProcAddress "glMapGrid1f")
-
-{-# NOINLINE glMapGrid1fFunPtr #-}
-
--- | Usage: @'glMapGrid2d' un u1 u2 vn v1 v2@
---
--- The parameter @u1@ is a @CoordD@.
---
--- The parameter @u2@ is a @CoordD@.
---
--- The parameter @v1@ is a @CoordD@.
---
--- The parameter @v2@ is a @CoordD@.
-
-
-glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
-glMapGrid2d = ffiintdoubledoubleintdoubledoubleIOV glMapGrid2dFunPtr
-
-glMapGrid2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
-glMapGrid2dFunPtr = unsafePerformIO (getProcAddress "glMapGrid2d")
-
-{-# NOINLINE glMapGrid2dFunPtr #-}
-
--- | Usage: @'glMapGrid2f' un u1 u2 vn v1 v2@
---
--- The parameter @u1@ is a @CoordF@.
---
--- The parameter @u2@ is a @CoordF@.
---
--- The parameter @v1@ is a @CoordF@.
---
--- The parameter @v2@ is a @CoordF@.
-
-
-glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
-glMapGrid2f = ffiintfloatfloatintfloatfloatIOV glMapGrid2fFunPtr
-
-glMapGrid2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
-glMapGrid2fFunPtr = unsafePerformIO (getProcAddress "glMapGrid2f")
-
-{-# NOINLINE glMapGrid2fFunPtr #-}
-
--- | Usage: @'glMaterialf' face pname param@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glMaterialf = ffienumenumfloatIOV glMaterialfFunPtr
-
-glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glMaterialfFunPtr = unsafePerformIO (getProcAddress "glMaterialf")
-
-{-# NOINLINE glMaterialfFunPtr #-}
-
--- | Usage: @'glMaterialfv' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glMaterialfv = ffienumenumPtrfloatIOV glMaterialfvFunPtr
-
-glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glMaterialfvFunPtr = unsafePerformIO (getProcAddress "glMaterialfv")
-
-{-# NOINLINE glMaterialfvFunPtr #-}
-
--- | Usage: @'glMateriali' face pname param@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glMateriali = ffienumenumintIOV glMaterialiFunPtr
-
-glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glMaterialiFunPtr = unsafePerformIO (getProcAddress "glMateriali")
-
-{-# NOINLINE glMaterialiFunPtr #-}
-
--- | Usage: @'glMaterialiv' face pname params@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glMaterialiv = ffienumenumPtrintIOV glMaterialivFunPtr
-
-glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glMaterialivFunPtr = unsafePerformIO (getProcAddress "glMaterialiv")
-
-{-# NOINLINE glMaterialivFunPtr #-}
-
--- | Usage: @'glMatrixMode' mode@
---
--- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
-
-
-glMatrixMode :: MonadIO m => GLenum -> m ()
-glMatrixMode = ffienumIOV glMatrixModeFunPtr
-
-glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())
-glMatrixModeFunPtr = unsafePerformIO (getProcAddress "glMatrixMode")
-
-{-# NOINLINE glMatrixModeFunPtr #-}
-
--- | Usage: @'glMultMatrixd' m@
---
--- The length of @m@ should be @16@.
-
-
-glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glMultMatrixd = ffiPtrdoubleIOV glMultMatrixdFunPtr
-
-glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glMultMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultMatrixd")
-
-{-# NOINLINE glMultMatrixdFunPtr #-}
-
--- | Usage: @'glMultMatrixf' m@
---
--- The length of @m@ should be @16@.
-
-
-glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glMultMatrixf = ffiPtrfloatIOV glMultMatrixfFunPtr
-
-glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glMultMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultMatrixf")
-
-{-# NOINLINE glMultMatrixfFunPtr #-}
-
--- | Usage: @'glMultTransposeMatrixd' m@
---
--- The length of @m@ should be @16@.
-
-
-glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
-glMultTransposeMatrixd = ffiPtrdoubleIOV glMultTransposeMatrixdFunPtr
-
-glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glMultTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixd")
-
-{-# NOINLINE glMultTransposeMatrixdFunPtr #-}
-
--- | Usage: @'glMultTransposeMatrixf' m@
---
--- The length of @m@ should be @16@.
-
-
-glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
-glMultTransposeMatrixf = ffiPtrfloatIOV glMultTransposeMatrixfFunPtr
-
-glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glMultTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixf")
-
-{-# NOINLINE glMultTransposeMatrixfFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1d' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1dv'.
-
-
-glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()
-glMultiTexCoord1d = ffienumdoubleIOV glMultiTexCoord1dFunPtr
-
-glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
-glMultiTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1d")
-
-{-# NOINLINE glMultiTexCoord1dFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1dv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @1@.
-
-
-glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord1dv = ffienumPtrdoubleIOV glMultiTexCoord1dvFunPtr
-
-glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dv")
-
-{-# NOINLINE glMultiTexCoord1dvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1f' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1fv'.
-
-
-glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()
-glMultiTexCoord1f = ffienumfloatIOV glMultiTexCoord1fFunPtr
-
-glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glMultiTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1f")
-
-{-# NOINLINE glMultiTexCoord1fFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1fv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @1@.
-
-
-glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord1fv = ffienumPtrfloatIOV glMultiTexCoord1fvFunPtr
-
-glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fv")
-
-{-# NOINLINE glMultiTexCoord1fvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1i' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1iv'.
-
-
-glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()
-glMultiTexCoord1i = ffienumintIOV glMultiTexCoord1iFunPtr
-
-glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glMultiTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1i")
-
-{-# NOINLINE glMultiTexCoord1iFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1iv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @1@.
-
-
-glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord1iv = ffienumPtrintIOV glMultiTexCoord1ivFunPtr
-
-glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1iv")
-
-{-# NOINLINE glMultiTexCoord1ivFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1s' target s@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1sv'.
-
-
-glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()
-glMultiTexCoord1s = ffienumshortIOV glMultiTexCoord1sFunPtr
-
-glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
-glMultiTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1s")
-
-{-# NOINLINE glMultiTexCoord1sFunPtr #-}
-
--- | Usage: @'glMultiTexCoord1sv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @1@.
-
-
-glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord1sv = ffienumPtrshortIOV glMultiTexCoord1svFunPtr
-
-glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1sv")
-
-{-# NOINLINE glMultiTexCoord1svFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2d' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2dv'.
-
-
-glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord2d = ffienumdoubledoubleIOV glMultiTexCoord2dFunPtr
-
-glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2d")
-
-{-# NOINLINE glMultiTexCoord2dFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2dv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
-
-
-glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord2dv = ffienumPtrdoubleIOV glMultiTexCoord2dvFunPtr
-
-glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dv")
-
-{-# NOINLINE glMultiTexCoord2dvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2f' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2fv'.
-
-
-glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord2f = ffienumfloatfloatIOV glMultiTexCoord2fFunPtr
-
-glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2f")
-
-{-# NOINLINE glMultiTexCoord2fFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2fv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
-
-
-glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord2fv = ffienumPtrfloatIOV glMultiTexCoord2fvFunPtr
-
-glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fv")
-
-{-# NOINLINE glMultiTexCoord2fvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2i' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2iv'.
-
-
-glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()
-glMultiTexCoord2i = ffienumintintIOV glMultiTexCoord2iFunPtr
-
-glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
-glMultiTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2i")
-
-{-# NOINLINE glMultiTexCoord2iFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2iv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
-
-
-glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord2iv = ffienumPtrintIOV glMultiTexCoord2ivFunPtr
-
-glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2iv")
-
-{-# NOINLINE glMultiTexCoord2ivFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2s' target s t@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2sv'.
-
-
-glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
-glMultiTexCoord2s = ffienumshortshortIOV glMultiTexCoord2sFunPtr
-
-glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
-glMultiTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2s")
-
-{-# NOINLINE glMultiTexCoord2sFunPtr #-}
-
--- | Usage: @'glMultiTexCoord2sv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
-
-
-glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord2sv = ffienumPtrshortIOV glMultiTexCoord2svFunPtr
-
-glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2sv")
-
-{-# NOINLINE glMultiTexCoord2svFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3d' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The parameter @r@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3dv'.
-
-
-glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord3d = ffienumdoubledoubledoubleIOV glMultiTexCoord3dFunPtr
-
-glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3d")
-
-{-# NOINLINE glMultiTexCoord3dFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3dv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord3dv = ffienumPtrdoubleIOV glMultiTexCoord3dvFunPtr
-
-glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dv")
-
-{-# NOINLINE glMultiTexCoord3dvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3f' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The parameter @r@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3fv'.
-
-
-glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord3f = ffienumfloatfloatfloatIOV glMultiTexCoord3fFunPtr
-
-glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3f")
-
-{-# NOINLINE glMultiTexCoord3fFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3fv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord3fv = ffienumPtrfloatIOV glMultiTexCoord3fvFunPtr
-
-glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fv")
-
-{-# NOINLINE glMultiTexCoord3fvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3i' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The parameter @r@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3iv'.
-
-
-glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
-glMultiTexCoord3i = ffienumintintintIOV glMultiTexCoord3iFunPtr
-
-glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
-glMultiTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3i")
-
-{-# NOINLINE glMultiTexCoord3iFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3iv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
-
-
-glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord3iv = ffienumPtrintIOV glMultiTexCoord3ivFunPtr
-
-glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3iv")
-
-{-# NOINLINE glMultiTexCoord3ivFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3s' target s t r@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The parameter @r@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3sv'.
-
-
-glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
-glMultiTexCoord3s = ffienumshortshortshortIOV glMultiTexCoord3sFunPtr
-
-glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-glMultiTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3s")
-
-{-# NOINLINE glMultiTexCoord3sFunPtr #-}
-
--- | Usage: @'glMultiTexCoord3sv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
-
-
-glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord3sv = ffienumPtrshortIOV glMultiTexCoord3svFunPtr
-
-glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3sv")
-
-{-# NOINLINE glMultiTexCoord3svFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4d' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The parameter @r@ is a @CoordD@.
---
--- The parameter @q@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4dv'.
-
-
-glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glMultiTexCoord4d = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dFunPtr
-
-glMultiTexCoord4dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glMultiTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4d")
-
-{-# NOINLINE glMultiTexCoord4dFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4dv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @4@.
-
-
-glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glMultiTexCoord4dv = ffienumPtrdoubleIOV glMultiTexCoord4dvFunPtr
-
-glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glMultiTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dv")
-
-{-# NOINLINE glMultiTexCoord4dvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4f' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The parameter @r@ is a @CoordF@.
---
--- The parameter @q@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4fv'.
-
-
-glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glMultiTexCoord4f = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fFunPtr
-
-glMultiTexCoord4fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glMultiTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4f")
-
-{-# NOINLINE glMultiTexCoord4fFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4fv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @4@.
-
-
-glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glMultiTexCoord4fv = ffienumPtrfloatIOV glMultiTexCoord4fvFunPtr
-
-glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glMultiTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fv")
-
-{-# NOINLINE glMultiTexCoord4fvFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4i' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The parameter @r@ is a @CoordI@.
---
--- The parameter @q@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4iv'.
-
-
-glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
-glMultiTexCoord4i = ffienumintintintintIOV glMultiTexCoord4iFunPtr
-
-glMultiTexCoord4iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-glMultiTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4i")
-
-{-# NOINLINE glMultiTexCoord4iFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4iv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @4@.
-
-
-glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glMultiTexCoord4iv = ffienumPtrintIOV glMultiTexCoord4ivFunPtr
-
-glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glMultiTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4iv")
-
-{-# NOINLINE glMultiTexCoord4ivFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4s' target s t r q@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The parameter @r@ is a @CoordS@.
---
--- The parameter @q@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4sv'.
-
-
-glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glMultiTexCoord4s = ffienumshortshortshortshortIOV glMultiTexCoord4sFunPtr
-
-glMultiTexCoord4sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glMultiTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4s")
-
-{-# NOINLINE glMultiTexCoord4sFunPtr #-}
-
--- | Usage: @'glMultiTexCoord4sv' target v@
---
--- The parameter @target@ is a @TextureUnit@.
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @4@.
-
-
-glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
-glMultiTexCoord4sv = ffienumPtrshortIOV glMultiTexCoord4svFunPtr
-
-glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
-glMultiTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sv")
-
-{-# NOINLINE glMultiTexCoord4svFunPtr #-}
-
--- | Usage: @'glNewList' list mode@
---
--- The parameter @list@ is a @List@.
---
--- The parameter @mode@ is a @ListMode@, one of: 'Graphics.GL.Internal.Shared.GL_COMPILE', 'Graphics.GL.Internal.Shared.GL_COMPILE_AND_EXECUTE'.
-
-
-glNewList :: MonadIO m => GLuint -> GLenum -> m ()
-glNewList = ffiuintenumIOV glNewListFunPtr
-
-glNewListFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNewListFunPtr = unsafePerformIO (getProcAddress "glNewList")
-
-{-# NOINLINE glNewListFunPtr #-}
-
--- | Usage: @'glNormal3b' nx ny nz@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3bv'.
-
-
-glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glNormal3b = ffibytebytebyteIOV glNormal3bFunPtr
-
-glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glNormal3bFunPtr = unsafePerformIO (getProcAddress "glNormal3b")
-
-{-# NOINLINE glNormal3bFunPtr #-}
-
--- | Usage: @'glNormal3bv' v@
---
--- The length of @v@ should be @3@.
-
-
-glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()
-glNormal3bv = ffiPtrbyteIOV glNormal3bvFunPtr
-
-glNormal3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glNormal3bvFunPtr = unsafePerformIO (getProcAddress "glNormal3bv")
-
-{-# NOINLINE glNormal3bvFunPtr #-}
-
--- | Usage: @'glNormal3d' nx ny nz@
---
--- The parameter @nx@ is a @CoordD@.
---
--- The parameter @ny@ is a @CoordD@.
---
--- The parameter @nz@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3dv'.
-
-
-glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glNormal3d = ffidoubledoubledoubleIOV glNormal3dFunPtr
-
-glNormal3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glNormal3dFunPtr = unsafePerformIO (getProcAddress "glNormal3d")
-
-{-# NOINLINE glNormal3dFunPtr #-}
-
--- | Usage: @'glNormal3dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()
-glNormal3dv = ffiPtrdoubleIOV glNormal3dvFunPtr
-
-glNormal3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glNormal3dvFunPtr = unsafePerformIO (getProcAddress "glNormal3dv")
-
-{-# NOINLINE glNormal3dvFunPtr #-}
-
--- | Usage: @'glNormal3f' nx ny nz@
---
--- The parameter @nx@ is a @CoordF@.
---
--- The parameter @ny@ is a @CoordF@.
---
--- The parameter @nz@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3fv'.
-
-
-glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glNormal3f = ffifloatfloatfloatIOV glNormal3fFunPtr
-
-glNormal3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glNormal3fFunPtr = unsafePerformIO (getProcAddress "glNormal3f")
-
-{-# NOINLINE glNormal3fFunPtr #-}
-
--- | Usage: @'glNormal3fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()
-glNormal3fv = ffiPtrfloatIOV glNormal3fvFunPtr
-
-glNormal3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glNormal3fvFunPtr = unsafePerformIO (getProcAddress "glNormal3fv")
-
-{-# NOINLINE glNormal3fvFunPtr #-}
-
--- | Usage: @'glNormal3i' nx ny nz@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3iv'.
-
-
-glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glNormal3i = ffiintintintIOV glNormal3iFunPtr
-
-glNormal3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glNormal3iFunPtr = unsafePerformIO (getProcAddress "glNormal3i")
-
-{-# NOINLINE glNormal3iFunPtr #-}
-
--- | Usage: @'glNormal3iv' v@
---
--- The length of @v@ should be @3@.
-
-
-glNormal3iv :: MonadIO m => Ptr GLint -> m ()
-glNormal3iv = ffiPtrintIOV glNormal3ivFunPtr
-
-glNormal3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glNormal3ivFunPtr = unsafePerformIO (getProcAddress "glNormal3iv")
-
-{-# NOINLINE glNormal3ivFunPtr #-}
-
--- | Usage: @'glNormal3s' nx ny nz@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3sv'.
-
-
-glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glNormal3s = ffishortshortshortIOV glNormal3sFunPtr
-
-glNormal3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glNormal3sFunPtr = unsafePerformIO (getProcAddress "glNormal3s")
-
-{-# NOINLINE glNormal3sFunPtr #-}
-
--- | Usage: @'glNormal3sv' v@
---
--- The length of @v@ should be @3@.
-
-
-glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
-glNormal3sv = ffiPtrshortIOV glNormal3svFunPtr
-
-glNormal3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glNormal3svFunPtr = unsafePerformIO (getProcAddress "glNormal3sv")
-
-{-# NOINLINE glNormal3svFunPtr #-}
-
--- | Usage: @'glNormalPointer' type stride pointer@
---
--- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(type,stride)@.
-
-
-glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
-glNormalPointer = ffienumsizeiPtrVIOV glNormalPointerFunPtr
-
-glNormalPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
-glNormalPointerFunPtr = unsafePerformIO (getProcAddress "glNormalPointer")
-
-{-# NOINLINE glNormalPointerFunPtr #-}
-
--- | Usage: @'glOrtho' left right bottom top zNear zFar@
-
-
-glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glOrtho = ffidoubledoubledoubledoubledoubledoubleIOV glOrthoFunPtr
-
-glOrthoFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glOrthoFunPtr = unsafePerformIO (getProcAddress "glOrtho")
-
-{-# NOINLINE glOrthoFunPtr #-}
-
--- | Usage: @'glPassThrough' token@
---
--- The parameter @token@ is a @FeedbackElement@.
-
-
-glPassThrough :: MonadIO m => GLfloat -> m ()
-glPassThrough = ffifloatIOV glPassThroughFunPtr
-
-glPassThroughFunPtr :: FunPtr (GLfloat -> IO ())
-glPassThroughFunPtr = unsafePerformIO (getProcAddress "glPassThrough")
-
-{-# NOINLINE glPassThroughFunPtr #-}
-
--- | Usage: @'glPixelMapfv' map mapsize values@
---
--- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
---
--- The parameter @mapsize@ is a @CheckedInt32@.
---
--- The length of @values@ should be @mapsize@.
-
-
-glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
-glPixelMapfv = ffienumsizeiPtrfloatIOV glPixelMapfvFunPtr
-
-glPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-glPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glPixelMapfv")
-
-{-# NOINLINE glPixelMapfvFunPtr #-}
-
--- | Usage: @'glPixelMapuiv' map mapsize values@
---
--- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
---
--- The parameter @mapsize@ is a @CheckedInt32@.
---
--- The length of @values@ should be @mapsize@.
-
-
-glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glPixelMapuiv = ffienumsizeiPtruintIOV glPixelMapuivFunPtr
-
-glPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glPixelMapuiv")
-
-{-# NOINLINE glPixelMapuivFunPtr #-}
-
--- | Usage: @'glPixelMapusv' map mapsize values@
---
--- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
---
--- The parameter @mapsize@ is a @CheckedInt32@.
---
--- The length of @values@ should be @mapsize@.
-
-
-glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
-glPixelMapusv = ffienumsizeiPtrushortIOV glPixelMapusvFunPtr
-
-glPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
-glPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glPixelMapusv")
-
-{-# NOINLINE glPixelMapusvFunPtr #-}
-
--- | Usage: @'glPixelTransferf' pname param@
---
--- The parameter @pname@ is a @PixelTransferParameter@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()
-glPixelTransferf = ffienumfloatIOV glPixelTransferfFunPtr
-
-glPixelTransferfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPixelTransferfFunPtr = unsafePerformIO (getProcAddress "glPixelTransferf")
-
-{-# NOINLINE glPixelTransferfFunPtr #-}
-
--- | Usage: @'glPixelTransferi' pname param@
---
--- The parameter @pname@ is a @PixelTransferParameter@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()
-glPixelTransferi = ffienumintIOV glPixelTransferiFunPtr
-
-glPixelTransferiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPixelTransferiFunPtr = unsafePerformIO (getProcAddress "glPixelTransferi")
-
-{-# NOINLINE glPixelTransferiFunPtr #-}
-
--- | Usage: @'glPixelZoom' xfactor yfactor@
-
-
-glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()
-glPixelZoom = ffifloatfloatIOV glPixelZoomFunPtr
-
-glPixelZoomFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glPixelZoomFunPtr = unsafePerformIO (getProcAddress "glPixelZoom")
-
-{-# NOINLINE glPixelZoomFunPtr #-}
-
--- | Usage: @'glPolygonStipple' mask@
---
--- The length of @mask@ should be @COMPSIZE()@.
-
-
-glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
-glPolygonStipple = ffiPtrubyteIOV glPolygonStippleFunPtr
-
-glPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glPolygonStipple")
-
-{-# NOINLINE glPolygonStippleFunPtr #-}
-
--- | Usage: @'glPopAttrib'@
-
-
-glPopAttrib :: MonadIO m => m ()
-glPopAttrib = ffiIOV glPopAttribFunPtr
-
-glPopAttribFunPtr :: FunPtr (IO ())
-glPopAttribFunPtr = unsafePerformIO (getProcAddress "glPopAttrib")
-
-{-# NOINLINE glPopAttribFunPtr #-}
-
--- | Usage: @'glPopClientAttrib'@
-
-
-glPopClientAttrib :: MonadIO m => m ()
-glPopClientAttrib = ffiIOV glPopClientAttribFunPtr
-
-glPopClientAttribFunPtr :: FunPtr (IO ())
-glPopClientAttribFunPtr = unsafePerformIO (getProcAddress "glPopClientAttrib")
-
-{-# NOINLINE glPopClientAttribFunPtr #-}
-
--- | Usage: @'glPopMatrix'@
-
-
-glPopMatrix :: MonadIO m => m ()
-glPopMatrix = ffiIOV glPopMatrixFunPtr
-
-glPopMatrixFunPtr :: FunPtr (IO ())
-glPopMatrixFunPtr = unsafePerformIO (getProcAddress "glPopMatrix")
-
-{-# NOINLINE glPopMatrixFunPtr #-}
-
--- | Usage: @'glPopName'@
-
-
-glPopName :: MonadIO m => m ()
-glPopName = ffiIOV glPopNameFunPtr
-
-glPopNameFunPtr :: FunPtr (IO ())
-glPopNameFunPtr = unsafePerformIO (getProcAddress "glPopName")
-
-{-# NOINLINE glPopNameFunPtr #-}
-
--- | Usage: @'glPrioritizeTextures' n textures priorities@
---
--- The parameter @textures@ is a @Texture@.
---
--- The length of @textures@ should be @n@.
---
--- The length of @priorities@ should be @n@.
-
-
-glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
-glPrioritizeTextures = ffisizeiPtruintPtrfloatIOV glPrioritizeTexturesFunPtr
-
-glPrioritizeTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
-glPrioritizeTexturesFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTextures")
-
-{-# NOINLINE glPrioritizeTexturesFunPtr #-}
-
--- | Usage: @'glPushAttrib' mask@
---
--- The parameter @mask@ is a @AttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_CURRENT_BIT', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_ENABLE_BIT', 'Graphics.GL.Internal.Shared.GL_EVAL_BIT', 'Graphics.GL.Internal.Shared.GL_FOG_BIT', 'Graphics.GL.Internal.Shared.GL_HINT_BIT', 'Graphics.GL.Internal.Shared.GL_LIGHTING_BIT', 'Graphics.GL.Internal.Shared.GL_LINE_BIT', 'Graphics.GL.Internal.Shared.GL_LIST_BIT', 'Graphics.GL.Internal.Shared.GL_MULTISAMPLE_BIT', 'Graphics.GL.Ext.ThreeDFX.Multisample.GL_MULTISAMPLE_BIT_3DFX', 'Graphics.GL.Ext.ARB.Multisample.GL_MULTISAMPLE_BIT_ARB', 'Graphics.GL.Ext.EXT.Multisample.GL_MULTISAMPLE_BIT_EXT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MODE_BIT', 'Graphics.GL.Internal.Shared.GL_POINT_BIT', 'Graphics.GL.Internal.Shared.GL_POLYGON_BIT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE_BIT', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BIT', 'Graphics.GL.Internal.Shared.GL_TRANSFORM_BIT', 'Graphics.GL.Internal.Shared.GL_VIEWPORT_BIT'.
-
-
-glPushAttrib :: MonadIO m => GLbitfield -> m ()
-glPushAttrib = ffibitfieldIOV glPushAttribFunPtr
-
-glPushAttribFunPtr :: FunPtr (GLbitfield -> IO ())
-glPushAttribFunPtr = unsafePerformIO (getProcAddress "glPushAttrib")
-
-{-# NOINLINE glPushAttribFunPtr #-}
-
--- | Usage: @'glPushClientAttrib' mask@
---
--- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
-
-
-glPushClientAttrib :: MonadIO m => GLbitfield -> m ()
-glPushClientAttrib = ffibitfieldIOV glPushClientAttribFunPtr
-
-glPushClientAttribFunPtr :: FunPtr (GLbitfield -> IO ())
-glPushClientAttribFunPtr = unsafePerformIO (getProcAddress "glPushClientAttrib")
-
-{-# NOINLINE glPushClientAttribFunPtr #-}
-
--- | Usage: @'glPushMatrix'@
-
-
-glPushMatrix :: MonadIO m => m ()
-glPushMatrix = ffiIOV glPushMatrixFunPtr
-
-glPushMatrixFunPtr :: FunPtr (IO ())
-glPushMatrixFunPtr = unsafePerformIO (getProcAddress "glPushMatrix")
-
-{-# NOINLINE glPushMatrixFunPtr #-}
-
--- | Usage: @'glPushName' name@
---
--- The parameter @name@ is a @SelectName@.
-
-
-glPushName :: MonadIO m => GLuint -> m ()
-glPushName = ffiuintIOV glPushNameFunPtr
-
-glPushNameFunPtr :: FunPtr (GLuint -> IO ())
-glPushNameFunPtr = unsafePerformIO (getProcAddress "glPushName")
-
-{-# NOINLINE glPushNameFunPtr #-}
-
--- | Usage: @'glRasterPos2d' x y@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2dv'.
-
-
-glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glRasterPos2d = ffidoubledoubleIOV glRasterPos2dFunPtr
-
-glRasterPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glRasterPos2dFunPtr = unsafePerformIO (getProcAddress "glRasterPos2d")
-
-{-# NOINLINE glRasterPos2dFunPtr #-}
-
--- | Usage: @'glRasterPos2dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
-
-
-glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()
-glRasterPos2dv = ffiPtrdoubleIOV glRasterPos2dvFunPtr
-
-glRasterPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glRasterPos2dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2dv")
-
-{-# NOINLINE glRasterPos2dvFunPtr #-}
-
--- | Usage: @'glRasterPos2f' x y@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2fv'.
-
-
-glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glRasterPos2f = ffifloatfloatIOV glRasterPos2fFunPtr
-
-glRasterPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glRasterPos2fFunPtr = unsafePerformIO (getProcAddress "glRasterPos2f")
-
-{-# NOINLINE glRasterPos2fFunPtr #-}
-
--- | Usage: @'glRasterPos2fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
-
-
-glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()
-glRasterPos2fv = ffiPtrfloatIOV glRasterPos2fvFunPtr
-
-glRasterPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glRasterPos2fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2fv")
-
-{-# NOINLINE glRasterPos2fvFunPtr #-}
-
--- | Usage: @'glRasterPos2i' x y@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2iv'.
-
-
-glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()
-glRasterPos2i = ffiintintIOV glRasterPos2iFunPtr
-
-glRasterPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glRasterPos2iFunPtr = unsafePerformIO (getProcAddress "glRasterPos2i")
-
-{-# NOINLINE glRasterPos2iFunPtr #-}
-
--- | Usage: @'glRasterPos2iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
-
-
-glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()
-glRasterPos2iv = ffiPtrintIOV glRasterPos2ivFunPtr
-
-glRasterPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glRasterPos2ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos2iv")
-
-{-# NOINLINE glRasterPos2ivFunPtr #-}
-
--- | Usage: @'glRasterPos2s' x y@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2sv'.
-
-
-glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()
-glRasterPos2s = ffishortshortIOV glRasterPos2sFunPtr
-
-glRasterPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glRasterPos2sFunPtr = unsafePerformIO (getProcAddress "glRasterPos2s")
-
-{-# NOINLINE glRasterPos2sFunPtr #-}
-
--- | Usage: @'glRasterPos2sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
-
-
-glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()
-glRasterPos2sv = ffiPtrshortIOV glRasterPos2svFunPtr
-
-glRasterPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glRasterPos2svFunPtr = unsafePerformIO (getProcAddress "glRasterPos2sv")
-
-{-# NOINLINE glRasterPos2svFunPtr #-}
-
--- | Usage: @'glRasterPos3d' x y z@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3dv'.
-
-
-glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glRasterPos3d = ffidoubledoubledoubleIOV glRasterPos3dFunPtr
-
-glRasterPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glRasterPos3dFunPtr = unsafePerformIO (getProcAddress "glRasterPos3d")
-
-{-# NOINLINE glRasterPos3dFunPtr #-}
-
--- | Usage: @'glRasterPos3dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()
-glRasterPos3dv = ffiPtrdoubleIOV glRasterPos3dvFunPtr
-
-glRasterPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glRasterPos3dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3dv")
-
-{-# NOINLINE glRasterPos3dvFunPtr #-}
-
--- | Usage: @'glRasterPos3f' x y z@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3fv'.
-
-
-glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glRasterPos3f = ffifloatfloatfloatIOV glRasterPos3fFunPtr
-
-glRasterPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glRasterPos3fFunPtr = unsafePerformIO (getProcAddress "glRasterPos3f")
-
-{-# NOINLINE glRasterPos3fFunPtr #-}
-
--- | Usage: @'glRasterPos3fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()
-glRasterPos3fv = ffiPtrfloatIOV glRasterPos3fvFunPtr
-
-glRasterPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glRasterPos3fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3fv")
-
-{-# NOINLINE glRasterPos3fvFunPtr #-}
-
--- | Usage: @'glRasterPos3i' x y z@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3iv'.
-
-
-glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glRasterPos3i = ffiintintintIOV glRasterPos3iFunPtr
-
-glRasterPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glRasterPos3iFunPtr = unsafePerformIO (getProcAddress "glRasterPos3i")
-
-{-# NOINLINE glRasterPos3iFunPtr #-}
-
--- | Usage: @'glRasterPos3iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
-
-
-glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()
-glRasterPos3iv = ffiPtrintIOV glRasterPos3ivFunPtr
-
-glRasterPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glRasterPos3ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos3iv")
-
-{-# NOINLINE glRasterPos3ivFunPtr #-}
-
--- | Usage: @'glRasterPos3s' x y z@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3sv'.
-
-
-glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glRasterPos3s = ffishortshortshortIOV glRasterPos3sFunPtr
-
-glRasterPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glRasterPos3sFunPtr = unsafePerformIO (getProcAddress "glRasterPos3s")
-
-{-# NOINLINE glRasterPos3sFunPtr #-}
-
--- | Usage: @'glRasterPos3sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
-
-
-glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()
-glRasterPos3sv = ffiPtrshortIOV glRasterPos3svFunPtr
-
-glRasterPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glRasterPos3svFunPtr = unsafePerformIO (getProcAddress "glRasterPos3sv")
-
-{-# NOINLINE glRasterPos3svFunPtr #-}
-
--- | Usage: @'glRasterPos4d' x y z w@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- The parameter @w@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4dv'.
-
-
-glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glRasterPos4d = ffidoubledoubledoubledoubleIOV glRasterPos4dFunPtr
-
-glRasterPos4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glRasterPos4dFunPtr = unsafePerformIO (getProcAddress "glRasterPos4d")
-
-{-# NOINLINE glRasterPos4dFunPtr #-}
-
--- | Usage: @'glRasterPos4dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @4@.
-
-
-glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()
-glRasterPos4dv = ffiPtrdoubleIOV glRasterPos4dvFunPtr
-
-glRasterPos4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glRasterPos4dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4dv")
-
-{-# NOINLINE glRasterPos4dvFunPtr #-}
-
--- | Usage: @'glRasterPos4f' x y z w@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- The parameter @w@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4fv'.
-
-
-glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glRasterPos4f = ffifloatfloatfloatfloatIOV glRasterPos4fFunPtr
-
-glRasterPos4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glRasterPos4fFunPtr = unsafePerformIO (getProcAddress "glRasterPos4f")
-
-{-# NOINLINE glRasterPos4fFunPtr #-}
-
--- | Usage: @'glRasterPos4fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @4@.
-
-
-glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()
-glRasterPos4fv = ffiPtrfloatIOV glRasterPos4fvFunPtr
-
-glRasterPos4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glRasterPos4fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4fv")
-
-{-# NOINLINE glRasterPos4fvFunPtr #-}
-
--- | Usage: @'glRasterPos4i' x y z w@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- The parameter @w@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4iv'.
-
-
-glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glRasterPos4i = ffiintintintintIOV glRasterPos4iFunPtr
-
-glRasterPos4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glRasterPos4iFunPtr = unsafePerformIO (getProcAddress "glRasterPos4i")
-
-{-# NOINLINE glRasterPos4iFunPtr #-}
-
--- | Usage: @'glRasterPos4iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @4@.
-
-
-glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()
-glRasterPos4iv = ffiPtrintIOV glRasterPos4ivFunPtr
-
-glRasterPos4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glRasterPos4ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos4iv")
-
-{-# NOINLINE glRasterPos4ivFunPtr #-}
-
--- | Usage: @'glRasterPos4s' x y z w@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- The parameter @w@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4sv'.
-
-
-glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glRasterPos4s = ffishortshortshortshortIOV glRasterPos4sFunPtr
-
-glRasterPos4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glRasterPos4sFunPtr = unsafePerformIO (getProcAddress "glRasterPos4s")
-
-{-# NOINLINE glRasterPos4sFunPtr #-}
-
--- | Usage: @'glRasterPos4sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @4@.
-
-
-glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()
-glRasterPos4sv = ffiPtrshortIOV glRasterPos4svFunPtr
-
-glRasterPos4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glRasterPos4svFunPtr = unsafePerformIO (getProcAddress "glRasterPos4sv")
-
-{-# NOINLINE glRasterPos4svFunPtr #-}
-
--- | Usage: @'glRectd' x1 y1 x2 y2@
---
--- The parameter @x1@ is a @CoordD@.
---
--- The parameter @y1@ is a @CoordD@.
---
--- The parameter @x2@ is a @CoordD@.
---
--- The parameter @y2@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectdv'.
-
-
-glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glRectd = ffidoubledoubledoubledoubleIOV glRectdFunPtr
-
-glRectdFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glRectdFunPtr = unsafePerformIO (getProcAddress "glRectd")
-
-{-# NOINLINE glRectdFunPtr #-}
-
--- | Usage: @'glRectdv' v1 v2@
---
--- The parameter @v1@ is a @CoordD@.
---
--- The parameter @v2@ is a @CoordD@.
---
--- The length of @v1@ should be @2@.
---
--- The length of @v2@ should be @2@.
-
-
-glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()
-glRectdv = ffiPtrdoublePtrdoubleIOV glRectdvFunPtr
-
-glRectdvFunPtr :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())
-glRectdvFunPtr = unsafePerformIO (getProcAddress "glRectdv")
-
-{-# NOINLINE glRectdvFunPtr #-}
-
--- | Usage: @'glRectf' x1 y1 x2 y2@
---
--- The parameter @x1@ is a @CoordF@.
---
--- The parameter @y1@ is a @CoordF@.
---
--- The parameter @x2@ is a @CoordF@.
---
--- The parameter @y2@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectfv'.
-
-
-glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glRectf = ffifloatfloatfloatfloatIOV glRectfFunPtr
-
-glRectfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glRectfFunPtr = unsafePerformIO (getProcAddress "glRectf")
-
-{-# NOINLINE glRectfFunPtr #-}
-
--- | Usage: @'glRectfv' v1 v2@
---
--- The parameter @v1@ is a @CoordF@.
---
--- The parameter @v2@ is a @CoordF@.
---
--- The length of @v1@ should be @2@.
---
--- The length of @v2@ should be @2@.
-
-
-glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
-glRectfv = ffiPtrfloatPtrfloatIOV glRectfvFunPtr
-
-glRectfvFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
-glRectfvFunPtr = unsafePerformIO (getProcAddress "glRectfv")
-
-{-# NOINLINE glRectfvFunPtr #-}
-
--- | Usage: @'glRecti' x1 y1 x2 y2@
---
--- The parameter @x1@ is a @CoordI@.
---
--- The parameter @y1@ is a @CoordI@.
---
--- The parameter @x2@ is a @CoordI@.
---
--- The parameter @y2@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectiv'.
-
-
-glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glRecti = ffiintintintintIOV glRectiFunPtr
-
-glRectiFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glRectiFunPtr = unsafePerformIO (getProcAddress "glRecti")
-
-{-# NOINLINE glRectiFunPtr #-}
-
--- | Usage: @'glRectiv' v1 v2@
---
--- The parameter @v1@ is a @CoordI@.
---
--- The parameter @v2@ is a @CoordI@.
---
--- The length of @v1@ should be @2@.
---
--- The length of @v2@ should be @2@.
-
-
-glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()
-glRectiv = ffiPtrintPtrintIOV glRectivFunPtr
-
-glRectivFunPtr :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())
-glRectivFunPtr = unsafePerformIO (getProcAddress "glRectiv")
-
-{-# NOINLINE glRectivFunPtr #-}
-
--- | Usage: @'glRects' x1 y1 x2 y2@
---
--- The parameter @x1@ is a @CoordS@.
---
--- The parameter @y1@ is a @CoordS@.
---
--- The parameter @x2@ is a @CoordS@.
---
--- The parameter @y2@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectsv'.
-
-
-glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glRects = ffishortshortshortshortIOV glRectsFunPtr
-
-glRectsFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glRectsFunPtr = unsafePerformIO (getProcAddress "glRects")
-
-{-# NOINLINE glRectsFunPtr #-}
-
--- | Usage: @'glRectsv' v1 v2@
---
--- The parameter @v1@ is a @CoordS@.
---
--- The parameter @v2@ is a @CoordS@.
---
--- The length of @v1@ should be @2@.
---
--- The length of @v2@ should be @2@.
-
-
-glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()
-glRectsv = ffiPtrshortPtrshortIOV glRectsvFunPtr
-
-glRectsvFunPtr :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())
-glRectsvFunPtr = unsafePerformIO (getProcAddress "glRectsv")
-
-{-# NOINLINE glRectsvFunPtr #-}
-
--- | Usage: @'glRenderMode' mode@
---
--- The parameter @mode@ is a @RenderingMode@, one of: 'Graphics.GL.Internal.Shared.GL_FEEDBACK', 'Graphics.GL.Internal.Shared.GL_RENDER', 'Graphics.GL.Internal.Shared.GL_SELECT'.
-
-
-glRenderMode :: MonadIO m => GLenum -> m GLint
-glRenderMode = ffienumIOint glRenderModeFunPtr
-
-glRenderModeFunPtr :: FunPtr (GLenum -> IO GLint)
-glRenderModeFunPtr = unsafePerformIO (getProcAddress "glRenderMode")
-
-{-# NOINLINE glRenderModeFunPtr #-}
-
--- | Usage: @'glRotated' angle x y z@
-
-
-glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glRotated = ffidoubledoubledoubledoubleIOV glRotatedFunPtr
-
-glRotatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glRotatedFunPtr = unsafePerformIO (getProcAddress "glRotated")
-
-{-# NOINLINE glRotatedFunPtr #-}
-
--- | Usage: @'glRotatef' angle x y z@
-
-
-glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glRotatef = ffifloatfloatfloatfloatIOV glRotatefFunPtr
-
-glRotatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glRotatefFunPtr = unsafePerformIO (getProcAddress "glRotatef")
-
-{-# NOINLINE glRotatefFunPtr #-}
-
--- | Usage: @'glScaled' x y z@
-
-
-glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glScaled = ffidoubledoubledoubleIOV glScaledFunPtr
-
-glScaledFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glScaledFunPtr = unsafePerformIO (getProcAddress "glScaled")
-
-{-# NOINLINE glScaledFunPtr #-}
-
--- | Usage: @'glScalef' x y z@
-
-
-glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glScalef = ffifloatfloatfloatIOV glScalefFunPtr
-
-glScalefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glScalefFunPtr = unsafePerformIO (getProcAddress "glScalef")
-
-{-# NOINLINE glScalefFunPtr #-}
-
--- | Usage: @'glSecondaryColor3b' red green blue@
---
--- The parameter @red@ is a @ColorB@.
---
--- The parameter @green@ is a @ColorB@.
---
--- The parameter @blue@ is a @ColorB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3bv'.
-
-
-glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
-glSecondaryColor3b = ffibytebytebyteIOV glSecondaryColor3bFunPtr
-
-glSecondaryColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
-glSecondaryColor3bFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3b")
-
-{-# NOINLINE glSecondaryColor3bFunPtr #-}
-
--- | Usage: @'glSecondaryColor3bv' v@
---
--- The parameter @v@ is a @ColorB@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()
-glSecondaryColor3bv = ffiPtrbyteIOV glSecondaryColor3bvFunPtr
-
-glSecondaryColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
-glSecondaryColor3bvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bv")
-
-{-# NOINLINE glSecondaryColor3bvFunPtr #-}
-
--- | Usage: @'glSecondaryColor3d' red green blue@
---
--- The parameter @red@ is a @ColorD@.
---
--- The parameter @green@ is a @ColorD@.
---
--- The parameter @blue@ is a @ColorD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3dv'.
-
-
-glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glSecondaryColor3d = ffidoubledoubledoubleIOV glSecondaryColor3dFunPtr
-
-glSecondaryColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glSecondaryColor3dFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3d")
-
-{-# NOINLINE glSecondaryColor3dFunPtr #-}
-
--- | Usage: @'glSecondaryColor3dv' v@
---
--- The parameter @v@ is a @ColorD@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()
-glSecondaryColor3dv = ffiPtrdoubleIOV glSecondaryColor3dvFunPtr
-
-glSecondaryColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glSecondaryColor3dvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dv")
-
-{-# NOINLINE glSecondaryColor3dvFunPtr #-}
-
--- | Usage: @'glSecondaryColor3f' red green blue@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3fv'.
-
-
-glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glSecondaryColor3f = ffifloatfloatfloatIOV glSecondaryColor3fFunPtr
-
-glSecondaryColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glSecondaryColor3fFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3f")
-
-{-# NOINLINE glSecondaryColor3fFunPtr #-}
-
--- | Usage: @'glSecondaryColor3fv' v@
---
--- The parameter @v@ is a @ColorF@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()
-glSecondaryColor3fv = ffiPtrfloatIOV glSecondaryColor3fvFunPtr
-
-glSecondaryColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glSecondaryColor3fvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fv")
-
-{-# NOINLINE glSecondaryColor3fvFunPtr #-}
-
--- | Usage: @'glSecondaryColor3i' red green blue@
---
--- The parameter @red@ is a @ColorI@.
---
--- The parameter @green@ is a @ColorI@.
---
--- The parameter @blue@ is a @ColorI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3iv'.
-
-
-glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glSecondaryColor3i = ffiintintintIOV glSecondaryColor3iFunPtr
-
-glSecondaryColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glSecondaryColor3iFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3i")
-
-{-# NOINLINE glSecondaryColor3iFunPtr #-}
-
--- | Usage: @'glSecondaryColor3iv' v@
---
--- The parameter @v@ is a @ColorI@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()
-glSecondaryColor3iv = ffiPtrintIOV glSecondaryColor3ivFunPtr
-
-glSecondaryColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glSecondaryColor3ivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iv")
-
-{-# NOINLINE glSecondaryColor3ivFunPtr #-}
-
--- | Usage: @'glSecondaryColor3s' red green blue@
---
--- The parameter @red@ is a @ColorS@.
---
--- The parameter @green@ is a @ColorS@.
---
--- The parameter @blue@ is a @ColorS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3sv'.
-
-
-glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glSecondaryColor3s = ffishortshortshortIOV glSecondaryColor3sFunPtr
-
-glSecondaryColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glSecondaryColor3sFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3s")
-
-{-# NOINLINE glSecondaryColor3sFunPtr #-}
-
--- | Usage: @'glSecondaryColor3sv' v@
---
--- The parameter @v@ is a @ColorS@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()
-glSecondaryColor3sv = ffiPtrshortIOV glSecondaryColor3svFunPtr
-
-glSecondaryColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glSecondaryColor3svFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sv")
-
-{-# NOINLINE glSecondaryColor3svFunPtr #-}
-
--- | Usage: @'glSecondaryColor3ub' red green blue@
---
--- The parameter @red@ is a @ColorUB@.
---
--- The parameter @green@ is a @ColorUB@.
---
--- The parameter @blue@ is a @ColorUB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3ubv'.
-
-
-glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
-glSecondaryColor3ub = ffiubyteubyteubyteIOV glSecondaryColor3ubFunPtr
-
-glSecondaryColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
-glSecondaryColor3ubFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ub")
-
-{-# NOINLINE glSecondaryColor3ubFunPtr #-}
-
--- | Usage: @'glSecondaryColor3ubv' v@
---
--- The parameter @v@ is a @ColorUB@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
-glSecondaryColor3ubv = ffiPtrubyteIOV glSecondaryColor3ubvFunPtr
-
-glSecondaryColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
-glSecondaryColor3ubvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubv")
-
-{-# NOINLINE glSecondaryColor3ubvFunPtr #-}
-
--- | Usage: @'glSecondaryColor3ui' red green blue@
---
--- The parameter @red@ is a @ColorUI@.
---
--- The parameter @green@ is a @ColorUI@.
---
--- The parameter @blue@ is a @ColorUI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3uiv'.
-
-
-glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glSecondaryColor3ui = ffiuintuintuintIOV glSecondaryColor3uiFunPtr
-
-glSecondaryColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glSecondaryColor3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ui")
-
-{-# NOINLINE glSecondaryColor3uiFunPtr #-}
-
--- | Usage: @'glSecondaryColor3uiv' v@
---
--- The parameter @v@ is a @ColorUI@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()
-glSecondaryColor3uiv = ffiPtruintIOV glSecondaryColor3uivFunPtr
-
-glSecondaryColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
-glSecondaryColor3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiv")
-
-{-# NOINLINE glSecondaryColor3uivFunPtr #-}
-
--- | Usage: @'glSecondaryColor3us' red green blue@
---
--- The parameter @red@ is a @ColorUS@.
---
--- The parameter @green@ is a @ColorUS@.
---
--- The parameter @blue@ is a @ColorUS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3usv'.
-
-
-glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
-glSecondaryColor3us = ffiushortushortushortIOV glSecondaryColor3usFunPtr
-
-glSecondaryColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
-glSecondaryColor3usFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3us")
-
-{-# NOINLINE glSecondaryColor3usFunPtr #-}
-
--- | Usage: @'glSecondaryColor3usv' v@
---
--- The parameter @v@ is a @ColorUS@.
---
--- The length of @v@ should be @3@.
-
-
-glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
-glSecondaryColor3usv = ffiPtrushortIOV glSecondaryColor3usvFunPtr
-
-glSecondaryColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
-glSecondaryColor3usvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usv")
-
-{-# NOINLINE glSecondaryColor3usvFunPtr #-}
-
--- | Usage: @'glSecondaryColorPointer' size type stride pointer@
---
--- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glSecondaryColorPointer = ffiintenumsizeiPtrVIOV glSecondaryColorPointerFunPtr
-
-glSecondaryColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glSecondaryColorPointerFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointer")
-
-{-# NOINLINE glSecondaryColorPointerFunPtr #-}
-
--- | Usage: @'glSelectBuffer' size buffer@
---
--- The parameter @buffer@ is a @SelectName@.
---
--- The length of @buffer@ should be @size@.
-
-
-glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glSelectBuffer = ffisizeiPtruintIOV glSelectBufferFunPtr
-
-glSelectBufferFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glSelectBufferFunPtr = unsafePerformIO (getProcAddress "glSelectBuffer")
-
-{-# NOINLINE glSelectBufferFunPtr #-}
-
--- | Usage: @'glShadeModel' mode@
---
--- The parameter @mode@ is a @ShadingModel@, one of: 'Graphics.GL.Internal.Shared.GL_FLAT', 'Graphics.GL.Internal.Shared.GL_SMOOTH'.
-
-
-glShadeModel :: MonadIO m => GLenum -> m ()
-glShadeModel = ffienumIOV glShadeModelFunPtr
-
-glShadeModelFunPtr :: FunPtr (GLenum -> IO ())
-glShadeModelFunPtr = unsafePerformIO (getProcAddress "glShadeModel")
-
-{-# NOINLINE glShadeModelFunPtr #-}
-
--- | Usage: @'glTexCoord1d' s@
---
--- The parameter @s@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1dv'.
-
-
-glTexCoord1d :: MonadIO m => GLdouble -> m ()
-glTexCoord1d = ffidoubleIOV glTexCoord1dFunPtr
-
-glTexCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
-glTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glTexCoord1d")
-
-{-# NOINLINE glTexCoord1dFunPtr #-}
-
--- | Usage: @'glTexCoord1dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @1@.
-
-
-glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord1dv = ffiPtrdoubleIOV glTexCoord1dvFunPtr
-
-glTexCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1dv")
-
-{-# NOINLINE glTexCoord1dvFunPtr #-}
-
--- | Usage: @'glTexCoord1f' s@
---
--- The parameter @s@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1fv'.
-
-
-glTexCoord1f :: MonadIO m => GLfloat -> m ()
-glTexCoord1f = ffifloatIOV glTexCoord1fFunPtr
-
-glTexCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
-glTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glTexCoord1f")
-
-{-# NOINLINE glTexCoord1fFunPtr #-}
-
--- | Usage: @'glTexCoord1fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @1@.
-
-
-glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord1fv = ffiPtrfloatIOV glTexCoord1fvFunPtr
-
-glTexCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1fv")
-
-{-# NOINLINE glTexCoord1fvFunPtr #-}
-
--- | Usage: @'glTexCoord1i' s@
---
--- The parameter @s@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1iv'.
-
-
-glTexCoord1i :: MonadIO m => GLint -> m ()
-glTexCoord1i = ffiintIOV glTexCoord1iFunPtr
-
-glTexCoord1iFunPtr :: FunPtr (GLint -> IO ())
-glTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glTexCoord1i")
-
-{-# NOINLINE glTexCoord1iFunPtr #-}
-
--- | Usage: @'glTexCoord1iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @1@.
-
-
-glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord1iv = ffiPtrintIOV glTexCoord1ivFunPtr
-
-glTexCoord1ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord1iv")
-
-{-# NOINLINE glTexCoord1ivFunPtr #-}
-
--- | Usage: @'glTexCoord1s' s@
---
--- The parameter @s@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1sv'.
-
-
-glTexCoord1s :: MonadIO m => GLshort -> m ()
-glTexCoord1s = ffishortIOV glTexCoord1sFunPtr
-
-glTexCoord1sFunPtr :: FunPtr (GLshort -> IO ())
-glTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glTexCoord1s")
-
-{-# NOINLINE glTexCoord1sFunPtr #-}
-
--- | Usage: @'glTexCoord1sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @1@.
-
-
-glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord1sv = ffiPtrshortIOV glTexCoord1svFunPtr
-
-glTexCoord1svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glTexCoord1sv")
-
-{-# NOINLINE glTexCoord1svFunPtr #-}
-
--- | Usage: @'glTexCoord2d' s t@
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2dv'.
-
-
-glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glTexCoord2d = ffidoubledoubleIOV glTexCoord2dFunPtr
-
-glTexCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glTexCoord2d")
-
-{-# NOINLINE glTexCoord2dFunPtr #-}
-
--- | Usage: @'glTexCoord2dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
-
-
-glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord2dv = ffiPtrdoubleIOV glTexCoord2dvFunPtr
-
-glTexCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2dv")
-
-{-# NOINLINE glTexCoord2dvFunPtr #-}
-
--- | Usage: @'glTexCoord2f' s t@
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2fv'.
-
-
-glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glTexCoord2f = ffifloatfloatIOV glTexCoord2fFunPtr
-
-glTexCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glTexCoord2f")
-
-{-# NOINLINE glTexCoord2fFunPtr #-}
-
--- | Usage: @'glTexCoord2fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
-
-
-glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord2fv = ffiPtrfloatIOV glTexCoord2fvFunPtr
-
-glTexCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fv")
-
-{-# NOINLINE glTexCoord2fvFunPtr #-}
-
--- | Usage: @'glTexCoord2i' s t@
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2iv'.
-
-
-glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()
-glTexCoord2i = ffiintintIOV glTexCoord2iFunPtr
-
-glTexCoord2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glTexCoord2i")
-
-{-# NOINLINE glTexCoord2iFunPtr #-}
-
--- | Usage: @'glTexCoord2iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
-
-
-glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord2iv = ffiPtrintIOV glTexCoord2ivFunPtr
-
-glTexCoord2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord2iv")
-
-{-# NOINLINE glTexCoord2ivFunPtr #-}
-
--- | Usage: @'glTexCoord2s' s t@
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2sv'.
-
-
-glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()
-glTexCoord2s = ffishortshortIOV glTexCoord2sFunPtr
-
-glTexCoord2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glTexCoord2s")
-
-{-# NOINLINE glTexCoord2sFunPtr #-}
-
--- | Usage: @'glTexCoord2sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
-
-
-glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord2sv = ffiPtrshortIOV glTexCoord2svFunPtr
-
-glTexCoord2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glTexCoord2sv")
-
-{-# NOINLINE glTexCoord2svFunPtr #-}
-
--- | Usage: @'glTexCoord3d' s t r@
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The parameter @r@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3dv'.
-
-
-glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glTexCoord3d = ffidoubledoubledoubleIOV glTexCoord3dFunPtr
-
-glTexCoord3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glTexCoord3d")
-
-{-# NOINLINE glTexCoord3dFunPtr #-}
-
--- | Usage: @'glTexCoord3dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord3dv = ffiPtrdoubleIOV glTexCoord3dvFunPtr
-
-glTexCoord3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3dv")
-
-{-# NOINLINE glTexCoord3dvFunPtr #-}
-
--- | Usage: @'glTexCoord3f' s t r@
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The parameter @r@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3fv'.
-
-
-glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord3f = ffifloatfloatfloatIOV glTexCoord3fFunPtr
-
-glTexCoord3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glTexCoord3f")
-
-{-# NOINLINE glTexCoord3fFunPtr #-}
-
--- | Usage: @'glTexCoord3fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord3fv = ffiPtrfloatIOV glTexCoord3fvFunPtr
-
-glTexCoord3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3fv")
-
-{-# NOINLINE glTexCoord3fvFunPtr #-}
-
--- | Usage: @'glTexCoord3i' s t r@
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The parameter @r@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3iv'.
-
-
-glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glTexCoord3i = ffiintintintIOV glTexCoord3iFunPtr
-
-glTexCoord3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glTexCoord3i")
-
-{-# NOINLINE glTexCoord3iFunPtr #-}
-
--- | Usage: @'glTexCoord3iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord3iv = ffiPtrintIOV glTexCoord3ivFunPtr
-
-glTexCoord3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord3iv")
-
-{-# NOINLINE glTexCoord3ivFunPtr #-}
-
--- | Usage: @'glTexCoord3s' s t r@
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The parameter @r@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3sv'.
-
-
-glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glTexCoord3s = ffishortshortshortIOV glTexCoord3sFunPtr
-
-glTexCoord3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glTexCoord3s")
-
-{-# NOINLINE glTexCoord3sFunPtr #-}
-
--- | Usage: @'glTexCoord3sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
-
-
-glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord3sv = ffiPtrshortIOV glTexCoord3svFunPtr
-
-glTexCoord3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glTexCoord3sv")
-
-{-# NOINLINE glTexCoord3svFunPtr #-}
-
--- | Usage: @'glTexCoord4d' s t r q@
---
--- The parameter @s@ is a @CoordD@.
---
--- The parameter @t@ is a @CoordD@.
---
--- The parameter @r@ is a @CoordD@.
---
--- The parameter @q@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4dv'.
-
-
-glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glTexCoord4d = ffidoubledoubledoubledoubleIOV glTexCoord4dFunPtr
-
-glTexCoord4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glTexCoord4d")
-
-{-# NOINLINE glTexCoord4dFunPtr #-}
-
--- | Usage: @'glTexCoord4dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @4@.
-
-
-glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()
-glTexCoord4dv = ffiPtrdoubleIOV glTexCoord4dvFunPtr
-
-glTexCoord4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4dv")
-
-{-# NOINLINE glTexCoord4dvFunPtr #-}
-
--- | Usage: @'glTexCoord4f' s t r q@
---
--- The parameter @s@ is a @CoordF@.
---
--- The parameter @t@ is a @CoordF@.
---
--- The parameter @r@ is a @CoordF@.
---
--- The parameter @q@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4fv'.
-
-
-glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glTexCoord4f = ffifloatfloatfloatfloatIOV glTexCoord4fFunPtr
-
-glTexCoord4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glTexCoord4f")
-
-{-# NOINLINE glTexCoord4fFunPtr #-}
-
--- | Usage: @'glTexCoord4fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @4@.
-
-
-glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()
-glTexCoord4fv = ffiPtrfloatIOV glTexCoord4fvFunPtr
-
-glTexCoord4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fv")
-
-{-# NOINLINE glTexCoord4fvFunPtr #-}
-
--- | Usage: @'glTexCoord4i' s t r q@
---
--- The parameter @s@ is a @CoordI@.
---
--- The parameter @t@ is a @CoordI@.
---
--- The parameter @r@ is a @CoordI@.
---
--- The parameter @q@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4iv'.
-
-
-glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glTexCoord4i = ffiintintintintIOV glTexCoord4iFunPtr
-
-glTexCoord4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glTexCoord4i")
-
-{-# NOINLINE glTexCoord4iFunPtr #-}
-
--- | Usage: @'glTexCoord4iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @4@.
-
-
-glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()
-glTexCoord4iv = ffiPtrintIOV glTexCoord4ivFunPtr
-
-glTexCoord4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord4iv")
-
-{-# NOINLINE glTexCoord4ivFunPtr #-}
-
--- | Usage: @'glTexCoord4s' s t r q@
---
--- The parameter @s@ is a @CoordS@.
---
--- The parameter @t@ is a @CoordS@.
---
--- The parameter @r@ is a @CoordS@.
---
--- The parameter @q@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4sv'.
-
-
-glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glTexCoord4s = ffishortshortshortshortIOV glTexCoord4sFunPtr
-
-glTexCoord4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glTexCoord4s")
-
-{-# NOINLINE glTexCoord4sFunPtr #-}
-
--- | Usage: @'glTexCoord4sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @4@.
-
-
-glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
-glTexCoord4sv = ffiPtrshortIOV glTexCoord4svFunPtr
-
-glTexCoord4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glTexCoord4sv")
-
-{-# NOINLINE glTexCoord4svFunPtr #-}
-
--- | Usage: @'glTexCoordPointer' size type stride pointer@
---
--- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glTexCoordPointer = ffiintenumsizeiPtrVIOV glTexCoordPointerFunPtr
-
-glTexCoordPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glTexCoordPointerFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointer")
-
-{-# NOINLINE glTexCoordPointerFunPtr #-}
-
--- | Usage: @'glTexEnvf' target pname param@
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexEnvf = ffienumenumfloatIOV glTexEnvfFunPtr
-
-glTexEnvfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexEnvfFunPtr = unsafePerformIO (getProcAddress "glTexEnvf")
-
-{-# NOINLINE glTexEnvfFunPtr #-}
-
--- | Usage: @'glTexEnvfv' target pname params@
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexEnvfv = ffienumenumPtrfloatIOV glTexEnvfvFunPtr
-
-glTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glTexEnvfv")
-
-{-# NOINLINE glTexEnvfvFunPtr #-}
-
--- | Usage: @'glTexEnvi' target pname param@
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexEnvi = ffienumenumintIOV glTexEnviFunPtr
-
-glTexEnviFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexEnviFunPtr = unsafePerformIO (getProcAddress "glTexEnvi")
-
-{-# NOINLINE glTexEnviFunPtr #-}
-
--- | Usage: @'glTexEnviv' target pname params@
---
--- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
---
--- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexEnviv = ffienumenumPtrintIOV glTexEnvivFunPtr
-
-glTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexEnvivFunPtr = unsafePerformIO (getProcAddress "glTexEnviv")
-
-{-# NOINLINE glTexEnvivFunPtr #-}
-
--- | Usage: @'glTexGend' coord pname param@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
-
-
-glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()
-glTexGend = ffienumenumdoubleIOV glTexGendFunPtr
-
-glTexGendFunPtr :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())
-glTexGendFunPtr = unsafePerformIO (getProcAddress "glTexGend")
-
-{-# NOINLINE glTexGendFunPtr #-}
-
--- | Usage: @'glTexGendv' coord pname params@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
-glTexGendv = ffienumenumPtrdoubleIOV glTexGendvFunPtr
-
-glTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
-glTexGendvFunPtr = unsafePerformIO (getProcAddress "glTexGendv")
-
-{-# NOINLINE glTexGendvFunPtr #-}
-
--- | Usage: @'glTexGenf' coord pname param@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexGenf = ffienumenumfloatIOV glTexGenfFunPtr
-
-glTexGenfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexGenfFunPtr = unsafePerformIO (getProcAddress "glTexGenf")
-
-{-# NOINLINE glTexGenfFunPtr #-}
-
--- | Usage: @'glTexGenfv' coord pname params@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexGenfv = ffienumenumPtrfloatIOV glTexGenfvFunPtr
-
-glTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexGenfvFunPtr = unsafePerformIO (getProcAddress "glTexGenfv")
-
-{-# NOINLINE glTexGenfvFunPtr #-}
-
--- | Usage: @'glTexGeni' coord pname param@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexGeni = ffienumenumintIOV glTexGeniFunPtr
-
-glTexGeniFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexGeniFunPtr = unsafePerformIO (getProcAddress "glTexGeni")
-
-{-# NOINLINE glTexGeniFunPtr #-}
-
--- | Usage: @'glTexGeniv' coord pname params@
---
--- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
---
--- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexGeniv = ffienumenumPtrintIOV glTexGenivFunPtr
-
-glTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexGenivFunPtr = unsafePerformIO (getProcAddress "glTexGeniv")
-
-{-# NOINLINE glTexGenivFunPtr #-}
-
--- | Usage: @'glTranslated' x y z@
-
-
-glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glTranslated = ffidoubledoubledoubleIOV glTranslatedFunPtr
-
-glTranslatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glTranslatedFunPtr = unsafePerformIO (getProcAddress "glTranslated")
-
-{-# NOINLINE glTranslatedFunPtr #-}
-
--- | Usage: @'glTranslatef' x y z@
-
-
-glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glTranslatef = ffifloatfloatfloatIOV glTranslatefFunPtr
-
-glTranslatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glTranslatefFunPtr = unsafePerformIO (getProcAddress "glTranslatef")
-
-{-# NOINLINE glTranslatefFunPtr #-}
-
--- | Usage: @'glVertex2d' x y@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2dv'.
-
-
-glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glVertex2d = ffidoubledoubleIOV glVertex2dFunPtr
-
-glVertex2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glVertex2dFunPtr = unsafePerformIO (getProcAddress "glVertex2d")
-
-{-# NOINLINE glVertex2dFunPtr #-}
-
--- | Usage: @'glVertex2dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
-
-
-glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()
-glVertex2dv = ffiPtrdoubleIOV glVertex2dvFunPtr
-
-glVertex2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glVertex2dvFunPtr = unsafePerformIO (getProcAddress "glVertex2dv")
-
-{-# NOINLINE glVertex2dvFunPtr #-}
-
--- | Usage: @'glVertex2f' x y@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2fv'.
-
-
-glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glVertex2f = ffifloatfloatIOV glVertex2fFunPtr
-
-glVertex2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glVertex2fFunPtr = unsafePerformIO (getProcAddress "glVertex2f")
-
-{-# NOINLINE glVertex2fFunPtr #-}
-
--- | Usage: @'glVertex2fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
-
-
-glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()
-glVertex2fv = ffiPtrfloatIOV glVertex2fvFunPtr
-
-glVertex2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glVertex2fvFunPtr = unsafePerformIO (getProcAddress "glVertex2fv")
-
-{-# NOINLINE glVertex2fvFunPtr #-}
-
--- | Usage: @'glVertex2i' x y@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2iv'.
-
-
-glVertex2i :: MonadIO m => GLint -> GLint -> m ()
-glVertex2i = ffiintintIOV glVertex2iFunPtr
-
-glVertex2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glVertex2iFunPtr = unsafePerformIO (getProcAddress "glVertex2i")
-
-{-# NOINLINE glVertex2iFunPtr #-}
-
--- | Usage: @'glVertex2iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
-
-
-glVertex2iv :: MonadIO m => Ptr GLint -> m ()
-glVertex2iv = ffiPtrintIOV glVertex2ivFunPtr
-
-glVertex2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glVertex2ivFunPtr = unsafePerformIO (getProcAddress "glVertex2iv")
-
-{-# NOINLINE glVertex2ivFunPtr #-}
-
--- | Usage: @'glVertex2s' x y@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2sv'.
-
-
-glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()
-glVertex2s = ffishortshortIOV glVertex2sFunPtr
-
-glVertex2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glVertex2sFunPtr = unsafePerformIO (getProcAddress "glVertex2s")
-
-{-# NOINLINE glVertex2sFunPtr #-}
-
--- | Usage: @'glVertex2sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
-
-
-glVertex2sv :: MonadIO m => Ptr GLshort -> m ()
-glVertex2sv = ffiPtrshortIOV glVertex2svFunPtr
-
-glVertex2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glVertex2svFunPtr = unsafePerformIO (getProcAddress "glVertex2sv")
-
-{-# NOINLINE glVertex2svFunPtr #-}
-
--- | Usage: @'glVertex3d' x y z@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3dv'.
-
-
-glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glVertex3d = ffidoubledoubledoubleIOV glVertex3dFunPtr
-
-glVertex3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertex3dFunPtr = unsafePerformIO (getProcAddress "glVertex3d")
-
-{-# NOINLINE glVertex3dFunPtr #-}
-
--- | Usage: @'glVertex3dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()
-glVertex3dv = ffiPtrdoubleIOV glVertex3dvFunPtr
-
-glVertex3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glVertex3dvFunPtr = unsafePerformIO (getProcAddress "glVertex3dv")
-
-{-# NOINLINE glVertex3dvFunPtr #-}
-
--- | Usage: @'glVertex3f' x y z@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3fv'.
-
-
-glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glVertex3f = ffifloatfloatfloatIOV glVertex3fFunPtr
-
-glVertex3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertex3fFunPtr = unsafePerformIO (getProcAddress "glVertex3f")
-
-{-# NOINLINE glVertex3fFunPtr #-}
-
--- | Usage: @'glVertex3fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()
-glVertex3fv = ffiPtrfloatIOV glVertex3fvFunPtr
-
-glVertex3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glVertex3fvFunPtr = unsafePerformIO (getProcAddress "glVertex3fv")
-
-{-# NOINLINE glVertex3fvFunPtr #-}
-
--- | Usage: @'glVertex3i' x y z@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3iv'.
-
-
-glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glVertex3i = ffiintintintIOV glVertex3iFunPtr
-
-glVertex3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glVertex3iFunPtr = unsafePerformIO (getProcAddress "glVertex3i")
-
-{-# NOINLINE glVertex3iFunPtr #-}
-
--- | Usage: @'glVertex3iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
-
-
-glVertex3iv :: MonadIO m => Ptr GLint -> m ()
-glVertex3iv = ffiPtrintIOV glVertex3ivFunPtr
-
-glVertex3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glVertex3ivFunPtr = unsafePerformIO (getProcAddress "glVertex3iv")
-
-{-# NOINLINE glVertex3ivFunPtr #-}
-
--- | Usage: @'glVertex3s' x y z@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3sv'.
-
-
-glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glVertex3s = ffishortshortshortIOV glVertex3sFunPtr
-
-glVertex3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glVertex3sFunPtr = unsafePerformIO (getProcAddress "glVertex3s")
-
-{-# NOINLINE glVertex3sFunPtr #-}
-
--- | Usage: @'glVertex3sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
-
-
-glVertex3sv :: MonadIO m => Ptr GLshort -> m ()
-glVertex3sv = ffiPtrshortIOV glVertex3svFunPtr
-
-glVertex3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glVertex3svFunPtr = unsafePerformIO (getProcAddress "glVertex3sv")
-
-{-# NOINLINE glVertex3svFunPtr #-}
-
--- | Usage: @'glVertex4d' x y z w@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- The parameter @w@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4dv'.
-
-
-glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertex4d = ffidoubledoubledoubledoubleIOV glVertex4dFunPtr
-
-glVertex4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertex4dFunPtr = unsafePerformIO (getProcAddress "glVertex4d")
-
-{-# NOINLINE glVertex4dFunPtr #-}
-
--- | Usage: @'glVertex4dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @4@.
-
-
-glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()
-glVertex4dv = ffiPtrdoubleIOV glVertex4dvFunPtr
-
-glVertex4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glVertex4dvFunPtr = unsafePerformIO (getProcAddress "glVertex4dv")
-
-{-# NOINLINE glVertex4dvFunPtr #-}
-
--- | Usage: @'glVertex4f' x y z w@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- The parameter @w@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4fv'.
-
-
-glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertex4f = ffifloatfloatfloatfloatIOV glVertex4fFunPtr
-
-glVertex4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertex4fFunPtr = unsafePerformIO (getProcAddress "glVertex4f")
-
-{-# NOINLINE glVertex4fFunPtr #-}
-
--- | Usage: @'glVertex4fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @4@.
-
-
-glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()
-glVertex4fv = ffiPtrfloatIOV glVertex4fvFunPtr
-
-glVertex4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glVertex4fvFunPtr = unsafePerformIO (getProcAddress "glVertex4fv")
-
-{-# NOINLINE glVertex4fvFunPtr #-}
-
--- | Usage: @'glVertex4i' x y z w@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- The parameter @w@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4iv'.
-
-
-glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glVertex4i = ffiintintintintIOV glVertex4iFunPtr
-
-glVertex4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glVertex4iFunPtr = unsafePerformIO (getProcAddress "glVertex4i")
-
-{-# NOINLINE glVertex4iFunPtr #-}
-
--- | Usage: @'glVertex4iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @4@.
-
-
-glVertex4iv :: MonadIO m => Ptr GLint -> m ()
-glVertex4iv = ffiPtrintIOV glVertex4ivFunPtr
-
-glVertex4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glVertex4ivFunPtr = unsafePerformIO (getProcAddress "glVertex4iv")
-
-{-# NOINLINE glVertex4ivFunPtr #-}
-
--- | Usage: @'glVertex4s' x y z w@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- The parameter @w@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4sv'.
-
-
-glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertex4s = ffishortshortshortshortIOV glVertex4sFunPtr
-
-glVertex4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertex4sFunPtr = unsafePerformIO (getProcAddress "glVertex4s")
-
-{-# NOINLINE glVertex4sFunPtr #-}
-
--- | Usage: @'glVertex4sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @4@.
-
-
-glVertex4sv :: MonadIO m => Ptr GLshort -> m ()
-glVertex4sv = ffiPtrshortIOV glVertex4svFunPtr
-
-glVertex4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glVertex4svFunPtr = unsafePerformIO (getProcAddress "glVertex4sv")
-
-{-# NOINLINE glVertex4svFunPtr #-}
-
--- | Usage: @'glVertexPointer' size type stride pointer@
---
--- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexPointer = ffiintenumsizeiPtrVIOV glVertexPointerFunPtr
-
-glVertexPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexPointerFunPtr = unsafePerformIO (getProcAddress "glVertexPointer")
-
-{-# NOINLINE glVertexPointerFunPtr #-}
-
--- | Usage: @'glWindowPos2d' x y@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2dv'.
-
-
-glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
-glWindowPos2d = ffidoubledoubleIOV glWindowPos2dFunPtr
-
-glWindowPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glWindowPos2dFunPtr = unsafePerformIO (getProcAddress "glWindowPos2d")
-
-{-# NOINLINE glWindowPos2dFunPtr #-}
-
--- | Usage: @'glWindowPos2dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @2@.
-
-
-glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos2dv = ffiPtrdoubleIOV glWindowPos2dvFunPtr
-
-glWindowPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos2dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dv")
-
-{-# NOINLINE glWindowPos2dvFunPtr #-}
-
--- | Usage: @'glWindowPos2f' x y@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2fv'.
-
-
-glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
-glWindowPos2f = ffifloatfloatIOV glWindowPos2fFunPtr
-
-glWindowPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glWindowPos2fFunPtr = unsafePerformIO (getProcAddress "glWindowPos2f")
-
-{-# NOINLINE glWindowPos2fFunPtr #-}
-
--- | Usage: @'glWindowPos2fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @2@.
-
-
-glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos2fv = ffiPtrfloatIOV glWindowPos2fvFunPtr
-
-glWindowPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos2fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fv")
-
-{-# NOINLINE glWindowPos2fvFunPtr #-}
-
--- | Usage: @'glWindowPos2i' x y@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2iv'.
-
-
-glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()
-glWindowPos2i = ffiintintIOV glWindowPos2iFunPtr
-
-glWindowPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glWindowPos2iFunPtr = unsafePerformIO (getProcAddress "glWindowPos2i")
-
-{-# NOINLINE glWindowPos2iFunPtr #-}
-
--- | Usage: @'glWindowPos2iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @2@.
-
-
-glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()
-glWindowPos2iv = ffiPtrintIOV glWindowPos2ivFunPtr
-
-glWindowPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos2ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iv")
-
-{-# NOINLINE glWindowPos2ivFunPtr #-}
-
--- | Usage: @'glWindowPos2s' x y@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2sv'.
-
-
-glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()
-glWindowPos2s = ffishortshortIOV glWindowPos2sFunPtr
-
-glWindowPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
-glWindowPos2sFunPtr = unsafePerformIO (getProcAddress "glWindowPos2s")
-
-{-# NOINLINE glWindowPos2sFunPtr #-}
-
--- | Usage: @'glWindowPos2sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @2@.
-
-
-glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos2sv = ffiPtrshortIOV glWindowPos2svFunPtr
-
-glWindowPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos2svFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sv")
-
-{-# NOINLINE glWindowPos2svFunPtr #-}
-
--- | Usage: @'glWindowPos3d' x y z@
---
--- The parameter @x@ is a @CoordD@.
---
--- The parameter @y@ is a @CoordD@.
---
--- The parameter @z@ is a @CoordD@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3dv'.
-
-
-glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
-glWindowPos3d = ffidoubledoubledoubleIOV glWindowPos3dFunPtr
-
-glWindowPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
-glWindowPos3dFunPtr = unsafePerformIO (getProcAddress "glWindowPos3d")
-
-{-# NOINLINE glWindowPos3dFunPtr #-}
-
--- | Usage: @'glWindowPos3dv' v@
---
--- The parameter @v@ is a @CoordD@.
---
--- The length of @v@ should be @3@.
-
-
-glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()
-glWindowPos3dv = ffiPtrdoubleIOV glWindowPos3dvFunPtr
-
-glWindowPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
-glWindowPos3dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dv")
-
-{-# NOINLINE glWindowPos3dvFunPtr #-}
-
--- | Usage: @'glWindowPos3f' x y z@
---
--- The parameter @x@ is a @CoordF@.
---
--- The parameter @y@ is a @CoordF@.
---
--- The parameter @z@ is a @CoordF@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3fv'.
-
-
-glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
-glWindowPos3f = ffifloatfloatfloatIOV glWindowPos3fFunPtr
-
-glWindowPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
-glWindowPos3fFunPtr = unsafePerformIO (getProcAddress "glWindowPos3f")
-
-{-# NOINLINE glWindowPos3fFunPtr #-}
-
--- | Usage: @'glWindowPos3fv' v@
---
--- The parameter @v@ is a @CoordF@.
---
--- The length of @v@ should be @3@.
-
-
-glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()
-glWindowPos3fv = ffiPtrfloatIOV glWindowPos3fvFunPtr
-
-glWindowPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
-glWindowPos3fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fv")
-
-{-# NOINLINE glWindowPos3fvFunPtr #-}
-
--- | Usage: @'glWindowPos3i' x y z@
---
--- The parameter @x@ is a @CoordI@.
---
--- The parameter @y@ is a @CoordI@.
---
--- The parameter @z@ is a @CoordI@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3iv'.
-
-
-glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glWindowPos3i = ffiintintintIOV glWindowPos3iFunPtr
-
-glWindowPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glWindowPos3iFunPtr = unsafePerformIO (getProcAddress "glWindowPos3i")
-
-{-# NOINLINE glWindowPos3iFunPtr #-}
-
--- | Usage: @'glWindowPos3iv' v@
---
--- The parameter @v@ is a @CoordI@.
---
--- The length of @v@ should be @3@.
-
-
-glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()
-glWindowPos3iv = ffiPtrintIOV glWindowPos3ivFunPtr
-
-glWindowPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
-glWindowPos3ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iv")
-
-{-# NOINLINE glWindowPos3ivFunPtr #-}
-
--- | Usage: @'glWindowPos3s' x y z@
---
--- The parameter @x@ is a @CoordS@.
---
--- The parameter @y@ is a @CoordS@.
---
--- The parameter @z@ is a @CoordS@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3sv'.
-
-
-glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
-glWindowPos3s = ffishortshortshortIOV glWindowPos3sFunPtr
-
-glWindowPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
-glWindowPos3sFunPtr = unsafePerformIO (getProcAddress "glWindowPos3s")
-
-{-# NOINLINE glWindowPos3sFunPtr #-}
-
--- | Usage: @'glWindowPos3sv' v@
---
--- The parameter @v@ is a @CoordS@.
---
--- The length of @v@ should be @3@.
-
-
-glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()
-glWindowPos3sv = ffiPtrshortIOV glWindowPos3svFunPtr
-
-glWindowPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
-glWindowPos3svFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sv")
-
-{-# NOINLINE glWindowPos3svFunPtr #-}
-
-pattern GL_2D = 0x0600
-
-pattern GL_2_BYTES = 0x1407
-
-pattern GL_3D = 0x0601
-
-pattern GL_3D_COLOR = 0x0602
-
-pattern GL_3D_COLOR_TEXTURE = 0x0603
-
-pattern GL_3_BYTES = 0x1408
-
-pattern GL_4D_COLOR_TEXTURE = 0x0604
-
-pattern GL_4_BYTES = 0x1409
-
-pattern GL_ACCUM = 0x0100
-
-pattern GL_ACCUM_ALPHA_BITS = 0x0D5B
-
-pattern GL_ACCUM_BLUE_BITS = 0x0D5A
-
-pattern GL_ACCUM_BUFFER_BIT = 0x00000200
-
-pattern GL_ACCUM_CLEAR_VALUE = 0x0B80
-
-pattern GL_ACCUM_GREEN_BITS = 0x0D59
-
-pattern GL_ACCUM_RED_BITS = 0x0D58
-
-pattern GL_ADD = 0x0104
-
-pattern GL_ADD_SIGNED = 0x8574
-
-pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D
-
-pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-pattern GL_ALPHA12 = 0x803D
-
-pattern GL_ALPHA16 = 0x803E
-
-pattern GL_ALPHA4 = 0x803B
-
-pattern GL_ALPHA8 = 0x803C
-
-pattern GL_ALPHA_BIAS = 0x0D1D
-
-pattern GL_ALPHA_BITS = 0x0D55
-
-pattern GL_ALPHA_INTEGER = 0x8D97
-
-pattern GL_ALPHA_SCALE = 0x0D1C
-
-pattern GL_ALPHA_TEST = 0x0BC0
-
-pattern GL_ALPHA_TEST_FUNC = 0x0BC1
-
-pattern GL_ALPHA_TEST_REF = 0x0BC2
-
-pattern GL_AMBIENT = 0x1200
-
-pattern GL_AMBIENT_AND_DIFFUSE = 0x1602
-
-pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0
-
-pattern GL_AUTO_NORMAL = 0x0D80
-
-pattern GL_AUX0 = 0x0409
-
-pattern GL_AUX1 = 0x040A
-
-pattern GL_AUX2 = 0x040B
-
-pattern GL_AUX3 = 0x040C
-
-pattern GL_AUX_BUFFERS = 0x0C00
-
-pattern GL_BITMAP = 0x1A00
-
-pattern GL_BITMAP_TOKEN = 0x0704
-
-pattern GL_BLUE_BIAS = 0x0D1B
-
-pattern GL_BLUE_BITS = 0x0D54
-
-pattern GL_BLUE_SCALE = 0x0D1A
-
-pattern GL_C3F_V3F = 0x2A24
-
-pattern GL_C4F_N3F_V3F = 0x2A26
-
-pattern GL_C4UB_V2F = 0x2A22
-
-pattern GL_C4UB_V3F = 0x2A23
-
-pattern GL_CLAMP = 0x2900
-
-pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B
-
-pattern GL_CLAMP_VERTEX_COLOR = 0x891A
-
-pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1
-
-pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
-
-pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001
-
-pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
-
-pattern GL_CLIP_PLANE0 = 0x3000
-
-pattern GL_CLIP_PLANE1 = 0x3001
-
-pattern GL_CLIP_PLANE2 = 0x3002
-
-pattern GL_CLIP_PLANE3 = 0x3003
-
-pattern GL_CLIP_PLANE4 = 0x3004
-
-pattern GL_CLIP_PLANE5 = 0x3005
-
-pattern GL_COEFF = 0x0A00
-
-pattern GL_COLOR_ARRAY = 0x8076
-
-pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898
-
-pattern GL_COLOR_ARRAY_POINTER = 0x8090
-
-pattern GL_COLOR_ARRAY_SIZE = 0x8081
-
-pattern GL_COLOR_ARRAY_STRIDE = 0x8083
-
-pattern GL_COLOR_ARRAY_TYPE = 0x8082
-
-pattern GL_COLOR_INDEX = 0x1900
-
-pattern GL_COLOR_INDEXES = 0x1603
-
-pattern GL_COLOR_MATERIAL = 0x0B57
-
-pattern GL_COLOR_MATERIAL_FACE = 0x0B55
-
-pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56
-
-pattern GL_COLOR_SUM = 0x8458
-
-pattern GL_COMBINE = 0x8570
-
-pattern GL_COMBINE_ALPHA = 0x8572
-
-pattern GL_COMBINE_RGB = 0x8571
-
-pattern GL_COMPARE_R_TO_TEXTURE = 0x884E
-
-pattern GL_COMPILE = 0x1300
-
-pattern GL_COMPILE_AND_EXECUTE = 0x1301
-
-pattern GL_COMPRESSED_ALPHA = 0x84E9
-
-pattern GL_COMPRESSED_INTENSITY = 0x84EC
-
-pattern GL_COMPRESSED_LUMINANCE = 0x84EA
-
-pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
-
-pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A
-
-pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
-
-pattern GL_CONSTANT = 0x8576
-
-pattern GL_CONSTANT_ATTENUATION = 0x1207
-
-pattern GL_COORD_REPLACE = 0x8862
-
-pattern GL_COPY_PIXEL_TOKEN = 0x0706
-
-pattern GL_CURRENT_BIT = 0x00000001
-
-pattern GL_CURRENT_COLOR = 0x0B00
-
-pattern GL_CURRENT_FOG_COORD = 0x8453
-
-pattern GL_CURRENT_FOG_COORDINATE = 0x8453
-
-pattern GL_CURRENT_INDEX = 0x0B01
-
-pattern GL_CURRENT_NORMAL = 0x0B02
-
-pattern GL_CURRENT_RASTER_COLOR = 0x0B04
-
-pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09
-
-pattern GL_CURRENT_RASTER_INDEX = 0x0B05
-
-pattern GL_CURRENT_RASTER_POSITION = 0x0B07
-
-pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08
-
-pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
-
-pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
-
-pattern GL_CURRENT_SECONDARY_COLOR = 0x8459
-
-pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03
-
-pattern GL_DECAL = 0x2101
-
-pattern GL_DEPTH_BIAS = 0x0D1F
-
-pattern GL_DEPTH_BITS = 0x0D56
-
-pattern GL_DEPTH_SCALE = 0x0D1E
-
-pattern GL_DEPTH_TEXTURE_MODE = 0x884B
-
-pattern GL_DIFFUSE = 0x1201
-
-pattern GL_DOMAIN = 0x0A02
-
-pattern GL_DOT3_RGB = 0x86AE
-
-pattern GL_DOT3_RGBA = 0x86AF
-
-pattern GL_DRAW_PIXEL_TOKEN = 0x0705
-
-pattern GL_EDGE_FLAG = 0x0B43
-
-pattern GL_EDGE_FLAG_ARRAY = 0x8079
-
-pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
-
-pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093
-
-pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C
-
-pattern GL_EMISSION = 0x1600
-
-pattern GL_ENABLE_BIT = 0x00002000
-
-pattern GL_EVAL_BIT = 0x00010000
-
-pattern GL_EXP = 0x0800
-
-pattern GL_EXP2 = 0x0801
-
-pattern GL_EYE_LINEAR = 0x2400
-
-pattern GL_EYE_PLANE = 0x2502
-
-pattern GL_FEEDBACK = 0x1C01
-
-pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0
-
-pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1
-
-pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2
-
-pattern GL_FLAT = 0x1D00
-
-pattern GL_FOG = 0x0B60
-
-pattern GL_FOG_BIT = 0x00000080
-
-pattern GL_FOG_COLOR = 0x0B66
-
-pattern GL_FOG_COORD = 0x8451
-
-pattern GL_FOG_COORDINATE = 0x8451
-
-pattern GL_FOG_COORDINATE_ARRAY = 0x8457
-
-pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
-
-pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456
-
-pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
-
-pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454
-
-pattern GL_FOG_COORDINATE_SOURCE = 0x8450
-
-pattern GL_FOG_COORD_ARRAY = 0x8457
-
-pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
-
-pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456
-
-pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455
-
-pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454
-
-pattern GL_FOG_COORD_SRC = 0x8450
-
-pattern GL_FOG_DENSITY = 0x0B62
-
-pattern GL_FOG_END = 0x0B64
-
-pattern GL_FOG_HINT = 0x0C54
-
-pattern GL_FOG_INDEX = 0x0B61
-
-pattern GL_FOG_MODE = 0x0B65
-
-pattern GL_FOG_START = 0x0B63
-
-pattern GL_FRAGMENT_DEPTH = 0x8452
-
-pattern GL_GENERATE_MIPMAP = 0x8191
-
-pattern GL_GENERATE_MIPMAP_HINT = 0x8192
-
-pattern GL_GREEN_BIAS = 0x0D19
-
-pattern GL_GREEN_BITS = 0x0D53
-
-pattern GL_GREEN_SCALE = 0x0D18
-
-pattern GL_HINT_BIT = 0x00008000
-
-pattern GL_INDEX_ARRAY = 0x8077
-
-pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899
-
-pattern GL_INDEX_ARRAY_POINTER = 0x8091
-
-pattern GL_INDEX_ARRAY_STRIDE = 0x8086
-
-pattern GL_INDEX_ARRAY_TYPE = 0x8085
-
-pattern GL_INDEX_BITS = 0x0D51
-
-pattern GL_INDEX_CLEAR_VALUE = 0x0C20
-
-pattern GL_INDEX_LOGIC_OP = 0x0BF1
-
-pattern GL_INDEX_MODE = 0x0C30
-
-pattern GL_INDEX_OFFSET = 0x0D13
-
-pattern GL_INDEX_SHIFT = 0x0D12
-
-pattern GL_INDEX_WRITEMASK = 0x0C21
-
-pattern GL_INTENSITY = 0x8049
-
-pattern GL_INTENSITY12 = 0x804C
-
-pattern GL_INTENSITY16 = 0x804D
-
-pattern GL_INTENSITY4 = 0x804A
-
-pattern GL_INTENSITY8 = 0x804B
-
-pattern GL_INTERPOLATE = 0x8575
-
-pattern GL_LIGHT0 = 0x4000
-
-pattern GL_LIGHT1 = 0x4001
-
-pattern GL_LIGHT2 = 0x4002
-
-pattern GL_LIGHT3 = 0x4003
-
-pattern GL_LIGHT4 = 0x4004
-
-pattern GL_LIGHT5 = 0x4005
-
-pattern GL_LIGHT6 = 0x4006
-
-pattern GL_LIGHT7 = 0x4007
-
-pattern GL_LIGHTING = 0x0B50
-
-pattern GL_LIGHTING_BIT = 0x00000040
-
-pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53
-
-pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
-
-pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
-
-pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52
-
-pattern GL_LINEAR_ATTENUATION = 0x1208
-
-pattern GL_LINE_BIT = 0x00000004
-
-pattern GL_LINE_RESET_TOKEN = 0x0707
-
-pattern GL_LINE_STIPPLE = 0x0B24
-
-pattern GL_LINE_STIPPLE_PATTERN = 0x0B25
-
-pattern GL_LINE_STIPPLE_REPEAT = 0x0B26
-
-pattern GL_LINE_TOKEN = 0x0702
-
-pattern GL_LIST_BASE = 0x0B32
-
-pattern GL_LIST_BIT = 0x00020000
-
-pattern GL_LIST_INDEX = 0x0B33
-
-pattern GL_LIST_MODE = 0x0B30
-
-pattern GL_LOAD = 0x0101
-
-pattern GL_LOGIC_OP = 0x0BF1
-
-pattern GL_LUMINANCE = 0x1909
-
-pattern GL_LUMINANCE12 = 0x8041
-
-pattern GL_LUMINANCE12_ALPHA12 = 0x8047
-
-pattern GL_LUMINANCE12_ALPHA4 = 0x8046
-
-pattern GL_LUMINANCE16 = 0x8042
-
-pattern GL_LUMINANCE16_ALPHA16 = 0x8048
-
-pattern GL_LUMINANCE4 = 0x803F
-
-pattern GL_LUMINANCE4_ALPHA4 = 0x8043
-
-pattern GL_LUMINANCE6_ALPHA2 = 0x8044
-
-pattern GL_LUMINANCE8 = 0x8040
-
-pattern GL_LUMINANCE8_ALPHA8 = 0x8045
-
-pattern GL_LUMINANCE_ALPHA = 0x190A
-
-pattern GL_MAP1_COLOR_4 = 0x0D90
-
-pattern GL_MAP1_GRID_DOMAIN = 0x0DD0
-
-pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1
-
-pattern GL_MAP1_INDEX = 0x0D91
-
-pattern GL_MAP1_NORMAL = 0x0D92
-
-pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93
-
-pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94
-
-pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95
-
-pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96
-
-pattern GL_MAP1_VERTEX_3 = 0x0D97
-
-pattern GL_MAP1_VERTEX_4 = 0x0D98
-
-pattern GL_MAP2_COLOR_4 = 0x0DB0
-
-pattern GL_MAP2_GRID_DOMAIN = 0x0DD2
-
-pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3
-
-pattern GL_MAP2_INDEX = 0x0DB1
-
-pattern GL_MAP2_NORMAL = 0x0DB2
-
-pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3
-
-pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4
-
-pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5
-
-pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6
-
-pattern GL_MAP2_VERTEX_3 = 0x0DB7
-
-pattern GL_MAP2_VERTEX_4 = 0x0DB8
-
-pattern GL_MAP_COLOR = 0x0D10
-
-pattern GL_MAP_STENCIL = 0x0D11
-
-pattern GL_MATRIX_MODE = 0x0BA0
-
-pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35
-
-pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
-
-pattern GL_MAX_CLIP_PLANES = 0x0D32
-
-pattern GL_MAX_EVAL_ORDER = 0x0D30
-
-pattern GL_MAX_LIGHTS = 0x0D31
-
-pattern GL_MAX_LIST_NESTING = 0x0B31
-
-pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
-
-pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37
-
-pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34
-
-pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38
-
-pattern GL_MAX_TEXTURE_COORDS = 0x8871
-
-pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39
-
-pattern GL_MAX_TEXTURE_UNITS = 0x84E2
-
-pattern GL_MODELVIEW = 0x1700
-
-pattern GL_MODELVIEW_MATRIX = 0x0BA6
-
-pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3
-
-pattern GL_MODULATE = 0x2100
-
-pattern GL_MULT = 0x0103
-
-pattern GL_MULTISAMPLE_BIT = 0x20000000
-
-pattern GL_N3F_V3F = 0x2A25
-
-pattern GL_NAME_STACK_DEPTH = 0x0D70
-
-pattern GL_NORMALIZE = 0x0BA1
-
-pattern GL_NORMAL_ARRAY = 0x8075
-
-pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
-
-pattern GL_NORMAL_ARRAY_POINTER = 0x808F
-
-pattern GL_NORMAL_ARRAY_STRIDE = 0x807F
-
-pattern GL_NORMAL_ARRAY_TYPE = 0x807E
-
-pattern GL_NORMAL_MAP = 0x8511
-
-pattern GL_OBJECT_LINEAR = 0x2401
-
-pattern GL_OBJECT_PLANE = 0x2501
-
-pattern GL_OPERAND0_ALPHA = 0x8598
-
-pattern GL_OPERAND0_RGB = 0x8590
-
-pattern GL_OPERAND1_ALPHA = 0x8599
-
-pattern GL_OPERAND1_RGB = 0x8591
-
-pattern GL_OPERAND2_ALPHA = 0x859A
-
-pattern GL_OPERAND2_RGB = 0x8592
-
-pattern GL_ORDER = 0x0A01
-
-pattern GL_PASS_THROUGH_TOKEN = 0x0700
-
-pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50
-
-pattern GL_PIXEL_MAP_A_TO_A = 0x0C79
-
-pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
-
-pattern GL_PIXEL_MAP_B_TO_B = 0x0C78
-
-pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
-
-pattern GL_PIXEL_MAP_G_TO_G = 0x0C77
-
-pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
-
-pattern GL_PIXEL_MAP_I_TO_A = 0x0C75
-
-pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
-
-pattern GL_PIXEL_MAP_I_TO_B = 0x0C74
-
-pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
-
-pattern GL_PIXEL_MAP_I_TO_G = 0x0C73
-
-pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
-
-pattern GL_PIXEL_MAP_I_TO_I = 0x0C70
-
-pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
-
-pattern GL_PIXEL_MAP_I_TO_R = 0x0C72
-
-pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
-
-pattern GL_PIXEL_MAP_R_TO_R = 0x0C76
-
-pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
-
-pattern GL_PIXEL_MAP_S_TO_S = 0x0C71
-
-pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
-
-pattern GL_PIXEL_MODE_BIT = 0x00000020
-
-pattern GL_POINT_BIT = 0x00000002
-
-pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129
-
-pattern GL_POINT_SIZE_MAX = 0x8127
-
-pattern GL_POINT_SIZE_MIN = 0x8126
-
-pattern GL_POINT_SMOOTH = 0x0B10
-
-pattern GL_POINT_SMOOTH_HINT = 0x0C51
-
-pattern GL_POINT_SPRITE = 0x8861
-
-pattern GL_POINT_TOKEN = 0x0701
-
-pattern GL_POLYGON = 0x0009
-
-pattern GL_POLYGON_BIT = 0x00000008
-
-pattern GL_POLYGON_STIPPLE = 0x0B42
-
-pattern GL_POLYGON_STIPPLE_BIT = 0x00000010
-
-pattern GL_POLYGON_TOKEN = 0x0703
-
-pattern GL_POSITION = 0x1203
-
-pattern GL_PREVIOUS = 0x8578
-
-pattern GL_PRIMARY_COLOR = 0x8577
-
-pattern GL_PROJECTION = 0x1701
-
-pattern GL_PROJECTION_MATRIX = 0x0BA7
-
-pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4
-
-pattern GL_Q = 0x2003
-
-pattern GL_QUADRATIC_ATTENUATION = 0x1209
-
-pattern GL_QUADS = 0x0007
-
-pattern GL_QUAD_STRIP = 0x0008
-
-pattern GL_R = 0x2002
-
-pattern GL_RED_BIAS = 0x0D15
-
-pattern GL_RED_BITS = 0x0D52
-
-pattern GL_RED_SCALE = 0x0D14
-
-pattern GL_REFLECTION_MAP = 0x8512
-
-pattern GL_RENDER = 0x1C00
-
-pattern GL_RENDER_MODE = 0x0C40
-
-pattern GL_RESCALE_NORMAL = 0x803A
-
-pattern GL_RETURN = 0x0102
-
-pattern GL_RGBA_MODE = 0x0C31
-
-pattern GL_RGB_SCALE = 0x8573
-
-pattern GL_S = 0x2000
-
-pattern GL_SCISSOR_BIT = 0x00080000
-
-pattern GL_SECONDARY_COLOR_ARRAY = 0x845E
-
-pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
-
-pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
-
-pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
-
-pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
-
-pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
-
-pattern GL_SELECT = 0x1C02
-
-pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3
-
-pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4
-
-pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA
-
-pattern GL_SHADE_MODEL = 0x0B54
-
-pattern GL_SHININESS = 0x1601
-
-pattern GL_SINGLE_COLOR = 0x81F9
-
-pattern GL_SLUMINANCE = 0x8C46
-
-pattern GL_SLUMINANCE8 = 0x8C47
-
-pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45
-
-pattern GL_SLUMINANCE_ALPHA = 0x8C44
-
-pattern GL_SMOOTH = 0x1D01
-
-pattern GL_SOURCE0_ALPHA = 0x8588
-
-pattern GL_SOURCE0_RGB = 0x8580
-
-pattern GL_SOURCE1_ALPHA = 0x8589
-
-pattern GL_SOURCE1_RGB = 0x8581
-
-pattern GL_SOURCE2_ALPHA = 0x858A
-
-pattern GL_SOURCE2_RGB = 0x8582
-
-pattern GL_SPECULAR = 0x1202
-
-pattern GL_SPHERE_MAP = 0x2402
-
-pattern GL_SPOT_CUTOFF = 0x1206
-
-pattern GL_SPOT_DIRECTION = 0x1204
-
-pattern GL_SPOT_EXPONENT = 0x1205
-
-pattern GL_SRC0_ALPHA = 0x8588
-
-pattern GL_SRC0_RGB = 0x8580
-
-pattern GL_SRC1_RGB = 0x8581
-
-pattern GL_SRC2_ALPHA = 0x858A
-
-pattern GL_SRC2_RGB = 0x8582
-
-pattern GL_STACK_OVERFLOW = 0x0503
-
-pattern GL_STACK_UNDERFLOW = 0x0504
-
-pattern GL_STENCIL_BITS = 0x0D57
-
-pattern GL_SUBTRACT = 0x84E7
-
-pattern GL_T = 0x2001
-
-pattern GL_T2F_C3F_V3F = 0x2A2A
-
-pattern GL_T2F_C4F_N3F_V3F = 0x2A2C
-
-pattern GL_T2F_C4UB_V3F = 0x2A29
-
-pattern GL_T2F_N3F_V3F = 0x2A2B
-
-pattern GL_T2F_V3F = 0x2A27
-
-pattern GL_T4F_C4F_N3F_V4F = 0x2A2D
-
-pattern GL_T4F_V4F = 0x2A28
-
-pattern GL_TEXTURE_BIT = 0x00040000
-
-pattern GL_TEXTURE_BORDER = 0x1005
-
-pattern GL_TEXTURE_COMPONENTS = 0x1003
-
-pattern GL_TEXTURE_COORD_ARRAY = 0x8078
-
-pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
-
-pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092
-
-pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088
-
-pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
-
-pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089
-
-pattern GL_TEXTURE_ENV = 0x2300
-
-pattern GL_TEXTURE_ENV_COLOR = 0x2201
-
-pattern GL_TEXTURE_ENV_MODE = 0x2200
-
-pattern GL_TEXTURE_FILTER_CONTROL = 0x8500
-
-pattern GL_TEXTURE_GEN_MODE = 0x2500
-
-pattern GL_TEXTURE_GEN_Q = 0x0C63
-
-pattern GL_TEXTURE_GEN_R = 0x0C62
-
-pattern GL_TEXTURE_GEN_S = 0x0C60
-
-pattern GL_TEXTURE_GEN_T = 0x0C61
-
-pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061
-
-pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15
-
-pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060
-
-pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14
-
-pattern GL_TEXTURE_MATRIX = 0x0BA8
-
-pattern GL_TEXTURE_PRIORITY = 0x8066
-
-pattern GL_TEXTURE_RESIDENT = 0x8067
-
-pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5
-
-pattern GL_TRANSFORM_BIT = 0x00001000
-
-pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6
-
-pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
-
-pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
-
-pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
-
-pattern GL_V2F = 0x2A20
-
-pattern GL_V3F = 0x2A21
-
-pattern GL_VERTEX_ARRAY = 0x8074
-
-pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
-
-pattern GL_VERTEX_ARRAY_POINTER = 0x808E
-
-pattern GL_VERTEX_ARRAY_SIZE = 0x807A
-
-pattern GL_VERTEX_ARRAY_STRIDE = 0x807C
-
-pattern GL_VERTEX_ARRAY_TYPE = 0x807B
-
-pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643
-
-pattern GL_VIEWPORT_BIT = 0x00000800
-
-pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
-
-pattern GL_ZOOM_X = 0x0D16
-
-pattern GL_ZOOM_Y = 0x0D17
-
--- | Usage: @'glColorP3ui' type color@
-
-
-glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glColorP3ui = ffienumuintIOV glColorP3uiFunPtr
-
-glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glColorP3uiFunPtr = unsafePerformIO (getProcAddress "glColorP3ui")
-
-{-# NOINLINE glColorP3uiFunPtr #-}
-
--- | Usage: @'glColorP3uiv' type color@
---
--- The length of @color@ should be @1@.
-
-
-glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glColorP3uiv = ffienumPtruintIOV glColorP3uivFunPtr
-
-glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glColorP3uivFunPtr = unsafePerformIO (getProcAddress "glColorP3uiv")
-
-{-# NOINLINE glColorP3uivFunPtr #-}
-
--- | Usage: @'glColorP4ui' type color@
-
-
-glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glColorP4ui = ffienumuintIOV glColorP4uiFunPtr
-
-glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glColorP4uiFunPtr = unsafePerformIO (getProcAddress "glColorP4ui")
-
-{-# NOINLINE glColorP4uiFunPtr #-}
-
--- | Usage: @'glColorP4uiv' type color@
---
--- The length of @color@ should be @1@.
-
-
-glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glColorP4uiv = ffienumPtruintIOV glColorP4uivFunPtr
-
-glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glColorP4uivFunPtr = unsafePerformIO (getProcAddress "glColorP4uiv")
-
-{-# NOINLINE glColorP4uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP1ui' texture type coords@
-
-
-glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP1ui = ffienumenumuintIOV glMultiTexCoordP1uiFunPtr
-
-glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1ui")
-
-{-# NOINLINE glMultiTexCoordP1uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP1uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP1uiv = ffienumenumPtruintIOV glMultiTexCoordP1uivFunPtr
-
-glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1uiv")
-
-{-# NOINLINE glMultiTexCoordP1uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP2ui' texture type coords@
-
-
-glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP2ui = ffienumenumuintIOV glMultiTexCoordP2uiFunPtr
-
-glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2ui")
-
-{-# NOINLINE glMultiTexCoordP2uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP2uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP2uiv = ffienumenumPtruintIOV glMultiTexCoordP2uivFunPtr
-
-glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2uiv")
-
-{-# NOINLINE glMultiTexCoordP2uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP3ui' texture type coords@
-
-
-glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP3ui = ffienumenumuintIOV glMultiTexCoordP3uiFunPtr
-
-glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3ui")
-
-{-# NOINLINE glMultiTexCoordP3uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP3uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP3uiv = ffienumenumPtruintIOV glMultiTexCoordP3uivFunPtr
-
-glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3uiv")
-
-{-# NOINLINE glMultiTexCoordP3uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP4ui' texture type coords@
-
-
-glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP4ui = ffienumenumuintIOV glMultiTexCoordP4uiFunPtr
-
-glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4ui")
-
-{-# NOINLINE glMultiTexCoordP4uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP4uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP4uiv = ffienumenumPtruintIOV glMultiTexCoordP4uivFunPtr
-
-glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4uiv")
-
-{-# NOINLINE glMultiTexCoordP4uivFunPtr #-}
-
--- | Usage: @'glNormalP3ui' type coords@
-
-
-glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glNormalP3ui = ffienumuintIOV glNormalP3uiFunPtr
-
-glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glNormalP3uiFunPtr = unsafePerformIO (getProcAddress "glNormalP3ui")
-
-{-# NOINLINE glNormalP3uiFunPtr #-}
-
--- | Usage: @'glNormalP3uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glNormalP3uiv = ffienumPtruintIOV glNormalP3uivFunPtr
-
-glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glNormalP3uivFunPtr = unsafePerformIO (getProcAddress "glNormalP3uiv")
-
-{-# NOINLINE glNormalP3uivFunPtr #-}
-
--- | Usage: @'glSecondaryColorP3ui' type color@
-
-
-glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glSecondaryColorP3ui = ffienumuintIOV glSecondaryColorP3uiFunPtr
-
-glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glSecondaryColorP3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3ui")
-
-{-# NOINLINE glSecondaryColorP3uiFunPtr #-}
-
--- | Usage: @'glSecondaryColorP3uiv' type color@
---
--- The length of @color@ should be @1@.
-
-
-glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glSecondaryColorP3uiv = ffienumPtruintIOV glSecondaryColorP3uivFunPtr
-
-glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glSecondaryColorP3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3uiv")
-
-{-# NOINLINE glSecondaryColorP3uivFunPtr #-}
-
--- | Usage: @'glTexCoordP1ui' type coords@
-
-
-glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP1ui = ffienumuintIOV glTexCoordP1uiFunPtr
-
-glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1ui")
-
-{-# NOINLINE glTexCoordP1uiFunPtr #-}
-
--- | Usage: @'glTexCoordP1uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP1uiv = ffienumPtruintIOV glTexCoordP1uivFunPtr
-
-glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1uiv")
-
-{-# NOINLINE glTexCoordP1uivFunPtr #-}
-
--- | Usage: @'glTexCoordP2ui' type coords@
-
-
-glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP2ui = ffienumuintIOV glTexCoordP2uiFunPtr
-
-glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2ui")
-
-{-# NOINLINE glTexCoordP2uiFunPtr #-}
-
--- | Usage: @'glTexCoordP2uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP2uiv = ffienumPtruintIOV glTexCoordP2uivFunPtr
-
-glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2uiv")
-
-{-# NOINLINE glTexCoordP2uivFunPtr #-}
-
--- | Usage: @'glTexCoordP3ui' type coords@
-
-
-glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP3ui = ffienumuintIOV glTexCoordP3uiFunPtr
-
-glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3ui")
-
-{-# NOINLINE glTexCoordP3uiFunPtr #-}
-
--- | Usage: @'glTexCoordP3uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP3uiv = ffienumPtruintIOV glTexCoordP3uivFunPtr
-
-glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3uiv")
-
-{-# NOINLINE glTexCoordP3uivFunPtr #-}
-
--- | Usage: @'glTexCoordP4ui' type coords@
-
-
-glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP4ui = ffienumuintIOV glTexCoordP4uiFunPtr
-
-glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4ui")
-
-{-# NOINLINE glTexCoordP4uiFunPtr #-}
-
--- | Usage: @'glTexCoordP4uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP4uiv = ffienumPtruintIOV glTexCoordP4uivFunPtr
-
-glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4uiv")
-
-{-# NOINLINE glTexCoordP4uivFunPtr #-}
-
--- | Usage: @'glVertexP2ui' type value@
-
-
-glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP2ui = ffienumuintIOV glVertexP2uiFunPtr
-
-glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexP2ui")
-
-{-# NOINLINE glVertexP2uiFunPtr #-}
-
--- | Usage: @'glVertexP2uiv' type value@
---
--- The length of @value@ should be @1@.
-
-
-glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP2uiv = ffienumPtruintIOV glVertexP2uivFunPtr
-
-glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexP2uiv")
-
-{-# NOINLINE glVertexP2uivFunPtr #-}
-
--- | Usage: @'glVertexP3ui' type value@
-
-
-glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP3ui = ffienumuintIOV glVertexP3uiFunPtr
-
-glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexP3ui")
-
-{-# NOINLINE glVertexP3uiFunPtr #-}
-
--- | Usage: @'glVertexP3uiv' type value@
---
--- The length of @value@ should be @1@.
-
-
-glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP3uiv = ffienumPtruintIOV glVertexP3uivFunPtr
-
-glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexP3uiv")
-
-{-# NOINLINE glVertexP3uivFunPtr #-}
-
--- | Usage: @'glVertexP4ui' type value@
-
-
-glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP4ui = ffienumuintIOV glVertexP4uiFunPtr
-
-glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexP4ui")
-
-{-# NOINLINE glVertexP4uiFunPtr #-}
-
--- | Usage: @'glVertexP4uiv' type value@
---
--- The length of @value@ should be @1@.
-
-
-glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP4uiv = ffienumPtruintIOV glVertexP4uivFunPtr
-
-glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexP4uiv")
-
-{-# NOINLINE glVertexP4uivFunPtr #-}
-
-pattern GL_DISPLAY_LIST = 0x82E7
-
--- | Usage: @'glActiveTexture' texture@
---
--- The parameter @texture@ is a @TextureUnit@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml>
-
-
-glActiveTexture :: MonadIO m => GLenum -> m ()
-glActiveTexture = ffienumIOV glActiveTextureFunPtr
-
-glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
-glActiveTextureFunPtr = unsafePerformIO (getProcAddress "glActiveTexture")
-
-{-# NOINLINE glActiveTextureFunPtr #-}
-
--- | Usage: @'glAttachShader' program shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml>
-
-
-glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
-glAttachShader = ffiuintuintIOV glAttachShaderFunPtr
-
-glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glAttachShaderFunPtr = unsafePerformIO (getProcAddress "glAttachShader")
-
-{-# NOINLINE glAttachShaderFunPtr #-}
-
--- | Usage: @'glBeginConditionalRender' id mode@
---
--- The parameter @mode@ is a @TypeEnum@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml>
-
-
-glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
-glBeginConditionalRender = ffiuintenumIOV glBeginConditionalRenderFunPtr
-
-glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBeginConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRender")
-
-{-# NOINLINE glBeginConditionalRenderFunPtr #-}
-
--- | Usage: @'glBeginQuery' target id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml>
-
-
-glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
-glBeginQuery = ffienumuintIOV glBeginQueryFunPtr
-
-glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBeginQueryFunPtr = unsafePerformIO (getProcAddress "glBeginQuery")
-
-{-# NOINLINE glBeginQueryFunPtr #-}
-
--- | Usage: @'glBeginTransformFeedback' primitiveMode@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml>
-
-
-glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
-glBeginTransformFeedback = ffienumIOV glBeginTransformFeedbackFunPtr
-
-glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())
-glBeginTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedback")
-
-{-# NOINLINE glBeginTransformFeedbackFunPtr #-}
-
--- | Usage: @'glBindAttribLocation' program index name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml>
-
-
-glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindAttribLocation = ffiuintuintPtrcharIOV glBindAttribLocationFunPtr
-
-glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindAttribLocationFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocation")
-
-{-# NOINLINE glBindAttribLocationFunPtr #-}
-
--- | Usage: @'glBindBuffer' target buffer@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml>
-
-
-glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindBuffer = ffienumuintIOV glBindBufferFunPtr
-
-glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindBufferFunPtr = unsafePerformIO (getProcAddress "glBindBuffer")
-
-{-# NOINLINE glBindBufferFunPtr #-}
-
--- | Usage: @'glBindBufferBase' target index buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml>
-
-
-glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBindBufferBase = ffienumuintuintIOV glBindBufferBaseFunPtr
-
-glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBindBufferBaseFunPtr = unsafePerformIO (getProcAddress "glBindBufferBase")
-
-{-# NOINLINE glBindBufferBaseFunPtr #-}
-
--- | Usage: @'glBindBufferRange' target index buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml>
-
-
-glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glBindBufferRange = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeFunPtr
-
-glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glBindBufferRangeFunPtr = unsafePerformIO (getProcAddress "glBindBufferRange")
-
-{-# NOINLINE glBindBufferRangeFunPtr #-}
-
--- | Usage: @'glBindFragDataLocation' program color name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml>
-
-
-glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocation = ffiuintuintPtrcharIOV glBindFragDataLocationFunPtr
-
-glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocation")
-
-{-# NOINLINE glBindFragDataLocationFunPtr #-}
-
--- | Usage: @'glBindFramebuffer' target framebuffer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml>
-
-
-glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindFramebuffer = ffienumuintIOV glBindFramebufferFunPtr
-
-glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindFramebufferFunPtr = unsafePerformIO (getProcAddress "glBindFramebuffer")
-
-{-# NOINLINE glBindFramebufferFunPtr #-}
-
--- | Usage: @'glBindRenderbuffer' target renderbuffer@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml>
-
-
-glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindRenderbuffer = ffienumuintIOV glBindRenderbufferFunPtr
-
-glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindRenderbufferFunPtr = unsafePerformIO (getProcAddress "glBindRenderbuffer")
-
-{-# NOINLINE glBindRenderbufferFunPtr #-}
-
--- | Usage: @'glBindTexture' target texture@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @texture@ is a @Texture@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml>
-
-
-glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTexture = ffienumuintIOV glBindTextureFunPtr
-
-glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTextureFunPtr = unsafePerformIO (getProcAddress "glBindTexture")
-
-{-# NOINLINE glBindTextureFunPtr #-}
-
--- | Usage: @'glBindVertexArray' array@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml>
-
-
-glBindVertexArray :: MonadIO m => GLuint -> m ()
-glBindVertexArray = ffiuintIOV glBindVertexArrayFunPtr
-
-glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())
-glBindVertexArrayFunPtr = unsafePerformIO (getProcAddress "glBindVertexArray")
-
-{-# NOINLINE glBindVertexArrayFunPtr #-}
-
--- | Usage: @'glBlendColor' red green blue alpha@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The parameter @alpha@ is a @ColorF@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml>
-
-
-glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glBlendColor = ffifloatfloatfloatfloatIOV glBlendColorFunPtr
-
-glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glBlendColorFunPtr = unsafePerformIO (getProcAddress "glBlendColor")
-
-{-# NOINLINE glBlendColorFunPtr #-}
-
--- | Usage: @'glBlendEquation' mode@
---
--- The parameter @mode@ is a @BlendEquationMode@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml>
-
-
-glBlendEquation :: MonadIO m => GLenum -> m ()
-glBlendEquation = ffienumIOV glBlendEquationFunPtr
-
-glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())
-glBlendEquationFunPtr = unsafePerformIO (getProcAddress "glBlendEquation")
-
-{-# NOINLINE glBlendEquationFunPtr #-}
-
--- | Usage: @'glBlendEquationSeparate' modeRGB modeAlpha@
---
--- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
---
--- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml>
-
-
-glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendEquationSeparate = ffienumenumIOV glBlendEquationSeparateFunPtr
-
-glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendEquationSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparate")
-
-{-# NOINLINE glBlendEquationSeparateFunPtr #-}
-
--- | Usage: @'glBlendFunc' sfactor dfactor@
---
--- The parameter @sfactor@ is a @BlendingFactorSrc@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA_SATURATE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dfactor@ is a @BlendingFactorDest@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml>
-
-
-glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendFunc = ffienumenumIOV glBlendFuncFunPtr
-
-glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendFuncFunPtr = unsafePerformIO (getProcAddress "glBlendFunc")
-
-{-# NOINLINE glBlendFuncFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparate' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
---
--- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml>
-
-
-glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparate = ffienumenumenumenumIOV glBlendFuncSeparateFunPtr
-
-glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparate")
-
-{-# NOINLINE glBlendFuncSeparateFunPtr #-}
-
--- | Usage: @'glBlitFramebuffer' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
---
--- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml>
-
-
-glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitFramebuffer = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferFunPtr
-
-glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitFramebuffer")
-
-{-# NOINLINE glBlitFramebufferFunPtr #-}
-
--- | Usage: @'glBufferData' target size data usage@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The parameter @usage@ is a @BufferUsageARB@.
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml>
-
-
-glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-glBufferData = ffienumsizeiptrPtrVenumIOV glBufferDataFunPtr
-
-glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
-glBufferDataFunPtr = unsafePerformIO (getProcAddress "glBufferData")
-
-{-# NOINLINE glBufferDataFunPtr #-}
-
--- | Usage: @'glBufferSubData' target offset size data@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml>
-
-
-glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glBufferSubData = ffienumintptrsizeiptrPtrVIOV glBufferSubDataFunPtr
-
-glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glBufferSubData")
-
-{-# NOINLINE glBufferSubDataFunPtr #-}
-
--- | Usage: @'glCheckFramebufferStatus' target@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml>
-
-
-glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
-glCheckFramebufferStatus = ffienumIOenum glCheckFramebufferStatusFunPtr
-
-glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)
-glCheckFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatus")
-
-{-# NOINLINE glCheckFramebufferStatusFunPtr #-}
-
--- | Usage: @'glClampColor' target clamp@
---
--- The parameter @target@ is a @ClampColorTargetARB@.
---
--- The parameter @clamp@ is a @ClampColorModeARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml>
-
-
-glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
-glClampColor = ffienumenumIOV glClampColorFunPtr
-
-glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glClampColorFunPtr = unsafePerformIO (getProcAddress "glClampColor")
-
-{-# NOINLINE glClampColorFunPtr #-}
-
--- | Usage: @'glClear' mask@
---
--- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClear.xhtml>
-
-
-glClear :: MonadIO m => GLbitfield -> m ()
-glClear = ffibitfieldIOV glClearFunPtr
-
-glClearFunPtr :: FunPtr (GLbitfield -> IO ())
-glClearFunPtr = unsafePerformIO (getProcAddress "glClear")
-
-{-# NOINLINE glClearFunPtr #-}
-
--- | Usage: @'glClearBufferfi' buffer drawbuffer depth stencil@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
-
-
-glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
-glClearBufferfi = ffienumintfloatintIOV glClearBufferfiFunPtr
-
-glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
-glClearBufferfiFunPtr = unsafePerformIO (getProcAddress "glClearBufferfi")
-
-{-# NOINLINE glClearBufferfiFunPtr #-}
-
--- | Usage: @'glClearBufferfv' buffer drawbuffer value@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
---
--- The length of @value@ should be @COMPSIZE(buffer)@.
-
-
-glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
-glClearBufferfv = ffienumintPtrfloatIOV glClearBufferfvFunPtr
-
-glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
-glClearBufferfvFunPtr = unsafePerformIO (getProcAddress "glClearBufferfv")
-
-{-# NOINLINE glClearBufferfvFunPtr #-}
-
--- | Usage: @'glClearBufferiv' buffer drawbuffer value@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
---
--- The length of @value@ should be @COMPSIZE(buffer)@.
-
-
-glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
-glClearBufferiv = ffienumintPtrintIOV glClearBufferivFunPtr
-
-glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
-glClearBufferivFunPtr = unsafePerformIO (getProcAddress "glClearBufferiv")
-
-{-# NOINLINE glClearBufferivFunPtr #-}
-
--- | Usage: @'glClearBufferuiv' buffer drawbuffer value@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
---
--- The length of @value@ should be @COMPSIZE(buffer)@.
-
-
-glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
-glClearBufferuiv = ffienumintPtruintIOV glClearBufferuivFunPtr
-
-glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
-glClearBufferuivFunPtr = unsafePerformIO (getProcAddress "glClearBufferuiv")
-
-{-# NOINLINE glClearBufferuivFunPtr #-}
-
--- | Usage: @'glClearColor' red green blue alpha@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The parameter @alpha@ is a @ColorF@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml>
-
-
-glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glClearColor = ffifloatfloatfloatfloatIOV glClearColorFunPtr
-
-glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glClearColorFunPtr = unsafePerformIO (getProcAddress "glClearColor")
-
-{-# NOINLINE glClearColorFunPtr #-}
-
--- | Usage: @'glClearDepth' depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml>
-
-
-glClearDepth :: MonadIO m => GLdouble -> m ()
-glClearDepth = ffidoubleIOV glClearDepthFunPtr
-
-glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())
-glClearDepthFunPtr = unsafePerformIO (getProcAddress "glClearDepth")
-
-{-# NOINLINE glClearDepthFunPtr #-}
-
--- | Usage: @'glClearStencil' s@
---
--- The parameter @s@ is a @StencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml>
-
-
-glClearStencil :: MonadIO m => GLint -> m ()
-glClearStencil = ffiintIOV glClearStencilFunPtr
-
-glClearStencilFunPtr :: FunPtr (GLint -> IO ())
-glClearStencilFunPtr = unsafePerformIO (getProcAddress "glClearStencil")
-
-{-# NOINLINE glClearStencilFunPtr #-}
-
--- | Usage: @'glClientWaitSync' sync flags timeout@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml>
-
-
-glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
-glClientWaitSync = ffisyncbitfielduint64IOenum glClientWaitSyncFunPtr
-
-glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
-glClientWaitSyncFunPtr = unsafePerformIO (getProcAddress "glClientWaitSync")
-
-{-# NOINLINE glClientWaitSyncFunPtr #-}
-
--- | Usage: @'glColorMask' red green blue alpha@
---
--- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml>
-
-
-glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMask = ffibooleanbooleanbooleanbooleanIOV glColorMaskFunPtr
-
-glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskFunPtr = unsafePerformIO (getProcAddress "glColorMask")
-
-{-# NOINLINE glColorMaskFunPtr #-}
-
--- | Usage: @'glColorMaski' index r g b a@
---
--- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMaski = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiFunPtr
-
-glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskiFunPtr = unsafePerformIO (getProcAddress "glColorMaski")
-
-{-# NOINLINE glColorMaskiFunPtr #-}
-
--- | Usage: @'glCompileShader' shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml>
-
-
-glCompileShader :: MonadIO m => GLuint -> m ()
-glCompileShader = ffiuintIOV glCompileShaderFunPtr
-
-glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())
-glCompileShaderFunPtr = unsafePerformIO (getProcAddress "glCompileShader")
-
-{-# NOINLINE glCompileShaderFunPtr #-}
-
--- | Usage: @'glCompressedTexImage1D' target level internalformat width border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml>
-
-
-glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage1D = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DFunPtr
-
-glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1D")
-
-{-# NOINLINE glCompressedTexImage1DFunPtr #-}
-
--- | Usage: @'glCompressedTexImage2D' target level internalformat width height border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml>
-
-
-glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage2D = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DFunPtr
-
-glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2D")
-
-{-# NOINLINE glCompressedTexImage2DFunPtr #-}
-
--- | Usage: @'glCompressedTexImage3D' target level internalformat width height depth border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml>
-
-
-glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage3D = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DFunPtr
-
-glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3D")
-
-{-# NOINLINE glCompressedTexImage3DFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage1D' target level xoffset width format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml>
-
-
-glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage1D = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DFunPtr
-
-glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1D")
-
-{-# NOINLINE glCompressedTexSubImage1DFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage2D' target level xoffset yoffset width height format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml>
-
-
-glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage2D = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DFunPtr
-
-glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2D")
-
-{-# NOINLINE glCompressedTexSubImage2DFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage3D' target level xoffset yoffset zoffset width height depth format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml>
-
-
-glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage3D = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DFunPtr
-
-glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3D")
-
-{-# NOINLINE glCompressedTexSubImage3DFunPtr #-}
-
--- | Usage: @'glCopyBufferSubData' readTarget writeTarget readOffset writeOffset size@
---
--- The parameter @readOffset@ is a @BufferOffset@.
---
--- The parameter @writeOffset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml>
-
-
-glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glCopyBufferSubData = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataFunPtr
-
-glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glCopyBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubData")
-
-{-# NOINLINE glCopyBufferSubDataFunPtr #-}
-
--- | Usage: @'glCopyTexImage1D' target level internalformat x y width border@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml>
-
-
-glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyTexImage1D = ffienumintenumintintsizeiintIOV glCopyTexImage1DFunPtr
-
-glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1D")
-
-{-# NOINLINE glCopyTexImage1DFunPtr #-}
-
--- | Usage: @'glCopyTexImage2D' target level internalformat x y width height border@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml>
-
-
-glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyTexImage2D = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DFunPtr
-
-glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2D")
-
-{-# NOINLINE glCopyTexImage2DFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage1D' target level xoffset x y width@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml>
-
-
-glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTexSubImage1D = ffienumintintintintsizeiIOV glCopyTexSubImage1DFunPtr
-
-glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1D")
-
-{-# NOINLINE glCopyTexSubImage1DFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage2D' target level xoffset yoffset x y width height@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml>
-
-
-glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage2D = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DFunPtr
-
-glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2D")
-
-{-# NOINLINE glCopyTexSubImage2DFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage3D' target level xoffset yoffset zoffset x y width height@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml>
-
-
-glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage3D = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DFunPtr
-
-glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3D")
-
-{-# NOINLINE glCopyTexSubImage3DFunPtr #-}
-
--- | Usage: @'glCreateProgram'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml>
-
-
-glCreateProgram :: MonadIO m => m GLuint
-glCreateProgram = ffiIOuint glCreateProgramFunPtr
-
-glCreateProgramFunPtr :: FunPtr (IO GLuint)
-glCreateProgramFunPtr = unsafePerformIO (getProcAddress "glCreateProgram")
-
-{-# NOINLINE glCreateProgramFunPtr #-}
-
--- | Usage: @'glCreateShader' type@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml>
-
-
-glCreateShader :: MonadIO m => GLenum -> m GLuint
-glCreateShader = ffienumIOuint glCreateShaderFunPtr
-
-glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)
-glCreateShaderFunPtr = unsafePerformIO (getProcAddress "glCreateShader")
-
-{-# NOINLINE glCreateShaderFunPtr #-}
-
--- | Usage: @'glCullFace' mode@
---
--- The parameter @mode@ is a @CullFaceMode@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml>
-
-
-glCullFace :: MonadIO m => GLenum -> m ()
-glCullFace = ffienumIOV glCullFaceFunPtr
-
-glCullFaceFunPtr :: FunPtr (GLenum -> IO ())
-glCullFaceFunPtr = unsafePerformIO (getProcAddress "glCullFace")
-
-{-# NOINLINE glCullFaceFunPtr #-}
-
--- | Usage: @'glDeleteBuffers' n buffers@
---
--- The length of @buffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml>
-
-
-glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteBuffers = ffisizeiPtruintIOV glDeleteBuffersFunPtr
-
-glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteBuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffers")
-
-{-# NOINLINE glDeleteBuffersFunPtr #-}
-
--- | Usage: @'glDeleteFramebuffers' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml>
-
-
-glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteFramebuffers = ffisizeiPtruintIOV glDeleteFramebuffersFunPtr
-
-glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteFramebuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffers")
-
-{-# NOINLINE glDeleteFramebuffersFunPtr #-}
-
--- | Usage: @'glDeleteProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml>
-
-
-glDeleteProgram :: MonadIO m => GLuint -> m ()
-glDeleteProgram = ffiuintIOV glDeleteProgramFunPtr
-
-glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteProgramFunPtr = unsafePerformIO (getProcAddress "glDeleteProgram")
-
-{-# NOINLINE glDeleteProgramFunPtr #-}
-
--- | Usage: @'glDeleteQueries' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml>
-
-
-glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteQueries = ffisizeiPtruintIOV glDeleteQueriesFunPtr
-
-glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteQueriesFunPtr = unsafePerformIO (getProcAddress "glDeleteQueries")
-
-{-# NOINLINE glDeleteQueriesFunPtr #-}
-
--- | Usage: @'glDeleteRenderbuffers' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml>
-
-
-glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteRenderbuffers = ffisizeiPtruintIOV glDeleteRenderbuffersFunPtr
-
-glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffers")
-
-{-# NOINLINE glDeleteRenderbuffersFunPtr #-}
-
--- | Usage: @'glDeleteShader' shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml>
-
-
-glDeleteShader :: MonadIO m => GLuint -> m ()
-glDeleteShader = ffiuintIOV glDeleteShaderFunPtr
-
-glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteShaderFunPtr = unsafePerformIO (getProcAddress "glDeleteShader")
-
-{-# NOINLINE glDeleteShaderFunPtr #-}
-
--- | Usage: @'glDeleteSync' sync@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml>
-
-
-glDeleteSync :: MonadIO m => GLsync -> m ()
-glDeleteSync = ffisyncIOV glDeleteSyncFunPtr
-
-glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())
-glDeleteSyncFunPtr = unsafePerformIO (getProcAddress "glDeleteSync")
-
-{-# NOINLINE glDeleteSyncFunPtr #-}
-
--- | Usage: @'glDeleteTextures' n textures@
---
--- The parameter @textures@ is a @Texture@.
---
--- The length of @textures@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml>
-
-
-glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTextures = ffisizeiPtruintIOV glDeleteTexturesFunPtr
-
-glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTexturesFunPtr = unsafePerformIO (getProcAddress "glDeleteTextures")
-
-{-# NOINLINE glDeleteTexturesFunPtr #-}
-
--- | Usage: @'glDeleteVertexArrays' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml>
-
-
-glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteVertexArrays = ffisizeiPtruintIOV glDeleteVertexArraysFunPtr
-
-glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteVertexArraysFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArrays")
-
-{-# NOINLINE glDeleteVertexArraysFunPtr #-}
-
--- | Usage: @'glDepthFunc' func@
---
--- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml>
-
-
-glDepthFunc :: MonadIO m => GLenum -> m ()
-glDepthFunc = ffienumIOV glDepthFuncFunPtr
-
-glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())
-glDepthFuncFunPtr = unsafePerformIO (getProcAddress "glDepthFunc")
-
-{-# NOINLINE glDepthFuncFunPtr #-}
-
--- | Usage: @'glDepthMask' flag@
---
--- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml>
-
-
-glDepthMask :: MonadIO m => GLboolean -> m ()
-glDepthMask = ffibooleanIOV glDepthMaskFunPtr
-
-glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())
-glDepthMaskFunPtr = unsafePerformIO (getProcAddress "glDepthMask")
-
-{-# NOINLINE glDepthMaskFunPtr #-}
-
--- | Usage: @'glDepthRange' near far@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml>
-
-
-glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
-glDepthRange = ffidoubledoubleIOV glDepthRangeFunPtr
-
-glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glDepthRangeFunPtr = unsafePerformIO (getProcAddress "glDepthRange")
-
-{-# NOINLINE glDepthRangeFunPtr #-}
-
--- | Usage: @'glDetachShader' program shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml>
-
-
-glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
-glDetachShader = ffiuintuintIOV glDetachShaderFunPtr
-
-glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDetachShaderFunPtr = unsafePerformIO (getProcAddress "glDetachShader")
-
-{-# NOINLINE glDetachShaderFunPtr #-}
-
--- | Usage: @'glDisable' cap@
---
--- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glDisable :: MonadIO m => GLenum -> m ()
-glDisable = ffienumIOV glDisableFunPtr
-
-glDisableFunPtr :: FunPtr (GLenum -> IO ())
-glDisableFunPtr = unsafePerformIO (getProcAddress "glDisable")
-
-{-# NOINLINE glDisableFunPtr #-}
-
--- | Usage: @'glDisableVertexAttribArray' index@
-
-
-glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
-glDisableVertexAttribArray = ffiuintIOV glDisableVertexAttribArrayFunPtr
-
-glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
-glDisableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArray")
-
-{-# NOINLINE glDisableVertexAttribArrayFunPtr #-}
-
--- | Usage: @'glDisablei' target index@
-
-
-glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
-glDisablei = ffienumuintIOV glDisableiFunPtr
-
-glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableiFunPtr = unsafePerformIO (getProcAddress "glDisablei")
-
-{-# NOINLINE glDisableiFunPtr #-}
-
--- | Usage: @'glDrawArrays' mode first count@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml>
-
-
-glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
-glDrawArrays = ffienumintsizeiIOV glDrawArraysFunPtr
-
-glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
-glDrawArraysFunPtr = unsafePerformIO (getProcAddress "glDrawArrays")
-
-{-# NOINLINE glDrawArraysFunPtr #-}
-
--- | Usage: @'glDrawArraysInstanced' mode first count instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml>
-
-
-glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstanced = ffienumintsizeisizeiIOV glDrawArraysInstancedFunPtr
-
-glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstanced")
-
-{-# NOINLINE glDrawArraysInstancedFunPtr #-}
-
--- | Usage: @'glDrawBuffer' buf@
---
--- The parameter @buf@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml>
-
-
-glDrawBuffer :: MonadIO m => GLenum -> m ()
-glDrawBuffer = ffienumIOV glDrawBufferFunPtr
-
-glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())
-glDrawBufferFunPtr = unsafePerformIO (getProcAddress "glDrawBuffer")
-
-{-# NOINLINE glDrawBufferFunPtr #-}
-
--- | Usage: @'glDrawBuffers' n bufs@
---
--- The parameter @bufs@ is a @DrawBufferModeATI@.
---
--- The length of @bufs@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml>
-
-
-glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
-glDrawBuffers = ffisizeiPtrenumIOV glDrawBuffersFunPtr
-
-glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
-glDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glDrawBuffers")
-
-{-# NOINLINE glDrawBuffersFunPtr #-}
-
--- | Usage: @'glDrawElements' mode count type indices@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml>
-
-
-glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
-glDrawElements = ffienumsizeienumPtrVIOV glDrawElementsFunPtr
-
-glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())
-glDrawElementsFunPtr = unsafePerformIO (getProcAddress "glDrawElements")
-
-{-# NOINLINE glDrawElementsFunPtr #-}
-
--- | Usage: @'glDrawElementsBaseVertex' mode count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml>
-
-
-glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawElementsBaseVertex = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexFunPtr
-
-glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertex")
-
-{-# NOINLINE glDrawElementsBaseVertexFunPtr #-}
-
--- | Usage: @'glDrawElementsInstanced' mode count type indices instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml>
-
-
-glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstanced = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedFunPtr
-
-glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstanced")
-
-{-# NOINLINE glDrawElementsInstancedFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseVertex' mode count type indices instancecount basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml>
-
-
-glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-glDrawElementsInstancedBaseVertex = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexFunPtr
-
-glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
-glDrawElementsInstancedBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertex")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexFunPtr #-}
-
--- | Usage: @'glDrawRangeElements' mode start end count type indices@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml>
-
-
-glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
-glDrawRangeElements = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsFunPtr
-
-glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
-glDrawRangeElementsFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElements")
-
-{-# NOINLINE glDrawRangeElementsFunPtr #-}
-
--- | Usage: @'glDrawRangeElementsBaseVertex' mode start end count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml>
-
-
-glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawRangeElementsBaseVertex = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexFunPtr
-
-glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawRangeElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertex")
-
-{-# NOINLINE glDrawRangeElementsBaseVertexFunPtr #-}
-
--- | Usage: @'glEnable' cap@
---
--- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml>
-
-
-glEnable :: MonadIO m => GLenum -> m ()
-glEnable = ffienumIOV glEnableFunPtr
-
-glEnableFunPtr :: FunPtr (GLenum -> IO ())
-glEnableFunPtr = unsafePerformIO (getProcAddress "glEnable")
-
-{-# NOINLINE glEnableFunPtr #-}
-
--- | Usage: @'glEnableVertexAttribArray' index@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml>
-
-
-glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
-glEnableVertexAttribArray = ffiuintIOV glEnableVertexAttribArrayFunPtr
-
-glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
-glEnableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArray")
-
-{-# NOINLINE glEnableVertexAttribArrayFunPtr #-}
-
--- | Usage: @'glEnablei' target index@
-
-
-glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
-glEnablei = ffienumuintIOV glEnableiFunPtr
-
-glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableiFunPtr = unsafePerformIO (getProcAddress "glEnablei")
-
-{-# NOINLINE glEnableiFunPtr #-}
-
--- | Usage: @'glEndConditionalRender'@
-
-
-glEndConditionalRender :: MonadIO m => m ()
-glEndConditionalRender = ffiIOV glEndConditionalRenderFunPtr
-
-glEndConditionalRenderFunPtr :: FunPtr (IO ())
-glEndConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRender")
-
-{-# NOINLINE glEndConditionalRenderFunPtr #-}
-
--- | Usage: @'glEndQuery' target@
-
-
-glEndQuery :: MonadIO m => GLenum -> m ()
-glEndQuery = ffienumIOV glEndQueryFunPtr
-
-glEndQueryFunPtr :: FunPtr (GLenum -> IO ())
-glEndQueryFunPtr = unsafePerformIO (getProcAddress "glEndQuery")
-
-{-# NOINLINE glEndQueryFunPtr #-}
-
--- | Usage: @'glEndTransformFeedback'@
-
-
-glEndTransformFeedback :: MonadIO m => m ()
-glEndTransformFeedback = ffiIOV glEndTransformFeedbackFunPtr
-
-glEndTransformFeedbackFunPtr :: FunPtr (IO ())
-glEndTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedback")
-
-{-# NOINLINE glEndTransformFeedbackFunPtr #-}
-
--- | Usage: @'glFenceSync' condition flags@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml>
-
-
-glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
-glFenceSync = ffienumbitfieldIOsync glFenceSyncFunPtr
-
-glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
-glFenceSyncFunPtr = unsafePerformIO (getProcAddress "glFenceSync")
-
-{-# NOINLINE glFenceSyncFunPtr #-}
-
--- | Usage: @'glFinish'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml>
-
-
-glFinish :: MonadIO m => m ()
-glFinish = ffiIOV glFinishFunPtr
-
-glFinishFunPtr :: FunPtr (IO ())
-glFinishFunPtr = unsafePerformIO (getProcAddress "glFinish")
-
-{-# NOINLINE glFinishFunPtr #-}
-
--- | Usage: @'glFlush'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml>
-
-
-glFlush :: MonadIO m => m ()
-glFlush = ffiIOV glFlushFunPtr
-
-glFlushFunPtr :: FunPtr (IO ())
-glFlushFunPtr = unsafePerformIO (getProcAddress "glFlush")
-
-{-# NOINLINE glFlushFunPtr #-}
-
--- | Usage: @'glFlushMappedBufferRange' target offset length@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @length@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml>
-
-
-glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedBufferRange = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeFunPtr
-
-glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRange")
-
-{-# NOINLINE glFlushMappedBufferRangeFunPtr #-}
-
--- | Usage: @'glFramebufferRenderbuffer' target attachment renderbuffertarget renderbuffer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml>
-
-
-glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
-glFramebufferRenderbuffer = ffienumenumenumuintIOV glFramebufferRenderbufferFunPtr
-
-glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-glFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbuffer")
-
-{-# NOINLINE glFramebufferRenderbufferFunPtr #-}
-
--- | Usage: @'glFramebufferTexture' target attachment texture level@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml>
-
-
-glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture = ffienumenumuintintIOV glFramebufferTextureFunPtr
-
-glFramebufferTextureFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture")
-
-{-# NOINLINE glFramebufferTextureFunPtr #-}
-
--- | Usage: @'glFramebufferTexture1D' target attachment textarget texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
-
-
-glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture1D = ffienumenumenumuintintIOV glFramebufferTexture1DFunPtr
-
-glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture1DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1D")
-
-{-# NOINLINE glFramebufferTexture1DFunPtr #-}
-
--- | Usage: @'glFramebufferTexture2D' target attachment textarget texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
-
-
-glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture2D = ffienumenumenumuintintIOV glFramebufferTexture2DFunPtr
-
-glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture2DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2D")
-
-{-# NOINLINE glFramebufferTexture2DFunPtr #-}
-
--- | Usage: @'glFramebufferTexture3D' target attachment textarget texture level zoffset@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
-
-
-glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTexture3D = ffienumenumenumuintintintIOV glFramebufferTexture3DFunPtr
-
-glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTexture3DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3D")
-
-{-# NOINLINE glFramebufferTexture3DFunPtr #-}
-
--- | Usage: @'glFramebufferTextureLayer' target attachment texture level layer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @layer@ is a @CheckedInt32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml>
-
-
-glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTextureLayer = ffienumenumuintintintIOV glFramebufferTextureLayerFunPtr
-
-glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayer")
-
-{-# NOINLINE glFramebufferTextureLayerFunPtr #-}
-
--- | Usage: @'glFrontFace' mode@
---
--- The parameter @mode@ is a @FrontFaceDirection@, one of: 'Graphics.GL.Internal.Shared.GL_CCW', 'Graphics.GL.Internal.Shared.GL_CW'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml>
-
-
-glFrontFace :: MonadIO m => GLenum -> m ()
-glFrontFace = ffienumIOV glFrontFaceFunPtr
-
-glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())
-glFrontFaceFunPtr = unsafePerformIO (getProcAddress "glFrontFace")
-
-{-# NOINLINE glFrontFaceFunPtr #-}
-
--- | Usage: @'glGenBuffers' n buffers@
---
--- The length of @buffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml>
-
-
-glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenBuffers = ffisizeiPtruintIOV glGenBuffersFunPtr
-
-glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenBuffersFunPtr = unsafePerformIO (getProcAddress "glGenBuffers")
-
-{-# NOINLINE glGenBuffersFunPtr #-}
-
--- | Usage: @'glGenFramebuffers' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml>
-
-
-glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenFramebuffers = ffisizeiPtruintIOV glGenFramebuffersFunPtr
-
-glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenFramebuffersFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffers")
-
-{-# NOINLINE glGenFramebuffersFunPtr #-}
-
--- | Usage: @'glGenQueries' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml>
-
-
-glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenQueries = ffisizeiPtruintIOV glGenQueriesFunPtr
-
-glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenQueriesFunPtr = unsafePerformIO (getProcAddress "glGenQueries")
-
-{-# NOINLINE glGenQueriesFunPtr #-}
-
--- | Usage: @'glGenRenderbuffers' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml>
-
-
-glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenRenderbuffers = ffisizeiPtruintIOV glGenRenderbuffersFunPtr
-
-glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffers")
-
-{-# NOINLINE glGenRenderbuffersFunPtr #-}
-
--- | Usage: @'glGenTextures' n textures@
---
--- The parameter @textures@ is a @Texture@.
---
--- The length of @textures@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml>
-
-
-glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTextures = ffisizeiPtruintIOV glGenTexturesFunPtr
-
-glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTexturesFunPtr = unsafePerformIO (getProcAddress "glGenTextures")
-
-{-# NOINLINE glGenTexturesFunPtr #-}
-
--- | Usage: @'glGenVertexArrays' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml>
-
-
-glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenVertexArrays = ffisizeiPtruintIOV glGenVertexArraysFunPtr
-
-glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenVertexArraysFunPtr = unsafePerformIO (getProcAddress "glGenVertexArrays")
-
-{-# NOINLINE glGenVertexArraysFunPtr #-}
-
--- | Usage: @'glGenerateMipmap' target@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml>
-
-
-glGenerateMipmap :: MonadIO m => GLenum -> m ()
-glGenerateMipmap = ffienumIOV glGenerateMipmapFunPtr
-
-glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())
-glGenerateMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmap")
-
-{-# NOINLINE glGenerateMipmapFunPtr #-}
-
--- | Usage: @'glGetActiveAttrib' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml>
-
-
-glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetActiveAttrib = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveAttribFunPtr
-
-glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetActiveAttribFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttrib")
-
-{-# NOINLINE glGetActiveAttribFunPtr #-}
-
--- | Usage: @'glGetActiveUniform' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml>
-
-
-glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetActiveUniform = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveUniformFunPtr
-
-glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetActiveUniformFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniform")
-
-{-# NOINLINE glGetActiveUniformFunPtr #-}
-
--- | Usage: @'glGetActiveUniformBlockName' program uniformBlockIndex bufSize length uniformBlockName@
---
--- The length of @length@ should be @1@.
---
--- The length of @uniformBlockName@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml>
-
-
-glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveUniformBlockName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformBlockNameFunPtr
-
-glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveUniformBlockNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockName")
-
-{-# NOINLINE glGetActiveUniformBlockNameFunPtr #-}
-
--- | Usage: @'glGetActiveUniformBlockiv' program uniformBlockIndex pname params@
---
--- The length of @params@ should be @COMPSIZE(program,uniformBlockIndex,pname)@.
-
-
-glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveUniformBlockiv = ffiuintuintenumPtrintIOV glGetActiveUniformBlockivFunPtr
-
-glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveUniformBlockivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockiv")
-
-{-# NOINLINE glGetActiveUniformBlockivFunPtr #-}
-
--- | Usage: @'glGetActiveUniformName' program uniformIndex bufSize length uniformName@
---
--- The length of @length@ should be @1@.
---
--- The length of @uniformName@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml>
-
-
-glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveUniformName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformNameFunPtr
-
-glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformName")
-
-{-# NOINLINE glGetActiveUniformNameFunPtr #-}
-
--- | Usage: @'glGetActiveUniformsiv' program uniformCount uniformIndices pname params@
---
--- The length of @uniformIndices@ should be @uniformCount@.
---
--- The length of @params@ should be @COMPSIZE(uniformCount,pname)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml>
-
-
-glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveUniformsiv = ffiuintsizeiPtruintenumPtrintIOV glGetActiveUniformsivFunPtr
-
-glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveUniformsivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformsiv")
-
-{-# NOINLINE glGetActiveUniformsivFunPtr #-}
-
--- | Usage: @'glGetAttachedShaders' program maxCount count shaders@
---
--- The length of @count@ should be @1@.
---
--- The length of @shaders@ should be @maxCount@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml>
-
-
-glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
-glGetAttachedShaders = ffiuintsizeiPtrsizeiPtruintIOV glGetAttachedShadersFunPtr
-
-glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
-glGetAttachedShadersFunPtr = unsafePerformIO (getProcAddress "glGetAttachedShaders")
-
-{-# NOINLINE glGetAttachedShadersFunPtr #-}
-
--- | Usage: @'glGetAttribLocation' program name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml>
-
-
-glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetAttribLocation = ffiuintPtrcharIOint glGetAttribLocationFunPtr
-
-glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetAttribLocationFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocation")
-
-{-# NOINLINE glGetAttribLocationFunPtr #-}
-
--- | Usage: @'glGetBooleani_v' target index data@
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
-glGetBooleani_v = ffienumuintPtrbooleanIOV glGetBooleani_vFunPtr
-
-glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
-glGetBooleani_vFunPtr = unsafePerformIO (getProcAddress "glGetBooleani_v")
-
-{-# NOINLINE glGetBooleani_vFunPtr #-}
-
--- | Usage: @'glGetBooleanv' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
-glGetBooleanv = ffienumPtrbooleanIOV glGetBooleanvFunPtr
-
-glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
-glGetBooleanvFunPtr = unsafePerformIO (getProcAddress "glGetBooleanv")
-
-{-# NOINLINE glGetBooleanvFunPtr #-}
-
--- | Usage: @'glGetBufferParameteri64v' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
-glGetBufferParameteri64v = ffienumenumPtrint64IOV glGetBufferParameteri64vFunPtr
-
-glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
-glGetBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteri64v")
-
-{-# NOINLINE glGetBufferParameteri64vFunPtr #-}
-
--- | Usage: @'glGetBufferParameteriv' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetBufferParameteriv = ffienumenumPtrintIOV glGetBufferParameterivFunPtr
-
-glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteriv")
-
-{-# NOINLINE glGetBufferParameterivFunPtr #-}
-
--- | Usage: @'glGetBufferPointerv' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPointerNameARB@.
---
--- The length of @params@ should be @1@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml>
-
-
-glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetBufferPointerv = ffienumenumPtrPtrVIOV glGetBufferPointervFunPtr
-
-glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointerv")
-
-{-# NOINLINE glGetBufferPointervFunPtr #-}
-
--- | Usage: @'glGetBufferSubData' target offset size data@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml>
-
-
-glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glGetBufferSubData = ffienumintptrsizeiptrPtrVIOV glGetBufferSubDataFunPtr
-
-glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glGetBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubData")
-
-{-# NOINLINE glGetBufferSubDataFunPtr #-}
-
--- | Usage: @'glGetCompressedTexImage' target level img@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @img@ is a @CompressedTextureARB@.
---
--- The length of @img@ should be @COMPSIZE(target,level)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml>
-
-
-glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedTexImage = ffienumintPtrVIOV glGetCompressedTexImageFunPtr
-
-glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImage")
-
-{-# NOINLINE glGetCompressedTexImageFunPtr #-}
-
--- | Usage: @'glGetDoublev' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glGetDoublev = ffienumPtrdoubleIOV glGetDoublevFunPtr
-
-glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glGetDoublevFunPtr = unsafePerformIO (getProcAddress "glGetDoublev")
-
-{-# NOINLINE glGetDoublevFunPtr #-}
-
--- | Usage: @'glGetError'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml>
-
-
-glGetError :: MonadIO m => m GLenum
-glGetError = ffiIOenum glGetErrorFunPtr
-
-glGetErrorFunPtr :: FunPtr (IO GLenum)
-glGetErrorFunPtr = unsafePerformIO (getProcAddress "glGetError")
-
-{-# NOINLINE glGetErrorFunPtr #-}
-
--- | Usage: @'glGetFloatv' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetFloatv = ffienumPtrfloatIOV glGetFloatvFunPtr
-
-glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetFloatvFunPtr = unsafePerformIO (getProcAddress "glGetFloatv")
-
-{-# NOINLINE glGetFloatvFunPtr #-}
-
--- | Usage: @'glGetFragDataLocation' program name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml>
-
-
-glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetFragDataLocation = ffiuintPtrcharIOint glGetFragDataLocationFunPtr
-
-glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glGetFragDataLocation")
-
-{-# NOINLINE glGetFragDataLocationFunPtr #-}
-
--- | Usage: @'glGetFramebufferAttachmentParameteriv' target attachment pname params@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferAttachmentParameteriv = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivFunPtr
-
-glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameteriv")
-
-{-# NOINLINE glGetFramebufferAttachmentParameterivFunPtr #-}
-
--- | Usage: @'glGetInteger64i_v' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
-glGetInteger64i_v = ffienumuintPtrint64IOV glGetInteger64i_vFunPtr
-
-glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
-glGetInteger64i_vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64i_v")
-
-{-# NOINLINE glGetInteger64i_vFunPtr #-}
-
--- | Usage: @'glGetInteger64v' pname data@
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
-glGetInteger64v = ffienumPtrint64IOV glGetInteger64vFunPtr
-
-glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
-glGetInteger64vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64v")
-
-{-# NOINLINE glGetInteger64vFunPtr #-}
-
--- | Usage: @'glGetIntegeri_v' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetIntegeri_v = ffienumuintPtrintIOV glGetIntegeri_vFunPtr
-
-glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetIntegeri_vFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_v")
-
-{-# NOINLINE glGetIntegeri_vFunPtr #-}
-
--- | Usage: @'glGetIntegerv' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glGetIntegerv = ffienumPtrintIOV glGetIntegervFunPtr
-
-glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glGetIntegervFunPtr = unsafePerformIO (getProcAddress "glGetIntegerv")
-
-{-# NOINLINE glGetIntegervFunPtr #-}
-
--- | Usage: @'glGetMultisamplefv' pname index val@
---
--- The length of @val@ should be @COMPSIZE(pname)@.
-
-
-glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetMultisamplefv = ffienumuintPtrfloatIOV glGetMultisamplefvFunPtr
-
-glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetMultisamplefvFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefv")
-
-{-# NOINLINE glGetMultisamplefvFunPtr #-}
-
--- | Usage: @'glGetProgramInfoLog' program bufSize length infoLog@
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml>
-
-
-glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramInfoLogFunPtr
-
-glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramInfoLog")
-
-{-# NOINLINE glGetProgramInfoLogFunPtr #-}
-
--- | Usage: @'glGetProgramiv' program pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramiv = ffiuintenumPtrintIOV glGetProgramivFunPtr
-
-glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramivFunPtr = unsafePerformIO (getProcAddress "glGetProgramiv")
-
-{-# NOINLINE glGetProgramivFunPtr #-}
-
--- | Usage: @'glGetQueryObjectiv' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryObjectiv = ffiuintenumPtrintIOV glGetQueryObjectivFunPtr
-
-glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectiv")
-
-{-# NOINLINE glGetQueryObjectivFunPtr #-}
-
--- | Usage: @'glGetQueryObjectuiv' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetQueryObjectuiv = ffiuintenumPtruintIOV glGetQueryObjectuivFunPtr
-
-glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetQueryObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuiv")
-
-{-# NOINLINE glGetQueryObjectuivFunPtr #-}
-
--- | Usage: @'glGetQueryiv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml>
-
-
-glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetQueryiv = ffienumenumPtrintIOV glGetQueryivFunPtr
-
-glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetQueryivFunPtr = unsafePerformIO (getProcAddress "glGetQueryiv")
-
-{-# NOINLINE glGetQueryivFunPtr #-}
-
--- | Usage: @'glGetRenderbufferParameteriv' target pname params@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetRenderbufferParameteriv = ffienumenumPtrintIOV glGetRenderbufferParameterivFunPtr
-
-glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameteriv")
-
-{-# NOINLINE glGetRenderbufferParameterivFunPtr #-}
-
--- | Usage: @'glGetShaderInfoLog' shader bufSize length infoLog@
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml>
-
-
-glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetShaderInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderInfoLogFunPtr
-
-glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetShaderInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetShaderInfoLog")
-
-{-# NOINLINE glGetShaderInfoLogFunPtr #-}
-
--- | Usage: @'glGetShaderSource' shader bufSize length source@
---
--- The length of @length@ should be @1@.
---
--- The length of @source@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml>
-
-
-glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetShaderSource = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderSourceFunPtr
-
-glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetShaderSourceFunPtr = unsafePerformIO (getProcAddress "glGetShaderSource")
-
-{-# NOINLINE glGetShaderSourceFunPtr #-}
-
--- | Usage: @'glGetShaderiv' shader pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetShaderiv = ffiuintenumPtrintIOV glGetShaderivFunPtr
-
-glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetShaderivFunPtr = unsafePerformIO (getProcAddress "glGetShaderiv")
-
-{-# NOINLINE glGetShaderivFunPtr #-}
-
--- | Usage: @'glGetString' name@
---
--- The parameter @name@ is a @StringName@, one of: 'Graphics.GL.Internal.Shared.GL_EXTENSIONS', 'Graphics.GL.Internal.Shared.GL_RENDERER', 'Graphics.GL.Internal.Shared.GL_VENDOR', 'Graphics.GL.Internal.Shared.GL_VERSION'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml>
-
-
-glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
-glGetString = ffienumIOPtrubyte glGetStringFunPtr
-
-glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))
-glGetStringFunPtr = unsafePerformIO (getProcAddress "glGetString")
-
-{-# NOINLINE glGetStringFunPtr #-}
-
--- | Usage: @'glGetStringi' name index@
-
-
-glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
-glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
-
-glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
-glGetStringiFunPtr = unsafePerformIO (getProcAddress "glGetStringi")
-
-{-# NOINLINE glGetStringiFunPtr #-}
-
--- | Usage: @'glGetSynciv' sync pname bufSize length values@
---
--- The parameter @sync@ is a @sync@.
---
--- The length of @length@ should be @1@.
---
--- The length of @values@ should be @bufSize@.
-
-
-glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glGetSynciv = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivFunPtr
-
-glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glGetSyncivFunPtr = unsafePerformIO (getProcAddress "glGetSynciv")
-
-{-# NOINLINE glGetSyncivFunPtr #-}
-
--- | Usage: @'glGetTexImage' target level format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml>
-
-
-glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetTexImage = ffienumintenumenumPtrVIOV glGetTexImageFunPtr
-
-glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetTexImageFunPtr = unsafePerformIO (getProcAddress "glGetTexImage")
-
-{-# NOINLINE glGetTexImageFunPtr #-}
-
--- | Usage: @'glGetTexLevelParameterfv' target level pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTexLevelParameterfv = ffienumintenumPtrfloatIOV glGetTexLevelParameterfvFunPtr
-
-glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterfv")
-
-{-# NOINLINE glGetTexLevelParameterfvFunPtr #-}
-
--- | Usage: @'glGetTexLevelParameteriv' target level pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTexLevelParameteriv = ffienumintenumPtrintIOV glGetTexLevelParameterivFunPtr
-
-glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTexLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameteriv")
-
-{-# NOINLINE glGetTexLevelParameterivFunPtr #-}
-
--- | Usage: @'glGetTexParameterIiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameterIiv = ffienumenumPtrintIOV glGetTexParameterIivFunPtr
-
-glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIiv")
-
-{-# NOINLINE glGetTexParameterIivFunPtr #-}
-
--- | Usage: @'glGetTexParameterIuiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTexParameterIuiv = ffienumenumPtruintIOV glGetTexParameterIuivFunPtr
-
-glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuiv")
-
-{-# NOINLINE glGetTexParameterIuivFunPtr #-}
-
--- | Usage: @'glGetTexParameterfv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexParameterfv = ffienumenumPtrfloatIOV glGetTexParameterfvFunPtr
-
-glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterfv")
-
-{-# NOINLINE glGetTexParameterfvFunPtr #-}
-
--- | Usage: @'glGetTexParameteriv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameteriv = ffienumenumPtrintIOV glGetTexParameterivFunPtr
-
-glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameteriv")
-
-{-# NOINLINE glGetTexParameterivFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbackVarying' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml>
-
-
-glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetTransformFeedbackVarying = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingFunPtr
-
-glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetTransformFeedbackVaryingFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVarying")
-
-{-# NOINLINE glGetTransformFeedbackVaryingFunPtr #-}
-
--- | Usage: @'glGetUniformBlockIndex' program uniformBlockName@
---
--- The length of @uniformBlockName@ should be @COMPSIZE()@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml>
-
-
-glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
-glGetUniformBlockIndex = ffiuintPtrcharIOuint glGetUniformBlockIndexFunPtr
-
-glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
-glGetUniformBlockIndexFunPtr = unsafePerformIO (getProcAddress "glGetUniformBlockIndex")
-
-{-# NOINLINE glGetUniformBlockIndexFunPtr #-}
-
--- | Usage: @'glGetUniformIndices' program uniformCount uniformNames uniformIndices@
---
--- The length of @uniformNames@ should be @COMPSIZE(uniformCount)@.
---
--- The length of @uniformIndices@ should be @COMPSIZE(uniformCount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml>
-
-
-glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
-glGetUniformIndices = ffiuintsizeiPtrPtrcharPtruintIOV glGetUniformIndicesFunPtr
-
-glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
-glGetUniformIndicesFunPtr = unsafePerformIO (getProcAddress "glGetUniformIndices")
-
-{-# NOINLINE glGetUniformIndicesFunPtr #-}
-
--- | Usage: @'glGetUniformLocation' program name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml>
-
-
-glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetUniformLocation = ffiuintPtrcharIOint glGetUniformLocationFunPtr
-
-glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocation")
-
-{-# NOINLINE glGetUniformLocationFunPtr #-}
-
--- | Usage: @'glGetUniformfv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
-glGetUniformfv = ffiuintintPtrfloatIOV glGetUniformfvFunPtr
-
-glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
-glGetUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetUniformfv")
-
-{-# NOINLINE glGetUniformfvFunPtr #-}
-
--- | Usage: @'glGetUniformiv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
-glGetUniformiv = ffiuintintPtrintIOV glGetUniformivFunPtr
-
-glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
-glGetUniformivFunPtr = unsafePerformIO (getProcAddress "glGetUniformiv")
-
-{-# NOINLINE glGetUniformivFunPtr #-}
-
--- | Usage: @'glGetUniformuiv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
-glGetUniformuiv = ffiuintintPtruintIOV glGetUniformuivFunPtr
-
-glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
-glGetUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformuiv")
-
-{-# NOINLINE glGetUniformuivFunPtr #-}
-
--- | Usage: @'glGetVertexAttribIiv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnum@.
---
--- The length of @params@ should be @1@.
-
-
-glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribIiv = ffiuintenumPtrintIOV glGetVertexAttribIivFunPtr
-
-glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribIivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIiv")
-
-{-# NOINLINE glGetVertexAttribIivFunPtr #-}
-
--- | Usage: @'glGetVertexAttribIuiv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnum@.
---
--- The length of @params@ should be @1@.
-
-
-glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetVertexAttribIuiv = ffiuintenumPtruintIOV glGetVertexAttribIuivFunPtr
-
-glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetVertexAttribIuivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuiv")
-
-{-# NOINLINE glGetVertexAttribIuivFunPtr #-}
-
--- | Usage: @'glGetVertexAttribPointerv' index pname pointer@
---
--- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
---
--- The length of @pointer@ should be @1@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml>
-
-
-glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVertexAttribPointerv = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervFunPtr
-
-glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVertexAttribPointervFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointerv")
-
-{-# NOINLINE glGetVertexAttribPointervFunPtr #-}
-
--- | Usage: @'glGetVertexAttribdv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribdv = ffiuintenumPtrdoubleIOV glGetVertexAttribdvFunPtr
-
-glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdv")
-
-{-# NOINLINE glGetVertexAttribdvFunPtr #-}
-
--- | Usage: @'glGetVertexAttribfv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribfv = ffiuintenumPtrfloatIOV glGetVertexAttribfvFunPtr
-
-glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribfvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfv")
-
-{-# NOINLINE glGetVertexAttribfvFunPtr #-}
-
--- | Usage: @'glGetVertexAttribiv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribiv = ffiuintenumPtrintIOV glGetVertexAttribivFunPtr
-
-glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribiv")
-
-{-# NOINLINE glGetVertexAttribivFunPtr #-}
-
--- | Usage: @'glHint' target mode@
---
--- The parameter @target@ is a @HintTarget@, one of: 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_FRG_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_MEM_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_OBJ_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_WIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_FAST_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_SOFT_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_BACK_NORMALS_HINT_PGI', 'Graphics.GL.Ext.QCOM.BinningControl.GL_BINNING_CONTROL_HINT_QCOM', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_FAR_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_NEAR_HINT_PGI', 'Graphics.GL.Ext.EXT.ClipVolumeHint.GL_CLIP_VOLUME_CLIPPING_HINT_EXT', 'Graphics.GL.Ext.PGI.MiscHints.GL_CONSERVE_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FRAGMENT_SHADER_DERIVATIVE_HINT', 'Graphics.GL.Ext.ARB.FragmentShader.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB', 'Graphics.GL.Ext.OES.StandardDerivatives.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES', 'Graphics.GL.Ext.PGI.MiscHints.GL_FULL_STIPPLE_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP_HINT', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', @GL_LINE_QUALITY_HINT_SGIX@, 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.VertexHints.GL_MATERIAL_SIDE_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_MAX_VERTEX_HINT_PGI', 'Graphics.GL.Ext.NV.MultisampleFilterHint.GL_MULTISAMPLE_FILTER_HINT_NV', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_END_HINT_PGI', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Ext.WIN.PhongShading.GL_PHONG_HINT_WIN', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_PREFER_DOUBLEBUFFER_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_PROGRAM_BINARY_RETRIEVABLE_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_RECLAIM_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ScalebiasHint.GL_SCALEBIAS_HINT_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_DEPTHFUNC_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_LIGHTING_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_SCISSOR_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPRESSION_HINT', 'Graphics.GL.Ext.ARB.TextureCompression.GL_TEXTURE_COMPRESSION_HINT_ARB', 'Graphics.GL.Ext.SGIX.TextureMultiBuffer.GL_TEXTURE_MULTI_BUFFER_HINT_SGIX', 'Graphics.GL.Ext.APPLE.TextureRange.GL_TEXTURE_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.APPLE.TransformHint.GL_TRANSFORM_HINT_APPLE', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.APPLE.VertexArrayRange.GL_VERTEX_ARRAY_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_CONSISTENT_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_DATA_HINT_PGI', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_WIDE_LINE_HINT_PGI'.
---
--- The parameter @mode@ is a @HintMode@, one of: 'Graphics.GL.Internal.Shared.GL_DONT_CARE', 'Graphics.GL.Internal.Shared.GL_FASTEST', 'Graphics.GL.Internal.Shared.GL_NICEST'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glHint.xhtml>
-
-
-glHint :: MonadIO m => GLenum -> GLenum -> m ()
-glHint = ffienumenumIOV glHintFunPtr
-
-glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glHintFunPtr = unsafePerformIO (getProcAddress "glHint")
-
-{-# NOINLINE glHintFunPtr #-}
-
--- | Usage: @'glIsBuffer' buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml>
-
-
-glIsBuffer :: MonadIO m => GLuint -> m GLboolean
-glIsBuffer = ffiuintIOboolean glIsBufferFunPtr
-
-glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsBufferFunPtr = unsafePerformIO (getProcAddress "glIsBuffer")
-
-{-# NOINLINE glIsBufferFunPtr #-}
-
--- | Usage: @'glIsEnabled' cap@
---
--- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml>
-
-
-glIsEnabled :: MonadIO m => GLenum -> m GLboolean
-glIsEnabled = ffienumIOboolean glIsEnabledFunPtr
-
-glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glIsEnabledFunPtr = unsafePerformIO (getProcAddress "glIsEnabled")
-
-{-# NOINLINE glIsEnabledFunPtr #-}
-
--- | Usage: @'glIsEnabledi' target index@
-
-
-glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnabledi = ffienumuintIOboolean glIsEnablediFunPtr
-
-glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnablediFunPtr = unsafePerformIO (getProcAddress "glIsEnabledi")
-
-{-# NOINLINE glIsEnablediFunPtr #-}
-
--- | Usage: @'glIsFramebuffer' framebuffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml>
-
-
-glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
-glIsFramebuffer = ffiuintIOboolean glIsFramebufferFunPtr
-
-glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsFramebufferFunPtr = unsafePerformIO (getProcAddress "glIsFramebuffer")
-
-{-# NOINLINE glIsFramebufferFunPtr #-}
-
--- | Usage: @'glIsProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml>
-
-
-glIsProgram :: MonadIO m => GLuint -> m GLboolean
-glIsProgram = ffiuintIOboolean glIsProgramFunPtr
-
-glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramFunPtr = unsafePerformIO (getProcAddress "glIsProgram")
-
-{-# NOINLINE glIsProgramFunPtr #-}
-
--- | Usage: @'glIsQuery' id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml>
-
-
-glIsQuery :: MonadIO m => GLuint -> m GLboolean
-glIsQuery = ffiuintIOboolean glIsQueryFunPtr
-
-glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsQueryFunPtr = unsafePerformIO (getProcAddress "glIsQuery")
-
-{-# NOINLINE glIsQueryFunPtr #-}
-
--- | Usage: @'glIsRenderbuffer' renderbuffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml>
-
-
-glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
-glIsRenderbuffer = ffiuintIOboolean glIsRenderbufferFunPtr
-
-glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsRenderbufferFunPtr = unsafePerformIO (getProcAddress "glIsRenderbuffer")
-
-{-# NOINLINE glIsRenderbufferFunPtr #-}
-
--- | Usage: @'glIsShader' shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml>
-
-
-glIsShader :: MonadIO m => GLuint -> m GLboolean
-glIsShader = ffiuintIOboolean glIsShaderFunPtr
-
-glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsShaderFunPtr = unsafePerformIO (getProcAddress "glIsShader")
-
-{-# NOINLINE glIsShaderFunPtr #-}
-
--- | Usage: @'glIsSync' sync@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml>
-
-
-glIsSync :: MonadIO m => GLsync -> m GLboolean
-glIsSync = ffisyncIOboolean glIsSyncFunPtr
-
-glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)
-glIsSyncFunPtr = unsafePerformIO (getProcAddress "glIsSync")
-
-{-# NOINLINE glIsSyncFunPtr #-}
-
--- | Usage: @'glIsTexture' texture@
---
--- The parameter @texture@ is a @Texture@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml>
-
-
-glIsTexture :: MonadIO m => GLuint -> m GLboolean
-glIsTexture = ffiuintIOboolean glIsTextureFunPtr
-
-glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTextureFunPtr = unsafePerformIO (getProcAddress "glIsTexture")
-
-{-# NOINLINE glIsTextureFunPtr #-}
-
--- | Usage: @'glIsVertexArray' array@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml>
-
-
-glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
-glIsVertexArray = ffiuintIOboolean glIsVertexArrayFunPtr
-
-glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsVertexArrayFunPtr = unsafePerformIO (getProcAddress "glIsVertexArray")
-
-{-# NOINLINE glIsVertexArrayFunPtr #-}
-
--- | Usage: @'glLineWidth' width@
---
--- The parameter @width@ is a @CheckedFloat32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml>
-
-
-glLineWidth :: MonadIO m => GLfloat -> m ()
-glLineWidth = ffifloatIOV glLineWidthFunPtr
-
-glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())
-glLineWidthFunPtr = unsafePerformIO (getProcAddress "glLineWidth")
-
-{-# NOINLINE glLineWidthFunPtr #-}
-
--- | Usage: @'glLinkProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml>
-
-
-glLinkProgram :: MonadIO m => GLuint -> m ()
-glLinkProgram = ffiuintIOV glLinkProgramFunPtr
-
-glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())
-glLinkProgramFunPtr = unsafePerformIO (getProcAddress "glLinkProgram")
-
-{-# NOINLINE glLinkProgramFunPtr #-}
-
--- | Usage: @'glLogicOp' opcode@
---
--- The parameter @opcode@ is a @LogicOp@, one of: 'Graphics.GL.Internal.Shared.GL_AND', 'Graphics.GL.Internal.Shared.GL_AND_INVERTED', 'Graphics.GL.Internal.Shared.GL_AND_REVERSE', 'Graphics.GL.Internal.Shared.GL_CLEAR', 'Graphics.GL.Internal.Shared.GL_COPY', 'Graphics.GL.Internal.Shared.GL_COPY_INVERTED', 'Graphics.GL.Internal.Shared.GL_EQUIV', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_NAND', 'Graphics.GL.Internal.Shared.GL_NOOP', 'Graphics.GL.Internal.Shared.GL_NOR', 'Graphics.GL.Internal.Shared.GL_OR', 'Graphics.GL.Internal.Shared.GL_OR_INVERTED', 'Graphics.GL.Internal.Shared.GL_OR_REVERSE', 'Graphics.GL.Internal.Shared.GL_SET', 'Graphics.GL.Internal.Shared.GL_XOR'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml>
-
-
-glLogicOp :: MonadIO m => GLenum -> m ()
-glLogicOp = ffienumIOV glLogicOpFunPtr
-
-glLogicOpFunPtr :: FunPtr (GLenum -> IO ())
-glLogicOpFunPtr = unsafePerformIO (getProcAddress "glLogicOp")
-
-{-# NOINLINE glLogicOpFunPtr #-}
-
--- | Usage: @'glMapBuffer' target access@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @access@ is a @BufferAccessARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml>
-
-
-glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
-glMapBuffer = ffienumenumIOPtrV glMapBufferFunPtr
-
-glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
-glMapBufferFunPtr = unsafePerformIO (getProcAddress "glMapBuffer")
-
-{-# NOINLINE glMapBufferFunPtr #-}
-
--- | Usage: @'glMapBufferRange' target offset length access@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @length@ is a @BufferSize@.
---
--- The parameter @access@ is a @BufferAccessMask@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml>
-
-
-glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapBufferRange = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeFunPtr
-
-glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapBufferRange")
-
-{-# NOINLINE glMapBufferRangeFunPtr #-}
-
--- | Usage: @'glMultiDrawArrays' mode first count drawcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @first@ should be @COMPSIZE(count)@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml>
-
-
-glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-glMultiDrawArrays = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysFunPtr
-
-glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArrays")
-
-{-# NOINLINE glMultiDrawArraysFunPtr #-}
-
--- | Usage: @'glMultiDrawElements' mode count type indices drawcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- The length of @indices@ should be @COMPSIZE(drawcount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml>
-
-
-glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
-glMultiDrawElements = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsFunPtr
-
-glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
-glMultiDrawElementsFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElements")
-
-{-# NOINLINE glMultiDrawElementsFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsBaseVertex' mode count type indices drawcount basevertex@
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- The length of @indices@ should be @COMPSIZE(drawcount)@.
---
--- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml>
-
-
-glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
-glMultiDrawElementsBaseVertex = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexFunPtr
-
-glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
-glMultiDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertex")
-
-{-# NOINLINE glMultiDrawElementsBaseVertexFunPtr #-}
-
--- | Usage: @'glPixelStoref' pname param@
---
--- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
-glPixelStoref = ffienumfloatIOV glPixelStorefFunPtr
-
-glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPixelStorefFunPtr = unsafePerformIO (getProcAddress "glPixelStoref")
-
-{-# NOINLINE glPixelStorefFunPtr #-}
-
--- | Usage: @'glPixelStorei' pname param@
---
--- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
-glPixelStorei = ffienumintIOV glPixelStoreiFunPtr
-
-glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPixelStoreiFunPtr = unsafePerformIO (getProcAddress "glPixelStorei")
-
-{-# NOINLINE glPixelStoreiFunPtr #-}
-
--- | Usage: @'glPointParameterf' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
-glPointParameterf = ffienumfloatIOV glPointParameterfFunPtr
-
-glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPointParameterfFunPtr = unsafePerformIO (getProcAddress "glPointParameterf")
-
-{-# NOINLINE glPointParameterfFunPtr #-}
-
--- | Usage: @'glPointParameterfv' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPointParameterfv = ffienumPtrfloatIOV glPointParameterfvFunPtr
-
-glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPointParameterfvFunPtr = unsafePerformIO (getProcAddress "glPointParameterfv")
-
-{-# NOINLINE glPointParameterfvFunPtr #-}
-
--- | Usage: @'glPointParameteri' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
-
-
-glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
-glPointParameteri = ffienumintIOV glPointParameteriFunPtr
-
-glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPointParameteriFunPtr = unsafePerformIO (getProcAddress "glPointParameteri")
-
-{-# NOINLINE glPointParameteriFunPtr #-}
-
--- | Usage: @'glPointParameteriv' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glPointParameteriv = ffienumPtrintIOV glPointParameterivFunPtr
-
-glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glPointParameterivFunPtr = unsafePerformIO (getProcAddress "glPointParameteriv")
-
-{-# NOINLINE glPointParameterivFunPtr #-}
-
--- | Usage: @'glPointSize' size@
---
--- The parameter @size@ is a @CheckedFloat32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml>
-
-
-glPointSize :: MonadIO m => GLfloat -> m ()
-glPointSize = ffifloatIOV glPointSizeFunPtr
-
-glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())
-glPointSizeFunPtr = unsafePerformIO (getProcAddress "glPointSize")
-
-{-# NOINLINE glPointSizeFunPtr #-}
-
--- | Usage: @'glPolygonMode' face mode@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml>
-
-
-glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
-glPolygonMode = ffienumenumIOV glPolygonModeFunPtr
-
-glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glPolygonModeFunPtr = unsafePerformIO (getProcAddress "glPolygonMode")
-
-{-# NOINLINE glPolygonModeFunPtr #-}
-
--- | Usage: @'glPolygonOffset' factor units@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml>
-
-
-glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
-glPolygonOffset = ffifloatfloatIOV glPolygonOffsetFunPtr
-
-glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glPolygonOffsetFunPtr = unsafePerformIO (getProcAddress "glPolygonOffset")
-
-{-# NOINLINE glPolygonOffsetFunPtr #-}
-
--- | Usage: @'glPrimitiveRestartIndex' index@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml>
-
-
-glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
-glPrimitiveRestartIndex = ffiuintIOV glPrimitiveRestartIndexFunPtr
-
-glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())
-glPrimitiveRestartIndexFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndex")
-
-{-# NOINLINE glPrimitiveRestartIndexFunPtr #-}
-
--- | Usage: @'glProvokingVertex' mode@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml>
-
-
-glProvokingVertex :: MonadIO m => GLenum -> m ()
-glProvokingVertex = ffienumIOV glProvokingVertexFunPtr
-
-glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())
-glProvokingVertexFunPtr = unsafePerformIO (getProcAddress "glProvokingVertex")
-
-{-# NOINLINE glProvokingVertexFunPtr #-}
-
--- | Usage: @'glReadBuffer' src@
---
--- The parameter @src@ is a @ReadBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml>
-
-
-glReadBuffer :: MonadIO m => GLenum -> m ()
-glReadBuffer = ffienumIOV glReadBufferFunPtr
-
-glReadBufferFunPtr :: FunPtr (GLenum -> IO ())
-glReadBufferFunPtr = unsafePerformIO (getProcAddress "glReadBuffer")
-
-{-# NOINLINE glReadBufferFunPtr #-}
-
--- | Usage: @'glReadPixels' x y width height format type pixels@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml>
-
-
-glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glReadPixels = ffiintintsizeisizeienumenumPtrVIOV glReadPixelsFunPtr
-
-glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glReadPixelsFunPtr = unsafePerformIO (getProcAddress "glReadPixels")
-
-{-# NOINLINE glReadPixelsFunPtr #-}
-
--- | Usage: @'glRenderbufferStorage' target internalformat width height@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml>
-
-
-glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorage = ffienumenumsizeisizeiIOV glRenderbufferStorageFunPtr
-
-glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorage")
-
-{-# NOINLINE glRenderbufferStorageFunPtr #-}
-
--- | Usage: @'glRenderbufferStorageMultisample' target samples internalformat width height@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml>
-
-
-glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisample = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleFunPtr
-
-glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisample")
-
-{-# NOINLINE glRenderbufferStorageMultisampleFunPtr #-}
-
--- | Usage: @'glSampleCoverage' value invert@
---
--- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml>
-
-
-glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
-glSampleCoverage = ffifloatbooleanIOV glSampleCoverageFunPtr
-
-glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
-glSampleCoverageFunPtr = unsafePerformIO (getProcAddress "glSampleCoverage")
-
-{-# NOINLINE glSampleCoverageFunPtr #-}
-
--- | Usage: @'glSampleMaski' maskNumber mask@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml>
-
-
-glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
-glSampleMaski = ffiuintbitfieldIOV glSampleMaskiFunPtr
-
-glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
-glSampleMaskiFunPtr = unsafePerformIO (getProcAddress "glSampleMaski")
-
-{-# NOINLINE glSampleMaskiFunPtr #-}
-
--- | Usage: @'glScissor' x y width height@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml>
-
-
-glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissor = ffiintintsizeisizeiIOV glScissorFunPtr
-
-glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorFunPtr = unsafePerformIO (getProcAddress "glScissor")
-
-{-# NOINLINE glScissorFunPtr #-}
-
--- | Usage: @'glShaderSource' shader count string length@
---
--- The length of @string@ should be @count@.
---
--- The length of @length@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml>
-
-
-glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
-glShaderSource = ffiuintsizeiPtrPtrcharPtrintIOV glShaderSourceFunPtr
-
-glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
-glShaderSourceFunPtr = unsafePerformIO (getProcAddress "glShaderSource")
-
-{-# NOINLINE glShaderSourceFunPtr #-}
-
--- | Usage: @'glStencilFunc' func ref mask@
---
--- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- The parameter @ref@ is a @StencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml>
-
-
-glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
-glStencilFunc = ffienumintuintIOV glStencilFuncFunPtr
-
-glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
-glStencilFuncFunPtr = unsafePerformIO (getProcAddress "glStencilFunc")
-
-{-# NOINLINE glStencilFuncFunPtr #-}
-
--- | Usage: @'glStencilFuncSeparate' face func ref mask@
---
--- The parameter @face@ is a @StencilFaceDirection@.
---
--- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- The parameter @ref@ is a @StencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml>
-
-
-glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
-glStencilFuncSeparate = ffienumenumintuintIOV glStencilFuncSeparateFunPtr
-
-glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
-glStencilFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparate")
-
-{-# NOINLINE glStencilFuncSeparateFunPtr #-}
-
--- | Usage: @'glStencilMask' mask@
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml>
-
-
-glStencilMask :: MonadIO m => GLuint -> m ()
-glStencilMask = ffiuintIOV glStencilMaskFunPtr
-
-glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())
-glStencilMaskFunPtr = unsafePerformIO (getProcAddress "glStencilMask")
-
-{-# NOINLINE glStencilMaskFunPtr #-}
-
--- | Usage: @'glStencilMaskSeparate' face mask@
---
--- The parameter @face@ is a @StencilFaceDirection@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml>
-
-
-glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
-glStencilMaskSeparate = ffienumuintIOV glStencilMaskSeparateFunPtr
-
-glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glStencilMaskSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilMaskSeparate")
-
-{-# NOINLINE glStencilMaskSeparateFunPtr #-}
-
--- | Usage: @'glStencilOp' fail zfail zpass@
---
--- The parameter @fail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @zfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @zpass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml>
-
-
-glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
-glStencilOp = ffienumenumenumIOV glStencilOpFunPtr
-
-glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
-glStencilOpFunPtr = unsafePerformIO (getProcAddress "glStencilOp")
-
-{-# NOINLINE glStencilOpFunPtr #-}
-
--- | Usage: @'glStencilOpSeparate' face sfail dpfail dppass@
---
--- The parameter @face@ is a @StencilFaceDirection@.
---
--- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml>
-
-
-glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glStencilOpSeparate = ffienumenumenumenumIOV glStencilOpSeparateFunPtr
-
-glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glStencilOpSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparate")
-
-{-# NOINLINE glStencilOpSeparateFunPtr #-}
-
--- | Usage: @'glTexBuffer' target internalformat buffer@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml>
-
-
-glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBuffer = ffienumenumuintIOV glTexBufferFunPtr
-
-glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferFunPtr = unsafePerformIO (getProcAddress "glTexBuffer")
-
-{-# NOINLINE glTexBufferFunPtr #-}
-
--- | Usage: @'glTexImage1D' target level internalformat width border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml>
-
-
-glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage1D = ffienumintintsizeiintenumenumPtrVIOV glTexImage1DFunPtr
-
-glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage1DFunPtr = unsafePerformIO (getProcAddress "glTexImage1D")
-
-{-# NOINLINE glTexImage1DFunPtr #-}
-
--- | Usage: @'glTexImage2D' target level internalformat width height border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml>
-
-
-glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage2D = ffienumintintsizeisizeiintenumenumPtrVIOV glTexImage2DFunPtr
-
-glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage2DFunPtr = unsafePerformIO (getProcAddress "glTexImage2D")
-
-{-# NOINLINE glTexImage2DFunPtr #-}
-
--- | Usage: @'glTexImage2DMultisample' target samples internalformat width height fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml>
-
-
-glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexImage2DMultisampleFunPtr
-
-glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisample")
-
-{-# NOINLINE glTexImage2DMultisampleFunPtr #-}
-
--- | Usage: @'glTexImage3D' target level internalformat width height depth border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml>
-
-
-glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage3D = ffienumintintsizeisizeisizeiintenumenumPtrVIOV glTexImage3DFunPtr
-
-glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage3DFunPtr = unsafePerformIO (getProcAddress "glTexImage3D")
-
-{-# NOINLINE glTexImage3DFunPtr #-}
-
--- | Usage: @'glTexImage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml>
-
-
-glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexImage3DMultisampleFunPtr
-
-glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisample")
-
-{-# NOINLINE glTexImage3DMultisampleFunPtr #-}
-
--- | Usage: @'glTexParameterIiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameterIiv = ffienumenumPtrintIOV glTexParameterIivFunPtr
-
-glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIiv")
-
-{-# NOINLINE glTexParameterIivFunPtr #-}
-
--- | Usage: @'glTexParameterIuiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glTexParameterIuiv = ffienumenumPtruintIOV glTexParameterIuivFunPtr
-
-glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuiv")
-
-{-# NOINLINE glTexParameterIuivFunPtr #-}
-
--- | Usage: @'glTexParameterf' target pname param@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexParameterf = ffienumenumfloatIOV glTexParameterfFunPtr
-
-glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexParameterfFunPtr = unsafePerformIO (getProcAddress "glTexParameterf")
-
-{-# NOINLINE glTexParameterfFunPtr #-}
-
--- | Usage: @'glTexParameterfv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexParameterfv = ffienumenumPtrfloatIOV glTexParameterfvFunPtr
-
-glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glTexParameterfv")
-
-{-# NOINLINE glTexParameterfvFunPtr #-}
-
--- | Usage: @'glTexParameteri' target pname param@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexParameteri = ffienumenumintIOV glTexParameteriFunPtr
-
-glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexParameteriFunPtr = unsafePerformIO (getProcAddress "glTexParameteri")
-
-{-# NOINLINE glTexParameteriFunPtr #-}
-
--- | Usage: @'glTexParameteriv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameteriv = ffienumenumPtrintIOV glTexParameterivFunPtr
-
-glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterivFunPtr = unsafePerformIO (getProcAddress "glTexParameteriv")
-
-{-# NOINLINE glTexParameterivFunPtr #-}
-
--- | Usage: @'glTexSubImage1D' target level xoffset width format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml>
-
-
-glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage1D = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DFunPtr
-
-glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1D")
-
-{-# NOINLINE glTexSubImage1DFunPtr #-}
-
--- | Usage: @'glTexSubImage2D' target level xoffset yoffset width height format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml>
-
-
-glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage2D = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DFunPtr
-
-glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2D")
-
-{-# NOINLINE glTexSubImage2DFunPtr #-}
-
--- | Usage: @'glTexSubImage3D' target level xoffset yoffset zoffset width height depth format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml>
-
-
-glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage3D = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DFunPtr
-
-glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3D")
-
-{-# NOINLINE glTexSubImage3DFunPtr #-}
-
--- | Usage: @'glTransformFeedbackVaryings' program count varyings bufferMode@
---
--- The length of @varyings@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml>
-
-
-glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
-glTransformFeedbackVaryings = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsFunPtr
-
-glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
-glTransformFeedbackVaryingsFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryings")
-
-{-# NOINLINE glTransformFeedbackVaryingsFunPtr #-}
-
--- | Usage: @'glUniform1f' location v0@
-
-
-glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
-glUniform1f = ffiintfloatIOV glUniform1fFunPtr
-
-glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
-glUniform1fFunPtr = unsafePerformIO (getProcAddress "glUniform1f")
-
-{-# NOINLINE glUniform1fFunPtr #-}
-
--- | Usage: @'glUniform1fv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform1fv = ffiintsizeiPtrfloatIOV glUniform1fvFunPtr
-
-glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform1fvFunPtr = unsafePerformIO (getProcAddress "glUniform1fv")
-
-{-# NOINLINE glUniform1fvFunPtr #-}
-
--- | Usage: @'glUniform1i' location v0@
-
-
-glUniform1i :: MonadIO m => GLint -> GLint -> m ()
-glUniform1i = ffiintintIOV glUniform1iFunPtr
-
-glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glUniform1iFunPtr = unsafePerformIO (getProcAddress "glUniform1i")
-
-{-# NOINLINE glUniform1iFunPtr #-}
-
--- | Usage: @'glUniform1iv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform1iv = ffiintsizeiPtrintIOV glUniform1ivFunPtr
-
-glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform1ivFunPtr = unsafePerformIO (getProcAddress "glUniform1iv")
-
-{-# NOINLINE glUniform1ivFunPtr #-}
-
--- | Usage: @'glUniform1ui' location v0@
-
-
-glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
-glUniform1ui = ffiintuintIOV glUniform1uiFunPtr
-
-glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())
-glUniform1uiFunPtr = unsafePerformIO (getProcAddress "glUniform1ui")
-
-{-# NOINLINE glUniform1uiFunPtr #-}
-
--- | Usage: @'glUniform1uiv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform1uiv = ffiintsizeiPtruintIOV glUniform1uivFunPtr
-
-glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform1uivFunPtr = unsafePerformIO (getProcAddress "glUniform1uiv")
-
-{-# NOINLINE glUniform1uivFunPtr #-}
-
--- | Usage: @'glUniform2f' location v0 v1@
-
-
-glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
-glUniform2f = ffiintfloatfloatIOV glUniform2fFunPtr
-
-glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
-glUniform2fFunPtr = unsafePerformIO (getProcAddress "glUniform2f")
-
-{-# NOINLINE glUniform2fFunPtr #-}
-
--- | Usage: @'glUniform2fv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform2fv = ffiintsizeiPtrfloatIOV glUniform2fvFunPtr
-
-glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform2fvFunPtr = unsafePerformIO (getProcAddress "glUniform2fv")
-
-{-# NOINLINE glUniform2fvFunPtr #-}
-
--- | Usage: @'glUniform2i' location v0 v1@
-
-
-glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glUniform2i = ffiintintintIOV glUniform2iFunPtr
-
-glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glUniform2iFunPtr = unsafePerformIO (getProcAddress "glUniform2i")
-
-{-# NOINLINE glUniform2iFunPtr #-}
-
--- | Usage: @'glUniform2iv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform2iv = ffiintsizeiPtrintIOV glUniform2ivFunPtr
-
-glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform2ivFunPtr = unsafePerformIO (getProcAddress "glUniform2iv")
-
-{-# NOINLINE glUniform2ivFunPtr #-}
-
--- | Usage: @'glUniform2ui' location v0 v1@
-
-
-glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
-glUniform2ui = ffiintuintuintIOV glUniform2uiFunPtr
-
-glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
-glUniform2uiFunPtr = unsafePerformIO (getProcAddress "glUniform2ui")
-
-{-# NOINLINE glUniform2uiFunPtr #-}
-
--- | Usage: @'glUniform2uiv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform2uiv = ffiintsizeiPtruintIOV glUniform2uivFunPtr
-
-glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform2uivFunPtr = unsafePerformIO (getProcAddress "glUniform2uiv")
-
-{-# NOINLINE glUniform2uivFunPtr #-}
-
--- | Usage: @'glUniform3f' location v0 v1 v2@
-
-
-glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform3f = ffiintfloatfloatfloatIOV glUniform3fFunPtr
-
-glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform3fFunPtr = unsafePerformIO (getProcAddress "glUniform3f")
-
-{-# NOINLINE glUniform3fFunPtr #-}
-
--- | Usage: @'glUniform3fv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform3fv = ffiintsizeiPtrfloatIOV glUniform3fvFunPtr
-
-glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform3fvFunPtr = unsafePerformIO (getProcAddress "glUniform3fv")
-
-{-# NOINLINE glUniform3fvFunPtr #-}
-
--- | Usage: @'glUniform3i' location v0 v1 v2@
-
-
-glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glUniform3i = ffiintintintintIOV glUniform3iFunPtr
-
-glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform3iFunPtr = unsafePerformIO (getProcAddress "glUniform3i")
-
-{-# NOINLINE glUniform3iFunPtr #-}
-
--- | Usage: @'glUniform3iv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform3iv = ffiintsizeiPtrintIOV glUniform3ivFunPtr
-
-glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform3ivFunPtr = unsafePerformIO (getProcAddress "glUniform3iv")
-
-{-# NOINLINE glUniform3ivFunPtr #-}
-
--- | Usage: @'glUniform3ui' location v0 v1 v2@
-
-
-glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
-glUniform3ui = ffiintuintuintuintIOV glUniform3uiFunPtr
-
-glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform3uiFunPtr = unsafePerformIO (getProcAddress "glUniform3ui")
-
-{-# NOINLINE glUniform3uiFunPtr #-}
-
--- | Usage: @'glUniform3uiv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform3uiv = ffiintsizeiPtruintIOV glUniform3uivFunPtr
-
-glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform3uivFunPtr = unsafePerformIO (getProcAddress "glUniform3uiv")
-
-{-# NOINLINE glUniform3uivFunPtr #-}
-
--- | Usage: @'glUniform4f' location v0 v1 v2 v3@
-
-
-glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform4f = ffiintfloatfloatfloatfloatIOV glUniform4fFunPtr
-
-glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform4fFunPtr = unsafePerformIO (getProcAddress "glUniform4f")
-
-{-# NOINLINE glUniform4fFunPtr #-}
-
--- | Usage: @'glUniform4fv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform4fv = ffiintsizeiPtrfloatIOV glUniform4fvFunPtr
-
-glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform4fvFunPtr = unsafePerformIO (getProcAddress "glUniform4fv")
-
-{-# NOINLINE glUniform4fvFunPtr #-}
-
--- | Usage: @'glUniform4i' location v0 v1 v2 v3@
-
-
-glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glUniform4i = ffiintintintintintIOV glUniform4iFunPtr
-
-glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform4iFunPtr = unsafePerformIO (getProcAddress "glUniform4i")
-
-{-# NOINLINE glUniform4iFunPtr #-}
-
--- | Usage: @'glUniform4iv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform4iv = ffiintsizeiPtrintIOV glUniform4ivFunPtr
-
-glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform4ivFunPtr = unsafePerformIO (getProcAddress "glUniform4iv")
-
-{-# NOINLINE glUniform4ivFunPtr #-}
-
--- | Usage: @'glUniform4ui' location v0 v1 v2 v3@
-
-
-glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glUniform4ui = ffiintuintuintuintuintIOV glUniform4uiFunPtr
-
-glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform4uiFunPtr = unsafePerformIO (getProcAddress "glUniform4ui")
-
-{-# NOINLINE glUniform4uiFunPtr #-}
-
--- | Usage: @'glUniform4uiv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform4uiv = ffiintsizeiPtruintIOV glUniform4uivFunPtr
-
-glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform4uivFunPtr = unsafePerformIO (getProcAddress "glUniform4uiv")
-
-{-# NOINLINE glUniform4uivFunPtr #-}
-
--- | Usage: @'glUniformBlockBinding' program uniformBlockIndex uniformBlockBinding@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml>
-
-
-glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glUniformBlockBinding = ffiuintuintuintIOV glUniformBlockBindingFunPtr
-
-glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glUniformBlockBindingFunPtr = unsafePerformIO (getProcAddress "glUniformBlockBinding")
-
-{-# NOINLINE glUniformBlockBindingFunPtr #-}
-
--- | Usage: @'glUniformMatrix2fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvFunPtr
-
-glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fv")
-
-{-# NOINLINE glUniformMatrix2fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x3fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvFunPtr
-
-glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fv")
-
-{-# NOINLINE glUniformMatrix2x3fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x4fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvFunPtr
-
-glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fv")
-
-{-# NOINLINE glUniformMatrix2x4fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvFunPtr
-
-glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fv")
-
-{-# NOINLINE glUniformMatrix3fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x2fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvFunPtr
-
-glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fv")
-
-{-# NOINLINE glUniformMatrix3x2fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x4fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvFunPtr
-
-glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fv")
-
-{-# NOINLINE glUniformMatrix3x4fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvFunPtr
-
-glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fv")
-
-{-# NOINLINE glUniformMatrix4fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x2fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvFunPtr
-
-glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fv")
-
-{-# NOINLINE glUniformMatrix4x2fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x3fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvFunPtr
-
-glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fv")
-
-{-# NOINLINE glUniformMatrix4x3fvFunPtr #-}
-
--- | Usage: @'glUnmapBuffer' target@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml>
-
-
-glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
-glUnmapBuffer = ffienumIOboolean glUnmapBufferFunPtr
-
-glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glUnmapBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapBuffer")
-
-{-# NOINLINE glUnmapBufferFunPtr #-}
-
--- | Usage: @'glUseProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml>
-
-
-glUseProgram :: MonadIO m => GLuint -> m ()
-glUseProgram = ffiuintIOV glUseProgramFunPtr
-
-glUseProgramFunPtr :: FunPtr (GLuint -> IO ())
-glUseProgramFunPtr = unsafePerformIO (getProcAddress "glUseProgram")
-
-{-# NOINLINE glUseProgramFunPtr #-}
-
--- | Usage: @'glValidateProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml>
-
-
-glValidateProgram :: MonadIO m => GLuint -> m ()
-glValidateProgram = ffiuintIOV glValidateProgramFunPtr
-
-glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())
-glValidateProgramFunPtr = unsafePerformIO (getProcAddress "glValidateProgram")
-
-{-# NOINLINE glValidateProgramFunPtr #-}
-
--- | Usage: @'glVertexAttrib1d' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
-
-
-glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttrib1d = ffiuintdoubleIOV glVertexAttrib1dFunPtr
-
-glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttrib1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1d")
-
-{-# NOINLINE glVertexAttrib1dFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib1dv = ffiuintPtrdoubleIOV glVertexAttrib1dvFunPtr
-
-glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dv")
-
-{-# NOINLINE glVertexAttrib1dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib1f' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
-
-
-glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
-glVertexAttrib1f = ffiuintfloatIOV glVertexAttrib1fFunPtr
-
-glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
-glVertexAttrib1fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1f")
-
-{-# NOINLINE glVertexAttrib1fFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib1fv = ffiuintPtrfloatIOV glVertexAttrib1fvFunPtr
-
-glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib1fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fv")
-
-{-# NOINLINE glVertexAttrib1fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib1s' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
-
-
-glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
-glVertexAttrib1s = ffiuintshortIOV glVertexAttrib1sFunPtr
-
-glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
-glVertexAttrib1sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1s")
-
-{-# NOINLINE glVertexAttrib1sFunPtr #-}
-
--- | Usage: @'glVertexAttrib1sv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib1sv = ffiuintPtrshortIOV glVertexAttrib1svFunPtr
-
-glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib1svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sv")
-
-{-# NOINLINE glVertexAttrib1svFunPtr #-}
-
--- | Usage: @'glVertexAttrib2d' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
-
-
-glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttrib2d = ffiuintdoubledoubleIOV glVertexAttrib2dFunPtr
-
-glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2d")
-
-{-# NOINLINE glVertexAttrib2dFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib2dv = ffiuintPtrdoubleIOV glVertexAttrib2dvFunPtr
-
-glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dv")
-
-{-# NOINLINE glVertexAttrib2dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib2f' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
-
-
-glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glVertexAttrib2f = ffiuintfloatfloatIOV glVertexAttrib2fFunPtr
-
-glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib2fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2f")
-
-{-# NOINLINE glVertexAttrib2fFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib2fv = ffiuintPtrfloatIOV glVertexAttrib2fvFunPtr
-
-glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib2fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fv")
-
-{-# NOINLINE glVertexAttrib2fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib2s' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
-
-
-glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
-glVertexAttrib2s = ffiuintshortshortIOV glVertexAttrib2sFunPtr
-
-glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-glVertexAttrib2sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2s")
-
-{-# NOINLINE glVertexAttrib2sFunPtr #-}
-
--- | Usage: @'glVertexAttrib2sv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib2sv = ffiuintPtrshortIOV glVertexAttrib2svFunPtr
-
-glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib2svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sv")
-
-{-# NOINLINE glVertexAttrib2svFunPtr #-}
-
--- | Usage: @'glVertexAttrib3d' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
-
-
-glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib3d = ffiuintdoubledoubledoubleIOV glVertexAttrib3dFunPtr
-
-glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3d")
-
-{-# NOINLINE glVertexAttrib3dFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib3dv = ffiuintPtrdoubleIOV glVertexAttrib3dvFunPtr
-
-glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dv")
-
-{-# NOINLINE glVertexAttrib3dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib3f' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
-
-
-glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib3f = ffiuintfloatfloatfloatIOV glVertexAttrib3fFunPtr
-
-glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib3fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3f")
-
-{-# NOINLINE glVertexAttrib3fFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib3fv = ffiuintPtrfloatIOV glVertexAttrib3fvFunPtr
-
-glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib3fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fv")
-
-{-# NOINLINE glVertexAttrib3fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib3s' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
-
-
-glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib3s = ffiuintshortshortshortIOV glVertexAttrib3sFunPtr
-
-glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib3sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3s")
-
-{-# NOINLINE glVertexAttrib3sFunPtr #-}
-
--- | Usage: @'glVertexAttrib3sv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib3sv = ffiuintPtrshortIOV glVertexAttrib3svFunPtr
-
-glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib3svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sv")
-
-{-# NOINLINE glVertexAttrib3svFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nbv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4Nbv = ffiuintPtrbyteIOV glVertexAttrib4NbvFunPtr
-
-glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4NbvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nbv")
-
-{-# NOINLINE glVertexAttrib4NbvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Niv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4Niv = ffiuintPtrintIOV glVertexAttrib4NivFunPtr
-
-glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4NivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Niv")
-
-{-# NOINLINE glVertexAttrib4NivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nsv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4Nsv = ffiuintPtrshortIOV glVertexAttrib4NsvFunPtr
-
-glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4NsvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nsv")
-
-{-# NOINLINE glVertexAttrib4NsvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nub' index x y z w@
-
-
-glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glVertexAttrib4Nub = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubFunPtr
-
-glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glVertexAttrib4NubFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nub")
-
-{-# NOINLINE glVertexAttrib4NubFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nubv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4Nubv = ffiuintPtrubyteIOV glVertexAttrib4NubvFunPtr
-
-glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4NubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nubv")
-
-{-# NOINLINE glVertexAttrib4NubvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nuiv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4Nuiv = ffiuintPtruintIOV glVertexAttrib4NuivFunPtr
-
-glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4NuivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nuiv")
-
-{-# NOINLINE glVertexAttrib4NuivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nusv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4Nusv = ffiuintPtrushortIOV glVertexAttrib4NusvFunPtr
-
-glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4NusvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nusv")
-
-{-# NOINLINE glVertexAttrib4NusvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4bv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4bv = ffiuintPtrbyteIOV glVertexAttrib4bvFunPtr
-
-glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bv")
-
-{-# NOINLINE glVertexAttrib4bvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4d' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
-
-
-glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dFunPtr
-
-glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4d")
-
-{-# NOINLINE glVertexAttrib4dFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib4dv = ffiuintPtrdoubleIOV glVertexAttrib4dvFunPtr
-
-glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dv")
-
-{-# NOINLINE glVertexAttrib4dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4f' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
-
-
-glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib4f = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fFunPtr
-
-glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib4fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4f")
-
-{-# NOINLINE glVertexAttrib4fFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib4fv = ffiuintPtrfloatIOV glVertexAttrib4fvFunPtr
-
-glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib4fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fv")
-
-{-# NOINLINE glVertexAttrib4fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4iv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4iv = ffiuintPtrintIOV glVertexAttrib4ivFunPtr
-
-glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4iv")
-
-{-# NOINLINE glVertexAttrib4ivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4s' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
-
-
-glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib4s = ffiuintshortshortshortshortIOV glVertexAttrib4sFunPtr
-
-glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib4sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4s")
-
-{-# NOINLINE glVertexAttrib4sFunPtr #-}
-
--- | Usage: @'glVertexAttrib4sv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4sv = ffiuintPtrshortIOV glVertexAttrib4svFunPtr
-
-glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sv")
-
-{-# NOINLINE glVertexAttrib4svFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ubv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4ubv = ffiuintPtrubyteIOV glVertexAttrib4ubvFunPtr
-
-glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubv")
-
-{-# NOINLINE glVertexAttrib4ubvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4uiv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4uiv = ffiuintPtruintIOV glVertexAttrib4uivFunPtr
-
-glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uiv")
-
-{-# NOINLINE glVertexAttrib4uivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4usv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4usv = ffiuintPtrushortIOV glVertexAttrib4usvFunPtr
-
-glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usv")
-
-{-# NOINLINE glVertexAttrib4usvFunPtr #-}
-
--- | Usage: @'glVertexAttribI1i' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1iv'.
-
-
-glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
-glVertexAttribI1i = ffiuintintIOV glVertexAttribI1iFunPtr
-
-glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glVertexAttribI1iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1i")
-
-{-# NOINLINE glVertexAttribI1iFunPtr #-}
-
--- | Usage: @'glVertexAttribI1iv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI1iv = ffiuintPtrintIOV glVertexAttribI1ivFunPtr
-
-glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI1ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iv")
-
-{-# NOINLINE glVertexAttribI1ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI1ui' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1uiv'.
-
-
-glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribI1ui = ffiuintuintIOV glVertexAttribI1uiFunPtr
-
-glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribI1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ui")
-
-{-# NOINLINE glVertexAttribI1uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI1uiv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI1uiv = ffiuintPtruintIOV glVertexAttribI1uivFunPtr
-
-glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiv")
-
-{-# NOINLINE glVertexAttribI1uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI2i' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2iv'.
-
-
-glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glVertexAttribI2i = ffiuintintintIOV glVertexAttribI2iFunPtr
-
-glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glVertexAttribI2iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2i")
-
-{-# NOINLINE glVertexAttribI2iFunPtr #-}
-
--- | Usage: @'glVertexAttribI2iv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI2iv = ffiuintPtrintIOV glVertexAttribI2ivFunPtr
-
-glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI2ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iv")
-
-{-# NOINLINE glVertexAttribI2ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI2ui' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2uiv'.
-
-
-glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI2ui = ffiuintuintuintIOV glVertexAttribI2uiFunPtr
-
-glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ui")
-
-{-# NOINLINE glVertexAttribI2uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI2uiv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI2uiv = ffiuintPtruintIOV glVertexAttribI2uivFunPtr
-
-glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiv")
-
-{-# NOINLINE glVertexAttribI2uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI3i' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3iv'.
-
-
-glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI3i = ffiuintintintintIOV glVertexAttribI3iFunPtr
-
-glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI3iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3i")
-
-{-# NOINLINE glVertexAttribI3iFunPtr #-}
-
--- | Usage: @'glVertexAttribI3iv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI3iv = ffiuintPtrintIOV glVertexAttribI3ivFunPtr
-
-glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI3ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iv")
-
-{-# NOINLINE glVertexAttribI3ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI3ui' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3uiv'.
-
-
-glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI3ui = ffiuintuintuintuintIOV glVertexAttribI3uiFunPtr
-
-glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ui")
-
-{-# NOINLINE glVertexAttribI3uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI3uiv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI3uiv = ffiuintPtruintIOV glVertexAttribI3uivFunPtr
-
-glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiv")
-
-{-# NOINLINE glVertexAttribI3uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI4bv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttribI4bv = ffiuintPtrbyteIOV glVertexAttribI4bvFunPtr
-
-glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttribI4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bv")
-
-{-# NOINLINE glVertexAttribI4bvFunPtr #-}
-
--- | Usage: @'glVertexAttribI4i' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4iv'.
-
-
-glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI4i = ffiuintintintintintIOV glVertexAttribI4iFunPtr
-
-glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI4iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4i")
-
-{-# NOINLINE glVertexAttribI4iFunPtr #-}
-
--- | Usage: @'glVertexAttribI4iv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI4iv = ffiuintPtrintIOV glVertexAttribI4ivFunPtr
-
-glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iv")
-
-{-# NOINLINE glVertexAttribI4ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI4sv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttribI4sv = ffiuintPtrshortIOV glVertexAttribI4svFunPtr
-
-glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttribI4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4sv")
-
-{-# NOINLINE glVertexAttribI4svFunPtr #-}
-
--- | Usage: @'glVertexAttribI4ubv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttribI4ubv = ffiuintPtrubyteIOV glVertexAttribI4ubvFunPtr
-
-glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttribI4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubv")
-
-{-# NOINLINE glVertexAttribI4ubvFunPtr #-}
-
--- | Usage: @'glVertexAttribI4ui' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4uiv'.
-
-
-glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI4ui = ffiuintuintuintuintuintIOV glVertexAttribI4uiFunPtr
-
-glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ui")
-
-{-# NOINLINE glVertexAttribI4uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI4uiv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI4uiv = ffiuintPtruintIOV glVertexAttribI4uivFunPtr
-
-glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiv")
-
-{-# NOINLINE glVertexAttribI4uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI4usv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttribI4usv = ffiuintPtrushortIOV glVertexAttribI4usvFunPtr
-
-glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttribI4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usv")
-
-{-# NOINLINE glVertexAttribI4usvFunPtr #-}
-
--- | Usage: @'glVertexAttribIPointer' index size type stride pointer@
---
--- The parameter @type@ is a @VertexAttribEnum@.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribIPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerFunPtr
-
-glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribIPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointer")
-
-{-# NOINLINE glVertexAttribIPointerFunPtr #-}
-
--- | Usage: @'glVertexAttribPointer' index size type normalized stride pointer@
---
--- The parameter @type@ is a @VertexAttribPointerType@.
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml>
-
-
-glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
-glVertexAttribPointer = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerFunPtr
-
-glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
-glVertexAttribPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointer")
-
-{-# NOINLINE glVertexAttribPointerFunPtr #-}
-
--- | Usage: @'glViewport' x y width height@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml>
-
-
-glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glViewport = ffiintintsizeisizeiIOV glViewportFunPtr
-
-glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glViewportFunPtr = unsafePerformIO (getProcAddress "glViewport")
-
-{-# NOINLINE glViewportFunPtr #-}
-
--- | Usage: @'glWaitSync' sync flags timeout@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml>
-
-
-glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
-glWaitSync = ffisyncbitfielduint64IOV glWaitSyncFunPtr
-
-glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
-glWaitSyncFunPtr = unsafePerformIO (getProcAddress "glWaitSync")
-
-{-# NOINLINE glWaitSyncFunPtr #-}
-
-pattern GL_ACTIVE_ATTRIBUTES = 0x8B89
-
-pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
-
-pattern GL_ACTIVE_TEXTURE = 0x84E0
-
-pattern GL_ACTIVE_UNIFORMS = 0x8B86
-
-pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36
-
-pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
-
-pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
-
-pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E
-
-pattern GL_ALPHA = 0x1906
-
-pattern GL_ALREADY_SIGNALED = 0x911A
-
-pattern GL_ALWAYS = 0x0207
-
-pattern GL_AND = 0x1501
-
-pattern GL_AND_INVERTED = 0x1504
-
-pattern GL_AND_REVERSE = 0x1502
-
-pattern GL_ARRAY_BUFFER = 0x8892
-
-pattern GL_ARRAY_BUFFER_BINDING = 0x8894
-
-pattern GL_ATTACHED_SHADERS = 0x8B85
-
-pattern GL_BACK = 0x0405
-
-pattern GL_BACK_LEFT = 0x0402
-
-pattern GL_BACK_RIGHT = 0x0403
-
-pattern GL_BGR = 0x80E0
-
-pattern GL_BGRA = 0x80E1
-
-pattern GL_BGRA_INTEGER = 0x8D9B
-
-pattern GL_BGR_INTEGER = 0x8D9A
-
-pattern GL_BLEND = 0x0BE2
-
-pattern GL_BLEND_COLOR = 0x8005
-
-pattern GL_BLEND_DST = 0x0BE0
-
-pattern GL_BLEND_DST_ALPHA = 0x80CA
-
-pattern GL_BLEND_DST_RGB = 0x80C8
-
-pattern GL_BLEND_EQUATION_ALPHA = 0x883D
-
-pattern GL_BLEND_EQUATION_RGB = 0x8009
-
-pattern GL_BLEND_SRC = 0x0BE1
-
-pattern GL_BLEND_SRC_ALPHA = 0x80CB
-
-pattern GL_BLEND_SRC_RGB = 0x80C9
-
-pattern GL_BLUE = 0x1905
-
-pattern GL_BLUE_INTEGER = 0x8D96
-
-pattern GL_BOOL = 0x8B56
-
-pattern GL_BOOL_VEC2 = 0x8B57
-
-pattern GL_BOOL_VEC3 = 0x8B58
-
-pattern GL_BOOL_VEC4 = 0x8B59
-
-pattern GL_BUFFER_ACCESS = 0x88BB
-
-pattern GL_BUFFER_ACCESS_FLAGS = 0x911F
-
-pattern GL_BUFFER_MAPPED = 0x88BC
-
-pattern GL_BUFFER_MAP_LENGTH = 0x9120
-
-pattern GL_BUFFER_MAP_OFFSET = 0x9121
-
-pattern GL_BUFFER_MAP_POINTER = 0x88BD
-
-pattern GL_BUFFER_SIZE = 0x8764
-
-pattern GL_BUFFER_USAGE = 0x8765
-
-pattern GL_BYTE = 0x1400
-
-pattern GL_CCW = 0x0901
-
-pattern GL_CLAMP_READ_COLOR = 0x891C
-
-pattern GL_CLAMP_TO_BORDER = 0x812D
-
-pattern GL_CLAMP_TO_EDGE = 0x812F
-
-pattern GL_CLEAR = 0x1500
-
-pattern GL_CLIP_DISTANCE0 = 0x3000
-
-pattern GL_CLIP_DISTANCE1 = 0x3001
-
-pattern GL_CLIP_DISTANCE2 = 0x3002
-
-pattern GL_CLIP_DISTANCE3 = 0x3003
-
-pattern GL_CLIP_DISTANCE4 = 0x3004
-
-pattern GL_CLIP_DISTANCE5 = 0x3005
-
-pattern GL_CLIP_DISTANCE6 = 0x3006
-
-pattern GL_CLIP_DISTANCE7 = 0x3007
-
-pattern GL_COLOR = 0x1800
-
-pattern GL_COLOR_ATTACHMENT0 = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT1 = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT10 = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11 = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12 = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13 = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14 = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15 = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT16 = 0x8CF0
-
-pattern GL_COLOR_ATTACHMENT17 = 0x8CF1
-
-pattern GL_COLOR_ATTACHMENT18 = 0x8CF2
-
-pattern GL_COLOR_ATTACHMENT19 = 0x8CF3
-
-pattern GL_COLOR_ATTACHMENT2 = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT20 = 0x8CF4
-
-pattern GL_COLOR_ATTACHMENT21 = 0x8CF5
-
-pattern GL_COLOR_ATTACHMENT22 = 0x8CF6
-
-pattern GL_COLOR_ATTACHMENT23 = 0x8CF7
-
-pattern GL_COLOR_ATTACHMENT24 = 0x8CF8
-
-pattern GL_COLOR_ATTACHMENT25 = 0x8CF9
-
-pattern GL_COLOR_ATTACHMENT26 = 0x8CFA
-
-pattern GL_COLOR_ATTACHMENT27 = 0x8CFB
-
-pattern GL_COLOR_ATTACHMENT28 = 0x8CFC
-
-pattern GL_COLOR_ATTACHMENT29 = 0x8CFD
-
-pattern GL_COLOR_ATTACHMENT3 = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT30 = 0x8CFE
-
-pattern GL_COLOR_ATTACHMENT31 = 0x8CFF
-
-pattern GL_COLOR_ATTACHMENT4 = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5 = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6 = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7 = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8 = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9 = 0x8CE9
-
-pattern GL_COLOR_BUFFER_BIT = 0x00004000
-
-pattern GL_COLOR_CLEAR_VALUE = 0x0C22
-
-pattern GL_COLOR_LOGIC_OP = 0x0BF2
-
-pattern GL_COLOR_WRITEMASK = 0x0C23
-
-pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E
-
-pattern GL_COMPILE_STATUS = 0x8B81
-
-pattern GL_COMPRESSED_RED = 0x8225
-
-pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB
-
-pattern GL_COMPRESSED_RG = 0x8226
-
-pattern GL_COMPRESSED_RGB = 0x84ED
-
-pattern GL_COMPRESSED_RGBA = 0x84EE
-
-pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD
-
-pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
-
-pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
-
-pattern GL_COMPRESSED_SRGB = 0x8C48
-
-pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49
-
-pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3
-
-pattern GL_CONDITION_SATISFIED = 0x911C
-
-pattern GL_CONSTANT_ALPHA = 0x8003
-
-pattern GL_CONSTANT_COLOR = 0x8001
-
-pattern GL_CONTEXT_FLAGS = 0x821E
-
-pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
-
-pattern GL_COPY = 0x1503
-
-pattern GL_COPY_INVERTED = 0x150C
-
-pattern GL_COPY_READ_BUFFER = 0x8F36
-
-pattern GL_COPY_WRITE_BUFFER = 0x8F37
-
-pattern GL_CULL_FACE = 0x0B44
-
-pattern GL_CULL_FACE_MODE = 0x0B45
-
-pattern GL_CURRENT_PROGRAM = 0x8B8D
-
-pattern GL_CURRENT_QUERY = 0x8865
-
-pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626
-
-pattern GL_CW = 0x0900
-
-pattern GL_DECR = 0x1E03
-
-pattern GL_DECR_WRAP = 0x8508
-
-pattern GL_DELETE_STATUS = 0x8B80
-
-pattern GL_DEPTH = 0x1801
-
-pattern GL_DEPTH24_STENCIL8 = 0x88F0
-
-pattern GL_DEPTH32F_STENCIL8 = 0x8CAD
-
-pattern GL_DEPTH_ATTACHMENT = 0x8D00
-
-pattern GL_DEPTH_BUFFER_BIT = 0x00000100
-
-pattern GL_DEPTH_CLAMP = 0x864F
-
-pattern GL_DEPTH_CLEAR_VALUE = 0x0B73
-
-pattern GL_DEPTH_COMPONENT = 0x1902
-
-pattern GL_DEPTH_COMPONENT16 = 0x81A5
-
-pattern GL_DEPTH_COMPONENT24 = 0x81A6
-
-pattern GL_DEPTH_COMPONENT32 = 0x81A7
-
-pattern GL_DEPTH_COMPONENT32F = 0x8CAC
-
-pattern GL_DEPTH_FUNC = 0x0B74
-
-pattern GL_DEPTH_RANGE = 0x0B70
-
-pattern GL_DEPTH_STENCIL = 0x84F9
-
-pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A
-
-pattern GL_DEPTH_TEST = 0x0B71
-
-pattern GL_DEPTH_WRITEMASK = 0x0B72
-
-pattern GL_DITHER = 0x0BD0
-
-pattern GL_DONT_CARE = 0x1100
-
-pattern GL_DOUBLE = 0x140A
-
-pattern GL_DOUBLEBUFFER = 0x0C32
-
-pattern GL_DRAW_BUFFER = 0x0C01
-
-pattern GL_DRAW_BUFFER0 = 0x8825
-
-pattern GL_DRAW_BUFFER1 = 0x8826
-
-pattern GL_DRAW_BUFFER10 = 0x882F
-
-pattern GL_DRAW_BUFFER11 = 0x8830
-
-pattern GL_DRAW_BUFFER12 = 0x8831
-
-pattern GL_DRAW_BUFFER13 = 0x8832
-
-pattern GL_DRAW_BUFFER14 = 0x8833
-
-pattern GL_DRAW_BUFFER15 = 0x8834
-
-pattern GL_DRAW_BUFFER2 = 0x8827
-
-pattern GL_DRAW_BUFFER3 = 0x8828
-
-pattern GL_DRAW_BUFFER4 = 0x8829
-
-pattern GL_DRAW_BUFFER5 = 0x882A
-
-pattern GL_DRAW_BUFFER6 = 0x882B
-
-pattern GL_DRAW_BUFFER7 = 0x882C
-
-pattern GL_DRAW_BUFFER8 = 0x882D
-
-pattern GL_DRAW_BUFFER9 = 0x882E
-
-pattern GL_DRAW_FRAMEBUFFER = 0x8CA9
-
-pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6
-
-pattern GL_DST_ALPHA = 0x0304
-
-pattern GL_DST_COLOR = 0x0306
-
-pattern GL_DYNAMIC_COPY = 0x88EA
-
-pattern GL_DYNAMIC_DRAW = 0x88E8
-
-pattern GL_DYNAMIC_READ = 0x88E9
-
-pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893
-
-pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
-
-pattern GL_EQUAL = 0x0202
-
-pattern GL_EQUIV = 0x1509
-
-pattern GL_EXTENSIONS = 0x1F03
-
-pattern GL_FALSE = 0
-
-pattern GL_FASTEST = 0x1101
-
-pattern GL_FILL = 0x1B02
-
-pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D
-
-pattern GL_FIXED_ONLY = 0x891D
-
-pattern GL_FLOAT = 0x1406
-
-pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
-
-pattern GL_FLOAT_MAT2 = 0x8B5A
-
-pattern GL_FLOAT_MAT2x3 = 0x8B65
-
-pattern GL_FLOAT_MAT2x4 = 0x8B66
-
-pattern GL_FLOAT_MAT3 = 0x8B5B
-
-pattern GL_FLOAT_MAT3x2 = 0x8B67
-
-pattern GL_FLOAT_MAT3x4 = 0x8B68
-
-pattern GL_FLOAT_MAT4 = 0x8B5C
-
-pattern GL_FLOAT_MAT4x2 = 0x8B69
-
-pattern GL_FLOAT_MAT4x3 = 0x8B6A
-
-pattern GL_FLOAT_VEC2 = 0x8B50
-
-pattern GL_FLOAT_VEC3 = 0x8B51
-
-pattern GL_FLOAT_VEC4 = 0x8B52
-
-pattern GL_FRAGMENT_SHADER = 0x8B30
-
-pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
-
-pattern GL_FRAMEBUFFER = 0x8D40
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
-
-pattern GL_FRAMEBUFFER_BINDING = 0x8CA6
-
-pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5
-
-pattern GL_FRAMEBUFFER_DEFAULT = 0x8218
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
-
-pattern GL_FRAMEBUFFER_SRGB = 0x8DB9
-
-pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219
-
-pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
-
-pattern GL_FRONT = 0x0404
-
-pattern GL_FRONT_AND_BACK = 0x0408
-
-pattern GL_FRONT_FACE = 0x0B46
-
-pattern GL_FRONT_LEFT = 0x0400
-
-pattern GL_FRONT_RIGHT = 0x0401
-
-pattern GL_FUNC_ADD = 0x8006
-
-pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B
-
-pattern GL_FUNC_SUBTRACT = 0x800A
-
-pattern GL_GEOMETRY_INPUT_TYPE = 0x8917
-
-pattern GL_GEOMETRY_OUTPUT_TYPE = 0x8918
-
-pattern GL_GEOMETRY_SHADER = 0x8DD9
-
-pattern GL_GEOMETRY_VERTICES_OUT = 0x8916
-
-pattern GL_GEQUAL = 0x0206
-
-pattern GL_GREATER = 0x0204
-
-pattern GL_GREEN = 0x1904
-
-pattern GL_GREEN_INTEGER = 0x8D95
-
-pattern GL_HALF_FLOAT = 0x140B
-
-pattern GL_INCR = 0x1E02
-
-pattern GL_INCR_WRAP = 0x8507
-
-pattern GL_INDEX = 0x8222
-
-pattern GL_INFO_LOG_LENGTH = 0x8B84
-
-pattern GL_INT = 0x1404
-
-pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C
-
-pattern GL_INT_SAMPLER_1D = 0x8DC9
-
-pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE
-
-pattern GL_INT_SAMPLER_2D = 0x8DCA
-
-pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF
-
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
-
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
-
-pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD
-
-pattern GL_INT_SAMPLER_3D = 0x8DCB
-
-pattern GL_INT_SAMPLER_BUFFER = 0x8DD0
-
-pattern GL_INT_SAMPLER_CUBE = 0x8DCC
-
-pattern GL_INT_VEC2 = 0x8B53
-
-pattern GL_INT_VEC3 = 0x8B54
-
-pattern GL_INT_VEC4 = 0x8B55
-
-pattern GL_INVALID_ENUM = 0x0500
-
-pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506
-
-pattern GL_INVALID_INDEX = 0xFFFFFFFF
-
-pattern GL_INVALID_OPERATION = 0x0502
-
-pattern GL_INVALID_VALUE = 0x0501
-
-pattern GL_INVERT = 0x150A
-
-pattern GL_KEEP = 0x1E00
-
-pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E
-
-pattern GL_LEFT = 0x0406
-
-pattern GL_LEQUAL = 0x0203
-
-pattern GL_LESS = 0x0201
-
-pattern GL_LINE = 0x1B01
-
-pattern GL_LINEAR = 0x2601
-
-pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703
-
-pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701
-
-pattern GL_LINES = 0x0001
-
-pattern GL_LINES_ADJACENCY = 0x000A
-
-pattern GL_LINE_LOOP = 0x0002
-
-pattern GL_LINE_SMOOTH = 0x0B20
-
-pattern GL_LINE_SMOOTH_HINT = 0x0C52
-
-pattern GL_LINE_STRIP = 0x0003
-
-pattern GL_LINE_STRIP_ADJACENCY = 0x000B
-
-pattern GL_LINE_WIDTH = 0x0B21
-
-pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23
-
-pattern GL_LINE_WIDTH_RANGE = 0x0B22
-
-pattern GL_LINK_STATUS = 0x8B82
-
-pattern GL_LOGIC_OP_MODE = 0x0BF0
-
-pattern GL_LOWER_LEFT = 0x8CA1
-
-pattern GL_MAJOR_VERSION = 0x821B
-
-pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010
-
-pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008
-
-pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004
-
-pattern GL_MAP_READ_BIT = 0x0001
-
-pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020
-
-pattern GL_MAP_WRITE_BIT = 0x0002
-
-pattern GL_MAX = 0x8008
-
-pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073
-
-pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
-
-pattern GL_MAX_CLIP_DISTANCES = 0x0D32
-
-pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF
-
-pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
-
-pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
-
-pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
-
-pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
-
-pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
-
-pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
-
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
-
-pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
-
-pattern GL_MAX_DRAW_BUFFERS = 0x8824
-
-pattern GL_MAX_ELEMENTS_INDICES = 0x80E9
-
-pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8
-
-pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
-
-pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
-
-pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
-
-pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
-
-pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
-
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
-
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
-
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
-
-pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
-
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
-
-pattern GL_MAX_INTEGER_SAMPLES = 0x9110
-
-pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
-
-pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
-
-pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8
-
-pattern GL_MAX_SAMPLES = 0x8D57
-
-pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59
-
-pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
-
-pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872
-
-pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD
-
-pattern GL_MAX_TEXTURE_SIZE = 0x0D33
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
-
-pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
-
-pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
-
-pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B
-
-pattern GL_MAX_VARYING_FLOATS = 0x8B4B
-
-pattern GL_MAX_VERTEX_ATTRIBS = 0x8869
-
-pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
-
-pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
-
-pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
-
-pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
-
-pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A
-
-pattern GL_MIN = 0x8007
-
-pattern GL_MINOR_VERSION = 0x821C
-
-pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
-
-pattern GL_MIRRORED_REPEAT = 0x8370
-
-pattern GL_MULTISAMPLE = 0x809D
-
-pattern GL_NAND = 0x150E
-
-pattern GL_NEAREST = 0x2600
-
-pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702
-
-pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700
-
-pattern GL_NEVER = 0x0200
-
-pattern GL_NICEST = 0x1102
-
-pattern GL_NONE = 0
-
-pattern GL_NOOP = 0x1505
-
-pattern GL_NOR = 0x1508
-
-pattern GL_NOTEQUAL = 0x0205
-
-pattern GL_NO_ERROR = 0
-
-pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
-
-pattern GL_NUM_EXTENSIONS = 0x821D
-
-pattern GL_OBJECT_TYPE = 0x9112
-
-pattern GL_ONE = 1
-
-pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
-
-pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002
-
-pattern GL_ONE_MINUS_DST_ALPHA = 0x0305
-
-pattern GL_ONE_MINUS_DST_COLOR = 0x0307
-
-pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303
-
-pattern GL_ONE_MINUS_SRC_COLOR = 0x0301
-
-pattern GL_OR = 0x1507
-
-pattern GL_OR_INVERTED = 0x150D
-
-pattern GL_OR_REVERSE = 0x150B
-
-pattern GL_OUT_OF_MEMORY = 0x0505
-
-pattern GL_PACK_ALIGNMENT = 0x0D05
-
-pattern GL_PACK_IMAGE_HEIGHT = 0x806C
-
-pattern GL_PACK_LSB_FIRST = 0x0D01
-
-pattern GL_PACK_ROW_LENGTH = 0x0D02
-
-pattern GL_PACK_SKIP_IMAGES = 0x806B
-
-pattern GL_PACK_SKIP_PIXELS = 0x0D04
-
-pattern GL_PACK_SKIP_ROWS = 0x0D03
-
-pattern GL_PACK_SWAP_BYTES = 0x0D00
-
-pattern GL_PIXEL_PACK_BUFFER = 0x88EB
-
-pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED
-
-pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC
-
-pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
-
-pattern GL_POINT = 0x1B00
-
-pattern GL_POINTS = 0x0000
-
-pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128
-
-pattern GL_POINT_SIZE = 0x0B11
-
-pattern GL_POINT_SIZE_GRANULARITY = 0x0B13
-
-pattern GL_POINT_SIZE_RANGE = 0x0B12
-
-pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
-
-pattern GL_POLYGON_MODE = 0x0B40
-
-pattern GL_POLYGON_OFFSET_FACTOR = 0x8038
-
-pattern GL_POLYGON_OFFSET_FILL = 0x8037
-
-pattern GL_POLYGON_OFFSET_LINE = 0x2A02
-
-pattern GL_POLYGON_OFFSET_POINT = 0x2A01
-
-pattern GL_POLYGON_OFFSET_UNITS = 0x2A00
-
-pattern GL_POLYGON_SMOOTH = 0x0B41
-
-pattern GL_POLYGON_SMOOTH_HINT = 0x0C53
-
-pattern GL_PRIMITIVES_GENERATED = 0x8C87
-
-pattern GL_PRIMITIVE_RESTART = 0x8F9D
-
-pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E
-
-pattern GL_PROVOKING_VERTEX = 0x8E4F
-
-pattern GL_PROXY_TEXTURE_1D = 0x8063
-
-pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19
-
-pattern GL_PROXY_TEXTURE_2D = 0x8064
-
-pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
-
-pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
-
-pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
-
-pattern GL_PROXY_TEXTURE_3D = 0x8070
-
-pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B
-
-pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7
-
-pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
-
-pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16
-
-pattern GL_QUERY_BY_REGION_WAIT = 0x8E15
-
-pattern GL_QUERY_COUNTER_BITS = 0x8864
-
-pattern GL_QUERY_NO_WAIT = 0x8E14
-
-pattern GL_QUERY_RESULT = 0x8866
-
-pattern GL_QUERY_RESULT_AVAILABLE = 0x8867
-
-pattern GL_QUERY_WAIT = 0x8E13
-
-pattern GL_R11F_G11F_B10F = 0x8C3A
-
-pattern GL_R16 = 0x822A
-
-pattern GL_R16F = 0x822D
-
-pattern GL_R16I = 0x8233
-
-pattern GL_R16UI = 0x8234
-
-pattern GL_R16_SNORM = 0x8F98
-
-pattern GL_R32F = 0x822E
-
-pattern GL_R32I = 0x8235
-
-pattern GL_R32UI = 0x8236
-
-pattern GL_R3_G3_B2 = 0x2A10
-
-pattern GL_R8 = 0x8229
-
-pattern GL_R8I = 0x8231
-
-pattern GL_R8UI = 0x8232
-
-pattern GL_R8_SNORM = 0x8F94
-
-pattern GL_RASTERIZER_DISCARD = 0x8C89
-
-pattern GL_READ_BUFFER = 0x0C02
-
-pattern GL_READ_FRAMEBUFFER = 0x8CA8
-
-pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA
-
-pattern GL_READ_ONLY = 0x88B8
-
-pattern GL_READ_WRITE = 0x88BA
-
-pattern GL_RED = 0x1903
-
-pattern GL_RED_INTEGER = 0x8D94
-
-pattern GL_RENDERBUFFER = 0x8D41
-
-pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53
-
-pattern GL_RENDERBUFFER_BINDING = 0x8CA7
-
-pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52
-
-pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54
-
-pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51
-
-pattern GL_RENDERBUFFER_HEIGHT = 0x8D43
-
-pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
-
-pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50
-
-pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB
-
-pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55
-
-pattern GL_RENDERBUFFER_WIDTH = 0x8D42
-
-pattern GL_RENDERER = 0x1F01
-
-pattern GL_REPEAT = 0x2901
-
-pattern GL_REPLACE = 0x1E01
-
-pattern GL_RG = 0x8227
-
-pattern GL_RG16 = 0x822C
-
-pattern GL_RG16F = 0x822F
-
-pattern GL_RG16I = 0x8239
-
-pattern GL_RG16UI = 0x823A
-
-pattern GL_RG16_SNORM = 0x8F99
-
-pattern GL_RG32F = 0x8230
-
-pattern GL_RG32I = 0x823B
-
-pattern GL_RG32UI = 0x823C
-
-pattern GL_RG8 = 0x822B
-
-pattern GL_RG8I = 0x8237
-
-pattern GL_RG8UI = 0x8238
-
-pattern GL_RG8_SNORM = 0x8F95
-
-pattern GL_RGB = 0x1907
-
-pattern GL_RGB10 = 0x8052
-
-pattern GL_RGB10_A2 = 0x8059
-
-pattern GL_RGB12 = 0x8053
-
-pattern GL_RGB16 = 0x8054
-
-pattern GL_RGB16F = 0x881B
-
-pattern GL_RGB16I = 0x8D89
-
-pattern GL_RGB16UI = 0x8D77
-
-pattern GL_RGB16_SNORM = 0x8F9A
-
-pattern GL_RGB32F = 0x8815
-
-pattern GL_RGB32I = 0x8D83
-
-pattern GL_RGB32UI = 0x8D71
-
-pattern GL_RGB4 = 0x804F
-
-pattern GL_RGB5 = 0x8050
-
-pattern GL_RGB5_A1 = 0x8057
-
-pattern GL_RGB8 = 0x8051
-
-pattern GL_RGB8I = 0x8D8F
-
-pattern GL_RGB8UI = 0x8D7D
-
-pattern GL_RGB8_SNORM = 0x8F96
-
-pattern GL_RGB9_E5 = 0x8C3D
-
-pattern GL_RGBA = 0x1908
-
-pattern GL_RGBA12 = 0x805A
-
-pattern GL_RGBA16 = 0x805B
-
-pattern GL_RGBA16F = 0x881A
-
-pattern GL_RGBA16I = 0x8D88
-
-pattern GL_RGBA16UI = 0x8D76
-
-pattern GL_RGBA16_SNORM = 0x8F9B
-
-pattern GL_RGBA2 = 0x8055
-
-pattern GL_RGBA32F = 0x8814
-
-pattern GL_RGBA32I = 0x8D82
-
-pattern GL_RGBA32UI = 0x8D70
-
-pattern GL_RGBA4 = 0x8056
-
-pattern GL_RGBA8 = 0x8058
-
-pattern GL_RGBA8I = 0x8D8E
-
-pattern GL_RGBA8UI = 0x8D7C
-
-pattern GL_RGBA8_SNORM = 0x8F97
-
-pattern GL_RGBA_INTEGER = 0x8D99
-
-pattern GL_RGB_INTEGER = 0x8D98
-
-pattern GL_RG_INTEGER = 0x8228
-
-pattern GL_RIGHT = 0x0407
-
-pattern GL_SAMPLER_1D = 0x8B5D
-
-pattern GL_SAMPLER_1D_ARRAY = 0x8DC0
-
-pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
-
-pattern GL_SAMPLER_1D_SHADOW = 0x8B61
-
-pattern GL_SAMPLER_2D = 0x8B5E
-
-pattern GL_SAMPLER_2D_ARRAY = 0x8DC1
-
-pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
-
-pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108
-
-pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
-
-pattern GL_SAMPLER_2D_RECT = 0x8B63
-
-pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64
-
-pattern GL_SAMPLER_2D_SHADOW = 0x8B62
-
-pattern GL_SAMPLER_3D = 0x8B5F
-
-pattern GL_SAMPLER_BUFFER = 0x8DC2
-
-pattern GL_SAMPLER_CUBE = 0x8B60
-
-pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5
-
-pattern GL_SAMPLES = 0x80A9
-
-pattern GL_SAMPLES_PASSED = 0x8914
-
-pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
-
-pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F
-
-pattern GL_SAMPLE_BUFFERS = 0x80A8
-
-pattern GL_SAMPLE_COVERAGE = 0x80A0
-
-pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB
-
-pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA
-
-pattern GL_SAMPLE_MASK = 0x8E51
-
-pattern GL_SAMPLE_MASK_VALUE = 0x8E52
-
-pattern GL_SAMPLE_POSITION = 0x8E50
-
-pattern GL_SCISSOR_BOX = 0x0C10
-
-pattern GL_SCISSOR_TEST = 0x0C11
-
-pattern GL_SEPARATE_ATTRIBS = 0x8C8D
-
-pattern GL_SET = 0x150F
-
-pattern GL_SHADER_SOURCE_LENGTH = 0x8B88
-
-pattern GL_SHADER_TYPE = 0x8B4F
-
-pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C
-
-pattern GL_SHORT = 0x1402
-
-pattern GL_SIGNALED = 0x9119
-
-pattern GL_SIGNED_NORMALIZED = 0x8F9C
-
-pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
-
-pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
-
-pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
-
-pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12
-
-pattern GL_SRC1_ALPHA = 0x8589
-
-pattern GL_SRC_ALPHA = 0x0302
-
-pattern GL_SRC_ALPHA_SATURATE = 0x0308
-
-pattern GL_SRC_COLOR = 0x0300
-
-pattern GL_SRGB = 0x8C40
-
-pattern GL_SRGB8 = 0x8C41
-
-pattern GL_SRGB8_ALPHA8 = 0x8C43
-
-pattern GL_SRGB_ALPHA = 0x8C42
-
-pattern GL_STATIC_COPY = 0x88E6
-
-pattern GL_STATIC_DRAW = 0x88E4
-
-pattern GL_STATIC_READ = 0x88E5
-
-pattern GL_STENCIL = 0x1802
-
-pattern GL_STENCIL_ATTACHMENT = 0x8D20
-
-pattern GL_STENCIL_BACK_FAIL = 0x8801
-
-pattern GL_STENCIL_BACK_FUNC = 0x8800
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
-
-pattern GL_STENCIL_BACK_REF = 0x8CA3
-
-pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4
-
-pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5
-
-pattern GL_STENCIL_BUFFER_BIT = 0x00000400
-
-pattern GL_STENCIL_CLEAR_VALUE = 0x0B91
-
-pattern GL_STENCIL_FAIL = 0x0B94
-
-pattern GL_STENCIL_FUNC = 0x0B92
-
-pattern GL_STENCIL_INDEX = 0x1901
-
-pattern GL_STENCIL_INDEX1 = 0x8D46
-
-pattern GL_STENCIL_INDEX16 = 0x8D49
-
-pattern GL_STENCIL_INDEX4 = 0x8D47
-
-pattern GL_STENCIL_INDEX8 = 0x8D48
-
-pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95
-
-pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96
-
-pattern GL_STENCIL_REF = 0x0B97
-
-pattern GL_STENCIL_TEST = 0x0B90
-
-pattern GL_STENCIL_VALUE_MASK = 0x0B93
-
-pattern GL_STENCIL_WRITEMASK = 0x0B98
-
-pattern GL_STEREO = 0x0C33
-
-pattern GL_STREAM_COPY = 0x88E2
-
-pattern GL_STREAM_DRAW = 0x88E0
-
-pattern GL_STREAM_READ = 0x88E1
-
-pattern GL_SUBPIXEL_BITS = 0x0D50
-
-pattern GL_SYNC_CONDITION = 0x9113
-
-pattern GL_SYNC_FENCE = 0x9116
-
-pattern GL_SYNC_FLAGS = 0x9115
-
-pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
-
-pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
-
-pattern GL_SYNC_STATUS = 0x9114
-
-pattern GL_TEXTURE = 0x1702
-
-pattern GL_TEXTURE0 = 0x84C0
-
-pattern GL_TEXTURE1 = 0x84C1
-
-pattern GL_TEXTURE10 = 0x84CA
-
-pattern GL_TEXTURE11 = 0x84CB
-
-pattern GL_TEXTURE12 = 0x84CC
-
-pattern GL_TEXTURE13 = 0x84CD
-
-pattern GL_TEXTURE14 = 0x84CE
-
-pattern GL_TEXTURE15 = 0x84CF
-
-pattern GL_TEXTURE16 = 0x84D0
-
-pattern GL_TEXTURE17 = 0x84D1
-
-pattern GL_TEXTURE18 = 0x84D2
-
-pattern GL_TEXTURE19 = 0x84D3
-
-pattern GL_TEXTURE2 = 0x84C2
-
-pattern GL_TEXTURE20 = 0x84D4
-
-pattern GL_TEXTURE21 = 0x84D5
-
-pattern GL_TEXTURE22 = 0x84D6
-
-pattern GL_TEXTURE23 = 0x84D7
-
-pattern GL_TEXTURE24 = 0x84D8
-
-pattern GL_TEXTURE25 = 0x84D9
-
-pattern GL_TEXTURE26 = 0x84DA
-
-pattern GL_TEXTURE27 = 0x84DB
-
-pattern GL_TEXTURE28 = 0x84DC
-
-pattern GL_TEXTURE29 = 0x84DD
-
-pattern GL_TEXTURE3 = 0x84C3
-
-pattern GL_TEXTURE30 = 0x84DE
-
-pattern GL_TEXTURE31 = 0x84DF
-
-pattern GL_TEXTURE4 = 0x84C4
-
-pattern GL_TEXTURE5 = 0x84C5
-
-pattern GL_TEXTURE6 = 0x84C6
-
-pattern GL_TEXTURE7 = 0x84C7
-
-pattern GL_TEXTURE8 = 0x84C8
-
-pattern GL_TEXTURE9 = 0x84C9
-
-pattern GL_TEXTURE_1D = 0x0DE0
-
-pattern GL_TEXTURE_1D_ARRAY = 0x8C18
-
-pattern GL_TEXTURE_2D = 0x0DE1
-
-pattern GL_TEXTURE_2D_ARRAY = 0x8C1A
-
-pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100
-
-pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
-
-pattern GL_TEXTURE_3D = 0x806F
-
-pattern GL_TEXTURE_ALPHA_SIZE = 0x805F
-
-pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13
-
-pattern GL_TEXTURE_BASE_LEVEL = 0x813C
-
-pattern GL_TEXTURE_BINDING_1D = 0x8068
-
-pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
-
-pattern GL_TEXTURE_BINDING_2D = 0x8069
-
-pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
-
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
-
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
-
-pattern GL_TEXTURE_BINDING_3D = 0x806A
-
-pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514
-
-pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6
-
-pattern GL_TEXTURE_BLUE_SIZE = 0x805E
-
-pattern GL_TEXTURE_BLUE_TYPE = 0x8C12
-
-pattern GL_TEXTURE_BORDER_COLOR = 0x1004
-
-pattern GL_TEXTURE_BUFFER = 0x8C2A
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
-
-pattern GL_TEXTURE_COMPARE_FUNC = 0x884D
-
-pattern GL_TEXTURE_COMPARE_MODE = 0x884C
-
-pattern GL_TEXTURE_COMPRESSED = 0x86A1
-
-pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
-
-pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF
-
-pattern GL_TEXTURE_CUBE_MAP = 0x8513
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
-
-pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
-
-pattern GL_TEXTURE_DEPTH = 0x8071
-
-pattern GL_TEXTURE_DEPTH_SIZE = 0x884A
-
-pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16
-
-pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
-
-pattern GL_TEXTURE_GREEN_SIZE = 0x805D
-
-pattern GL_TEXTURE_GREEN_TYPE = 0x8C11
-
-pattern GL_TEXTURE_HEIGHT = 0x1001
-
-pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003
-
-pattern GL_TEXTURE_LOD_BIAS = 0x8501
-
-pattern GL_TEXTURE_MAG_FILTER = 0x2800
-
-pattern GL_TEXTURE_MAX_LEVEL = 0x813D
-
-pattern GL_TEXTURE_MAX_LOD = 0x813B
-
-pattern GL_TEXTURE_MIN_FILTER = 0x2801
-
-pattern GL_TEXTURE_MIN_LOD = 0x813A
-
-pattern GL_TEXTURE_RECTANGLE = 0x84F5
-
-pattern GL_TEXTURE_RED_SIZE = 0x805C
-
-pattern GL_TEXTURE_RED_TYPE = 0x8C10
-
-pattern GL_TEXTURE_SAMPLES = 0x9106
-
-pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F
-
-pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1
-
-pattern GL_TEXTURE_WIDTH = 0x1000
-
-pattern GL_TEXTURE_WRAP_R = 0x8072
-
-pattern GL_TEXTURE_WRAP_S = 0x2802
-
-pattern GL_TEXTURE_WRAP_T = 0x2803
-
-pattern GL_TIMEOUT_EXPIRED = 0x911B
-
-pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
-
-pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
-
-pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
-
-pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
-
-pattern GL_TRIANGLES = 0x0004
-
-pattern GL_TRIANGLES_ADJACENCY = 0x000C
-
-pattern GL_TRIANGLE_FAN = 0x0006
-
-pattern GL_TRIANGLE_STRIP = 0x0005
-
-pattern GL_TRIANGLE_STRIP_ADJACENCY = 0x000D
-
-pattern GL_TRUE = 1
-
-pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C
-
-pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
-
-pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
-
-pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F
-
-pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
-
-pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A
-
-pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
-
-pattern GL_UNIFORM_BUFFER = 0x8A11
-
-pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28
-
-pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
-
-pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A
-
-pattern GL_UNIFORM_BUFFER_START = 0x8A29
-
-pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E
-
-pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D
-
-pattern GL_UNIFORM_NAME_LENGTH = 0x8A39
-
-pattern GL_UNIFORM_OFFSET = 0x8A3B
-
-pattern GL_UNIFORM_SIZE = 0x8A38
-
-pattern GL_UNIFORM_TYPE = 0x8A37
-
-pattern GL_UNPACK_ALIGNMENT = 0x0CF5
-
-pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E
-
-pattern GL_UNPACK_LSB_FIRST = 0x0CF1
-
-pattern GL_UNPACK_ROW_LENGTH = 0x0CF2
-
-pattern GL_UNPACK_SKIP_IMAGES = 0x806D
-
-pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4
-
-pattern GL_UNPACK_SKIP_ROWS = 0x0CF3
-
-pattern GL_UNPACK_SWAP_BYTES = 0x0CF0
-
-pattern GL_UNSIGNALED = 0x9118
-
-pattern GL_UNSIGNED_BYTE = 0x1401
-
-pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362
-
-pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032
-
-pattern GL_UNSIGNED_INT = 0x1405
-
-pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
-
-pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036
-
-pattern GL_UNSIGNED_INT_24_8 = 0x84FA
-
-pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368
-
-pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
-
-pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035
-
-pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
-
-pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
-
-pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6
-
-pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7
-
-pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8
-
-pattern GL_UNSIGNED_NORMALIZED = 0x8C17
-
-pattern GL_UNSIGNED_SHORT = 0x1403
-
-pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
-
-pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034
-
-pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363
-
-pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364
-
-pattern GL_UPPER_LEFT = 0x8CA2
-
-pattern GL_VALIDATE_STATUS = 0x8B83
-
-pattern GL_VENDOR = 0x1F00
-
-pattern GL_VERSION = 0x1F02
-
-pattern GL_VERTEX_ARRAY_BINDING = 0x85B5
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
-
-pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
-
-pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
-
-pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
-
-pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
-
-pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
-
-pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
-
-pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642
-
-pattern GL_VERTEX_SHADER = 0x8B31
-
-pattern GL_VIEWPORT = 0x0BA2
-
-pattern GL_WAIT_FAILED = 0x911D
-
-pattern GL_WRITE_ONLY = 0x88B9
-
-pattern GL_XOR = 0x1506
-
-pattern GL_ZERO = 0
-
--- | Usage: @'glBindFragDataLocationIndexed' program colorNumber index name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml>
-
-
-glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocationIndexed = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedFunPtr
-
-glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationIndexedFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexed")
-
-{-# NOINLINE glBindFragDataLocationIndexedFunPtr #-}
-
--- | Usage: @'glBindSampler' unit sampler@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml>
-
-
-glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
-glBindSampler = ffiuintuintIOV glBindSamplerFunPtr
-
-glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glBindSamplerFunPtr = unsafePerformIO (getProcAddress "glBindSampler")
-
-{-# NOINLINE glBindSamplerFunPtr #-}
-
--- | Usage: @'glDeleteSamplers' count samplers@
---
--- The length of @samplers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml>
-
-
-glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteSamplers = ffisizeiPtruintIOV glDeleteSamplersFunPtr
-
-glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteSamplersFunPtr = unsafePerformIO (getProcAddress "glDeleteSamplers")
-
-{-# NOINLINE glDeleteSamplersFunPtr #-}
-
--- | Usage: @'glGenSamplers' count samplers@
---
--- The length of @samplers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml>
-
-
-glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenSamplers = ffisizeiPtruintIOV glGenSamplersFunPtr
-
-glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenSamplersFunPtr = unsafePerformIO (getProcAddress "glGenSamplers")
-
-{-# NOINLINE glGenSamplersFunPtr #-}
-
--- | Usage: @'glGetFragDataIndex' program name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml>
-
-
-glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetFragDataIndex = ffiuintPtrcharIOint glGetFragDataIndexFunPtr
-
-glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataIndexFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndex")
-
-{-# NOINLINE glGetFragDataIndexFunPtr #-}
-
--- | Usage: @'glGetQueryObjecti64v' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetQueryObjecti64v = ffiuintenumPtrint64IOV glGetQueryObjecti64vFunPtr
-
-glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetQueryObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64v")
-
-{-# NOINLINE glGetQueryObjecti64vFunPtr #-}
-
--- | Usage: @'glGetQueryObjectui64v' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
-glGetQueryObjectui64v = ffiuintenumPtruint64IOV glGetQueryObjectui64vFunPtr
-
-glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-glGetQueryObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64v")
-
-{-# NOINLINE glGetQueryObjectui64vFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterIiv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameterIiv = ffiuintenumPtrintIOV glGetSamplerParameterIivFunPtr
-
-glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIiv")
-
-{-# NOINLINE glGetSamplerParameterIivFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterIuiv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetSamplerParameterIuiv = ffiuintenumPtruintIOV glGetSamplerParameterIuivFunPtr
-
-glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuiv")
-
-{-# NOINLINE glGetSamplerParameterIuivFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterfv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetSamplerParameterfv = ffiuintenumPtrfloatIOV glGetSamplerParameterfvFunPtr
-
-glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterfv")
-
-{-# NOINLINE glGetSamplerParameterfvFunPtr #-}
-
--- | Usage: @'glGetSamplerParameteriv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameteriv = ffiuintenumPtrintIOV glGetSamplerParameterivFunPtr
-
-glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameteriv")
-
-{-# NOINLINE glGetSamplerParameterivFunPtr #-}
-
--- | Usage: @'glIsSampler' sampler@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml>
-
-
-glIsSampler :: MonadIO m => GLuint -> m GLboolean
-glIsSampler = ffiuintIOboolean glIsSamplerFunPtr
-
-glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsSamplerFunPtr = unsafePerformIO (getProcAddress "glIsSampler")
-
-{-# NOINLINE glIsSamplerFunPtr #-}
-
--- | Usage: @'glQueryCounter' id target@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml>
-
-
-glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
-glQueryCounter = ffiuintenumIOV glQueryCounterFunPtr
-
-glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glQueryCounterFunPtr = unsafePerformIO (getProcAddress "glQueryCounter")
-
-{-# NOINLINE glQueryCounterFunPtr #-}
-
--- | Usage: @'glSamplerParameterIiv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameterIiv = ffiuintenumPtrintIOV glSamplerParameterIivFunPtr
-
-glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIiv")
-
-{-# NOINLINE glSamplerParameterIivFunPtr #-}
-
--- | Usage: @'glSamplerParameterIuiv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glSamplerParameterIuiv = ffiuintenumPtruintIOV glSamplerParameterIuivFunPtr
-
-glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuiv")
-
-{-# NOINLINE glSamplerParameterIuivFunPtr #-}
-
--- | Usage: @'glSamplerParameterf' sampler pname param@
-
-
-glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glSamplerParameterf = ffiuintenumfloatIOV glSamplerParameterfFunPtr
-
-glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glSamplerParameterfFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterf")
-
-{-# NOINLINE glSamplerParameterfFunPtr #-}
-
--- | Usage: @'glSamplerParameterfv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glSamplerParameterfv = ffiuintenumPtrfloatIOV glSamplerParameterfvFunPtr
-
-glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterfv")
-
-{-# NOINLINE glSamplerParameterfvFunPtr #-}
-
--- | Usage: @'glSamplerParameteri' sampler pname param@
-
-
-glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glSamplerParameteri = ffiuintenumintIOV glSamplerParameteriFunPtr
-
-glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glSamplerParameteriFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteri")
-
-{-# NOINLINE glSamplerParameteriFunPtr #-}
-
--- | Usage: @'glSamplerParameteriv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameteriv = ffiuintenumPtrintIOV glSamplerParameterivFunPtr
-
-glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteriv")
-
-{-# NOINLINE glSamplerParameterivFunPtr #-}
-
--- | Usage: @'glVertexAttribDivisor' index divisor@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml>
-
-
-glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribDivisor = ffiuintuintIOV glVertexAttribDivisorFunPtr
-
-glVertexAttribDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisor")
-
-{-# NOINLINE glVertexAttribDivisorFunPtr #-}
-
--- | Usage: @'glVertexAttribP1ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP1ui = ffiuintenumbooleanuintIOV glVertexAttribP1uiFunPtr
-
-glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1ui")
-
-{-# NOINLINE glVertexAttribP1uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP1uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP1uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP1uivFunPtr
-
-glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1uiv")
-
-{-# NOINLINE glVertexAttribP1uivFunPtr #-}
-
--- | Usage: @'glVertexAttribP2ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP2ui = ffiuintenumbooleanuintIOV glVertexAttribP2uiFunPtr
-
-glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2ui")
-
-{-# NOINLINE glVertexAttribP2uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP2uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP2uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP2uivFunPtr
-
-glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2uiv")
-
-{-# NOINLINE glVertexAttribP2uivFunPtr #-}
-
--- | Usage: @'glVertexAttribP3ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP3ui = ffiuintenumbooleanuintIOV glVertexAttribP3uiFunPtr
-
-glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3ui")
-
-{-# NOINLINE glVertexAttribP3uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP3uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP3uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP3uivFunPtr
-
-glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3uiv")
-
-{-# NOINLINE glVertexAttribP3uivFunPtr #-}
-
--- | Usage: @'glVertexAttribP4ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP4ui = ffiuintenumbooleanuintIOV glVertexAttribP4uiFunPtr
-
-glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4ui")
-
-{-# NOINLINE glVertexAttribP4uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP4uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP4uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP4uivFunPtr
-
-glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4uiv")
-
-{-# NOINLINE glVertexAttribP4uivFunPtr #-}
-
-pattern GL_ANY_SAMPLES_PASSED = 0x8C2F
-
-pattern GL_INT_2_10_10_10_REV = 0x8D9F
-
-pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
-
-pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB
-
-pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA
-
-pattern GL_RGB10_A2UI = 0x906F
-
-pattern GL_SAMPLER_BINDING = 0x8919
-
-pattern GL_SRC1_COLOR = 0x88F9
-
-pattern GL_TEXTURE_SWIZZLE_A = 0x8E45
-
-pattern GL_TEXTURE_SWIZZLE_B = 0x8E44
-
-pattern GL_TEXTURE_SWIZZLE_G = 0x8E43
-
-pattern GL_TEXTURE_SWIZZLE_R = 0x8E42
-
-pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46
-
-pattern GL_TIMESTAMP = 0x8E28
-
-pattern GL_TIME_ELAPSED = 0x88BF
-
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
-
--- | Usage: @'glBeginQueryIndexed' target index id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml>
-
-
-glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBeginQueryIndexed = ffienumuintuintIOV glBeginQueryIndexedFunPtr
-
-glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBeginQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glBeginQueryIndexed")
-
-{-# NOINLINE glBeginQueryIndexedFunPtr #-}
-
--- | Usage: @'glBindTransformFeedback' target id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml>
-
-
-glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTransformFeedback = ffienumuintIOV glBindTransformFeedbackFunPtr
-
-glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedback")
-
-{-# NOINLINE glBindTransformFeedbackFunPtr #-}
-
--- | Usage: @'glBlendEquationSeparatei' buf modeRGB modeAlpha@
-
-
-glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendEquationSeparatei = ffiuintenumenumIOV glBlendEquationSeparateiFunPtr
-
-glBlendEquationSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendEquationSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparatei")
-
-{-# NOINLINE glBlendEquationSeparateiFunPtr #-}
-
--- | Usage: @'glBlendEquationi' buf mode@
-
-
-glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()
-glBlendEquationi = ffiuintenumIOV glBlendEquationiFunPtr
-
-glBlendEquationiFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBlendEquationiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationi")
-
-{-# NOINLINE glBlendEquationiFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparatei' buf srcRGB dstRGB srcAlpha dstAlpha@
-
-
-glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparatei = ffiuintenumenumenumenumIOV glBlendFuncSeparateiFunPtr
-
-glBlendFuncSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparatei")
-
-{-# NOINLINE glBlendFuncSeparateiFunPtr #-}
-
--- | Usage: @'glBlendFunci' buf src dst@
-
-
-glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendFunci = ffiuintenumenumIOV glBlendFunciFunPtr
-
-glBlendFunciFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendFunciFunPtr = unsafePerformIO (getProcAddress "glBlendFunci")
-
-{-# NOINLINE glBlendFunciFunPtr #-}
-
--- | Usage: @'glDeleteTransformFeedbacks' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml>
-
-
-glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTransformFeedbacks = ffisizeiPtruintIOV glDeleteTransformFeedbacksFunPtr
-
-glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacks")
-
-{-# NOINLINE glDeleteTransformFeedbacksFunPtr #-}
-
--- | Usage: @'glDrawArraysIndirect' mode indirect@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml>
-
-
-glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
-glDrawArraysIndirect = ffienumPtrVIOV glDrawArraysIndirectFunPtr
-
-glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
-glDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawArraysIndirect")
-
-{-# NOINLINE glDrawArraysIndirectFunPtr #-}
-
--- | Usage: @'glDrawElementsIndirect' mode type indirect@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml>
-
-
-glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glDrawElementsIndirect = ffienumenumPtrVIOV glDrawElementsIndirectFunPtr
-
-glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
-glDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawElementsIndirect")
-
-{-# NOINLINE glDrawElementsIndirectFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedback' mode id@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml>
-
-
-glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
-glDrawTransformFeedback = ffienumuintIOV glDrawTransformFeedbackFunPtr
-
-glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDrawTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedback")
-
-{-# NOINLINE glDrawTransformFeedbackFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackStream' mode id stream@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml>
-
-
-glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glDrawTransformFeedbackStream = ffienumuintuintIOV glDrawTransformFeedbackStreamFunPtr
-
-glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glDrawTransformFeedbackStreamFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStream")
-
-{-# NOINLINE glDrawTransformFeedbackStreamFunPtr #-}
-
--- | Usage: @'glEndQueryIndexed' target index@
-
-
-glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
-glEndQueryIndexed = ffienumuintIOV glEndQueryIndexedFunPtr
-
-glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEndQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glEndQueryIndexed")
-
-{-# NOINLINE glEndQueryIndexedFunPtr #-}
-
--- | Usage: @'glGenTransformFeedbacks' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml>
-
-
-glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTransformFeedbacks = ffisizeiPtruintIOV glGenTransformFeedbacksFunPtr
-
-glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacks")
-
-{-# NOINLINE glGenTransformFeedbacksFunPtr #-}
-
--- | Usage: @'glGetActiveSubroutineName' program shadertype index bufsize length name@
---
--- The length of @length@ should be @1@.
---
--- The length of @name@ should be @bufsize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml>
-
-
-glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveSubroutineName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineNameFunPtr
-
-glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveSubroutineNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineName")
-
-{-# NOINLINE glGetActiveSubroutineNameFunPtr #-}
-
--- | Usage: @'glGetActiveSubroutineUniformName' program shadertype index bufsize length name@
---
--- The length of @length@ should be @1@.
---
--- The length of @name@ should be @bufsize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml>
-
-
-glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveSubroutineUniformName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineUniformNameFunPtr
-
-glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveSubroutineUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformName")
-
-{-# NOINLINE glGetActiveSubroutineUniformNameFunPtr #-}
-
--- | Usage: @'glGetActiveSubroutineUniformiv' program shadertype index pname values@
---
--- The length of @values@ should be @COMPSIZE(pname)@.
-
-
-glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveSubroutineUniformiv = ffiuintenumuintenumPtrintIOV glGetActiveSubroutineUniformivFunPtr
-
-glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveSubroutineUniformivFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformiv")
-
-{-# NOINLINE glGetActiveSubroutineUniformivFunPtr #-}
-
--- | Usage: @'glGetProgramStageiv' program shadertype pname values@
---
--- The length of @values@ should be @1@.
-
-
-glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramStageiv = ffiuintenumenumPtrintIOV glGetProgramStageivFunPtr
-
-glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramStageivFunPtr = unsafePerformIO (getProcAddress "glGetProgramStageiv")
-
-{-# NOINLINE glGetProgramStageivFunPtr #-}
-
--- | Usage: @'glGetQueryIndexediv' target index pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryIndexediv = ffienumuintenumPtrintIOV glGetQueryIndexedivFunPtr
-
-glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetQueryIndexediv")
-
-{-# NOINLINE glGetQueryIndexedivFunPtr #-}
-
--- | Usage: @'glGetSubroutineIndex' program shadertype name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml>
-
-
-glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
-glGetSubroutineIndex = ffiuintenumPtrcharIOuint glGetSubroutineIndexFunPtr
-
-glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
-glGetSubroutineIndexFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineIndex")
-
-{-# NOINLINE glGetSubroutineIndexFunPtr #-}
-
--- | Usage: @'glGetSubroutineUniformLocation' program shadertype name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml>
-
-
-glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetSubroutineUniformLocation = ffiuintenumPtrcharIOint glGetSubroutineUniformLocationFunPtr
-
-glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetSubroutineUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineUniformLocation")
-
-{-# NOINLINE glGetSubroutineUniformLocationFunPtr #-}
-
--- | Usage: @'glGetUniformSubroutineuiv' shadertype location params@
---
--- The length of @params@ should be @1@.
-
-
-glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
-glGetUniformSubroutineuiv = ffienumintPtruintIOV glGetUniformSubroutineuivFunPtr
-
-glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
-glGetUniformSubroutineuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformSubroutineuiv")
-
-{-# NOINLINE glGetUniformSubroutineuivFunPtr #-}
-
--- | Usage: @'glGetUniformdv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
-glGetUniformdv = ffiuintintPtrdoubleIOV glGetUniformdvFunPtr
-
-glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
-glGetUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetUniformdv")
-
-{-# NOINLINE glGetUniformdvFunPtr #-}
-
--- | Usage: @'glIsTransformFeedback' id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml>
-
-
-glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
-glIsTransformFeedback = ffiuintIOboolean glIsTransformFeedbackFunPtr
-
-glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedback")
-
-{-# NOINLINE glIsTransformFeedbackFunPtr #-}
-
--- | Usage: @'glMinSampleShading' value@
---
--- The parameter @value@ is a @ColorF@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml>
-
-
-glMinSampleShading :: MonadIO m => GLfloat -> m ()
-glMinSampleShading = ffifloatIOV glMinSampleShadingFunPtr
-
-glMinSampleShadingFunPtr :: FunPtr (GLfloat -> IO ())
-glMinSampleShadingFunPtr = unsafePerformIO (getProcAddress "glMinSampleShading")
-
-{-# NOINLINE glMinSampleShadingFunPtr #-}
-
--- | Usage: @'glPatchParameterfv' pname values@
---
--- The length of @values@ should be @COMPSIZE(pname)@.
-
-
-glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPatchParameterfv = ffienumPtrfloatIOV glPatchParameterfvFunPtr
-
-glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPatchParameterfvFunPtr = unsafePerformIO (getProcAddress "glPatchParameterfv")
-
-{-# NOINLINE glPatchParameterfvFunPtr #-}
-
--- | Usage: @'glPatchParameteri' pname value@
-
-
-glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
-glPatchParameteri = ffienumintIOV glPatchParameteriFunPtr
-
-glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPatchParameteriFunPtr = unsafePerformIO (getProcAddress "glPatchParameteri")
-
-{-# NOINLINE glPatchParameteriFunPtr #-}
-
--- | Usage: @'glPauseTransformFeedback'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml>
-
-
-glPauseTransformFeedback :: MonadIO m => m ()
-glPauseTransformFeedback = ffiIOV glPauseTransformFeedbackFunPtr
-
-glPauseTransformFeedbackFunPtr :: FunPtr (IO ())
-glPauseTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedback")
-
-{-# NOINLINE glPauseTransformFeedbackFunPtr #-}
-
--- | Usage: @'glResumeTransformFeedback'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml>
-
-
-glResumeTransformFeedback :: MonadIO m => m ()
-glResumeTransformFeedback = ffiIOV glResumeTransformFeedbackFunPtr
-
-glResumeTransformFeedbackFunPtr :: FunPtr (IO ())
-glResumeTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedback")
-
-{-# NOINLINE glResumeTransformFeedbackFunPtr #-}
-
--- | Usage: @'glUniform1d' location x@
-
-
-glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
-glUniform1d = ffiintdoubleIOV glUniform1dFunPtr
-
-glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())
-glUniform1dFunPtr = unsafePerformIO (getProcAddress "glUniform1d")
-
-{-# NOINLINE glUniform1dFunPtr #-}
-
--- | Usage: @'glUniform1dv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform1dv = ffiintsizeiPtrdoubleIOV glUniform1dvFunPtr
-
-glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform1dvFunPtr = unsafePerformIO (getProcAddress "glUniform1dv")
-
-{-# NOINLINE glUniform1dvFunPtr #-}
-
--- | Usage: @'glUniform2d' location x y@
-
-
-glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
-glUniform2d = ffiintdoubledoubleIOV glUniform2dFunPtr
-
-glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
-glUniform2dFunPtr = unsafePerformIO (getProcAddress "glUniform2d")
-
-{-# NOINLINE glUniform2dFunPtr #-}
-
--- | Usage: @'glUniform2dv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform2dv = ffiintsizeiPtrdoubleIOV glUniform2dvFunPtr
-
-glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform2dvFunPtr = unsafePerformIO (getProcAddress "glUniform2dv")
-
-{-# NOINLINE glUniform2dvFunPtr #-}
-
--- | Usage: @'glUniform3d' location x y z@
-
-
-glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glUniform3d = ffiintdoubledoubledoubleIOV glUniform3dFunPtr
-
-glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glUniform3dFunPtr = unsafePerformIO (getProcAddress "glUniform3d")
-
-{-# NOINLINE glUniform3dFunPtr #-}
-
--- | Usage: @'glUniform3dv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform3dv = ffiintsizeiPtrdoubleIOV glUniform3dvFunPtr
-
-glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform3dvFunPtr = unsafePerformIO (getProcAddress "glUniform3dv")
-
-{-# NOINLINE glUniform3dvFunPtr #-}
-
--- | Usage: @'glUniform4d' location x y z w@
-
-
-glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glUniform4d = ffiintdoubledoubledoubledoubleIOV glUniform4dFunPtr
-
-glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glUniform4dFunPtr = unsafePerformIO (getProcAddress "glUniform4d")
-
-{-# NOINLINE glUniform4dFunPtr #-}
-
--- | Usage: @'glUniform4dv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform4dv = ffiintsizeiPtrdoubleIOV glUniform4dvFunPtr
-
-glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform4dvFunPtr = unsafePerformIO (getProcAddress "glUniform4dv")
-
-{-# NOINLINE glUniform4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2dvFunPtr
-
-glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2dv")
-
-{-# NOINLINE glUniformMatrix2dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x3dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x3dvFunPtr
-
-glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3dv")
-
-{-# NOINLINE glUniformMatrix2x3dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x4dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x4dvFunPtr
-
-glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4dv")
-
-{-# NOINLINE glUniformMatrix2x4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3dvFunPtr
-
-glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3dv")
-
-{-# NOINLINE glUniformMatrix3dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x2dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x2dvFunPtr
-
-glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2dv")
-
-{-# NOINLINE glUniformMatrix3x2dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x4dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x4dvFunPtr
-
-glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4dv")
-
-{-# NOINLINE glUniformMatrix3x4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4dvFunPtr
-
-glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4dv")
-
-{-# NOINLINE glUniformMatrix4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x2dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x2dvFunPtr
-
-glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2dv")
-
-{-# NOINLINE glUniformMatrix4x2dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x3dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x3dvFunPtr
-
-glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3dv")
-
-{-# NOINLINE glUniformMatrix4x3dvFunPtr #-}
-
--- | Usage: @'glUniformSubroutinesuiv' shadertype count indices@
---
--- The length of @indices@ should be @count@.
-
-
-glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glUniformSubroutinesuiv = ffienumsizeiPtruintIOV glUniformSubroutinesuivFunPtr
-
-glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glUniformSubroutinesuivFunPtr = unsafePerformIO (getProcAddress "glUniformSubroutinesuiv")
-
-{-# NOINLINE glUniformSubroutinesuivFunPtr #-}
-
-pattern GL_ACTIVE_SUBROUTINES = 0x8DE5
-
-pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
-
-pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B
-
-pattern GL_DOUBLE_MAT2 = 0x8F46
-
-pattern GL_DOUBLE_MAT2x3 = 0x8F49
-
-pattern GL_DOUBLE_MAT2x4 = 0x8F4A
-
-pattern GL_DOUBLE_MAT3 = 0x8F47
-
-pattern GL_DOUBLE_MAT3x2 = 0x8F4B
-
-pattern GL_DOUBLE_MAT3x4 = 0x8F4C
-
-pattern GL_DOUBLE_MAT4 = 0x8F48
-
-pattern GL_DOUBLE_MAT4x2 = 0x8F4D
-
-pattern GL_DOUBLE_MAT4x3 = 0x8F4E
-
-pattern GL_DOUBLE_VEC2 = 0x8FFC
-
-pattern GL_DOUBLE_VEC3 = 0x8FFD
-
-pattern GL_DOUBLE_VEC4 = 0x8FFE
-
-pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F
-
-pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
-
-pattern GL_FRACTIONAL_EVEN = 0x8E7C
-
-pattern GL_FRACTIONAL_ODD = 0x8E7B
-
-pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
-
-pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F
-
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
-
-pattern GL_ISOLINES = 0x8E7A
-
-pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
-
-pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
-
-pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
-
-pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
-
-pattern GL_MAX_PATCH_VERTICES = 0x8E7D
-
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
-
-pattern GL_MAX_SUBROUTINES = 0x8DE7
-
-pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
-
-pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
-
-pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
-
-pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
-
-pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
-
-pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
-
-pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
-
-pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
-
-pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E
-
-pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
-
-pattern GL_MAX_VERTEX_STREAMS = 0x8E71
-
-pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
-
-pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
-
-pattern GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37
-
-pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
-
-pattern GL_PATCHES = 0x000E
-
-pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
-
-pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
-
-pattern GL_PATCH_VERTICES = 0x8E72
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
-
-pattern GL_SAMPLE_SHADING = 0x8C36
-
-pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
-
-pattern GL_TESS_CONTROL_SHADER = 0x8E88
-
-pattern GL_TESS_EVALUATION_SHADER = 0x8E87
-
-pattern GL_TESS_GEN_MODE = 0x8E76
-
-pattern GL_TESS_GEN_POINT_MODE = 0x8E79
-
-pattern GL_TESS_GEN_SPACING = 0x8E77
-
-pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
-
-pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009
-
-pattern GL_TRANSFORM_FEEDBACK = 0x8E22
-
-pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
-
--- | Usage: @'glActiveShaderProgram' pipeline program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml>
-
-
-glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
-glActiveShaderProgram = ffiuintuintIOV glActiveShaderProgramFunPtr
-
-glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glActiveShaderProgramFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgram")
-
-{-# NOINLINE glActiveShaderProgramFunPtr #-}
-
--- | Usage: @'glBindProgramPipeline' pipeline@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml>
-
-
-glBindProgramPipeline :: MonadIO m => GLuint -> m ()
-glBindProgramPipeline = ffiuintIOV glBindProgramPipelineFunPtr
-
-glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
-glBindProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipeline")
-
-{-# NOINLINE glBindProgramPipelineFunPtr #-}
-
--- | Usage: @'glClearDepthf' d@
-
-
-glClearDepthf :: MonadIO m => GLfloat -> m ()
-glClearDepthf = ffifloatIOV glClearDepthfFunPtr
-
-glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())
-glClearDepthfFunPtr = unsafePerformIO (getProcAddress "glClearDepthf")
-
-{-# NOINLINE glClearDepthfFunPtr #-}
-
--- | Usage: @'glCreateShaderProgramv' type count strings@
---
--- The length of @strings@ should be @count@.
-
-
-glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
-glCreateShaderProgramv = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvFunPtr
-
-glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
-glCreateShaderProgramvFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramv")
-
-{-# NOINLINE glCreateShaderProgramvFunPtr #-}
-
--- | Usage: @'glDeleteProgramPipelines' n pipelines@
---
--- The length of @pipelines@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml>
-
-
-glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramPipelines = ffisizeiPtruintIOV glDeleteProgramPipelinesFunPtr
-
-glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelines")
-
-{-# NOINLINE glDeleteProgramPipelinesFunPtr #-}
-
--- | Usage: @'glDepthRangeArrayv' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
-
-
-glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glDepthRangeArrayv = ffiuintsizeiPtrdoubleIOV glDepthRangeArrayvFunPtr
-
-glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glDepthRangeArrayvFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayv")
-
-{-# NOINLINE glDepthRangeArrayvFunPtr #-}
-
--- | Usage: @'glDepthRangeIndexed' index n f@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml>
-
-
-glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glDepthRangeIndexed = ffiuintdoubledoubleIOV glDepthRangeIndexedFunPtr
-
-glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glDepthRangeIndexedFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexed")
-
-{-# NOINLINE glDepthRangeIndexedFunPtr #-}
-
--- | Usage: @'glDepthRangef' n f@
-
-
-glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
-glDepthRangef = ffifloatfloatIOV glDepthRangefFunPtr
-
-glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glDepthRangefFunPtr = unsafePerformIO (getProcAddress "glDepthRangef")
-
-{-# NOINLINE glDepthRangefFunPtr #-}
-
--- | Usage: @'glGenProgramPipelines' n pipelines@
---
--- The length of @pipelines@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml>
-
-
-glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramPipelines = ffisizeiPtruintIOV glGenProgramPipelinesFunPtr
-
-glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelines")
-
-{-# NOINLINE glGenProgramPipelinesFunPtr #-}
-
--- | Usage: @'glGetDoublei_v' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetDoublei_v = ffienumuintPtrdoubleIOV glGetDoublei_vFunPtr
-
-glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetDoublei_vFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_v")
-
-{-# NOINLINE glGetDoublei_vFunPtr #-}
-
--- | Usage: @'glGetFloati_v' target index data@
---
--- The parameter @target@ is a @TypeEnum@.
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloati_v = ffienumuintPtrfloatIOV glGetFloati_vFunPtr
-
-glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloati_vFunPtr = unsafePerformIO (getProcAddress "glGetFloati_v")
-
-{-# NOINLINE glGetFloati_vFunPtr #-}
-
--- | Usage: @'glGetProgramBinary' program bufSize length binaryFormat binary@
---
--- The length of @length@ should be @1@.
---
--- The length of @binaryFormat@ should be @1@.
---
--- The length of @binary@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml>
-
-
-glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
-glGetProgramBinary = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryFunPtr
-
-glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
-glGetProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinary")
-
-{-# NOINLINE glGetProgramBinaryFunPtr #-}
-
--- | Usage: @'glGetProgramPipelineInfoLog' pipeline bufSize length infoLog@
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml>
-
-
-glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramPipelineInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogFunPtr
-
-glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramPipelineInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLog")
-
-{-# NOINLINE glGetProgramPipelineInfoLogFunPtr #-}
-
--- | Usage: @'glGetProgramPipelineiv' pipeline pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramPipelineiv = ffiuintenumPtrintIOV glGetProgramPipelineivFunPtr
-
-glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramPipelineivFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineiv")
-
-{-# NOINLINE glGetProgramPipelineivFunPtr #-}
-
--- | Usage: @'glGetShaderPrecisionFormat' shadertype precisiontype range precision@
---
--- The length of @range@ should be @2@.
---
--- The length of @precision@ should be @2@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml>
-
-
-glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
-glGetShaderPrecisionFormat = ffienumenumPtrintPtrintIOV glGetShaderPrecisionFormatFunPtr
-
-glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
-glGetShaderPrecisionFormatFunPtr = unsafePerformIO (getProcAddress "glGetShaderPrecisionFormat")
-
-{-# NOINLINE glGetShaderPrecisionFormatFunPtr #-}
-
--- | Usage: @'glGetVertexAttribLdv' index pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribLdv = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvFunPtr
-
-glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribLdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdv")
-
-{-# NOINLINE glGetVertexAttribLdvFunPtr #-}
-
--- | Usage: @'glIsProgramPipeline' pipeline@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml>
-
-
-glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
-glIsProgramPipeline = ffiuintIOboolean glIsProgramPipelineFunPtr
-
-glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipeline")
-
-{-# NOINLINE glIsProgramPipelineFunPtr #-}
-
--- | Usage: @'glProgramBinary' program binaryFormat binary length@
---
--- The length of @binary@ should be @length@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml>
-
-
-glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-glProgramBinary = ffiuintenumPtrVsizeiIOV glProgramBinaryFunPtr
-
-glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
-glProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glProgramBinary")
-
-{-# NOINLINE glProgramBinaryFunPtr #-}
-
--- | Usage: @'glProgramParameteri' program pname value@
---
--- The parameter @pname@ is a @ProgramParameterPName@.
-
-
-glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glProgramParameteri = ffiuintenumintIOV glProgramParameteriFunPtr
-
-glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glProgramParameteriFunPtr = unsafePerformIO (getProcAddress "glProgramParameteri")
-
-{-# NOINLINE glProgramParameteriFunPtr #-}
-
--- | Usage: @'glProgramUniform1d' program location v0@
-
-
-glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
-glProgramUniform1d = ffiuintintdoubleIOV glProgramUniform1dFunPtr
-
-glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
-glProgramUniform1dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1d")
-
-{-# NOINLINE glProgramUniform1dFunPtr #-}
-
--- | Usage: @'glProgramUniform1dv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform1dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvFunPtr
-
-glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform1dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dv")
-
-{-# NOINLINE glProgramUniform1dvFunPtr #-}
-
--- | Usage: @'glProgramUniform1f' program location v0@
-
-
-glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
-glProgramUniform1f = ffiuintintfloatIOV glProgramUniform1fFunPtr
-
-glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
-glProgramUniform1fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1f")
-
-{-# NOINLINE glProgramUniform1fFunPtr #-}
-
--- | Usage: @'glProgramUniform1fv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform1fv = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvFunPtr
-
-glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform1fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fv")
-
-{-# NOINLINE glProgramUniform1fvFunPtr #-}
-
--- | Usage: @'glProgramUniform1i' program location v0@
-
-
-glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glProgramUniform1i = ffiuintintintIOV glProgramUniform1iFunPtr
-
-glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glProgramUniform1iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i")
-
-{-# NOINLINE glProgramUniform1iFunPtr #-}
-
--- | Usage: @'glProgramUniform1iv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform1iv = ffiuintintsizeiPtrintIOV glProgramUniform1ivFunPtr
-
-glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform1ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iv")
-
-{-# NOINLINE glProgramUniform1ivFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui' program location v0@
-
-
-glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glProgramUniform1ui = ffiuintintuintIOV glProgramUniform1uiFunPtr
-
-glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glProgramUniform1uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui")
-
-{-# NOINLINE glProgramUniform1uiFunPtr #-}
-
--- | Usage: @'glProgramUniform1uiv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform1uiv = ffiuintintsizeiPtruintIOV glProgramUniform1uivFunPtr
-
-glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform1uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiv")
-
-{-# NOINLINE glProgramUniform1uivFunPtr #-}
-
--- | Usage: @'glProgramUniform2d' program location v0 v1@
-
-
-glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
-glProgramUniform2d = ffiuintintdoubledoubleIOV glProgramUniform2dFunPtr
-
-glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
-glProgramUniform2dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2d")
-
-{-# NOINLINE glProgramUniform2dFunPtr #-}
-
--- | Usage: @'glProgramUniform2dv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform2dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvFunPtr
-
-glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dv")
-
-{-# NOINLINE glProgramUniform2dvFunPtr #-}
-
--- | Usage: @'glProgramUniform2f' program location v0 v1@
-
-
-glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
-glProgramUniform2f = ffiuintintfloatfloatIOV glProgramUniform2fFunPtr
-
-glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
-glProgramUniform2fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2f")
-
-{-# NOINLINE glProgramUniform2fFunPtr #-}
-
--- | Usage: @'glProgramUniform2fv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform2fv = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvFunPtr
-
-glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fv")
-
-{-# NOINLINE glProgramUniform2fvFunPtr #-}
-
--- | Usage: @'glProgramUniform2i' program location v0 v1@
-
-
-glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform2i = ffiuintintintintIOV glProgramUniform2iFunPtr
-
-glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform2iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i")
-
-{-# NOINLINE glProgramUniform2iFunPtr #-}
-
--- | Usage: @'glProgramUniform2iv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform2iv = ffiuintintsizeiPtrintIOV glProgramUniform2ivFunPtr
-
-glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform2ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iv")
-
-{-# NOINLINE glProgramUniform2ivFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui' program location v0 v1@
-
-
-glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
-glProgramUniform2ui = ffiuintintuintuintIOV glProgramUniform2uiFunPtr
-
-glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
-glProgramUniform2uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui")
-
-{-# NOINLINE glProgramUniform2uiFunPtr #-}
-
--- | Usage: @'glProgramUniform2uiv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform2uiv = ffiuintintsizeiPtruintIOV glProgramUniform2uivFunPtr
-
-glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform2uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiv")
-
-{-# NOINLINE glProgramUniform2uivFunPtr #-}
-
--- | Usage: @'glProgramUniform3d' program location v0 v1 v2@
-
-
-glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform3d = ffiuintintdoubledoubledoubleIOV glProgramUniform3dFunPtr
-
-glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform3dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3d")
-
-{-# NOINLINE glProgramUniform3dFunPtr #-}
-
--- | Usage: @'glProgramUniform3dv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform3dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvFunPtr
-
-glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dv")
-
-{-# NOINLINE glProgramUniform3dvFunPtr #-}
-
--- | Usage: @'glProgramUniform3f' program location v0 v1 v2@
-
-
-glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform3f = ffiuintintfloatfloatfloatIOV glProgramUniform3fFunPtr
-
-glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform3fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3f")
-
-{-# NOINLINE glProgramUniform3fFunPtr #-}
-
--- | Usage: @'glProgramUniform3fv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform3fv = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvFunPtr
-
-glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fv")
-
-{-# NOINLINE glProgramUniform3fvFunPtr #-}
-
--- | Usage: @'glProgramUniform3i' program location v0 v1 v2@
-
-
-glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform3i = ffiuintintintintintIOV glProgramUniform3iFunPtr
-
-glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform3iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i")
-
-{-# NOINLINE glProgramUniform3iFunPtr #-}
-
--- | Usage: @'glProgramUniform3iv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform3iv = ffiuintintsizeiPtrintIOV glProgramUniform3ivFunPtr
-
-glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform3ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iv")
-
-{-# NOINLINE glProgramUniform3ivFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui' program location v0 v1 v2@
-
-
-glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform3ui = ffiuintintuintuintuintIOV glProgramUniform3uiFunPtr
-
-glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform3uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui")
-
-{-# NOINLINE glProgramUniform3uiFunPtr #-}
-
--- | Usage: @'glProgramUniform3uiv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform3uiv = ffiuintintsizeiPtruintIOV glProgramUniform3uivFunPtr
-
-glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform3uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiv")
-
-{-# NOINLINE glProgramUniform3uivFunPtr #-}
-
--- | Usage: @'glProgramUniform4d' program location v0 v1 v2 v3@
-
-
-glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform4d = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dFunPtr
-
-glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform4dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4d")
-
-{-# NOINLINE glProgramUniform4dFunPtr #-}
-
--- | Usage: @'glProgramUniform4dv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform4dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvFunPtr
-
-glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dv")
-
-{-# NOINLINE glProgramUniform4dvFunPtr #-}
-
--- | Usage: @'glProgramUniform4f' program location v0 v1 v2 v3@
-
-
-glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform4f = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fFunPtr
-
-glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform4fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4f")
-
-{-# NOINLINE glProgramUniform4fFunPtr #-}
-
--- | Usage: @'glProgramUniform4fv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform4fv = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvFunPtr
-
-glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fv")
-
-{-# NOINLINE glProgramUniform4fvFunPtr #-}
-
--- | Usage: @'glProgramUniform4i' program location v0 v1 v2 v3@
-
-
-glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform4i = ffiuintintintintintintIOV glProgramUniform4iFunPtr
-
-glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform4iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i")
-
-{-# NOINLINE glProgramUniform4iFunPtr #-}
-
--- | Usage: @'glProgramUniform4iv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform4iv = ffiuintintsizeiPtrintIOV glProgramUniform4ivFunPtr
-
-glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform4ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iv")
-
-{-# NOINLINE glProgramUniform4ivFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui' program location v0 v1 v2 v3@
-
-
-glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform4ui = ffiuintintuintuintuintuintIOV glProgramUniform4uiFunPtr
-
-glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform4uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui")
-
-{-# NOINLINE glProgramUniform4uiFunPtr #-}
-
--- | Usage: @'glProgramUniform4uiv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform4uiv = ffiuintintsizeiPtruintIOV glProgramUniform4uivFunPtr
-
-glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform4uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiv")
-
-{-# NOINLINE glProgramUniform4uivFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvFunPtr
-
-glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dv")
-
-{-# NOINLINE glProgramUniformMatrix2dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvFunPtr
-
-glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fv")
-
-{-# NOINLINE glProgramUniformMatrix2fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x3dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvFunPtr
-
-glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dv")
-
-{-# NOINLINE glProgramUniformMatrix2x3dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x3fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvFunPtr
-
-glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fv")
-
-{-# NOINLINE glProgramUniformMatrix2x3fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x4dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvFunPtr
-
-glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dv")
-
-{-# NOINLINE glProgramUniformMatrix2x4dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x4fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvFunPtr
-
-glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fv")
-
-{-# NOINLINE glProgramUniformMatrix2x4fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvFunPtr
-
-glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dv")
-
-{-# NOINLINE glProgramUniformMatrix3dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvFunPtr
-
-glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fv")
-
-{-# NOINLINE glProgramUniformMatrix3fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x2dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvFunPtr
-
-glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dv")
-
-{-# NOINLINE glProgramUniformMatrix3x2dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x2fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvFunPtr
-
-glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fv")
-
-{-# NOINLINE glProgramUniformMatrix3x2fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x4dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvFunPtr
-
-glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dv")
-
-{-# NOINLINE glProgramUniformMatrix3x4dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x4fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvFunPtr
-
-glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fv")
-
-{-# NOINLINE glProgramUniformMatrix3x4fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvFunPtr
-
-glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dv")
-
-{-# NOINLINE glProgramUniformMatrix4dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvFunPtr
-
-glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fv")
-
-{-# NOINLINE glProgramUniformMatrix4fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x2dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvFunPtr
-
-glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dv")
-
-{-# NOINLINE glProgramUniformMatrix4x2dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x2fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvFunPtr
-
-glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fv")
-
-{-# NOINLINE glProgramUniformMatrix4x2fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x3dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvFunPtr
-
-glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dv")
-
-{-# NOINLINE glProgramUniformMatrix4x3dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x3fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvFunPtr
-
-glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fv")
-
-{-# NOINLINE glProgramUniformMatrix4x3fvFunPtr #-}
-
--- | Usage: @'glReleaseShaderCompiler'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml>
-
-
-glReleaseShaderCompiler :: MonadIO m => m ()
-glReleaseShaderCompiler = ffiIOV glReleaseShaderCompilerFunPtr
-
-glReleaseShaderCompilerFunPtr :: FunPtr (IO ())
-glReleaseShaderCompilerFunPtr = unsafePerformIO (getProcAddress "glReleaseShaderCompiler")
-
-{-# NOINLINE glReleaseShaderCompilerFunPtr #-}
-
--- | Usage: @'glScissorArrayv' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
-
-
-glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
-glScissorArrayv = ffiuintsizeiPtrintIOV glScissorArrayvFunPtr
-
-glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
-glScissorArrayvFunPtr = unsafePerformIO (getProcAddress "glScissorArrayv")
-
-{-# NOINLINE glScissorArrayvFunPtr #-}
-
--- | Usage: @'glScissorIndexed' index left bottom width height@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml>
-
-
-glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissorIndexed = ffiuintintintsizeisizeiIOV glScissorIndexedFunPtr
-
-glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorIndexedFunPtr = unsafePerformIO (getProcAddress "glScissorIndexed")
-
-{-# NOINLINE glScissorIndexedFunPtr #-}
-
--- | Usage: @'glScissorIndexedv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glScissorIndexedv = ffiuintPtrintIOV glScissorIndexedvFunPtr
-
-glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glScissorIndexedvFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedv")
-
-{-# NOINLINE glScissorIndexedvFunPtr #-}
-
--- | Usage: @'glShaderBinary' count shaders binaryformat binary length@
---
--- The length of @shaders@ should be @count@.
---
--- The length of @binary@ should be @length@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml>
-
-
-glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-glShaderBinary = ffisizeiPtruintenumPtrVsizeiIOV glShaderBinaryFunPtr
-
-glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
-glShaderBinaryFunPtr = unsafePerformIO (getProcAddress "glShaderBinary")
-
-{-# NOINLINE glShaderBinaryFunPtr #-}
-
--- | Usage: @'glUseProgramStages' pipeline stages program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml>
-
-
-glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
-glUseProgramStages = ffiuintbitfielduintIOV glUseProgramStagesFunPtr
-
-glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
-glUseProgramStagesFunPtr = unsafePerformIO (getProcAddress "glUseProgramStages")
-
-{-# NOINLINE glUseProgramStagesFunPtr #-}
-
--- | Usage: @'glValidateProgramPipeline' pipeline@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml>
-
-
-glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
-glValidateProgramPipeline = ffiuintIOV glValidateProgramPipelineFunPtr
-
-glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
-glValidateProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipeline")
-
-{-# NOINLINE glValidateProgramPipelineFunPtr #-}
-
--- | Usage: @'glVertexAttribL1d' index x@
-
-
-glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttribL1d = ffiuintdoubleIOV glVertexAttribL1dFunPtr
-
-glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttribL1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1d")
-
-{-# NOINLINE glVertexAttribL1dFunPtr #-}
-
--- | Usage: @'glVertexAttribL1dv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL1dv = ffiuintPtrdoubleIOV glVertexAttribL1dvFunPtr
-
-glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dv")
-
-{-# NOINLINE glVertexAttribL1dvFunPtr #-}
-
--- | Usage: @'glVertexAttribL2d' index x y@
-
-
-glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttribL2d = ffiuintdoubledoubleIOV glVertexAttribL2dFunPtr
-
-glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2d")
-
-{-# NOINLINE glVertexAttribL2dFunPtr #-}
-
--- | Usage: @'glVertexAttribL2dv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL2dv = ffiuintPtrdoubleIOV glVertexAttribL2dvFunPtr
-
-glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dv")
-
-{-# NOINLINE glVertexAttribL2dvFunPtr #-}
-
--- | Usage: @'glVertexAttribL3d' index x y z@
-
-
-glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL3d = ffiuintdoubledoubledoubleIOV glVertexAttribL3dFunPtr
-
-glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3d")
-
-{-# NOINLINE glVertexAttribL3dFunPtr #-}
-
--- | Usage: @'glVertexAttribL3dv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL3dv = ffiuintPtrdoubleIOV glVertexAttribL3dvFunPtr
-
-glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dv")
-
-{-# NOINLINE glVertexAttribL3dvFunPtr #-}
-
--- | Usage: @'glVertexAttribL4d' index x y z w@
-
-
-glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dFunPtr
-
-glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4d")
-
-{-# NOINLINE glVertexAttribL4dFunPtr #-}
-
--- | Usage: @'glVertexAttribL4dv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL4dv = ffiuintPtrdoubleIOV glVertexAttribL4dvFunPtr
-
-glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dv")
-
-{-# NOINLINE glVertexAttribL4dvFunPtr #-}
-
--- | Usage: @'glVertexAttribLPointer' index size type stride pointer@
---
--- The length of @pointer@ should be @size@.
-
-
-glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribLPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerFunPtr
-
-glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribLPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointer")
-
-{-# NOINLINE glVertexAttribLPointerFunPtr #-}
-
--- | Usage: @'glViewportArrayv' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
-
-
-glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glViewportArrayv = ffiuintsizeiPtrfloatIOV glViewportArrayvFunPtr
-
-glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glViewportArrayvFunPtr = unsafePerformIO (getProcAddress "glViewportArrayv")
-
-{-# NOINLINE glViewportArrayvFunPtr #-}
-
--- | Usage: @'glViewportIndexedf' index x y w h@
-
-
-glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glViewportIndexedf = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfFunPtr
-
-glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glViewportIndexedfFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedf")
-
-{-# NOINLINE glViewportIndexedfFunPtr #-}
-
--- | Usage: @'glViewportIndexedfv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glViewportIndexedfv = ffiuintPtrfloatIOV glViewportIndexedfvFunPtr
-
-glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glViewportIndexedfvFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfv")
-
-{-# NOINLINE glViewportIndexedfvFunPtr #-}
-
-pattern GL_ACTIVE_PROGRAM = 0x8259
-
-pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF
-
-pattern GL_FIXED = 0x140C
-
-pattern GL_FRAGMENT_SHADER_BIT = 0x00000002
-
-pattern GL_GEOMETRY_SHADER_BIT = 0x00000004
-
-pattern GL_HIGH_FLOAT = 0x8DF2
-
-pattern GL_HIGH_INT = 0x8DF5
-
-pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
-
-pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
-
-pattern GL_LAYER_PROVOKING_VERTEX = 0x825E
-
-pattern GL_LOW_FLOAT = 0x8DF0
-
-pattern GL_LOW_INT = 0x8DF3
-
-pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
-
-pattern GL_MAX_VARYING_VECTORS = 0x8DFC
-
-pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
-
-pattern GL_MAX_VIEWPORTS = 0x825B
-
-pattern GL_MEDIUM_FLOAT = 0x8DF1
-
-pattern GL_MEDIUM_INT = 0x8DF4
-
-pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE
-
-pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9
-
-pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF
-
-pattern GL_PROGRAM_BINARY_LENGTH = 0x8741
-
-pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
-
-pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A
-
-pattern GL_PROGRAM_SEPARABLE = 0x8258
-
-pattern GL_RGB565 = 0x8D62
-
-pattern GL_SHADER_BINARY_FORMATS = 0x8DF8
-
-pattern GL_SHADER_COMPILER = 0x8DFA
-
-pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008
-
-pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010
-
-pattern GL_UNDEFINED_VERTEX = 0x8260
-
-pattern GL_VERTEX_SHADER_BIT = 0x00000001
-
-pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D
-
-pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
-
-pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C
-
--- | Usage: @'glBindImageTexture' unit texture level layered layer access format@
---
--- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml>
-
-
-glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
-glBindImageTexture = ffiuintuintintbooleanintenumenumIOV glBindImageTextureFunPtr
-
-glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
-glBindImageTextureFunPtr = unsafePerformIO (getProcAddress "glBindImageTexture")
-
-{-# NOINLINE glBindImageTextureFunPtr #-}
-
--- | Usage: @'glDrawArraysInstancedBaseInstance' mode first count instancecount baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml>
-
-
-glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
-glDrawArraysInstancedBaseInstance = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceFunPtr
-
-glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
-glDrawArraysInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstance")
-
-{-# NOINLINE glDrawArraysInstancedBaseInstanceFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseInstance' mode count type indices instancecount baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml>
-
-
-glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
-glDrawElementsInstancedBaseInstance = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceFunPtr
-
-glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
-glDrawElementsInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstance")
-
-{-# NOINLINE glDrawElementsInstancedBaseInstanceFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseVertexBaseInstance' mode count type indices instancecount basevertex baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml>
-
-
-glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
-glDrawElementsInstancedBaseVertexBaseInstance = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceFunPtr
-
-glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
-glDrawElementsInstancedBaseVertexBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstance")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackInstanced' mode id instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml>
-
-
-glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
-glDrawTransformFeedbackInstanced = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedFunPtr
-
-glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
-glDrawTransformFeedbackInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstanced")
-
-{-# NOINLINE glDrawTransformFeedbackInstancedFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackStreamInstanced' mode id stream instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml>
-
-
-glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
-glDrawTransformFeedbackStreamInstanced = ffienumuintuintsizeiIOV glDrawTransformFeedbackStreamInstancedFunPtr
-
-glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
-glDrawTransformFeedbackStreamInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStreamInstanced")
-
-{-# NOINLINE glDrawTransformFeedbackStreamInstancedFunPtr #-}
-
--- | Usage: @'glGetActiveAtomicCounterBufferiv' program bufferIndex pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml>
-
-
-glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveAtomicCounterBufferiv = ffiuintuintenumPtrintIOV glGetActiveAtomicCounterBufferivFunPtr
-
-glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveAtomicCounterBufferivFunPtr = unsafePerformIO (getProcAddress "glGetActiveAtomicCounterBufferiv")
-
-{-# NOINLINE glGetActiveAtomicCounterBufferivFunPtr #-}
-
--- | Usage: @'glGetInternalformativ' target internalformat pname bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
-glGetInternalformativ = ffienumenumenumsizeiPtrintIOV glGetInternalformativFunPtr
-
-glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
-glGetInternalformativFunPtr = unsafePerformIO (getProcAddress "glGetInternalformativ")
-
-{-# NOINLINE glGetInternalformativFunPtr #-}
-
--- | Usage: @'glMemoryBarrier' barriers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml>
-
-
-glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
-glMemoryBarrier = ffibitfieldIOV glMemoryBarrierFunPtr
-
-glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())
-glMemoryBarrierFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrier")
-
-{-# NOINLINE glMemoryBarrierFunPtr #-}
-
--- | Usage: @'glTexStorage1D' target levels internalformat width@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml>
-
-
-glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-glTexStorage1D = ffienumsizeienumsizeiIOV glTexStorage1DFunPtr
-
-glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTexStorage1DFunPtr = unsafePerformIO (getProcAddress "glTexStorage1D")
-
-{-# NOINLINE glTexStorage1DFunPtr #-}
-
--- | Usage: @'glTexStorage2D' target levels internalformat width height@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml>
-
-
-glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTexStorage2D = ffienumsizeienumsizeisizeiIOV glTexStorage2DFunPtr
-
-glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTexStorage2DFunPtr = unsafePerformIO (getProcAddress "glTexStorage2D")
-
-{-# NOINLINE glTexStorage2DFunPtr #-}
-
--- | Usage: @'glTexStorage3D' target levels internalformat width height depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml>
-
-
-glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTexStorage3D = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DFunPtr
-
-glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTexStorage3DFunPtr = unsafePerformIO (getProcAddress "glTexStorage3D")
-
-{-# NOINLINE glTexStorage3DFunPtr #-}
-
-pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
-
-pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF
-
-pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
-
-pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0
-
-pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
-
-pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
-
-pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
-
-pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
-
-pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
-
-pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2
-
-pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200
-
-pattern GL_COMMAND_BARRIER_BIT = 0x00000040
-
-pattern GL_COPY_READ_BUFFER_BINDING = 0x8F36
-
-pattern GL_COPY_WRITE_BUFFER_BINDING = 0x8F37
-
-pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
-
-pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400
-
-pattern GL_IMAGE_1D = 0x904C
-
-pattern GL_IMAGE_1D_ARRAY = 0x9052
-
-pattern GL_IMAGE_2D = 0x904D
-
-pattern GL_IMAGE_2D_ARRAY = 0x9053
-
-pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055
-
-pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
-
-pattern GL_IMAGE_2D_RECT = 0x904F
-
-pattern GL_IMAGE_3D = 0x904E
-
-pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E
-
-pattern GL_IMAGE_BINDING_FORMAT = 0x906E
-
-pattern GL_IMAGE_BINDING_LAYER = 0x8F3D
-
-pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C
-
-pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B
-
-pattern GL_IMAGE_BINDING_NAME = 0x8F3A
-
-pattern GL_IMAGE_BUFFER = 0x9051
-
-pattern GL_IMAGE_CUBE = 0x9050
-
-pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
-
-pattern GL_INT_IMAGE_1D = 0x9057
-
-pattern GL_INT_IMAGE_1D_ARRAY = 0x905D
-
-pattern GL_INT_IMAGE_2D = 0x9058
-
-pattern GL_INT_IMAGE_2D_ARRAY = 0x905E
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
-
-pattern GL_INT_IMAGE_2D_RECT = 0x905A
-
-pattern GL_INT_IMAGE_3D = 0x9059
-
-pattern GL_INT_IMAGE_BUFFER = 0x905C
-
-pattern GL_INT_IMAGE_CUBE = 0x905B
-
-pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
-
-pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
-
-pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
-
-pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
-
-pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
-
-pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
-
-pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
-
-pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
-
-pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
-
-pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
-
-pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
-
-pattern GL_MAX_IMAGE_SAMPLES = 0x906D
-
-pattern GL_MAX_IMAGE_UNITS = 0x8F38
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
-
-pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
-
-pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
-
-pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
-
-pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
-
-pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
-
-pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
-
-pattern GL_NUM_SAMPLE_COUNTS = 0x9380
-
-pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
-
-pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
-
-pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E
-
-pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
-
-pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080
-
-pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
-
-pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008
-
-pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F
-
-pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
-
-pattern GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24
-
-pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
-
-pattern GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23
-
-pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
-
-pattern GL_UNIFORM_BARRIER_BIT = 0x00000004
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
-
-pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
-
-pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062
-
-pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
-
-pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
-
-pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064
-
-pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
-
--- | Usage: @'glBindVertexBuffer' bindingindex buffer offset stride@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml>
-
-
-glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glBindVertexBuffer = ffiuintuintintptrsizeiIOV glBindVertexBufferFunPtr
-
-glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glBindVertexBufferFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffer")
-
-{-# NOINLINE glBindVertexBufferFunPtr #-}
-
--- | Usage: @'glClearBufferData' target internalformat format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml>
-
-
-glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearBufferData = ffienumenumenumenumPtrVIOV glClearBufferDataFunPtr
-
-glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferData")
-
-{-# NOINLINE glClearBufferDataFunPtr #-}
-
--- | Usage: @'glClearBufferSubData' target internalformat offset size format type data@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml>
-
-
-glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-glClearBufferSubData = ffienumenumintptrsizeiptrenumenumPtrVIOV glClearBufferSubDataFunPtr
-
-glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferSubData")
-
-{-# NOINLINE glClearBufferSubDataFunPtr #-}
-
--- | Usage: @'glCopyImageSubData' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml>
-
-
-glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glCopyImageSubData = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataFunPtr
-
-glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glCopyImageSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubData")
-
-{-# NOINLINE glCopyImageSubDataFunPtr #-}
-
--- | Usage: @'glDebugMessageCallback' callback userParam@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml>
-
-
-glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
-glDebugMessageCallback = ffiDEBUGPROCPtrVIOV glDebugMessageCallbackFunPtr
-
-glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())
-glDebugMessageCallbackFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallback")
-
-{-# NOINLINE glDebugMessageCallbackFunPtr #-}
-
--- | Usage: @'glDebugMessageControl' source type severity count ids enabled@
---
--- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @ids@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml>
-
-
-glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-glDebugMessageControl = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlFunPtr
-
-glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
-glDebugMessageControlFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControl")
-
-{-# NOINLINE glDebugMessageControlFunPtr #-}
-
--- | Usage: @'glDebugMessageInsert' source type id severity length buf@
---
--- The length of @buf@ should be @COMPSIZE(buf,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml>
-
-
-glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
-glDebugMessageInsert = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertFunPtr
-
-glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-glDebugMessageInsertFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsert")
-
-{-# NOINLINE glDebugMessageInsertFunPtr #-}
-
--- | Usage: @'glDispatchCompute' num_groups_x num_groups_y num_groups_z@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml>
-
-
-glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glDispatchCompute = ffiuintuintuintIOV glDispatchComputeFunPtr
-
-glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glDispatchComputeFunPtr = unsafePerformIO (getProcAddress "glDispatchCompute")
-
-{-# NOINLINE glDispatchComputeFunPtr #-}
-
--- | Usage: @'glDispatchComputeIndirect' indirect@
---
--- The parameter @indirect@ is a @BufferOffset@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml>
-
-
-glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
-glDispatchComputeIndirect = ffiintptrIOV glDispatchComputeIndirectFunPtr
-
-glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())
-glDispatchComputeIndirectFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeIndirect")
-
-{-# NOINLINE glDispatchComputeIndirectFunPtr #-}
-
--- | Usage: @'glFramebufferParameteri' target pname param@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml>
-
-
-glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glFramebufferParameteri = ffienumenumintIOV glFramebufferParameteriFunPtr
-
-glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glFramebufferParameteri")
-
-{-# NOINLINE glFramebufferParameteriFunPtr #-}
-
--- | Usage: @'glGetDebugMessageLog' count bufSize sources types ids severities lengths messageLog@
---
--- The length of @sources@ should be @count@.
---
--- The length of @types@ should be @count@.
---
--- The length of @ids@ should be @count@.
---
--- The length of @severities@ should be @count@.
---
--- The length of @lengths@ should be @count@.
---
--- The length of @messageLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml>
-
-
-glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-glGetDebugMessageLog = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogFunPtr
-
-glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
-glGetDebugMessageLogFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLog")
-
-{-# NOINLINE glGetDebugMessageLogFunPtr #-}
-
--- | Usage: @'glGetFramebufferParameteriv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferParameteriv = ffienumenumPtrintIOV glGetFramebufferParameterivFunPtr
-
-glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameteriv")
-
-{-# NOINLINE glGetFramebufferParameterivFunPtr #-}
-
--- | Usage: @'glGetInternalformati64v' target internalformat pname bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
-glGetInternalformati64v = ffienumenumenumsizeiPtrint64IOV glGetInternalformati64vFunPtr
-
-glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
-glGetInternalformati64vFunPtr = unsafePerformIO (getProcAddress "glGetInternalformati64v")
-
-{-# NOINLINE glGetInternalformati64vFunPtr #-}
-
--- | Usage: @'glGetObjectLabel' identifier name bufSize length label@
---
--- The length of @length@ should be @1@.
---
--- The length of @label@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml>
-
-
-glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectLabel = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelFunPtr
-
-glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabel")
-
-{-# NOINLINE glGetObjectLabelFunPtr #-}
-
--- | Usage: @'glGetObjectPtrLabel' ptr bufSize length label@
---
--- The length of @length@ should be @1@.
---
--- The length of @label@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml>
-
-
-glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectPtrLabel = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelFunPtr
-
-glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabel")
-
-{-# NOINLINE glGetObjectPtrLabelFunPtr #-}
-
--- | Usage: @'glGetProgramInterfaceiv' program programInterface pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramInterfaceiv = ffiuintenumenumPtrintIOV glGetProgramInterfaceivFunPtr
-
-glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramInterfaceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramInterfaceiv")
-
-{-# NOINLINE glGetProgramInterfaceivFunPtr #-}
-
--- | Usage: @'glGetProgramResourceIndex' program programInterface name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml>
-
-
-glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
-glGetProgramResourceIndex = ffiuintenumPtrcharIOuint glGetProgramResourceIndexFunPtr
-
-glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
-glGetProgramResourceIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceIndex")
-
-{-# NOINLINE glGetProgramResourceIndexFunPtr #-}
-
--- | Usage: @'glGetProgramResourceLocation' program programInterface name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml>
-
-
-glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetProgramResourceLocation = ffiuintenumPtrcharIOint glGetProgramResourceLocationFunPtr
-
-glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetProgramResourceLocationFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocation")
-
-{-# NOINLINE glGetProgramResourceLocationFunPtr #-}
-
--- | Usage: @'glGetProgramResourceLocationIndex' program programInterface name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml>
-
-
-glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetProgramResourceLocationIndex = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexFunPtr
-
-glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetProgramResourceLocationIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndex")
-
-{-# NOINLINE glGetProgramResourceLocationIndexFunPtr #-}
-
--- | Usage: @'glGetProgramResourceName' program programInterface index bufSize length name@
---
--- The length of @length@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml>
-
-
-glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramResourceName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetProgramResourceNameFunPtr
-
-glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramResourceNameFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceName")
-
-{-# NOINLINE glGetProgramResourceNameFunPtr #-}
-
--- | Usage: @'glGetProgramResourceiv' program programInterface index propCount props bufSize length params@
---
--- The length of @props@ should be @propCount@.
---
--- The length of @length@ should be @1@.
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glGetProgramResourceiv = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV glGetProgramResourceivFunPtr
-
-glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glGetProgramResourceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceiv")
-
-{-# NOINLINE glGetProgramResourceivFunPtr #-}
-
--- | Usage: @'glInvalidateBufferData' buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml>
-
-
-glInvalidateBufferData :: MonadIO m => GLuint -> m ()
-glInvalidateBufferData = ffiuintIOV glInvalidateBufferDataFunPtr
-
-glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())
-glInvalidateBufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferData")
-
-{-# NOINLINE glInvalidateBufferDataFunPtr #-}
-
--- | Usage: @'glInvalidateBufferSubData' buffer offset length@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @length@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml>
-
-
-glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
-glInvalidateBufferSubData = ffiuintintptrsizeiptrIOV glInvalidateBufferSubDataFunPtr
-
-glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glInvalidateBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferSubData")
-
-{-# NOINLINE glInvalidateBufferSubDataFunPtr #-}
-
--- | Usage: @'glInvalidateFramebuffer' target numAttachments attachments@
---
--- The length of @attachments@ should be @numAttachments@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml>
-
-
-glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
-glInvalidateFramebuffer = ffienumsizeiPtrenumIOV glInvalidateFramebufferFunPtr
-
-glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
-glInvalidateFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateFramebuffer")
-
-{-# NOINLINE glInvalidateFramebufferFunPtr #-}
-
--- | Usage: @'glInvalidateSubFramebuffer' target numAttachments attachments x y width height@
---
--- The length of @attachments@ should be @numAttachments@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml>
-
-
-glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glInvalidateSubFramebuffer = ffienumsizeiPtrenumintintsizeisizeiIOV glInvalidateSubFramebufferFunPtr
-
-glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glInvalidateSubFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateSubFramebuffer")
-
-{-# NOINLINE glInvalidateSubFramebufferFunPtr #-}
-
--- | Usage: @'glInvalidateTexImage' texture level@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml>
-
-
-glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
-glInvalidateTexImage = ffiuintintIOV glInvalidateTexImageFunPtr
-
-glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glInvalidateTexImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexImage")
-
-{-# NOINLINE glInvalidateTexImageFunPtr #-}
-
--- | Usage: @'glInvalidateTexSubImage' texture level xoffset yoffset zoffset width height depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml>
-
-
-glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glInvalidateTexSubImage = ffiuintintintintintsizeisizeisizeiIOV glInvalidateTexSubImageFunPtr
-
-glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glInvalidateTexSubImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexSubImage")
-
-{-# NOINLINE glInvalidateTexSubImageFunPtr #-}
-
--- | Usage: @'glMultiDrawArraysIndirect' mode indirect drawcount stride@
---
--- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml>
-
-
-glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawArraysIndirect = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectFunPtr
-
-glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirect")
-
-{-# NOINLINE glMultiDrawArraysIndirectFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsIndirect' mode type indirect drawcount stride@
---
--- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml>
-
-
-glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawElementsIndirect = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectFunPtr
-
-glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirect")
-
-{-# NOINLINE glMultiDrawElementsIndirectFunPtr #-}
-
--- | Usage: @'glObjectLabel' identifier name length label@
---
--- The length of @label@ should be @COMPSIZE(label,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml>
-
-
-glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glObjectLabel = ffienumuintsizeiPtrcharIOV glObjectLabelFunPtr
-
-glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glObjectLabelFunPtr = unsafePerformIO (getProcAddress "glObjectLabel")
-
-{-# NOINLINE glObjectLabelFunPtr #-}
-
--- | Usage: @'glObjectPtrLabel' ptr length label@
---
--- The length of @label@ should be @COMPSIZE(label,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml>
-
-
-glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
-glObjectPtrLabel = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelFunPtr
-
-glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
-glObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabel")
-
-{-# NOINLINE glObjectPtrLabelFunPtr #-}
-
--- | Usage: @'glPopDebugGroup'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml>
-
-
-glPopDebugGroup :: MonadIO m => m ()
-glPopDebugGroup = ffiIOV glPopDebugGroupFunPtr
-
-glPopDebugGroupFunPtr :: FunPtr (IO ())
-glPopDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroup")
-
-{-# NOINLINE glPopDebugGroupFunPtr #-}
-
--- | Usage: @'glPushDebugGroup' source id length message@
---
--- The length of @message@ should be @COMPSIZE(message,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml>
-
-
-glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glPushDebugGroup = ffienumuintsizeiPtrcharIOV glPushDebugGroupFunPtr
-
-glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glPushDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroup")
-
-{-# NOINLINE glPushDebugGroupFunPtr #-}
-
--- | Usage: @'glShaderStorageBlockBinding' program storageBlockIndex storageBlockBinding@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml>
-
-
-glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glShaderStorageBlockBinding = ffiuintuintuintIOV glShaderStorageBlockBindingFunPtr
-
-glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glShaderStorageBlockBindingFunPtr = unsafePerformIO (getProcAddress "glShaderStorageBlockBinding")
-
-{-# NOINLINE glShaderStorageBlockBindingFunPtr #-}
-
--- | Usage: @'glTexBufferRange' target internalformat buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml>
-
-
-glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTexBufferRange = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeFunPtr
-
-glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTexBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTexBufferRange")
-
-{-# NOINLINE glTexBufferRangeFunPtr #-}
-
--- | Usage: @'glTexStorage2DMultisample' target samples internalformat width height fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml>
-
-
-glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexStorage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexStorage2DMultisampleFunPtr
-
-glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DMultisample")
-
-{-# NOINLINE glTexStorage2DMultisampleFunPtr #-}
-
--- | Usage: @'glTexStorage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml>
-
-
-glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexStorage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleFunPtr
-
-glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisample")
-
-{-# NOINLINE glTexStorage3DMultisampleFunPtr #-}
-
--- | Usage: @'glTextureView' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml>
-
-
-glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glTextureView = ffiuintenumuintenumuintuintuintuintIOV glTextureViewFunPtr
-
-glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glTextureViewFunPtr = unsafePerformIO (getProcAddress "glTextureView")
-
-{-# NOINLINE glTextureViewFunPtr #-}
-
--- | Usage: @'glVertexAttribBinding' attribindex bindingindex@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml>
-
-
-glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribBinding = ffiuintuintIOV glVertexAttribBindingFunPtr
-
-glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexAttribBinding")
-
-{-# NOINLINE glVertexAttribBindingFunPtr #-}
-
--- | Usage: @'glVertexAttribFormat' attribindex size type normalized relativeoffset@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml>
-
-
-glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribFormat = ffiuintintenumbooleanuintIOV glVertexAttribFormatFunPtr
-
-glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormat")
-
-{-# NOINLINE glVertexAttribFormatFunPtr #-}
-
--- | Usage: @'glVertexAttribIFormat' attribindex size type relativeoffset@
-
-
-glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexAttribIFormat = ffiuintintenumuintIOV glVertexAttribIFormatFunPtr
-
-glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormat")
-
-{-# NOINLINE glVertexAttribIFormatFunPtr #-}
-
--- | Usage: @'glVertexAttribLFormat' attribindex size type relativeoffset@
-
-
-glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexAttribLFormat = ffiuintintenumuintIOV glVertexAttribLFormatFunPtr
-
-glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormat")
-
-{-# NOINLINE glVertexAttribLFormatFunPtr #-}
-
--- | Usage: @'glVertexBindingDivisor' bindingindex divisor@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml>
-
-
-glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexBindingDivisor = ffiuintuintIOV glVertexBindingDivisorFunPtr
-
-glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexBindingDivisor")
-
-{-# NOINLINE glVertexBindingDivisorFunPtr #-}
-
-pattern GL_ACTIVE_RESOURCES = 0x92F5
-
-pattern GL_ACTIVE_VARIABLES = 0x9305
-
-pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
-
-pattern GL_ARRAY_SIZE = 0x92FB
-
-pattern GL_ARRAY_STRIDE = 0x92FE
-
-pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
-
-pattern GL_AUTO_GENERATE_MIPMAP = 0x8295
-
-pattern GL_BLOCK_INDEX = 0x92FD
-
-pattern GL_BUFFER = 0x82E0
-
-pattern GL_BUFFER_BINDING = 0x9302
-
-pattern GL_BUFFER_DATA_SIZE = 0x9303
-
-pattern GL_BUFFER_VARIABLE = 0x92E5
-
-pattern GL_CAVEAT_SUPPORT = 0x82B8
-
-pattern GL_CLEAR_BUFFER = 0x82B4
-
-pattern GL_COLOR_COMPONENTS = 0x8283
-
-pattern GL_COLOR_ENCODING = 0x8296
-
-pattern GL_COLOR_RENDERABLE = 0x8286
-
-pattern GL_COMPRESSED_R11_EAC = 0x9270
-
-pattern GL_COMPRESSED_RG11_EAC = 0x9272
-
-pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274
-
-pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
-
-pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278
-
-pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271
-
-pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
-
-pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275
-
-pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
-
-pattern GL_COMPUTE_SHADER = 0x91B9
-
-pattern GL_COMPUTE_SHADER_BIT = 0x00000020
-
-pattern GL_COMPUTE_SUBROUTINE = 0x92ED
-
-pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
-
-pattern GL_COMPUTE_TEXTURE = 0x82A0
-
-pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267
-
-pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002
-
-pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244
-
-pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245
-
-pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D
-
-pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145
-
-pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
-
-pattern GL_DEBUG_OUTPUT = 0x92E0
-
-pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
-
-pattern GL_DEBUG_SEVERITY_HIGH = 0x9146
-
-pattern GL_DEBUG_SEVERITY_LOW = 0x9148
-
-pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147
-
-pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B
-
-pattern GL_DEBUG_SOURCE_API = 0x8246
-
-pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A
-
-pattern GL_DEBUG_SOURCE_OTHER = 0x824B
-
-pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248
-
-pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249
-
-pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
-
-pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
-
-pattern GL_DEBUG_TYPE_ERROR = 0x824C
-
-pattern GL_DEBUG_TYPE_MARKER = 0x8268
-
-pattern GL_DEBUG_TYPE_OTHER = 0x8251
-
-pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250
-
-pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A
-
-pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F
-
-pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269
-
-pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
-
-pattern GL_DEPTH_COMPONENTS = 0x8284
-
-pattern GL_DEPTH_RENDERABLE = 0x8287
-
-pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
-
-pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE
-
-pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
-
-pattern GL_FILTER = 0x829A
-
-pattern GL_FRAGMENT_SUBROUTINE = 0x92EC
-
-pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
-
-pattern GL_FRAGMENT_TEXTURE = 0x829F
-
-pattern GL_FRAMEBUFFER_BLEND = 0x828B
-
-pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
-
-pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
-
-pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
-
-pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
-
-pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
-
-pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289
-
-pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
-
-pattern GL_FULL_SUPPORT = 0x82B7
-
-pattern GL_GEOMETRY_SUBROUTINE = 0x92EB
-
-pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
-
-pattern GL_GEOMETRY_TEXTURE = 0x829E
-
-pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291
-
-pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292
-
-pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3
-
-pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2
-
-pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE
-
-pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB
-
-pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1
-
-pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD
-
-pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA
-
-pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0
-
-pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC
-
-pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9
-
-pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF
-
-pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8
-
-pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9
-
-pattern GL_IMAGE_PIXEL_TYPE = 0x82AA
-
-pattern GL_IMAGE_TEXEL_SIZE = 0x82A7
-
-pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274
-
-pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B
-
-pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273
-
-pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A
-
-pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275
-
-pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C
-
-pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272
-
-pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279
-
-pattern GL_INTERNALFORMAT_PREFERRED = 0x8270
-
-pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271
-
-pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278
-
-pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277
-
-pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276
-
-pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D
-
-pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F
-
-pattern GL_IS_PER_PATCH = 0x92E7
-
-pattern GL_IS_ROW_MAJOR = 0x9300
-
-pattern GL_LOCATION = 0x930E
-
-pattern GL_LOCATION_INDEX = 0x930F
-
-pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294
-
-pattern GL_MATRIX_STRIDE = 0x92FF
-
-pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
-
-pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282
-
-pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
-
-pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
-
-pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
-
-pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
-
-pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
-
-pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
-
-pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
-
-pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
-
-pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
-
-pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
-
-pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
-
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144
-
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143
-
-pattern GL_MAX_DEPTH = 0x8280
-
-pattern GL_MAX_ELEMENT_INDEX = 0x8D6B
-
-pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
-
-pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316
-
-pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317
-
-pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318
-
-pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315
-
-pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
-
-pattern GL_MAX_HEIGHT = 0x827F
-
-pattern GL_MAX_LABEL_LENGTH = 0x82E8
-
-pattern GL_MAX_LAYERS = 0x8281
-
-pattern GL_MAX_NAME_LENGTH = 0x92F6
-
-pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7
-
-pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
-
-pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
-
-pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
-
-pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
-
-pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
-
-pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E
-
-pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
-
-pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
-
-pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
-
-pattern GL_MAX_WIDTH = 0x827E
-
-pattern GL_MIPMAP = 0x8293
-
-pattern GL_NAME_LENGTH = 0x92F9
-
-pattern GL_NUM_ACTIVE_VARIABLES = 0x9304
-
-pattern GL_OFFSET = 0x92FC
-
-pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
-
-pattern GL_PROGRAM = 0x82E2
-
-pattern GL_PROGRAM_INPUT = 0x92E3
-
-pattern GL_PROGRAM_OUTPUT = 0x92E4
-
-pattern GL_PROGRAM_PIPELINE = 0x82E4
-
-pattern GL_QUERY = 0x82E3
-
-pattern GL_READ_PIXELS = 0x828C
-
-pattern GL_READ_PIXELS_FORMAT = 0x828D
-
-pattern GL_READ_PIXELS_TYPE = 0x828E
-
-pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B
-
-pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A
-
-pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309
-
-pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
-
-pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
-
-pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306
-
-pattern GL_SAMPLER = 0x82E6
-
-pattern GL_SHADER = 0x82E1
-
-pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6
-
-pattern GL_SHADER_IMAGE_LOAD = 0x82A4
-
-pattern GL_SHADER_IMAGE_STORE = 0x82A5
-
-pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000
-
-pattern GL_SHADER_STORAGE_BLOCK = 0x92E6
-
-pattern GL_SHADER_STORAGE_BUFFER = 0x90D2
-
-pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3
-
-pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
-
-pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5
-
-pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
-
-pattern GL_SRGB_READ = 0x8297
-
-pattern GL_SRGB_WRITE = 0x8298
-
-pattern GL_STENCIL_COMPONENTS = 0x8285
-
-pattern GL_STENCIL_RENDERABLE = 0x8288
-
-pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9
-
-pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
-
-pattern GL_TESS_CONTROL_TEXTURE = 0x829C
-
-pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA
-
-pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
-
-pattern GL_TESS_EVALUATION_TEXTURE = 0x829D
-
-pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D
-
-pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
-
-pattern GL_TEXTURE_BUFFER_SIZE = 0x919E
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
-
-pattern GL_TEXTURE_GATHER = 0x82A2
-
-pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3
-
-pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F
-
-pattern GL_TEXTURE_IMAGE_TYPE = 0x8290
-
-pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF
-
-pattern GL_TEXTURE_SHADOW = 0x82A1
-
-pattern GL_TEXTURE_VIEW = 0x82B5
-
-pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD
-
-pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB
-
-pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE
-
-pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC
-
-pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C
-
-pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D
-
-pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4
-
-pattern GL_TYPE = 0x92FA
-
-pattern GL_UNIFORM = 0x92E1
-
-pattern GL_UNIFORM_BLOCK = 0x92E2
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
-
-pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4
-
-pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
-
-pattern GL_VERTEX_BINDING_BUFFER = 0x8F4F
-
-pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6
-
-pattern GL_VERTEX_BINDING_OFFSET = 0x82D7
-
-pattern GL_VERTEX_BINDING_STRIDE = 0x82D8
-
-pattern GL_VERTEX_SUBROUTINE = 0x92E8
-
-pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE
-
-pattern GL_VERTEX_TEXTURE = 0x829B
-
-pattern GL_VIEW_CLASS_128_BITS = 0x82C4
-
-pattern GL_VIEW_CLASS_16_BITS = 0x82CA
-
-pattern GL_VIEW_CLASS_24_BITS = 0x82C9
-
-pattern GL_VIEW_CLASS_32_BITS = 0x82C8
-
-pattern GL_VIEW_CLASS_48_BITS = 0x82C7
-
-pattern GL_VIEW_CLASS_64_BITS = 0x82C6
-
-pattern GL_VIEW_CLASS_8_BITS = 0x82CB
-
-pattern GL_VIEW_CLASS_96_BITS = 0x82C5
-
-pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3
-
-pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2
-
-pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0
-
-pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1
-
-pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
-
-pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
-
-pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
-
-pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
-
-pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6
-
--- | Usage: @'glBindBuffersBase' target first count buffers@
---
--- The length of @buffers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml>
-
-
-glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindBuffersBase = ffienumuintsizeiPtruintIOV glBindBuffersBaseFunPtr
-
-glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindBuffersBaseFunPtr = unsafePerformIO (getProcAddress "glBindBuffersBase")
-
-{-# NOINLINE glBindBuffersBaseFunPtr #-}
-
--- | Usage: @'glBindBuffersRange' target first count buffers offsets sizes@
---
--- The length of @buffers@ should be @count@.
---
--- The length of @offsets@ should be @count@.
---
--- The length of @sizes@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml>
-
-
-glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
-glBindBuffersRange = ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV glBindBuffersRangeFunPtr
-
-glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
-glBindBuffersRangeFunPtr = unsafePerformIO (getProcAddress "glBindBuffersRange")
-
-{-# NOINLINE glBindBuffersRangeFunPtr #-}
-
--- | Usage: @'glBindImageTextures' first count textures@
---
--- The length of @textures@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml>
-
-
-glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindImageTextures = ffiuintsizeiPtruintIOV glBindImageTexturesFunPtr
-
-glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindImageTexturesFunPtr = unsafePerformIO (getProcAddress "glBindImageTextures")
-
-{-# NOINLINE glBindImageTexturesFunPtr #-}
-
--- | Usage: @'glBindSamplers' first count samplers@
---
--- The length of @samplers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml>
-
-
-glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindSamplers = ffiuintsizeiPtruintIOV glBindSamplersFunPtr
-
-glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindSamplersFunPtr = unsafePerformIO (getProcAddress "glBindSamplers")
-
-{-# NOINLINE glBindSamplersFunPtr #-}
-
--- | Usage: @'glBindTextures' first count textures@
---
--- The length of @textures@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml>
-
-
-glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindTextures = ffiuintsizeiPtruintIOV glBindTexturesFunPtr
-
-glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindTexturesFunPtr = unsafePerformIO (getProcAddress "glBindTextures")
-
-{-# NOINLINE glBindTexturesFunPtr #-}
-
--- | Usage: @'glBindVertexBuffers' first count buffers offsets strides@
---
--- The length of @buffers@ should be @count@.
---
--- The length of @offsets@ should be @count@.
---
--- The length of @strides@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml>
-
-
-glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-glBindVertexBuffers = ffiuintsizeiPtruintPtrintptrPtrsizeiIOV glBindVertexBuffersFunPtr
-
-glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
-glBindVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffers")
-
-{-# NOINLINE glBindVertexBuffersFunPtr #-}
-
--- | Usage: @'glBufferStorage' target size data flags@
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml>
-
-
-glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glBufferStorage = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageFunPtr
-
-glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glBufferStorageFunPtr = unsafePerformIO (getProcAddress "glBufferStorage")
-
-{-# NOINLINE glBufferStorageFunPtr #-}
-
--- | Usage: @'glClearTexImage' texture level format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml>
-
-
-glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexImage = ffiuintintenumenumPtrVIOV glClearTexImageFunPtr
-
-glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexImageFunPtr = unsafePerformIO (getProcAddress "glClearTexImage")
-
-{-# NOINLINE glClearTexImageFunPtr #-}
-
--- | Usage: @'glClearTexSubImage' texture level xoffset yoffset zoffset width height depth format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml>
-
-
-glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexSubImage = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageFunPtr
-
-glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexSubImageFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImage")
-
-{-# NOINLINE glClearTexSubImageFunPtr #-}
-
-pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F
-
-pattern GL_BUFFER_STORAGE_FLAGS = 0x8220
-
-pattern GL_CLEAR_TEXTURE = 0x9365
-
-pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
-
-pattern GL_CLIENT_STORAGE_BIT = 0x0200
-
-pattern GL_DYNAMIC_STORAGE_BIT = 0x0100
-
-pattern GL_LOCATION_COMPONENT = 0x934A
-
-pattern GL_MAP_COHERENT_BIT = 0x0080
-
-pattern GL_MAP_PERSISTENT_BIT = 0x0040
-
-pattern GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5
-
-pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743
-
-pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
-
-pattern GL_QUERY_BUFFER = 0x9192
-
-pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000
-
-pattern GL_QUERY_BUFFER_BINDING = 0x9193
-
-pattern GL_QUERY_RESULT_NO_WAIT = 0x9194
-
-pattern GL_TEXTURE_BUFFER_BINDING = 0x8C2A
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
-
--- | Usage: @'glBindTextureUnit' unit texture@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml>
-
-
-glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
-glBindTextureUnit = ffiuintuintIOV glBindTextureUnitFunPtr
-
-glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glBindTextureUnitFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnit")
-
-{-# NOINLINE glBindTextureUnitFunPtr #-}
-
--- | Usage: @'glBlitNamedFramebuffer' readFramebuffer drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
-
-
-glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitNamedFramebuffer = ffiuintuintintintintintintintintintbitfieldenumIOV glBlitNamedFramebufferFunPtr
-
-glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitNamedFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitNamedFramebuffer")
-
-{-# NOINLINE glBlitNamedFramebufferFunPtr #-}
-
--- | Usage: @'glCheckNamedFramebufferStatus' framebuffer target@
-
-
-glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
-glCheckNamedFramebufferStatus = ffiuintenumIOenum glCheckNamedFramebufferStatusFunPtr
-
-glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
-glCheckNamedFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatus")
-
-{-# NOINLINE glCheckNamedFramebufferStatusFunPtr #-}
-
--- | Usage: @'glClearNamedBufferData' buffer internalformat format type data@
-
-
-glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferData = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataFunPtr
-
-glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferData")
-
-{-# NOINLINE glClearNamedBufferDataFunPtr #-}
-
--- | Usage: @'glClearNamedBufferSubData' buffer internalformat offset size format type data@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferSubData = ffiuintenumintptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataFunPtr
-
-glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubData")
-
-{-# NOINLINE glClearNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferfi' framebuffer buffer drawbuffer depth stencil@
-
-
-glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
-glClearNamedFramebufferfi = ffiuintenumintfloatintIOV glClearNamedFramebufferfiFunPtr
-
-glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ())
-glClearNamedFramebufferfiFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfi")
-
-{-# NOINLINE glClearNamedFramebufferfiFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferfv' framebuffer buffer drawbuffer value@
-
-
-glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
-glClearNamedFramebufferfv = ffiuintenumintPtrfloatIOV glClearNamedFramebufferfvFunPtr
-
-glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
-glClearNamedFramebufferfvFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfv")
-
-{-# NOINLINE glClearNamedFramebufferfvFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferiv' framebuffer buffer drawbuffer value@
-
-
-glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
-glClearNamedFramebufferiv = ffiuintenumintPtrintIOV glClearNamedFramebufferivFunPtr
-
-glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
-glClearNamedFramebufferivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferiv")
-
-{-# NOINLINE glClearNamedFramebufferivFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferuiv' framebuffer buffer drawbuffer value@
-
-
-glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
-glClearNamedFramebufferuiv = ffiuintenumintPtruintIOV glClearNamedFramebufferuivFunPtr
-
-glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
-glClearNamedFramebufferuivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferuiv")
-
-{-# NOINLINE glClearNamedFramebufferuivFunPtr #-}
-
--- | Usage: @'glClipControl' origin depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml>
-
-
-glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
-glClipControl = ffienumenumIOV glClipControlFunPtr
-
-glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glClipControlFunPtr = unsafePerformIO (getProcAddress "glClipControl")
-
-{-# NOINLINE glClipControlFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage1D' texture level xoffset width format imageSize data@
-
-
-glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage1D = ffiuintintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DFunPtr
-
-glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1D")
-
-{-# NOINLINE glCompressedTextureSubImage1DFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage2D' texture level xoffset yoffset width height format imageSize data@
-
-
-glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage2D = ffiuintintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DFunPtr
-
-glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2D")
-
-{-# NOINLINE glCompressedTextureSubImage2DFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format imageSize data@
-
-
-glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DFunPtr
-
-glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3D")
-
-{-# NOINLINE glCompressedTextureSubImage3DFunPtr #-}
-
--- | Usage: @'glCopyNamedBufferSubData' readBuffer writeBuffer readOffset writeOffset size@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glCopyNamedBufferSubData = ffiuintuintintptrintptrsizeiptrIOV glCopyNamedBufferSubDataFunPtr
-
-glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glCopyNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyNamedBufferSubData")
-
-{-# NOINLINE glCopyNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage1D' texture level xoffset x y width@
-
-
-glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTextureSubImage1D = ffiuintintintintintsizeiIOV glCopyTextureSubImage1DFunPtr
-
-glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1D")
-
-{-# NOINLINE glCopyTextureSubImage1DFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage2D' texture level xoffset yoffset x y width height@
-
-
-glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage2D = ffiuintintintintintintsizeisizeiIOV glCopyTextureSubImage2DFunPtr
-
-glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2D")
-
-{-# NOINLINE glCopyTextureSubImage2DFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage3D' texture level xoffset yoffset zoffset x y width height@
-
-
-glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage3D = ffiuintintintintintintintsizeisizeiIOV glCopyTextureSubImage3DFunPtr
-
-glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3D")
-
-{-# NOINLINE glCopyTextureSubImage3DFunPtr #-}
-
--- | Usage: @'glCreateBuffers' n buffers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml>
-
-
-glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateBuffers = ffisizeiPtruintIOV glCreateBuffersFunPtr
-
-glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateBuffersFunPtr = unsafePerformIO (getProcAddress "glCreateBuffers")
-
-{-# NOINLINE glCreateBuffersFunPtr #-}
-
--- | Usage: @'glCreateFramebuffers' n framebuffers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml>
-
-
-glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateFramebuffers = ffisizeiPtruintIOV glCreateFramebuffersFunPtr
-
-glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateFramebuffersFunPtr = unsafePerformIO (getProcAddress "glCreateFramebuffers")
-
-{-# NOINLINE glCreateFramebuffersFunPtr #-}
-
--- | Usage: @'glCreateProgramPipelines' n pipelines@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml>
-
-
-glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateProgramPipelines = ffisizeiPtruintIOV glCreateProgramPipelinesFunPtr
-
-glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glCreateProgramPipelines")
-
-{-# NOINLINE glCreateProgramPipelinesFunPtr #-}
-
--- | Usage: @'glCreateQueries' target n ids@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml>
-
-
-glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glCreateQueries = ffienumsizeiPtruintIOV glCreateQueriesFunPtr
-
-glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glCreateQueriesFunPtr = unsafePerformIO (getProcAddress "glCreateQueries")
-
-{-# NOINLINE glCreateQueriesFunPtr #-}
-
--- | Usage: @'glCreateRenderbuffers' n renderbuffers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml>
-
-
-glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateRenderbuffers = ffisizeiPtruintIOV glCreateRenderbuffersFunPtr
-
-glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glCreateRenderbuffers")
-
-{-# NOINLINE glCreateRenderbuffersFunPtr #-}
-
--- | Usage: @'glCreateSamplers' n samplers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml>
-
-
-glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateSamplers = ffisizeiPtruintIOV glCreateSamplersFunPtr
-
-glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateSamplersFunPtr = unsafePerformIO (getProcAddress "glCreateSamplers")
-
-{-# NOINLINE glCreateSamplersFunPtr #-}
-
--- | Usage: @'glCreateTextures' target n textures@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml>
-
-
-glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glCreateTextures = ffienumsizeiPtruintIOV glCreateTexturesFunPtr
-
-glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glCreateTexturesFunPtr = unsafePerformIO (getProcAddress "glCreateTextures")
-
-{-# NOINLINE glCreateTexturesFunPtr #-}
-
--- | Usage: @'glCreateTransformFeedbacks' n ids@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml>
-
-
-glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateTransformFeedbacks = ffisizeiPtruintIOV glCreateTransformFeedbacksFunPtr
-
-glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glCreateTransformFeedbacks")
-
-{-# NOINLINE glCreateTransformFeedbacksFunPtr #-}
-
--- | Usage: @'glCreateVertexArrays' n arrays@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml>
-
-
-glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateVertexArrays = ffisizeiPtruintIOV glCreateVertexArraysFunPtr
-
-glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateVertexArraysFunPtr = unsafePerformIO (getProcAddress "glCreateVertexArrays")
-
-{-# NOINLINE glCreateVertexArraysFunPtr #-}
-
--- | Usage: @'glDisableVertexArrayAttrib' vaobj index@
-
-
-glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
-glDisableVertexArrayAttrib = ffiuintuintIOV glDisableVertexArrayAttribFunPtr
-
-glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDisableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttrib")
-
-{-# NOINLINE glDisableVertexArrayAttribFunPtr #-}
-
--- | Usage: @'glEnableVertexArrayAttrib' vaobj index@
-
-
-glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
-glEnableVertexArrayAttrib = ffiuintuintIOV glEnableVertexArrayAttribFunPtr
-
-glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glEnableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttrib")
-
-{-# NOINLINE glEnableVertexArrayAttribFunPtr #-}
-
--- | Usage: @'glFlushMappedNamedBufferRange' buffer offset length@
---
--- The parameter @length@ is a @BufferSize@.
-
-
-glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedNamedBufferRange = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeFunPtr
-
-glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRange")
-
-{-# NOINLINE glFlushMappedNamedBufferRangeFunPtr #-}
-
--- | Usage: @'glGenerateTextureMipmap' texture@
-
-
-glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
-glGenerateTextureMipmap = ffiuintIOV glGenerateTextureMipmapFunPtr
-
-glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())
-glGenerateTextureMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmap")
-
-{-# NOINLINE glGenerateTextureMipmapFunPtr #-}
-
--- | Usage: @'glGetCompressedTextureImage' texture level bufSize pixels@
-
-
-glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
-glGetCompressedTextureImage = ffiuintintsizeiPtrVIOV glGetCompressedTextureImageFunPtr
-
-glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())
-glGetCompressedTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImage")
-
-{-# NOINLINE glGetCompressedTextureImageFunPtr #-}
-
--- | Usage: @'glGetCompressedTextureSubImage' texture level xoffset yoffset zoffset width height depth bufSize pixels@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml>
-
-
-glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
-glGetCompressedTextureSubImage = ffiuintintintintintsizeisizeisizeisizeiPtrVIOV glGetCompressedTextureSubImageFunPtr
-
-glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glGetCompressedTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureSubImage")
-
-{-# NOINLINE glGetCompressedTextureSubImageFunPtr #-}
-
--- | Usage: @'glGetGraphicsResetStatus'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml>
-
-
-glGetGraphicsResetStatus :: MonadIO m => m GLenum
-glGetGraphicsResetStatus = ffiIOenum glGetGraphicsResetStatusFunPtr
-
-glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)
-glGetGraphicsResetStatusFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatus")
-
-{-# NOINLINE glGetGraphicsResetStatusFunPtr #-}
-
--- | Usage: @'glGetNamedBufferParameteri64v' buffer pname params@
-
-
-glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetNamedBufferParameteri64v = ffiuintenumPtrint64IOV glGetNamedBufferParameteri64vFunPtr
-
-glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetNamedBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteri64v")
-
-{-# NOINLINE glGetNamedBufferParameteri64vFunPtr #-}
-
--- | Usage: @'glGetNamedBufferParameteriv' buffer pname params@
-
-
-glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedBufferParameteriv = ffiuintenumPtrintIOV glGetNamedBufferParameterivFunPtr
-
-glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteriv")
-
-{-# NOINLINE glGetNamedBufferParameterivFunPtr #-}
-
--- | Usage: @'glGetNamedBufferPointerv' buffer pname params@
-
-
-glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetNamedBufferPointerv = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervFunPtr
-
-glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetNamedBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointerv")
-
-{-# NOINLINE glGetNamedBufferPointervFunPtr #-}
-
--- | Usage: @'glGetNamedBufferSubData' buffer offset size data@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glGetNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataFunPtr
-
-glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glGetNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubData")
-
-{-# NOINLINE glGetNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glGetNamedFramebufferAttachmentParameteriv' framebuffer attachment pname params@
-
-
-glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferAttachmentParameteriv = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivFunPtr
-
-glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameteriv")
-
-{-# NOINLINE glGetNamedFramebufferAttachmentParameterivFunPtr #-}
-
--- | Usage: @'glGetNamedFramebufferParameteriv' framebuffer pname param@
-
-
-glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferParameteriv = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivFunPtr
-
-glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameteriv")
-
-{-# NOINLINE glGetNamedFramebufferParameterivFunPtr #-}
-
--- | Usage: @'glGetNamedRenderbufferParameteriv' renderbuffer pname params@
-
-
-glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedRenderbufferParameteriv = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivFunPtr
-
-glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameteriv")
-
-{-# NOINLINE glGetNamedRenderbufferParameterivFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjecti64v' id buffer pname offset@
-
-
-glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjecti64v = ffiuintuintenumintptrIOV glGetQueryBufferObjecti64vFunPtr
-
-glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjecti64v")
-
-{-# NOINLINE glGetQueryBufferObjecti64vFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjectiv' id buffer pname offset@
-
-
-glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectivFunPtr
-
-glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectiv")
-
-{-# NOINLINE glGetQueryBufferObjectivFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjectui64v' id buffer pname offset@
-
-
-glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectui64v = ffiuintuintenumintptrIOV glGetQueryBufferObjectui64vFunPtr
-
-glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectui64v")
-
-{-# NOINLINE glGetQueryBufferObjectui64vFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjectuiv' id buffer pname offset@
-
-
-glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectuiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectuivFunPtr
-
-glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectuiv")
-
-{-# NOINLINE glGetQueryBufferObjectuivFunPtr #-}
-
--- | Usage: @'glGetTextureImage' texture level format type bufSize pixels@
-
-
-glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetTextureImage = ffiuintintenumenumsizeiPtrVIOV glGetTextureImageFunPtr
-
-glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureImage")
-
-{-# NOINLINE glGetTextureImageFunPtr #-}
-
--- | Usage: @'glGetTextureLevelParameterfv' texture level pname params@
-
-
-glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureLevelParameterfv = ffiuintintenumPtrfloatIOV glGetTextureLevelParameterfvFunPtr
-
-glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfv")
-
-{-# NOINLINE glGetTextureLevelParameterfvFunPtr #-}
-
--- | Usage: @'glGetTextureLevelParameteriv' texture level pname params@
-
-
-glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTextureLevelParameteriv = ffiuintintenumPtrintIOV glGetTextureLevelParameterivFunPtr
-
-glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameteriv")
-
-{-# NOINLINE glGetTextureLevelParameterivFunPtr #-}
-
--- | Usage: @'glGetTextureParameterIiv' texture pname params@
-
-
-glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameterIiv = ffiuintenumPtrintIOV glGetTextureParameterIivFunPtr
-
-glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIiv")
-
-{-# NOINLINE glGetTextureParameterIivFunPtr #-}
-
--- | Usage: @'glGetTextureParameterIuiv' texture pname params@
-
-
-glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetTextureParameterIuiv = ffiuintenumPtruintIOV glGetTextureParameterIuivFunPtr
-
-glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuiv")
-
-{-# NOINLINE glGetTextureParameterIuivFunPtr #-}
-
--- | Usage: @'glGetTextureParameterfv' texture pname params@
-
-
-glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureParameterfv = ffiuintenumPtrfloatIOV glGetTextureParameterfvFunPtr
-
-glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfv")
-
-{-# NOINLINE glGetTextureParameterfvFunPtr #-}
-
--- | Usage: @'glGetTextureParameteriv' texture pname params@
-
-
-glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameteriv = ffiuintenumPtrintIOV glGetTextureParameterivFunPtr
-
-glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameteriv")
-
-{-# NOINLINE glGetTextureParameterivFunPtr #-}
-
--- | Usage: @'glGetTextureSubImage' texture level xoffset yoffset zoffset width height depth format type bufSize pixels@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml>
-
-
-glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetTextureSubImage = ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV glGetTextureSubImageFunPtr
-
-glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureSubImage")
-
-{-# NOINLINE glGetTextureSubImageFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbacki64_v' xfb pname index param@
-
-
-glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
-glGetTransformFeedbacki64_v = ffiuintenumuintPtrint64IOV glGetTransformFeedbacki64_vFunPtr
-
-glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
-glGetTransformFeedbacki64_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki64_v")
-
-{-# NOINLINE glGetTransformFeedbacki64_vFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbacki_v' xfb pname index param@
-
-
-glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-glGetTransformFeedbacki_v = ffiuintenumuintPtrintIOV glGetTransformFeedbacki_vFunPtr
-
-glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetTransformFeedbacki_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki_v")
-
-{-# NOINLINE glGetTransformFeedbacki_vFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbackiv' xfb pname param@
-
-
-glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTransformFeedbackiv = ffiuintenumPtrintIOV glGetTransformFeedbackivFunPtr
-
-glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTransformFeedbackivFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackiv")
-
-{-# NOINLINE glGetTransformFeedbackivFunPtr #-}
-
--- | Usage: @'glGetVertexArrayIndexed64iv' vaobj index pname param@
-
-
-glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetVertexArrayIndexed64iv = ffiuintuintenumPtrint64IOV glGetVertexArrayIndexed64ivFunPtr
-
-glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetVertexArrayIndexed64ivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexed64iv")
-
-{-# NOINLINE glGetVertexArrayIndexed64ivFunPtr #-}
-
--- | Usage: @'glGetVertexArrayIndexediv' vaobj index pname param@
-
-
-glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayIndexediv = ffiuintuintenumPtrintIOV glGetVertexArrayIndexedivFunPtr
-
-glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexediv")
-
-{-# NOINLINE glGetVertexArrayIndexedivFunPtr #-}
-
--- | Usage: @'glGetVertexArrayiv' vaobj pname param@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml>
-
-
-glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayiv = ffiuintenumPtrintIOV glGetVertexArrayivFunPtr
-
-glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayiv")
-
-{-# NOINLINE glGetVertexArrayivFunPtr #-}
-
--- | Usage: @'glGetnUniformfv' program location bufSize params@
-
-
-glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glGetnUniformfv = ffiuintintsizeiPtrfloatIOV glGetnUniformfvFunPtr
-
-glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfv")
-
-{-# NOINLINE glGetnUniformfvFunPtr #-}
-
--- | Usage: @'glGetnUniformiv' program location bufSize params@
-
-
-glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glGetnUniformiv = ffiuintintsizeiPtrintIOV glGetnUniformivFunPtr
-
-glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glGetnUniformivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformiv")
-
-{-# NOINLINE glGetnUniformivFunPtr #-}
-
--- | Usage: @'glGetnUniformuiv' program location bufSize params@
-
-
-glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetnUniformuiv = ffiuintintsizeiPtruintIOV glGetnUniformuivFunPtr
-
-glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetnUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuiv")
-
-{-# NOINLINE glGetnUniformuivFunPtr #-}
-
--- | Usage: @'glInvalidateNamedFramebufferData' framebuffer numAttachments attachments@
-
-
-glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glInvalidateNamedFramebufferData = ffiuintsizeiPtrenumIOV glInvalidateNamedFramebufferDataFunPtr
-
-glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glInvalidateNamedFramebufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferData")
-
-{-# NOINLINE glInvalidateNamedFramebufferDataFunPtr #-}
-
--- | Usage: @'glInvalidateNamedFramebufferSubData' framebuffer numAttachments attachments x y width height@
-
-
-glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glInvalidateNamedFramebufferSubData = ffiuintsizeiPtrenumintintsizeisizeiIOV glInvalidateNamedFramebufferSubDataFunPtr
-
-glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glInvalidateNamedFramebufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferSubData")
-
-{-# NOINLINE glInvalidateNamedFramebufferSubDataFunPtr #-}
-
--- | Usage: @'glMapNamedBuffer' buffer access@
-
-
-glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
-glMapNamedBuffer = ffiuintenumIOPtrV glMapNamedBufferFunPtr
-
-glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
-glMapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glMapNamedBuffer")
-
-{-# NOINLINE glMapNamedBufferFunPtr #-}
-
--- | Usage: @'glMapNamedBufferRange' buffer offset length access@
---
--- The parameter @length@ is a @BufferSize@.
-
-
-glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapNamedBufferRange = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeFunPtr
-
-glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRange")
-
-{-# NOINLINE glMapNamedBufferRangeFunPtr #-}
-
--- | Usage: @'glMemoryBarrierByRegion' barriers@
-
-
-glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
-glMemoryBarrierByRegion = ffibitfieldIOV glMemoryBarrierByRegionFunPtr
-
-glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())
-glMemoryBarrierByRegionFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierByRegion")
-
-{-# NOINLINE glMemoryBarrierByRegionFunPtr #-}
-
--- | Usage: @'glNamedBufferData' buffer size data usage@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-glNamedBufferData = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataFunPtr
-
-glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
-glNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferData")
-
-{-# NOINLINE glNamedBufferDataFunPtr #-}
-
--- | Usage: @'glNamedBufferStorage' buffer size data flags@
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @size@.
-
-
-glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glNamedBufferStorage = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageFunPtr
-
-glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glNamedBufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorage")
-
-{-# NOINLINE glNamedBufferStorageFunPtr #-}
-
--- | Usage: @'glNamedBufferSubData' buffer offset size data@
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @COMPSIZE(size)@.
-
-
-glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataFunPtr
-
-glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubData")
-
-{-# NOINLINE glNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glNamedFramebufferDrawBuffer' framebuffer buf@
-
-
-glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
-glNamedFramebufferDrawBuffer = ffiuintenumIOV glNamedFramebufferDrawBufferFunPtr
-
-glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNamedFramebufferDrawBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffer")
-
-{-# NOINLINE glNamedFramebufferDrawBufferFunPtr #-}
-
--- | Usage: @'glNamedFramebufferDrawBuffers' framebuffer n bufs@
-
-
-glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glNamedFramebufferDrawBuffers = ffiuintsizeiPtrenumIOV glNamedFramebufferDrawBuffersFunPtr
-
-glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glNamedFramebufferDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffers")
-
-{-# NOINLINE glNamedFramebufferDrawBuffersFunPtr #-}
-
--- | Usage: @'glNamedFramebufferParameteri' framebuffer pname param@
-
-
-glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glNamedFramebufferParameteri = ffiuintenumintIOV glNamedFramebufferParameteriFunPtr
-
-glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glNamedFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteri")
-
-{-# NOINLINE glNamedFramebufferParameteriFunPtr #-}
-
--- | Usage: @'glNamedFramebufferReadBuffer' framebuffer src@
-
-
-glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
-glNamedFramebufferReadBuffer = ffiuintenumIOV glNamedFramebufferReadBufferFunPtr
-
-glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNamedFramebufferReadBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferReadBuffer")
-
-{-# NOINLINE glNamedFramebufferReadBufferFunPtr #-}
-
--- | Usage: @'glNamedFramebufferRenderbuffer' framebuffer attachment renderbuffertarget renderbuffer@
-
-
-glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glNamedFramebufferRenderbuffer = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferFunPtr
-
-glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glNamedFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbuffer")
-
-{-# NOINLINE glNamedFramebufferRenderbufferFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTexture' framebuffer attachment texture level@
-
-
-glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTexture = ffiuintenumuintintIOV glNamedFramebufferTextureFunPtr
-
-glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture")
-
-{-# NOINLINE glNamedFramebufferTextureFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTextureLayer' framebuffer attachment texture level layer@
-
-
-glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glNamedFramebufferTextureLayer = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerFunPtr
-
-glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glNamedFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayer")
-
-{-# NOINLINE glNamedFramebufferTextureLayerFunPtr #-}
-
--- | Usage: @'glNamedRenderbufferStorage' renderbuffer internalformat width height@
-
-
-glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorage = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageFunPtr
-
-glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorage")
-
-{-# NOINLINE glNamedRenderbufferStorageFunPtr #-}
-
--- | Usage: @'glNamedRenderbufferStorageMultisample' renderbuffer samples internalformat width height@
-
-
-glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageMultisample = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleFunPtr
-
-glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisample")
-
-{-# NOINLINE glNamedRenderbufferStorageMultisampleFunPtr #-}
-
--- | Usage: @'glReadnPixels' x y width height format type bufSize data@
-
-
-glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glReadnPixels = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsFunPtr
-
-glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glReadnPixelsFunPtr = unsafePerformIO (getProcAddress "glReadnPixels")
-
-{-# NOINLINE glReadnPixelsFunPtr #-}
-
--- | Usage: @'glTextureBarrier'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml>
-
-
-glTextureBarrier :: MonadIO m => m ()
-glTextureBarrier = ffiIOV glTextureBarrierFunPtr
-
-glTextureBarrierFunPtr :: FunPtr (IO ())
-glTextureBarrierFunPtr = unsafePerformIO (getProcAddress "glTextureBarrier")
-
-{-# NOINLINE glTextureBarrierFunPtr #-}
-
--- | Usage: @'glTextureBuffer' texture internalformat buffer@
-
-
-glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
-glTextureBuffer = ffiuintenumuintIOV glTextureBufferFunPtr
-
-glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
-glTextureBufferFunPtr = unsafePerformIO (getProcAddress "glTextureBuffer")
-
-{-# NOINLINE glTextureBufferFunPtr #-}
-
--- | Usage: @'glTextureBufferRange' texture internalformat buffer offset size@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTextureBufferRange = ffiuintenumuintintptrsizeiptrIOV glTextureBufferRangeFunPtr
-
-glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTextureBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRange")
-
-{-# NOINLINE glTextureBufferRangeFunPtr #-}
-
--- | Usage: @'glTextureParameterIiv' texture pname params@
-
-
-glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glTextureParameterIiv = ffiuintenumPtrintIOV glTextureParameterIivFunPtr
-
-glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIiv")
-
-{-# NOINLINE glTextureParameterIivFunPtr #-}
-
--- | Usage: @'glTextureParameterIuiv' texture pname params@
-
-
-glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glTextureParameterIuiv = ffiuintenumPtruintIOV glTextureParameterIuivFunPtr
-
-glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuiv")
-
-{-# NOINLINE glTextureParameterIuivFunPtr #-}
-
--- | Usage: @'glTextureParameterf' texture pname param@
-
-
-glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glTextureParameterf = ffiuintenumfloatIOV glTextureParameterfFunPtr
-
-glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glTextureParameterfFunPtr = unsafePerformIO (getProcAddress "glTextureParameterf")
-
-{-# NOINLINE glTextureParameterfFunPtr #-}
-
--- | Usage: @'glTextureParameterfv' texture pname param@
-
-
-glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glTextureParameterfv = ffiuintenumPtrfloatIOV glTextureParameterfvFunPtr
-
-glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfv")
-
-{-# NOINLINE glTextureParameterfvFunPtr #-}
-
--- | Usage: @'glTextureParameteri' texture pname param@
-
-
-glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glTextureParameteri = ffiuintenumintIOV glTextureParameteriFunPtr
-
-glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glTextureParameteriFunPtr = unsafePerformIO (getProcAddress "glTextureParameteri")
-
-{-# NOINLINE glTextureParameteriFunPtr #-}
-
--- | Usage: @'glTextureParameteriv' texture pname param@
-
-
-glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glTextureParameteriv = ffiuintenumPtrintIOV glTextureParameterivFunPtr
-
-glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriv")
-
-{-# NOINLINE glTextureParameterivFunPtr #-}
-
--- | Usage: @'glTextureStorage1D' texture levels internalformat width@
-
-
-glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
-glTextureStorage1D = ffiuintsizeienumsizeiIOV glTextureStorage1DFunPtr
-
-glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTextureStorage1DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1D")
-
-{-# NOINLINE glTextureStorage1DFunPtr #-}
-
--- | Usage: @'glTextureStorage2D' texture levels internalformat width height@
-
-
-glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTextureStorage2D = ffiuintsizeienumsizeisizeiIOV glTextureStorage2DFunPtr
-
-glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTextureStorage2DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2D")
-
-{-# NOINLINE glTextureStorage2DFunPtr #-}
-
--- | Usage: @'glTextureStorage2DMultisample' texture samples internalformat width height fixedsamplelocations@
-
-
-glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage2DMultisample = ffiuintsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleFunPtr
-
-glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisample")
-
-{-# NOINLINE glTextureStorage2DMultisampleFunPtr #-}
-
--- | Usage: @'glTextureStorage3D' texture levels internalformat width height depth@
-
-
-glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTextureStorage3D = ffiuintsizeienumsizeisizeisizeiIOV glTextureStorage3DFunPtr
-
-glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTextureStorage3DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3D")
-
-{-# NOINLINE glTextureStorage3DFunPtr #-}
-
--- | Usage: @'glTextureStorage3DMultisample' texture samples internalformat width height depth fixedsamplelocations@
-
-
-glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage3DMultisample = ffiuintsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleFunPtr
-
-glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisample")
-
-{-# NOINLINE glTextureStorage3DMultisampleFunPtr #-}
-
--- | Usage: @'glTextureSubImage1D' texture level xoffset width format type pixels@
-
-
-glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage1D = ffiuintintintsizeienumenumPtrVIOV glTextureSubImage1DFunPtr
-
-glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1D")
-
-{-# NOINLINE glTextureSubImage1DFunPtr #-}
-
--- | Usage: @'glTextureSubImage2D' texture level xoffset yoffset width height format type pixels@
-
-
-glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage2D = ffiuintintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DFunPtr
-
-glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2D")
-
-{-# NOINLINE glTextureSubImage2DFunPtr #-}
-
--- | Usage: @'glTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format type pixels@
-
-
-glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DFunPtr
-
-glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3D")
-
-{-# NOINLINE glTextureSubImage3DFunPtr #-}
-
--- | Usage: @'glTransformFeedbackBufferBase' xfb index buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml>
-
-
-glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glTransformFeedbackBufferBase = ffiuintuintuintIOV glTransformFeedbackBufferBaseFunPtr
-
-glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glTransformFeedbackBufferBaseFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferBase")
-
-{-# NOINLINE glTransformFeedbackBufferBaseFunPtr #-}
-
--- | Usage: @'glTransformFeedbackBufferRange' xfb index buffer offset size@
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml>
-
-
-glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTransformFeedbackBufferRange = ffiuintuintuintintptrsizeiptrIOV glTransformFeedbackBufferRangeFunPtr
-
-glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTransformFeedbackBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferRange")
-
-{-# NOINLINE glTransformFeedbackBufferRangeFunPtr #-}
-
--- | Usage: @'glUnmapNamedBuffer' buffer@
-
-
-glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
-glUnmapNamedBuffer = ffiuintIOboolean glUnmapNamedBufferFunPtr
-
-glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glUnmapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBuffer")
-
-{-# NOINLINE glUnmapNamedBufferFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribBinding' vaobj attribindex bindingindex@
-
-
-glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayAttribBinding = ffiuintuintuintIOV glVertexArrayAttribBindingFunPtr
-
-glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribBinding")
-
-{-# NOINLINE glVertexArrayAttribBindingFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribFormat' vaobj attribindex size type normalized relativeoffset@
-
-
-glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexArrayAttribFormat = ffiuintuintintenumbooleanuintIOV glVertexArrayAttribFormatFunPtr
-
-glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexArrayAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribFormat")
-
-{-# NOINLINE glVertexArrayAttribFormatFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribIFormat' vaobj attribindex size type relativeoffset@
-
-
-glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayAttribIFormat = ffiuintuintintenumuintIOV glVertexArrayAttribIFormatFunPtr
-
-glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribIFormat")
-
-{-# NOINLINE glVertexArrayAttribIFormatFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribLFormat' vaobj attribindex size type relativeoffset@
-
-
-glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayAttribLFormat = ffiuintuintintenumuintIOV glVertexArrayAttribLFormatFunPtr
-
-glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribLFormat")
-
-{-# NOINLINE glVertexArrayAttribLFormatFunPtr #-}
-
--- | Usage: @'glVertexArrayBindingDivisor' vaobj bindingindex divisor@
-
-
-glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayBindingDivisor = ffiuintuintuintIOV glVertexArrayBindingDivisorFunPtr
-
-glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindingDivisor")
-
-{-# NOINLINE glVertexArrayBindingDivisorFunPtr #-}
-
--- | Usage: @'glVertexArrayElementBuffer' vaobj buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml>
-
-
-glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexArrayElementBuffer = ffiuintuintIOV glVertexArrayElementBufferFunPtr
-
-glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexArrayElementBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayElementBuffer")
-
-{-# NOINLINE glVertexArrayElementBufferFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexBuffer' vaobj bindingindex buffer offset stride@
-
-
-glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glVertexArrayVertexBuffer = ffiuintuintuintintptrsizeiIOV glVertexArrayVertexBufferFunPtr
-
-glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glVertexArrayVertexBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffer")
-
-{-# NOINLINE glVertexArrayVertexBufferFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexBuffers' vaobj first count buffers offsets strides@
-
-
-glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-glVertexArrayVertexBuffers = ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV glVertexArrayVertexBuffersFunPtr
-
-glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
-glVertexArrayVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffers")
-
-{-# NOINLINE glVertexArrayVertexBuffersFunPtr #-}
-
-pattern GL_CLIP_DEPTH_MODE = 0x935D
-
-pattern GL_CLIP_ORIGIN = 0x935C
-
-pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004
-
-pattern GL_CONTEXT_LOST = 0x0507
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
-
-pattern GL_GUILTY_CONTEXT_RESET = 0x8253
-
-pattern GL_INNOCENT_CONTEXT_RESET = 0x8254
-
-pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252
-
-pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
-
-pattern GL_MAX_CULL_DISTANCES = 0x82F9
-
-pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E
-
-pattern GL_NO_RESET_NOTIFICATION = 0x8261
-
-pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
-
-pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
-
-pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18
-
-pattern GL_QUERY_TARGET = 0x82EA
-
-pattern GL_QUERY_WAIT_INVERTED = 0x8E17
-
-pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256
-
-pattern GL_TEXTURE_TARGET = 0x1006
-
-pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255
-
-pattern GL_ZERO_TO_ONE = 0x935F
-
-pattern GL_BLEND_EQUATION = 0x8009
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
-
-pattern GL_SUBSAMPLE_DISTANCE_AMD = 0x883F
-
-pattern GL_FLOAT16_NV = 0x8FF8
-
-pattern GL_FLOAT16_VEC2_NV = 0x8FF9
-
-pattern GL_FLOAT16_VEC3_NV = 0x8FFA
-
-pattern GL_FLOAT16_VEC4_NV = 0x8FFB
-
--- | Usage: @'glGetUniformi64vNV' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
-glGetUniformi64vNV = ffiuintintPtrint64EXTIOV glGetUniformi64vNVFunPtr
-
-glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
-glGetUniformi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vNV")
-
-{-# NOINLINE glGetUniformi64vNVFunPtr #-}
-
--- | Usage: @'glGetUniformui64vNV' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
-glGetUniformui64vNV = ffiuintintPtruint64EXTIOV glGetUniformui64vNVFunPtr
-
-glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
-glGetUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vNV")
-
-{-# NOINLINE glGetUniformui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform1i64NV' program location x@
-
-
-glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
-glProgramUniform1i64NV = ffiuintintint64EXTIOV glProgramUniform1i64NVFunPtr
-
-glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
-glProgramUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64NV")
-
-{-# NOINLINE glProgramUniform1i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform1i64vNV' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform1i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform1i64vNVFunPtr
-
-glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vNV")
-
-{-# NOINLINE glProgramUniform1i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui64NV' program location x@
-
-
-glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
-glProgramUniform1ui64NV = ffiuintintuint64EXTIOV glProgramUniform1ui64NVFunPtr
-
-glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
-glProgramUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64NV")
-
-{-# NOINLINE glProgramUniform1ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui64vNV' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform1ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform1ui64vNVFunPtr
-
-glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vNV")
-
-{-# NOINLINE glProgramUniform1ui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform2i64NV' program location x y@
-
-
-glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform2i64NV = ffiuintintint64EXTint64EXTIOV glProgramUniform2i64NVFunPtr
-
-glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64NV")
-
-{-# NOINLINE glProgramUniform2i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform2i64vNV' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform2i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform2i64vNVFunPtr
-
-glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vNV")
-
-{-# NOINLINE glProgramUniform2i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui64NV' program location x y@
-
-
-glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform2ui64NV = ffiuintintuint64EXTuint64EXTIOV glProgramUniform2ui64NVFunPtr
-
-glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64NV")
-
-{-# NOINLINE glProgramUniform2ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui64vNV' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform2ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform2ui64vNVFunPtr
-
-glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vNV")
-
-{-# NOINLINE glProgramUniform2ui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform3i64NV' program location x y z@
-
-
-glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform3i64NV = ffiuintintint64EXTint64EXTint64EXTIOV glProgramUniform3i64NVFunPtr
-
-glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64NV")
-
-{-# NOINLINE glProgramUniform3i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform3i64vNV' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform3i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform3i64vNVFunPtr
-
-glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vNV")
-
-{-# NOINLINE glProgramUniform3i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui64NV' program location x y z@
-
-
-glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform3ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTIOV glProgramUniform3ui64NVFunPtr
-
-glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64NV")
-
-{-# NOINLINE glProgramUniform3ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui64vNV' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform3ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform3ui64vNVFunPtr
-
-glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vNV")
-
-{-# NOINLINE glProgramUniform3ui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform4i64NV' program location x y z w@
-
-
-glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform4i64NV = ffiuintintint64EXTint64EXTint64EXTint64EXTIOV glProgramUniform4i64NVFunPtr
-
-glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64NV")
-
-{-# NOINLINE glProgramUniform4i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform4i64vNV' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform4i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform4i64vNVFunPtr
-
-glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vNV")
-
-{-# NOINLINE glProgramUniform4i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui64NV' program location x y z w@
-
-
-glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform4ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV glProgramUniform4ui64NVFunPtr
-
-glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64NV")
-
-{-# NOINLINE glProgramUniform4ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui64vNV' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform4ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform4ui64vNVFunPtr
-
-glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vNV")
-
-{-# NOINLINE glProgramUniform4ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform1i64NV' location x@
-
-
-glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
-glUniform1i64NV = ffiintint64EXTIOV glUniform1i64NVFunPtr
-
-glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())
-glUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64NV")
-
-{-# NOINLINE glUniform1i64NVFunPtr #-}
-
--- | Usage: @'glUniform1i64vNV' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform1i64vNV = ffiintsizeiPtrint64EXTIOV glUniform1i64vNVFunPtr
-
-glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vNV")
-
-{-# NOINLINE glUniform1i64vNVFunPtr #-}
-
--- | Usage: @'glUniform1ui64NV' location x@
-
-
-glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
-glUniform1ui64NV = ffiintuint64EXTIOV glUniform1ui64NVFunPtr
-
-glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
-glUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64NV")
-
-{-# NOINLINE glUniform1ui64NVFunPtr #-}
-
--- | Usage: @'glUniform1ui64vNV' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform1ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform1ui64vNVFunPtr
-
-glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vNV")
-
-{-# NOINLINE glUniform1ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform2i64NV' location x y@
-
-
-glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
-glUniform2i64NV = ffiintint64EXTint64EXTIOV glUniform2i64NVFunPtr
-
-glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64NV")
-
-{-# NOINLINE glUniform2i64NVFunPtr #-}
-
--- | Usage: @'glUniform2i64vNV' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform2i64vNV = ffiintsizeiPtrint64EXTIOV glUniform2i64vNVFunPtr
-
-glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vNV")
-
-{-# NOINLINE glUniform2i64vNVFunPtr #-}
-
--- | Usage: @'glUniform2ui64NV' location x y@
-
-
-glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform2ui64NV = ffiintuint64EXTuint64EXTIOV glUniform2ui64NVFunPtr
-
-glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64NV")
-
-{-# NOINLINE glUniform2ui64NVFunPtr #-}
-
--- | Usage: @'glUniform2ui64vNV' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform2ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform2ui64vNVFunPtr
-
-glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vNV")
-
-{-# NOINLINE glUniform2ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform3i64NV' location x y z@
-
-
-glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glUniform3i64NV = ffiintint64EXTint64EXTint64EXTIOV glUniform3i64NVFunPtr
-
-glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64NV")
-
-{-# NOINLINE glUniform3i64NVFunPtr #-}
-
--- | Usage: @'glUniform3i64vNV' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform3i64vNV = ffiintsizeiPtrint64EXTIOV glUniform3i64vNVFunPtr
-
-glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vNV")
-
-{-# NOINLINE glUniform3i64vNVFunPtr #-}
-
--- | Usage: @'glUniform3ui64NV' location x y z@
-
-
-glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform3ui64NV = ffiintuint64EXTuint64EXTuint64EXTIOV glUniform3ui64NVFunPtr
-
-glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64NV")
-
-{-# NOINLINE glUniform3ui64NVFunPtr #-}
-
--- | Usage: @'glUniform3ui64vNV' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform3ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform3ui64vNVFunPtr
-
-glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vNV")
-
-{-# NOINLINE glUniform3ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform4i64NV' location x y z w@
-
-
-glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glUniform4i64NV = ffiintint64EXTint64EXTint64EXTint64EXTIOV glUniform4i64NVFunPtr
-
-glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64NV")
-
-{-# NOINLINE glUniform4i64NVFunPtr #-}
-
--- | Usage: @'glUniform4i64vNV' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform4i64vNV = ffiintsizeiPtrint64EXTIOV glUniform4i64vNVFunPtr
-
-glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vNV")
-
-{-# NOINLINE glUniform4i64vNVFunPtr #-}
-
--- | Usage: @'glUniform4ui64NV' location x y z w@
-
-
-glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform4ui64NV = ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV glUniform4ui64NVFunPtr
-
-glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64NV")
-
-{-# NOINLINE glUniform4ui64NVFunPtr #-}
-
--- | Usage: @'glUniform4ui64vNV' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform4ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform4ui64vNVFunPtr
-
-glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vNV")
-
-{-# NOINLINE glUniform4ui64vNVFunPtr #-}
-
-pattern GL_INT16_NV = 0x8FE4
-
-pattern GL_INT16_VEC2_NV = 0x8FE5
-
-pattern GL_INT16_VEC3_NV = 0x8FE6
-
-pattern GL_INT16_VEC4_NV = 0x8FE7
-
-pattern GL_INT64_NV = 0x140E
-
-pattern GL_INT64_VEC2_NV = 0x8FE9
-
-pattern GL_INT64_VEC3_NV = 0x8FEA
-
-pattern GL_INT64_VEC4_NV = 0x8FEB
-
-pattern GL_INT8_NV = 0x8FE0
-
-pattern GL_INT8_VEC2_NV = 0x8FE1
-
-pattern GL_INT8_VEC3_NV = 0x8FE2
-
-pattern GL_INT8_VEC4_NV = 0x8FE3
-
-pattern GL_UNSIGNED_INT16_NV = 0x8FF0
-
-pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1
-
-pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2
-
-pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3
-
-pattern GL_UNSIGNED_INT64_NV = 0x140F
-
-pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5
-
-pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6
-
-pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7
-
-pattern GL_UNSIGNED_INT8_NV = 0x8FEC
-
-pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED
-
-pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE
-
-pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF
-
-pattern GL_DEPTH24_STENCIL8_OES = 0x88F0
-
-pattern GL_DEPTH_COMPONENT32_OES = 0x81A7
-
-pattern GL_DEPTH_STENCIL_OES = 0x84F9
-
-pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA
-
-pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA
-
-pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
-
-pattern GL_BGRA8_EXT = 0x93A1
-
-pattern GL_BGRA_EXT = 0x80E1
-
-pattern GL_STORAGE_CACHED_APPLE = 0x85BE
-
-pattern GL_STORAGE_SHARED_APPLE = 0x85BF
-
-pattern GL_UNSIGNED_INT64_ARB = 0x140F
-
--- | Usage: @'glBindProgramARB' target program@
---
--- The parameter @target@ is a @ProgramTargetARB@.
-
-
-glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
-glBindProgramARB = ffienumuintIOV glBindProgramARBFunPtr
-
-glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindProgramARBFunPtr = unsafePerformIO (getProcAddress "glBindProgramARB")
-
-{-# NOINLINE glBindProgramARBFunPtr #-}
-
--- | Usage: @'glDeleteProgramsARB' n programs@
---
--- The length of @programs@ should be @n@.
-
-
-glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramsARB = ffisizeiPtruintIOV glDeleteProgramsARBFunPtr
-
-glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramsARBFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsARB")
-
-{-# NOINLINE glDeleteProgramsARBFunPtr #-}
-
--- | Usage: @'glGenProgramsARB' n programs@
---
--- The length of @programs@ should be @n@.
-
-
-glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramsARB = ffisizeiPtruintIOV glGenProgramsARBFunPtr
-
-glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramsARBFunPtr = unsafePerformIO (getProcAddress "glGenProgramsARB")
-
-{-# NOINLINE glGenProgramsARBFunPtr #-}
-
--- | Usage: @'glGetProgramEnvParameterdvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetProgramEnvParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramEnvParameterdvARBFunPtr
-
-glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetProgramEnvParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterdvARB")
-
-{-# NOINLINE glGetProgramEnvParameterdvARBFunPtr #-}
-
--- | Usage: @'glGetProgramEnvParameterfvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetProgramEnvParameterfvARB = ffienumuintPtrfloatIOV glGetProgramEnvParameterfvARBFunPtr
-
-glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetProgramEnvParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterfvARB")
-
-{-# NOINLINE glGetProgramEnvParameterfvARBFunPtr #-}
-
--- | Usage: @'glGetProgramLocalParameterdvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetProgramLocalParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramLocalParameterdvARBFunPtr
-
-glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetProgramLocalParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterdvARB")
-
-{-# NOINLINE glGetProgramLocalParameterdvARBFunPtr #-}
-
--- | Usage: @'glGetProgramLocalParameterfvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetProgramLocalParameterfvARB = ffienumuintPtrfloatIOV glGetProgramLocalParameterfvARBFunPtr
-
-glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetProgramLocalParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterfvARB")
-
-{-# NOINLINE glGetProgramLocalParameterfvARBFunPtr #-}
-
--- | Usage: @'glGetProgramStringARB' target pname string@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The parameter @pname@ is a @ProgramStringPropertyARB@.
---
--- The length of @string@ should be @COMPSIZE(target,pname)@.
-
-
-glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glGetProgramStringARB = ffienumenumPtrVIOV glGetProgramStringARBFunPtr
-
-glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
-glGetProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringARB")
-
-{-# NOINLINE glGetProgramStringARBFunPtr #-}
-
--- | Usage: @'glGetProgramivARB' target pname params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The parameter @pname@ is a @ProgramPropertyARB@.
---
--- The length of @params@ should be @1@.
-
-
-glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramivARB = ffienumenumPtrintIOV glGetProgramivARBFunPtr
-
-glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramivARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramivARB")
-
-{-# NOINLINE glGetProgramivARBFunPtr #-}
-
--- | Usage: @'glIsProgramARB' program@
-
-
-glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
-glIsProgramARB = ffiuintIOboolean glIsProgramARBFunPtr
-
-glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramARBFunPtr = unsafePerformIO (getProcAddress "glIsProgramARB")
-
-{-# NOINLINE glIsProgramARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4dARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4dvARB'.
-
-
-glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramEnvParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramEnvParameter4dARBFunPtr
-
-glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramEnvParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dARB")
-
-{-# NOINLINE glProgramEnvParameter4dARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4dvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glProgramEnvParameter4dvARB = ffienumuintPtrdoubleIOV glProgramEnvParameter4dvARBFunPtr
-
-glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glProgramEnvParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dvARB")
-
-{-# NOINLINE glProgramEnvParameter4dvARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4fARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4fvARB'.
-
-
-glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramEnvParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramEnvParameter4fARBFunPtr
-
-glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramEnvParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fARB")
-
-{-# NOINLINE glProgramEnvParameter4fARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4fvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glProgramEnvParameter4fvARB = ffienumuintPtrfloatIOV glProgramEnvParameter4fvARBFunPtr
-
-glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glProgramEnvParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fvARB")
-
-{-# NOINLINE glProgramEnvParameter4fvARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4dARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4dvARB'.
-
-
-glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramLocalParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramLocalParameter4dARBFunPtr
-
-glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramLocalParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dARB")
-
-{-# NOINLINE glProgramLocalParameter4dARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4dvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glProgramLocalParameter4dvARB = ffienumuintPtrdoubleIOV glProgramLocalParameter4dvARBFunPtr
-
-glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glProgramLocalParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dvARB")
-
-{-# NOINLINE glProgramLocalParameter4dvARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4fARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4fvARB'.
-
-
-glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramLocalParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramLocalParameter4fARBFunPtr
-
-glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramLocalParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fARB")
-
-{-# NOINLINE glProgramLocalParameter4fARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4fvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glProgramLocalParameter4fvARB = ffienumuintPtrfloatIOV glProgramLocalParameter4fvARBFunPtr
-
-glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glProgramLocalParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fvARB")
-
-{-# NOINLINE glProgramLocalParameter4fvARBFunPtr #-}
-
--- | Usage: @'glProgramStringARB' target format len string@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The parameter @format@ is a @ProgramFormatARB@.
---
--- The length of @string@ should be @len@.
-
-
-glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glProgramStringARB = ffienumenumsizeiPtrVIOV glProgramStringARBFunPtr
-
-glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glProgramStringARB")
-
-{-# NOINLINE glProgramStringARBFunPtr #-}
-
-pattern GL_CURRENT_MATRIX_ARB = 0x8641
-
-pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640
-
-pattern GL_MATRIX0_ARB = 0x88C0
-
-pattern GL_MATRIX10_ARB = 0x88CA
-
-pattern GL_MATRIX11_ARB = 0x88CB
-
-pattern GL_MATRIX12_ARB = 0x88CC
-
-pattern GL_MATRIX13_ARB = 0x88CD
-
-pattern GL_MATRIX14_ARB = 0x88CE
-
-pattern GL_MATRIX15_ARB = 0x88CF
-
-pattern GL_MATRIX16_ARB = 0x88D0
-
-pattern GL_MATRIX17_ARB = 0x88D1
-
-pattern GL_MATRIX18_ARB = 0x88D2
-
-pattern GL_MATRIX19_ARB = 0x88D3
-
-pattern GL_MATRIX1_ARB = 0x88C1
-
-pattern GL_MATRIX20_ARB = 0x88D4
-
-pattern GL_MATRIX21_ARB = 0x88D5
-
-pattern GL_MATRIX22_ARB = 0x88D6
-
-pattern GL_MATRIX23_ARB = 0x88D7
-
-pattern GL_MATRIX24_ARB = 0x88D8
-
-pattern GL_MATRIX25_ARB = 0x88D9
-
-pattern GL_MATRIX26_ARB = 0x88DA
-
-pattern GL_MATRIX27_ARB = 0x88DB
-
-pattern GL_MATRIX28_ARB = 0x88DC
-
-pattern GL_MATRIX29_ARB = 0x88DD
-
-pattern GL_MATRIX2_ARB = 0x88C2
-
-pattern GL_MATRIX30_ARB = 0x88DE
-
-pattern GL_MATRIX31_ARB = 0x88DF
-
-pattern GL_MATRIX3_ARB = 0x88C3
-
-pattern GL_MATRIX4_ARB = 0x88C4
-
-pattern GL_MATRIX5_ARB = 0x88C5
-
-pattern GL_MATRIX6_ARB = 0x88C6
-
-pattern GL_MATRIX7_ARB = 0x88C7
-
-pattern GL_MATRIX8_ARB = 0x88C8
-
-pattern GL_MATRIX9_ARB = 0x88C9
-
-pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD
-
-pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5
-
-pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1
-
-pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4
-
-pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F
-
-pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E
-
-pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF
-
-pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3
-
-pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB
-
-pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7
-
-pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9
-
-pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5
-
-pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871
-
-pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872
-
-pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC
-
-pattern GL_PROGRAM_BINDING_ARB = 0x8677
-
-pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B
-
-pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874
-
-pattern GL_PROGRAM_FORMAT_ARB = 0x8876
-
-pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875
-
-pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0
-
-pattern GL_PROGRAM_LENGTH_ARB = 0x8627
-
-pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE
-
-pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2
-
-pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA
-
-pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6
-
-pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8
-
-pattern GL_PROGRAM_STRING_ARB = 0x8628
-
-pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4
-
-pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6
-
-pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7
-
-pattern GL_SAMPLES_ARB = 0x80A9
-
-pattern GL_TEXTURE0_ARB = 0x84C0
-
-pattern GL_TEXTURE1_ARB = 0x84C1
-
-pattern GL_FLOAT_MAT2_ARB = 0x8B5A
-
-pattern GL_FLOAT_MAT3_ARB = 0x8B5B
-
-pattern GL_FLOAT_MAT4_ARB = 0x8B5C
-
-pattern GL_FLOAT_VEC2_ARB = 0x8B50
-
-pattern GL_FLOAT_VEC3_ARB = 0x8B51
-
-pattern GL_FLOAT_VEC4_ARB = 0x8B52
-
--- | Usage: @'glDisableVertexAttribArrayARB' index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisableVertexAttribArray'.
-
-
-glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
-glDisableVertexAttribArrayARB = ffiuintIOV glDisableVertexAttribArrayARBFunPtr
-
-glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
-glDisableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArrayARB")
-
-{-# NOINLINE glDisableVertexAttribArrayARBFunPtr #-}
-
--- | Usage: @'glEnableVertexAttribArrayARB' index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnableVertexAttribArray'.
-
-
-glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
-glEnableVertexAttribArrayARB = ffiuintIOV glEnableVertexAttribArrayARBFunPtr
-
-glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
-glEnableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArrayARB")
-
-{-# NOINLINE glEnableVertexAttribArrayARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribPointervARB' index pname pointer@
---
--- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
---
--- The length of @pointer@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribPointerv'.
-
-
-glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVertexAttribPointervARB = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervARBFunPtr
-
-glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVertexAttribPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervARB")
-
-{-# NOINLINE glGetVertexAttribPointervARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribdvARB' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribdv'.
-
-
-glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribdvARB = ffiuintenumPtrdoubleIOV glGetVertexAttribdvARBFunPtr
-
-glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribdvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvARB")
-
-{-# NOINLINE glGetVertexAttribdvARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribfvARB' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribfv'.
-
-
-glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribfvARB = ffiuintenumPtrfloatIOV glGetVertexAttribfvARBFunPtr
-
-glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribfvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvARB")
-
-{-# NOINLINE glGetVertexAttribfvARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribivARB' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribiv'.
-
-
-glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribivARB = ffiuintenumPtrintIOV glGetVertexAttribivARBFunPtr
-
-glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribivARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivARB")
-
-{-# NOINLINE glGetVertexAttribivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dARB' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dvARB'.
-
-
-glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttrib1dARB = ffiuintdoubleIOV glVertexAttrib1dARBFunPtr
-
-glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttrib1dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dARB")
-
-{-# NOINLINE glVertexAttrib1dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dvARB' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
-
-
-glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib1dvARB = ffiuintPtrdoubleIOV glVertexAttrib1dvARBFunPtr
-
-glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib1dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvARB")
-
-{-# NOINLINE glVertexAttrib1dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fARB' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fvARB'.
-
-
-glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
-glVertexAttrib1fARB = ffiuintfloatIOV glVertexAttrib1fARBFunPtr
-
-glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
-glVertexAttrib1fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fARB")
-
-{-# NOINLINE glVertexAttrib1fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fvARB' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
-
-
-glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib1fvARB = ffiuintPtrfloatIOV glVertexAttrib1fvARBFunPtr
-
-glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib1fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvARB")
-
-{-# NOINLINE glVertexAttrib1fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1sARB' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1svARB'.
-
-
-glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
-glVertexAttrib1sARB = ffiuintshortIOV glVertexAttrib1sARBFunPtr
-
-glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
-glVertexAttrib1sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sARB")
-
-{-# NOINLINE glVertexAttrib1sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1svARB' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
-
-
-glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib1svARB = ffiuintPtrshortIOV glVertexAttrib1svARBFunPtr
-
-glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib1svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svARB")
-
-{-# NOINLINE glVertexAttrib1svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dARB' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dvARB'.
-
-
-glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttrib2dARB = ffiuintdoubledoubleIOV glVertexAttrib2dARBFunPtr
-
-glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib2dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dARB")
-
-{-# NOINLINE glVertexAttrib2dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dvARB' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
-
-
-glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib2dvARB = ffiuintPtrdoubleIOV glVertexAttrib2dvARBFunPtr
-
-glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib2dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvARB")
-
-{-# NOINLINE glVertexAttrib2dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fARB' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fvARB'.
-
-
-glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glVertexAttrib2fARB = ffiuintfloatfloatIOV glVertexAttrib2fARBFunPtr
-
-glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib2fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fARB")
-
-{-# NOINLINE glVertexAttrib2fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fvARB' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
-
-
-glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib2fvARB = ffiuintPtrfloatIOV glVertexAttrib2fvARBFunPtr
-
-glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib2fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvARB")
-
-{-# NOINLINE glVertexAttrib2fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2sARB' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2svARB'.
-
-
-glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
-glVertexAttrib2sARB = ffiuintshortshortIOV glVertexAttrib2sARBFunPtr
-
-glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-glVertexAttrib2sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sARB")
-
-{-# NOINLINE glVertexAttrib2sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2svARB' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
-
-
-glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib2svARB = ffiuintPtrshortIOV glVertexAttrib2svARBFunPtr
-
-glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib2svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svARB")
-
-{-# NOINLINE glVertexAttrib2svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dARB' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dvARB'.
-
-
-glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib3dARB = ffiuintdoubledoubledoubleIOV glVertexAttrib3dARBFunPtr
-
-glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib3dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dARB")
-
-{-# NOINLINE glVertexAttrib3dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dvARB' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
-
-
-glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib3dvARB = ffiuintPtrdoubleIOV glVertexAttrib3dvARBFunPtr
-
-glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib3dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvARB")
-
-{-# NOINLINE glVertexAttrib3dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fARB' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fvARB'.
-
-
-glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib3fARB = ffiuintfloatfloatfloatIOV glVertexAttrib3fARBFunPtr
-
-glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib3fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fARB")
-
-{-# NOINLINE glVertexAttrib3fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fvARB' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
-
-
-glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib3fvARB = ffiuintPtrfloatIOV glVertexAttrib3fvARBFunPtr
-
-glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib3fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvARB")
-
-{-# NOINLINE glVertexAttrib3fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3sARB' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3svARB'.
-
-
-glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib3sARB = ffiuintshortshortshortIOV glVertexAttrib3sARBFunPtr
-
-glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib3sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sARB")
-
-{-# NOINLINE glVertexAttrib3sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3svARB' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
-
-
-glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib3svARB = ffiuintPtrshortIOV glVertexAttrib3svARBFunPtr
-
-glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib3svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svARB")
-
-{-# NOINLINE glVertexAttrib3svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NbvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nbv'.
-
-
-glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4NbvARB = ffiuintPtrbyteIOV glVertexAttrib4NbvARBFunPtr
-
-glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4NbvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NbvARB")
-
-{-# NOINLINE glVertexAttrib4NbvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Niv'.
-
-
-glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4NivARB = ffiuintPtrintIOV glVertexAttrib4NivARBFunPtr
-
-glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4NivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NivARB")
-
-{-# NOINLINE glVertexAttrib4NivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NsvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nsv'.
-
-
-glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4NsvARB = ffiuintPtrshortIOV glVertexAttrib4NsvARBFunPtr
-
-glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4NsvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NsvARB")
-
-{-# NOINLINE glVertexAttrib4NsvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NubARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nub'.
-
-
-glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glVertexAttrib4NubARB = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubARBFunPtr
-
-glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glVertexAttrib4NubARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubARB")
-
-{-# NOINLINE glVertexAttrib4NubARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NubvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nubv'.
-
-
-glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4NubvARB = ffiuintPtrubyteIOV glVertexAttrib4NubvARBFunPtr
-
-glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4NubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubvARB")
-
-{-# NOINLINE glVertexAttrib4NubvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NuivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nuiv'.
-
-
-glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4NuivARB = ffiuintPtruintIOV glVertexAttrib4NuivARBFunPtr
-
-glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4NuivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NuivARB")
-
-{-# NOINLINE glVertexAttrib4NuivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NusvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nusv'.
-
-
-glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4NusvARB = ffiuintPtrushortIOV glVertexAttrib4NusvARBFunPtr
-
-glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4NusvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NusvARB")
-
-{-# NOINLINE glVertexAttrib4NusvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4bvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4bv'.
-
-
-glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4bvARB = ffiuintPtrbyteIOV glVertexAttrib4bvARBFunPtr
-
-glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4bvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bvARB")
-
-{-# NOINLINE glVertexAttrib4bvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dvARB'.
-
-
-glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib4dARB = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dARBFunPtr
-
-glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib4dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dARB")
-
-{-# NOINLINE glVertexAttrib4dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
-
-
-glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib4dvARB = ffiuintPtrdoubleIOV glVertexAttrib4dvARBFunPtr
-
-glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib4dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvARB")
-
-{-# NOINLINE glVertexAttrib4dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fvARB'.
-
-
-glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib4fARB = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fARBFunPtr
-
-glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib4fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fARB")
-
-{-# NOINLINE glVertexAttrib4fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
-
-
-glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib4fvARB = ffiuintPtrfloatIOV glVertexAttrib4fvARBFunPtr
-
-glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib4fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvARB")
-
-{-# NOINLINE glVertexAttrib4fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4iv'.
-
-
-glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4ivARB = ffiuintPtrintIOV glVertexAttrib4ivARBFunPtr
-
-glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4ivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ivARB")
-
-{-# NOINLINE glVertexAttrib4ivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4sARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4svARB'.
-
-
-glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib4sARB = ffiuintshortshortshortshortIOV glVertexAttrib4sARBFunPtr
-
-glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib4sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sARB")
-
-{-# NOINLINE glVertexAttrib4sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4svARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
-
-
-glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4svARB = ffiuintPtrshortIOV glVertexAttrib4svARBFunPtr
-
-glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svARB")
-
-{-# NOINLINE glVertexAttrib4svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ubvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4ubv'.
-
-
-glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4ubvARB = ffiuintPtrubyteIOV glVertexAttrib4ubvARBFunPtr
-
-glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4ubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvARB")
-
-{-# NOINLINE glVertexAttrib4ubvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4uivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4uiv'.
-
-
-glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4uivARB = ffiuintPtruintIOV glVertexAttrib4uivARBFunPtr
-
-glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4uivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uivARB")
-
-{-# NOINLINE glVertexAttrib4uivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4usvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4usv'.
-
-
-glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4usvARB = ffiuintPtrushortIOV glVertexAttrib4usvARBFunPtr
-
-glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4usvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usvARB")
-
-{-# NOINLINE glVertexAttrib4usvARBFunPtr #-}
-
--- | Usage: @'glVertexAttribPointerARB' index size type normalized stride pointer@
---
--- The parameter @type@ is a @VertexAttribPointerType@.
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribPointer'.
-
-
-glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
-glVertexAttribPointerARB = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerARBFunPtr
-
-glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
-glVertexAttribPointerARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerARB")
-
-{-# NOINLINE glVertexAttribPointerARBFunPtr #-}
-
-pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626
-
-pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869
-
-pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622
-
-pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645
-
-pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623
-
-pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624
-
-pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625
-
-pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642
-
-pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643
-
-pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C
-
--- | Usage: @'glBindFragDataLocationEXT' program color name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindFragDataLocation'.
-
-
-glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocationEXT = ffiuintuintPtrcharIOV glBindFragDataLocationEXTFunPtr
-
-glBindFragDataLocationEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationEXTFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationEXT")
-
-{-# NOINLINE glBindFragDataLocationEXTFunPtr #-}
-
-pattern GL_R16F_EXT = 0x822D
-
-pattern GL_RG16F_EXT = 0x822F
-
-pattern GL_RGB16F_EXT = 0x881B
-
-pattern GL_RGBA16F_EXT = 0x881A
-
--- | Usage: @'glDisableIndexedEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
-
-
-glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableIndexedEXT = ffienumuintIOV glDisableIndexedEXTFunPtr
-
-glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableIndexedEXT")
-
-{-# NOINLINE glDisableIndexedEXTFunPtr #-}
-
--- | Usage: @'glEnableIndexedEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
-
-
-glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableIndexedEXT = ffienumuintIOV glEnableIndexedEXTFunPtr
-
-glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableIndexedEXT")
-
-{-# NOINLINE glEnableIndexedEXTFunPtr #-}
-
--- | Usage: @'glGetBooleanIndexedvEXT' target index data@
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBooleani_v'.
-
-
-glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
-glGetBooleanIndexedvEXT = ffienumuintPtrbooleanIOV glGetBooleanIndexedvEXTFunPtr
-
-glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
-glGetBooleanIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetBooleanIndexedvEXT")
-
-{-# NOINLINE glGetBooleanIndexedvEXTFunPtr #-}
-
--- | Usage: @'glGetIntegerIndexedvEXT' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetIntegeri_v'.
-
-
-glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetIntegerIndexedvEXT = ffienumuintPtrintIOV glGetIntegerIndexedvEXTFunPtr
-
-glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetIntegerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegerIndexedvEXT")
-
-{-# NOINLINE glGetIntegerIndexedvEXTFunPtr #-}
-
--- | Usage: @'glIsEnabledIndexedEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
-
-
-glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnabledIndexedEXT = ffienumuintIOboolean glIsEnabledIndexedEXTFunPtr
-
-glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnabledIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnabledIndexedEXT")
-
-{-# NOINLINE glIsEnabledIndexedEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1fEXT' program location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1f'.
-
-
-glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
-glProgramUniform1fEXT = ffiuintintfloatIOV glProgramUniform1fEXTFunPtr
-
-glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
-glProgramUniform1fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fEXT")
-
-{-# NOINLINE glProgramUniform1fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1fvEXT' program location count value@
---
--- The length of @value@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1fv'.
-
-
-glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform1fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvEXTFunPtr
-
-glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform1fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fvEXT")
-
-{-# NOINLINE glProgramUniform1fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1iEXT' program location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1i'.
-
-
-glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glProgramUniform1iEXT = ffiuintintintIOV glProgramUniform1iEXTFunPtr
-
-glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glProgramUniform1iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iEXT")
-
-{-# NOINLINE glProgramUniform1iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1ivEXT' program location count value@
---
--- The length of @value@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1iv'.
-
-
-glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform1ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform1ivEXTFunPtr
-
-glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform1ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ivEXT")
-
-{-# NOINLINE glProgramUniform1ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1uiEXT' program location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1ui'.
-
-
-glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glProgramUniform1uiEXT = ffiuintintuintIOV glProgramUniform1uiEXTFunPtr
-
-glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glProgramUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiEXT")
-
-{-# NOINLINE glProgramUniform1uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1uivEXT' program location count value@
---
--- The length of @value@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1uiv'.
-
-
-glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform1uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform1uivEXTFunPtr
-
-glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uivEXT")
-
-{-# NOINLINE glProgramUniform1uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2fEXT' program location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2f'.
-
-
-glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
-glProgramUniform2fEXT = ffiuintintfloatfloatIOV glProgramUniform2fEXTFunPtr
-
-glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
-glProgramUniform2fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fEXT")
-
-{-# NOINLINE glProgramUniform2fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2fvEXT' program location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2fv'.
-
-
-glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform2fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvEXTFunPtr
-
-glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fvEXT")
-
-{-# NOINLINE glProgramUniform2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2iEXT' program location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2i'.
-
-
-glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform2iEXT = ffiuintintintintIOV glProgramUniform2iEXTFunPtr
-
-glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform2iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iEXT")
-
-{-# NOINLINE glProgramUniform2iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2ivEXT' program location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2iv'.
-
-
-glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform2ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform2ivEXTFunPtr
-
-glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform2ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ivEXT")
-
-{-# NOINLINE glProgramUniform2ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2uiEXT' program location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2ui'.
-
-
-glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
-glProgramUniform2uiEXT = ffiuintintuintuintIOV glProgramUniform2uiEXTFunPtr
-
-glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
-glProgramUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiEXT")
-
-{-# NOINLINE glProgramUniform2uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2uivEXT' program location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2uiv'.
-
-
-glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform2uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform2uivEXTFunPtr
-
-glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uivEXT")
-
-{-# NOINLINE glProgramUniform2uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3fEXT' program location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3f'.
-
-
-glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform3fEXT = ffiuintintfloatfloatfloatIOV glProgramUniform3fEXTFunPtr
-
-glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform3fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fEXT")
-
-{-# NOINLINE glProgramUniform3fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3fvEXT' program location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3fv'.
-
-
-glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform3fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvEXTFunPtr
-
-glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fvEXT")
-
-{-# NOINLINE glProgramUniform3fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3iEXT' program location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3i'.
-
-
-glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform3iEXT = ffiuintintintintintIOV glProgramUniform3iEXTFunPtr
-
-glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform3iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iEXT")
-
-{-# NOINLINE glProgramUniform3iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3ivEXT' program location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3iv'.
-
-
-glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform3ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform3ivEXTFunPtr
-
-glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform3ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ivEXT")
-
-{-# NOINLINE glProgramUniform3ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3uiEXT' program location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3ui'.
-
-
-glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform3uiEXT = ffiuintintuintuintuintIOV glProgramUniform3uiEXTFunPtr
-
-glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiEXT")
-
-{-# NOINLINE glProgramUniform3uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3uivEXT' program location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3uiv'.
-
-
-glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform3uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform3uivEXTFunPtr
-
-glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uivEXT")
-
-{-# NOINLINE glProgramUniform3uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4fEXT' program location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4f'.
-
-
-glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform4fEXT = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fEXTFunPtr
-
-glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform4fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fEXT")
-
-{-# NOINLINE glProgramUniform4fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4fvEXT' program location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4fv'.
-
-
-glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform4fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvEXTFunPtr
-
-glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fvEXT")
-
-{-# NOINLINE glProgramUniform4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4iEXT' program location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4i'.
-
-
-glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform4iEXT = ffiuintintintintintintIOV glProgramUniform4iEXTFunPtr
-
-glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform4iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iEXT")
-
-{-# NOINLINE glProgramUniform4iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4ivEXT' program location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4iv'.
-
-
-glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform4ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform4ivEXTFunPtr
-
-glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform4ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ivEXT")
-
-{-# NOINLINE glProgramUniform4ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4uiEXT' program location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4ui'.
-
-
-glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform4uiEXT = ffiuintintuintuintuintuintIOV glProgramUniform4uiEXTFunPtr
-
-glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiEXT")
-
-{-# NOINLINE glProgramUniform4uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4uivEXT' program location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4uiv'.
-
-
-glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform4uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform4uivEXTFunPtr
-
-glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uivEXT")
-
-{-# NOINLINE glProgramUniform4uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2fv'.
-
-
-glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvEXTFunPtr
-
-glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x3fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x3fv'.
-
-
-glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvEXTFunPtr
-
-glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x3fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x4fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x4fv'.
-
-
-glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvEXTFunPtr
-
-glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3fv'.
-
-
-glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvEXTFunPtr
-
-glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x2fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x2fv'.
-
-
-glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvEXTFunPtr
-
-glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x4fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x4fv'.
-
-
-glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvEXTFunPtr
-
-glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4fv'.
-
-
-glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvEXTFunPtr
-
-glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x2fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x2fv'.
-
-
-glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvEXTFunPtr
-
-glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x3fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x3fv'.
-
-
-glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvEXTFunPtr
-
-glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x3fvEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage1DEXT' texture target levels internalformat width@
-
-
-glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-glTextureStorage1DEXT = ffiuintenumsizeienumsizeiIOV glTextureStorage1DEXTFunPtr
-
-glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTextureStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1DEXT")
-
-{-# NOINLINE glTextureStorage1DEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage2DEXT' texture target levels internalformat width height@
-
-
-glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTextureStorage2DEXT = ffiuintenumsizeienumsizeisizeiIOV glTextureStorage2DEXTFunPtr
-
-glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTextureStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DEXT")
-
-{-# NOINLINE glTextureStorage2DEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage3DEXT' texture target levels internalformat width height depth@
-
-
-glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTextureStorage3DEXT = ffiuintenumsizeienumsizeisizeisizeiIOV glTextureStorage3DEXTFunPtr
-
-glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTextureStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DEXT")
-
-{-# NOINLINE glTextureStorage3DEXTFunPtr #-}
-
--- | Usage: @'glBeginQueryEXT' target id@
-
-
-glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glBeginQueryEXT = ffienumuintIOV glBeginQueryEXTFunPtr
-
-glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBeginQueryEXTFunPtr = unsafePerformIO (getProcAddress "glBeginQueryEXT")
-
-{-# NOINLINE glBeginQueryEXTFunPtr #-}
-
--- | Usage: @'glDeleteQueriesEXT' n ids@
---
--- The length of @ids@ should be @n@.
-
-
-glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteQueriesEXT = ffisizeiPtruintIOV glDeleteQueriesEXTFunPtr
-
-glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesEXT")
-
-{-# NOINLINE glDeleteQueriesEXTFunPtr #-}
-
--- | Usage: @'glEndQueryEXT' target@
-
-
-glEndQueryEXT :: MonadIO m => GLenum -> m ()
-glEndQueryEXT = ffienumIOV glEndQueryEXTFunPtr
-
-glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())
-glEndQueryEXTFunPtr = unsafePerformIO (getProcAddress "glEndQueryEXT")
-
-{-# NOINLINE glEndQueryEXTFunPtr #-}
-
--- | Usage: @'glGenQueriesEXT' n ids@
---
--- The length of @ids@ should be @n@.
-
-
-glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenQueriesEXT = ffisizeiPtruintIOV glGenQueriesEXTFunPtr
-
-glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glGenQueriesEXT")
-
-{-# NOINLINE glGenQueriesEXTFunPtr #-}
-
--- | Usage: @'glGetQueryObjecti64vEXT' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjecti64v'.
-
-
-glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetQueryObjecti64vEXT = ffiuintenumPtrint64IOV glGetQueryObjecti64vEXTFunPtr
-
-glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetQueryObjecti64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64vEXT")
-
-{-# NOINLINE glGetQueryObjecti64vEXTFunPtr #-}
-
--- | Usage: @'glGetQueryObjectui64vEXT' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectui64v'.
-
-
-glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
-glGetQueryObjectui64vEXT = ffiuintenumPtruint64IOV glGetQueryObjectui64vEXTFunPtr
-
-glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-glGetQueryObjectui64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64vEXT")
-
-{-# NOINLINE glGetQueryObjectui64vEXTFunPtr #-}
-
--- | Usage: @'glGetQueryObjectuivEXT' id pname params@
-
-
-glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetQueryObjectuivEXT = ffiuintenumPtruintIOV glGetQueryObjectuivEXTFunPtr
-
-glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetQueryObjectuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivEXT")
-
-{-# NOINLINE glGetQueryObjectuivEXTFunPtr #-}
-
--- | Usage: @'glGetQueryivEXT' target pname params@
-
-
-glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetQueryivEXT = ffienumenumPtrintIOV glGetQueryivEXTFunPtr
-
-glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetQueryivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryivEXT")
-
-{-# NOINLINE glGetQueryivEXTFunPtr #-}
-
--- | Usage: @'glIsQueryEXT' id@
-
-
-glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
-glIsQueryEXT = ffiuintIOboolean glIsQueryEXTFunPtr
-
-glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsQueryEXTFunPtr = unsafePerformIO (getProcAddress "glIsQueryEXT")
-
-{-# NOINLINE glIsQueryEXTFunPtr #-}
-
-pattern GL_CURRENT_QUERY_EXT = 0x8865
-
-pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867
-
-pattern GL_QUERY_RESULT_EXT = 0x8866
-
-pattern GL_TIME_ELAPSED_EXT = 0x88BF
-
-pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9
-
-pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF
-
--- | Usage: @'glDrawArraysInstancedEXT' mode start count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
-
-
-glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstancedEXT = ffienumintsizeisizeiIOV glDrawArraysInstancedEXTFunPtr
-
-glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedEXT")
-
-{-# NOINLINE glDrawArraysInstancedEXTFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedEXT' mode count type indices primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
-
-
-glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstancedEXT = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedEXTFunPtr
-
-glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedEXT")
-
-{-# NOINLINE glDrawElementsInstancedEXTFunPtr #-}
-
-pattern GL_FRAGMENT_DEPTH_EXT = 0x8452
-
--- | Usage: @'glRenderbufferStorageMultisampleEXT' target samples internalformat width height@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorageMultisample'.
-
-
-glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleEXT = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleEXTFunPtr
-
-glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleEXT")
-
-{-# NOINLINE glRenderbufferStorageMultisampleEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56
-
-pattern GL_MAX_SAMPLES_EXT = 0x8D57
-
-pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB
-
-pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9
-
--- | Usage: @'glFramebufferTextureEXT' target attachment texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
-
-
-glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTextureEXT = ffienumenumuintintIOV glFramebufferTextureEXTFunPtr
-
-glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureEXT")
-
-{-# NOINLINE glFramebufferTextureEXTFunPtr #-}
-
-pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8
-
-pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9
-
-pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E
-
-pattern GL_LINES_ADJACENCY_EXT = 0x000A
-
-pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B
-
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0
-
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29
-
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1
-
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF
-
-pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87
-
-pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C
-
-pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D
-
--- | Usage: @'glProgramParameteriEXT' program pname value@
---
--- The parameter @pname@ is a @ProgramParameterPName@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramParameteri'.
-
-
-glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glProgramParameteriEXT = ffiuintenumintIOV glProgramParameteriEXTFunPtr
-
-glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glProgramParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriEXT")
-
-{-# NOINLINE glProgramParameteriEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9
-
-pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB
-
-pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC
-
-pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA
-
-pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642
-
-pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0
-
-pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8
-
-pattern GL_MULTISAMPLE_EXT = 0x809D
-
-pattern GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F
-
--- | Usage: @'glRasterSamplesEXT' samples fixedsamplelocations@
-
-
-glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
-glRasterSamplesEXT = ffiuintbooleanIOV glRasterSamplesEXTFunPtr
-
-glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())
-glRasterSamplesEXTFunPtr = unsafePerformIO (getProcAddress "glRasterSamplesEXT")
-
-{-# NOINLINE glRasterSamplesEXTFunPtr #-}
-
-pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
-
-pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329
-
-pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
-
-pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
-
-pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327
-
-pattern GL_RASTER_SAMPLES_EXT = 0x9328
-
-pattern GL_R16_SNORM_EXT = 0x8F98
-
-pattern GL_RG16_SNORM_EXT = 0x8F99
-
-pattern GL_RGBA16_SNORM_EXT = 0x8F9B
-
-pattern GL_SRGB8_ALPHA8_EXT = 0x8C43
-
-pattern GL_SRGB_ALPHA_EXT = 0x8C42
-
-pattern GL_SRGB_EXT = 0x8C40
-
-pattern GL_IMAGE_BUFFER_EXT = 0x9051
-
-pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
-
-pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C
-
-pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
-
-pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
-
-pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES = 0x9009
-
-pattern GL_ALPHA8_EXT = 0x803C
-
-pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045
-
-pattern GL_LUMINANCE8_EXT = 0x8040
-
-pattern GL_RGB10_A2_EXT = 0x8059
-
-pattern GL_RGB10_EXT = 0x8052
-
-pattern GL_RGB16_EXT = 0x8054
-
-pattern GL_RGBA16_EXT = 0x805B
-
--- | Usage: @'glFramebufferTextureLayerEXT' target attachment texture level layer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @layer@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTextureLayer'.
-
-
-glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTextureLayerEXT = ffienumenumuintintintIOV glFramebufferTextureLayerEXTFunPtr
-
-glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerEXT")
-
-{-# NOINLINE glFramebufferTextureLayerEXTFunPtr #-}
-
--- | Usage: @'glGetTexParameterIivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIiv'.
-
-
-glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameterIivEXT = ffienumenumPtrintIOV glGetTexParameterIivEXTFunPtr
-
-glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivEXT")
-
-{-# NOINLINE glGetTexParameterIivEXTFunPtr #-}
-
--- | Usage: @'glGetTexParameterIuivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIuiv'.
-
-
-glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTexParameterIuivEXT = ffienumenumPtruintIOV glGetTexParameterIuivEXTFunPtr
-
-glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivEXT")
-
-{-# NOINLINE glGetTexParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glTexParameterIivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIiv'.
-
-
-glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameterIivEXT = ffienumenumPtrintIOV glTexParameterIivEXTFunPtr
-
-glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivEXT")
-
-{-# NOINLINE glTexParameterIivEXTFunPtr #-}
-
--- | Usage: @'glTexParameterIuivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIuiv'.
-
-
-glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glTexParameterIuivEXT = ffienumenumPtruintIOV glTexParameterIuivEXTFunPtr
-
-glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivEXT")
-
-{-# NOINLINE glTexParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glTexBufferEXT' target internalformat buffer@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
-
-
-glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBufferEXT = ffienumenumuintIOV glTexBufferEXTFunPtr
-
-glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferEXT")
-
-{-# NOINLINE glTexBufferEXTFunPtr #-}
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B
-
-pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D
-
-pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A
-
-pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
-
-pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
-
-pattern GL_R8_EXT = 0x8229
-
-pattern GL_RG8_EXT = 0x822B
-
-pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68
-
-pattern GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67
-
-pattern GL_TEXTURE_EXTERNAL_OES = 0x8D65
-
-pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
-
-pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
-
-pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9
-
-pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5
-
-pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4
-
-pattern GL_COLOR_SAMPLES_NV = 0x8E20
-
-pattern GL_PRIMARY_COLOR_NV = 0x852C
-
-pattern GL_SECONDARY_COLOR_NV = 0x852D
-
-pattern GL_DEPTH_COMPONENT24_OES = 0x81A6
-
--- | Usage: @'glDisableiOES' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
-
-
-glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableiOES = ffienumuintIOV glDisableiOESFunPtr
-
-glDisableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableiOESFunPtr = unsafePerformIO (getProcAddress "glDisableiOES")
-
-{-# NOINLINE glDisableiOESFunPtr #-}
-
--- | Usage: @'glEnableiOES' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
-
-
-glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableiOES = ffienumuintIOV glEnableiOESFunPtr
-
-glEnableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableiOESFunPtr = unsafePerformIO (getProcAddress "glEnableiOES")
-
-{-# NOINLINE glEnableiOESFunPtr #-}
-
--- | Usage: @'glIsEnablediOES' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
-
-
-glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnablediOES = ffienumuintIOboolean glIsEnablediOESFunPtr
-
-glIsEnablediOESFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnablediOESFunPtr = unsafePerformIO (getProcAddress "glIsEnablediOES")
-
-{-# NOINLINE glIsEnablediOESFunPtr #-}
-
--- | Usage: @'glGetTexGenxvOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetTexGenxvOES = ffienumenumPtrfixedIOV glGetTexGenxvOESFunPtr
-
-glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenxvOES")
-
-{-# NOINLINE glGetTexGenxvOESFunPtr #-}
-
--- | Usage: @'glTexGenxOES' coord pname param@
-
-
-glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glTexGenxOES = ffienumenumfixedIOV glTexGenxOESFunPtr
-
-glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glTexGenxOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxOES")
-
-{-# NOINLINE glTexGenxOESFunPtr #-}
-
--- | Usage: @'glTexGenxvOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glTexGenxvOES = ffienumenumPtrfixedIOV glTexGenxvOESFunPtr
-
-glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxvOES")
-
-{-# NOINLINE glTexGenxvOESFunPtr #-}
-
-pattern GL_DEPTH_COMPONENT16_OES = 0x81A5
-
-pattern GL_RGB565_OES = 0x8D62
-
-pattern GL_RGB5_A1_OES = 0x8057
-
-pattern GL_RGBA4_OES = 0x8056
-
-pattern GL_RGB8_OES = 0x8051
-
-pattern GL_RGBA8_OES = 0x8058
-
-pattern GL_STENCIL_INDEX8_OES = 0x8D48
-
-pattern GL_HALF_FLOAT_OES = 0x8D61
diff --git a/dist/build/autogen/Graphics/GL/SafetyCritical20.hs b/dist/build/autogen/Graphics/GL/SafetyCritical20.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/SafetyCritical20.hs
+++ /dev/null
@@ -1,391 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.SafetyCritical20 (
-  -- * Graphics.GL.SafetyCritical20
-    glActiveTexture
-  , glBindBuffer
-  , glBindFramebuffer
-  , glBindRenderbuffer
-  , glBindTexture
-  , glBlendColor
-  , glBlendEquation
-  , glBlendEquationSeparate
-  , glBlendFunc
-  , glBlendFuncSeparate
-  , glBufferData
-  , glBufferSubData
-  , glCheckFramebufferStatus
-  , glClear
-  , glClearColor
-  , glClearDepthf
-  , glClearStencil
-  , glColorMask
-  , glCompressedTexSubImage2D
-  , glCreateProgram
-  , glCullFace
-  , glDepthFunc
-  , glDepthMask
-  , glDepthRangef
-  , glDisable
-  , glDisableVertexAttribArray
-  , glDrawArrays
-  , glDrawRangeElements
-  , glEnable
-  , glEnableVertexAttribArray
-  , glFinish
-  , glFlush
-  , glFramebufferRenderbuffer
-  , glFramebufferTexture2D
-  , glFrontFace
-  , glGenBuffers
-  , glGenFramebuffers
-  , glGenRenderbuffers
-  , glGenTextures
-  , glGenerateMipmap
-  , glGetAttribLocation
-  , glGetBooleanv
-  , glGetBufferParameteriv
-  , glGetError
-  , glGetFloatv
-  , glGetFramebufferAttachmentParameteriv
-  , glGetGraphicsResetStatus
-  , glGetIntegerv
-  , glGetProgramiv
-  , glGetRenderbufferParameteriv
-  , glGetString
-  , glGetTexParameterfv
-  , glGetTexParameteriv
-  , glGetUniformLocation
-  , glGetVertexAttribPointerv
-  , glGetVertexAttribfv
-  , glGetVertexAttribiv
-  , glGetnUniformfv
-  , glGetnUniformiv
-  , glHint
-  , glIsEnabled
-  , glLineWidth
-  , glPixelStorei
-  , glPolygonOffset
-  , glProgramBinary
-  , glReadnPixels
-  , glRenderbufferStorage
-  , glSampleCoverage
-  , glScissor
-  , glStencilFunc
-  , glStencilFuncSeparate
-  , glStencilMask
-  , glStencilMaskSeparate
-  , glStencilOp
-  , glStencilOpSeparate
-  , glTexParameterf
-  , glTexParameterfv
-  , glTexParameteri
-  , glTexParameteriv
-  , glTexStorage2D
-  , glTexSubImage2D
-  , glUniform1f
-  , glUniform1fv
-  , glUniform1i
-  , glUniform1iv
-  , glUniform2f
-  , glUniform2fv
-  , glUniform2i
-  , glUniform2iv
-  , glUniform3f
-  , glUniform3fv
-  , glUniform3i
-  , glUniform3iv
-  , glUniform4f
-  , glUniform4fv
-  , glUniform4i
-  , glUniform4iv
-  , glUniformMatrix2fv
-  , glUniformMatrix3fv
-  , glUniformMatrix4fv
-  , glUseProgram
-  , glVertexAttrib1f
-  , glVertexAttrib1fv
-  , glVertexAttrib2f
-  , glVertexAttrib2fv
-  , glVertexAttrib3f
-  , glVertexAttrib3fv
-  , glVertexAttrib4f
-  , glVertexAttrib4fv
-  , glVertexAttribPointer
-  , glViewport
-  , pattern GL_ACTIVE_TEXTURE
-  , pattern GL_ALIASED_LINE_WIDTH_RANGE
-  , pattern GL_ALIASED_POINT_SIZE_RANGE
-  , pattern GL_ALPHA_BITS
-  , pattern GL_ALWAYS
-  , pattern GL_ARRAY_BUFFER
-  , pattern GL_ARRAY_BUFFER_BINDING
-  , pattern GL_BACK
-  , pattern GL_BLEND
-  , pattern GL_BLEND_COLOR
-  , pattern GL_BLEND_DST_ALPHA
-  , pattern GL_BLEND_DST_RGB
-  , pattern GL_BLEND_EQUATION
-  , pattern GL_BLEND_EQUATION_ALPHA
-  , pattern GL_BLEND_EQUATION_RGB
-  , pattern GL_BLEND_SRC_ALPHA
-  , pattern GL_BLEND_SRC_RGB
-  , pattern GL_BLUE_BITS
-  , pattern GL_BUFFER_SIZE
-  , pattern GL_BUFFER_USAGE
-  , pattern GL_BYTE
-  , pattern GL_CCW
-  , pattern GL_CLAMP_TO_EDGE
-  , pattern GL_COLOR_ATTACHMENT0
-  , pattern GL_COLOR_BUFFER_BIT
-  , pattern GL_COLOR_CLEAR_VALUE
-  , pattern GL_COLOR_WRITEMASK
-  , pattern GL_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_CONSTANT_ALPHA
-  , pattern GL_CONSTANT_COLOR
-  , pattern GL_CONTEXT_LOST
-  , pattern GL_CONTEXT_ROBUST_ACCESS
-  , pattern GL_CULL_FACE
-  , pattern GL_CULL_FACE_MODE
-  , pattern GL_CURRENT_PROGRAM
-  , pattern GL_CURRENT_VERTEX_ATTRIB
-  , pattern GL_CW
-  , pattern GL_DECR
-  , pattern GL_DECR_WRAP
-  , pattern GL_DEPTH_ATTACHMENT
-  , pattern GL_DEPTH_BITS
-  , pattern GL_DEPTH_BUFFER_BIT
-  , pattern GL_DEPTH_CLEAR_VALUE
-  , pattern GL_DEPTH_COMPONENT16
-  , pattern GL_DEPTH_FUNC
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_DEPTH_TEST
-  , pattern GL_DEPTH_WRITEMASK
-  , pattern GL_DITHER
-  , pattern GL_DONT_CARE
-  , pattern GL_DST_ALPHA
-  , pattern GL_DST_COLOR
-  , pattern GL_DYNAMIC_DRAW
-  , pattern GL_ELEMENT_ARRAY_BUFFER
-  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
-  , pattern GL_EQUAL
-  , pattern GL_EXTENSIONS
-  , pattern GL_FALSE
-  , pattern GL_FASTEST
-  , pattern GL_FLOAT
-  , pattern GL_FRAMEBUFFER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
-  , pattern GL_FRAMEBUFFER_BINDING
-  , pattern GL_FRAMEBUFFER_COMPLETE
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_UNDEFINED
-  , pattern GL_FRAMEBUFFER_UNSUPPORTED
-  , pattern GL_FRONT
-  , pattern GL_FRONT_AND_BACK
-  , pattern GL_FRONT_FACE
-  , pattern GL_FUNC_ADD
-  , pattern GL_FUNC_REVERSE_SUBTRACT
-  , pattern GL_FUNC_SUBTRACT
-  , pattern GL_GENERATE_MIPMAP_HINT
-  , pattern GL_GEQUAL
-  , pattern GL_GREATER
-  , pattern GL_GREEN_BITS
-  , pattern GL_GUILTY_CONTEXT_RESET
-  , pattern GL_HIGH_FLOAT
-  , pattern GL_HIGH_INT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
-  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
-  , pattern GL_INCR
-  , pattern GL_INCR_WRAP
-  , pattern GL_INNOCENT_CONTEXT_RESET
-  , pattern GL_INT
-  , pattern GL_INVALID_ENUM
-  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
-  , pattern GL_INVALID_OPERATION
-  , pattern GL_INVALID_VALUE
-  , pattern GL_INVERT
-  , pattern GL_KEEP
-  , pattern GL_LEQUAL
-  , pattern GL_LESS
-  , pattern GL_LINEAR
-  , pattern GL_LINEAR_MIPMAP_LINEAR
-  , pattern GL_LINEAR_MIPMAP_NEAREST
-  , pattern GL_LINES
-  , pattern GL_LINE_LOOP
-  , pattern GL_LINE_STRIP
-  , pattern GL_LINE_WIDTH
-  , pattern GL_LINK_STATUS
-  , pattern GL_LOSE_CONTEXT_ON_RESET
-  , pattern GL_LOW_FLOAT
-  , pattern GL_LOW_INT
-  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
-  , pattern GL_MAX_RENDERBUFFER_SIZE
-  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_TEXTURE_SIZE
-  , pattern GL_MAX_VARYING_VECTORS
-  , pattern GL_MAX_VERTEX_ATTRIBS
-  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
-  , pattern GL_MAX_VIEWPORT_DIMS
-  , pattern GL_MEDIUM_FLOAT
-  , pattern GL_MEDIUM_INT
-  , pattern GL_MIRRORED_REPEAT
-  , pattern GL_NEAREST
-  , pattern GL_NEAREST_MIPMAP_LINEAR
-  , pattern GL_NEAREST_MIPMAP_NEAREST
-  , pattern GL_NEVER
-  , pattern GL_NICEST
-  , pattern GL_NONE
-  , pattern GL_NOTEQUAL
-  , pattern GL_NO_ERROR
-  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
-  , pattern GL_ONE
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR
-  , pattern GL_ONE_MINUS_DST_ALPHA
-  , pattern GL_ONE_MINUS_DST_COLOR
-  , pattern GL_ONE_MINUS_SRC_ALPHA
-  , pattern GL_ONE_MINUS_SRC_COLOR
-  , pattern GL_OUT_OF_MEMORY
-  , pattern GL_PACK_ALIGNMENT
-  , pattern GL_POINTS
-  , pattern GL_POLYGON_OFFSET_FACTOR
-  , pattern GL_POLYGON_OFFSET_FILL
-  , pattern GL_POLYGON_OFFSET_UNITS
-  , pattern GL_PROGRAM_BINARY_FORMATS
-  , pattern GL_R8
-  , pattern GL_RED
-  , pattern GL_RED_BITS
-  , pattern GL_RENDERBUFFER
-  , pattern GL_RENDERBUFFER_ALPHA_SIZE
-  , pattern GL_RENDERBUFFER_BINDING
-  , pattern GL_RENDERBUFFER_BLUE_SIZE
-  , pattern GL_RENDERBUFFER_DEPTH_SIZE
-  , pattern GL_RENDERBUFFER_GREEN_SIZE
-  , pattern GL_RENDERBUFFER_HEIGHT
-  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
-  , pattern GL_RENDERBUFFER_RED_SIZE
-  , pattern GL_RENDERBUFFER_STENCIL_SIZE
-  , pattern GL_RENDERBUFFER_WIDTH
-  , pattern GL_RENDERER
-  , pattern GL_REPEAT
-  , pattern GL_REPLACE
-  , pattern GL_RESET_NOTIFICATION_STRATEGY
-  , pattern GL_RG
-  , pattern GL_RG8
-  , pattern GL_RGB
-  , pattern GL_RGB565
-  , pattern GL_RGB5_A1
-  , pattern GL_RGB8
-  , pattern GL_RGBA
-  , pattern GL_RGBA4
-  , pattern GL_RGBA8
-  , pattern GL_SAMPLER_2D
-  , pattern GL_SAMPLES
-  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
-  , pattern GL_SAMPLE_BUFFERS
-  , pattern GL_SAMPLE_COVERAGE
-  , pattern GL_SAMPLE_COVERAGE_INVERT
-  , pattern GL_SAMPLE_COVERAGE_VALUE
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_SHADING_LANGUAGE_VERSION
-  , pattern GL_SHORT
-  , pattern GL_SRC_ALPHA
-  , pattern GL_SRC_ALPHA_SATURATE
-  , pattern GL_SRC_COLOR
-  , pattern GL_STATIC_DRAW
-  , pattern GL_STENCIL_ATTACHMENT
-  , pattern GL_STENCIL_BACK_FAIL
-  , pattern GL_STENCIL_BACK_FUNC
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_BACK_REF
-  , pattern GL_STENCIL_BACK_VALUE_MASK
-  , pattern GL_STENCIL_BACK_WRITEMASK
-  , pattern GL_STENCIL_BITS
-  , pattern GL_STENCIL_BUFFER_BIT
-  , pattern GL_STENCIL_CLEAR_VALUE
-  , pattern GL_STENCIL_FAIL
-  , pattern GL_STENCIL_FUNC
-  , pattern GL_STENCIL_INDEX8
-  , pattern GL_STENCIL_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_REF
-  , pattern GL_STENCIL_TEST
-  , pattern GL_STENCIL_VALUE_MASK
-  , pattern GL_STENCIL_WRITEMASK
-  , pattern GL_STREAM_DRAW
-  , pattern GL_SUBPIXEL_BITS
-  , pattern GL_TEXTURE
-  , pattern GL_TEXTURE0
-  , pattern GL_TEXTURE1
-  , pattern GL_TEXTURE10
-  , pattern GL_TEXTURE11
-  , pattern GL_TEXTURE12
-  , pattern GL_TEXTURE13
-  , pattern GL_TEXTURE14
-  , pattern GL_TEXTURE15
-  , pattern GL_TEXTURE16
-  , pattern GL_TEXTURE17
-  , pattern GL_TEXTURE18
-  , pattern GL_TEXTURE19
-  , pattern GL_TEXTURE2
-  , pattern GL_TEXTURE20
-  , pattern GL_TEXTURE21
-  , pattern GL_TEXTURE22
-  , pattern GL_TEXTURE23
-  , pattern GL_TEXTURE24
-  , pattern GL_TEXTURE25
-  , pattern GL_TEXTURE26
-  , pattern GL_TEXTURE27
-  , pattern GL_TEXTURE28
-  , pattern GL_TEXTURE29
-  , pattern GL_TEXTURE3
-  , pattern GL_TEXTURE30
-  , pattern GL_TEXTURE31
-  , pattern GL_TEXTURE4
-  , pattern GL_TEXTURE5
-  , pattern GL_TEXTURE6
-  , pattern GL_TEXTURE7
-  , pattern GL_TEXTURE8
-  , pattern GL_TEXTURE9
-  , pattern GL_TEXTURE_2D
-  , pattern GL_TEXTURE_BINDING_2D
-  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
-  , pattern GL_TEXTURE_MAG_FILTER
-  , pattern GL_TEXTURE_MIN_FILTER
-  , pattern GL_TEXTURE_WRAP_S
-  , pattern GL_TEXTURE_WRAP_T
-  , pattern GL_TRIANGLES
-  , pattern GL_TRIANGLE_FAN
-  , pattern GL_TRIANGLE_STRIP
-  , pattern GL_TRUE
-  , pattern GL_UNKNOWN_CONTEXT_RESET
-  , pattern GL_UNPACK_ALIGNMENT
-  , pattern GL_UNSIGNED_BYTE
-  , pattern GL_UNSIGNED_INT
-  , pattern GL_UNSIGNED_SHORT
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4
-  , pattern GL_UNSIGNED_SHORT_5_5_5_1
-  , pattern GL_UNSIGNED_SHORT_5_6_5
-  , pattern GL_VENDOR
-  , pattern GL_VERSION
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
-  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
-  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
-  , pattern GL_VIEWPORT
-  , pattern GL_ZERO
-) where
-
-import Graphics.GL.Internal.Shared
diff --git a/dist/build/autogen/Graphics/GL/Standard10.hs b/dist/build/autogen/Graphics/GL/Standard10.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard10.hs
+++ /dev/null
@@ -1,313 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard10 (
-  -- * Graphics.GL.Standard10
-    glAccum
-  , glAlphaFunc
-  , glBegin
-  , glBitmap
-  , glBlendFunc
-  , glCallList
-  , glCallLists
-  , glClear
-  , glClearAccum
-  , glClearColor
-  , glClearDepth
-  , glClearIndex
-  , glClearStencil
-  , glClipPlane
-  , glColor3b
-  , glColor3bv
-  , glColor3d
-  , glColor3dv
-  , glColor3f
-  , glColor3fv
-  , glColor3i
-  , glColor3iv
-  , glColor3s
-  , glColor3sv
-  , glColor3ub
-  , glColor3ubv
-  , glColor3ui
-  , glColor3uiv
-  , glColor3us
-  , glColor3usv
-  , glColor4b
-  , glColor4bv
-  , glColor4d
-  , glColor4dv
-  , glColor4f
-  , glColor4fv
-  , glColor4i
-  , glColor4iv
-  , glColor4s
-  , glColor4sv
-  , glColor4ub
-  , glColor4ubv
-  , glColor4ui
-  , glColor4uiv
-  , glColor4us
-  , glColor4usv
-  , glColorMask
-  , glColorMaterial
-  , glCopyPixels
-  , glCullFace
-  , glDeleteLists
-  , glDepthFunc
-  , glDepthMask
-  , glDepthRange
-  , glDisable
-  , glDrawBuffer
-  , glDrawPixels
-  , glEdgeFlag
-  , glEdgeFlagv
-  , glEnable
-  , glEnd
-  , glEndList
-  , glEvalCoord1d
-  , glEvalCoord1dv
-  , glEvalCoord1f
-  , glEvalCoord1fv
-  , glEvalCoord2d
-  , glEvalCoord2dv
-  , glEvalCoord2f
-  , glEvalCoord2fv
-  , glEvalMesh1
-  , glEvalMesh2
-  , glEvalPoint1
-  , glEvalPoint2
-  , glFeedbackBuffer
-  , glFinish
-  , glFlush
-  , glFogf
-  , glFogfv
-  , glFogi
-  , glFogiv
-  , glFrontFace
-  , glFrustum
-  , glGenLists
-  , glGetBooleanv
-  , glGetClipPlane
-  , glGetDoublev
-  , glGetError
-  , glGetFloatv
-  , glGetIntegerv
-  , glGetLightfv
-  , glGetLightiv
-  , glGetMapdv
-  , glGetMapfv
-  , glGetMapiv
-  , glGetMaterialfv
-  , glGetMaterialiv
-  , glGetPixelMapfv
-  , glGetPixelMapuiv
-  , glGetPixelMapusv
-  , glGetPolygonStipple
-  , glGetString
-  , glGetTexEnvfv
-  , glGetTexEnviv
-  , glGetTexGendv
-  , glGetTexGenfv
-  , glGetTexGeniv
-  , glGetTexImage
-  , glGetTexLevelParameterfv
-  , glGetTexLevelParameteriv
-  , glGetTexParameterfv
-  , glGetTexParameteriv
-  , glHint
-  , glIndexMask
-  , glIndexd
-  , glIndexdv
-  , glIndexf
-  , glIndexfv
-  , glIndexi
-  , glIndexiv
-  , glIndexs
-  , glIndexsv
-  , glInitNames
-  , glIsEnabled
-  , glIsList
-  , glLightModelf
-  , glLightModelfv
-  , glLightModeli
-  , glLightModeliv
-  , glLightf
-  , glLightfv
-  , glLighti
-  , glLightiv
-  , glLineStipple
-  , glLineWidth
-  , glListBase
-  , glLoadIdentity
-  , glLoadMatrixd
-  , glLoadMatrixf
-  , glLoadName
-  , glLogicOp
-  , glMap1d
-  , glMap1f
-  , glMap2d
-  , glMap2f
-  , glMapGrid1d
-  , glMapGrid1f
-  , glMapGrid2d
-  , glMapGrid2f
-  , glMaterialf
-  , glMaterialfv
-  , glMateriali
-  , glMaterialiv
-  , glMatrixMode
-  , glMultMatrixd
-  , glMultMatrixf
-  , glNewList
-  , glNormal3b
-  , glNormal3bv
-  , glNormal3d
-  , glNormal3dv
-  , glNormal3f
-  , glNormal3fv
-  , glNormal3i
-  , glNormal3iv
-  , glNormal3s
-  , glNormal3sv
-  , glOrtho
-  , glPassThrough
-  , glPixelMapfv
-  , glPixelMapuiv
-  , glPixelMapusv
-  , glPixelStoref
-  , glPixelStorei
-  , glPixelTransferf
-  , glPixelTransferi
-  , glPixelZoom
-  , glPointSize
-  , glPolygonMode
-  , glPolygonStipple
-  , glPopAttrib
-  , glPopMatrix
-  , glPopName
-  , glPushAttrib
-  , glPushMatrix
-  , glPushName
-  , glRasterPos2d
-  , glRasterPos2dv
-  , glRasterPos2f
-  , glRasterPos2fv
-  , glRasterPos2i
-  , glRasterPos2iv
-  , glRasterPos2s
-  , glRasterPos2sv
-  , glRasterPos3d
-  , glRasterPos3dv
-  , glRasterPos3f
-  , glRasterPos3fv
-  , glRasterPos3i
-  , glRasterPos3iv
-  , glRasterPos3s
-  , glRasterPos3sv
-  , glRasterPos4d
-  , glRasterPos4dv
-  , glRasterPos4f
-  , glRasterPos4fv
-  , glRasterPos4i
-  , glRasterPos4iv
-  , glRasterPos4s
-  , glRasterPos4sv
-  , glReadBuffer
-  , glReadPixels
-  , glRectd
-  , glRectdv
-  , glRectf
-  , glRectfv
-  , glRecti
-  , glRectiv
-  , glRects
-  , glRectsv
-  , glRenderMode
-  , glRotated
-  , glRotatef
-  , glScaled
-  , glScalef
-  , glScissor
-  , glSelectBuffer
-  , glShadeModel
-  , glStencilFunc
-  , glStencilMask
-  , glStencilOp
-  , glTexCoord1d
-  , glTexCoord1dv
-  , glTexCoord1f
-  , glTexCoord1fv
-  , glTexCoord1i
-  , glTexCoord1iv
-  , glTexCoord1s
-  , glTexCoord1sv
-  , glTexCoord2d
-  , glTexCoord2dv
-  , glTexCoord2f
-  , glTexCoord2fv
-  , glTexCoord2i
-  , glTexCoord2iv
-  , glTexCoord2s
-  , glTexCoord2sv
-  , glTexCoord3d
-  , glTexCoord3dv
-  , glTexCoord3f
-  , glTexCoord3fv
-  , glTexCoord3i
-  , glTexCoord3iv
-  , glTexCoord3s
-  , glTexCoord3sv
-  , glTexCoord4d
-  , glTexCoord4dv
-  , glTexCoord4f
-  , glTexCoord4fv
-  , glTexCoord4i
-  , glTexCoord4iv
-  , glTexCoord4s
-  , glTexCoord4sv
-  , glTexEnvf
-  , glTexEnvfv
-  , glTexEnvi
-  , glTexEnviv
-  , glTexGend
-  , glTexGendv
-  , glTexGenf
-  , glTexGenfv
-  , glTexGeni
-  , glTexGeniv
-  , glTexImage1D
-  , glTexImage2D
-  , glTexParameterf
-  , glTexParameterfv
-  , glTexParameteri
-  , glTexParameteriv
-  , glTranslated
-  , glTranslatef
-  , glVertex2d
-  , glVertex2dv
-  , glVertex2f
-  , glVertex2fv
-  , glVertex2i
-  , glVertex2iv
-  , glVertex2s
-  , glVertex2sv
-  , glVertex3d
-  , glVertex3dv
-  , glVertex3f
-  , glVertex3fv
-  , glVertex3i
-  , glVertex3iv
-  , glVertex3s
-  , glVertex3sv
-  , glVertex4d
-  , glVertex4dv
-  , glVertex4f
-  , glVertex4fv
-  , glVertex4i
-  , glVertex4iv
-  , glVertex4s
-  , glVertex4sv
-  , glViewport
-) where
-
-import Graphics.GL.Internal.Shared
diff --git a/dist/build/autogen/Graphics/GL/Standard11.hs b/dist/build/autogen/Graphics/GL/Standard11.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard11.hs
+++ /dev/null
@@ -1,568 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard11 (
-  -- * Graphics.GL.Standard11
-    module Graphics.GL.Standard10
-  , glAreTexturesResident
-  , glArrayElement
-  , glBindTexture
-  , glColorPointer
-  , glCopyTexImage1D
-  , glCopyTexImage2D
-  , glCopyTexSubImage1D
-  , glCopyTexSubImage2D
-  , glDeleteTextures
-  , glDisableClientState
-  , glDrawArrays
-  , glDrawElements
-  , glEdgeFlagPointer
-  , glEnableClientState
-  , glGenTextures
-  , glGetPointerv
-  , glIndexPointer
-  , glIndexub
-  , glIndexubv
-  , glInterleavedArrays
-  , glIsTexture
-  , glNormalPointer
-  , glPolygonOffset
-  , glPopClientAttrib
-  , glPrioritizeTextures
-  , glPushClientAttrib
-  , glTexCoordPointer
-  , glTexSubImage1D
-  , glTexSubImage2D
-  , glVertexPointer
-  , pattern GL_2D
-  , pattern GL_2_BYTES
-  , pattern GL_3D
-  , pattern GL_3D_COLOR
-  , pattern GL_3D_COLOR_TEXTURE
-  , pattern GL_3_BYTES
-  , pattern GL_4D_COLOR_TEXTURE
-  , pattern GL_4_BYTES
-  , pattern GL_ACCUM
-  , pattern GL_ACCUM_ALPHA_BITS
-  , pattern GL_ACCUM_BLUE_BITS
-  , pattern GL_ACCUM_BUFFER_BIT
-  , pattern GL_ACCUM_CLEAR_VALUE
-  , pattern GL_ACCUM_GREEN_BITS
-  , pattern GL_ACCUM_RED_BITS
-  , pattern GL_ADD
-  , pattern GL_ALL_ATTRIB_BITS
-  , pattern GL_ALPHA
-  , pattern GL_ALPHA12
-  , pattern GL_ALPHA16
-  , pattern GL_ALPHA4
-  , pattern GL_ALPHA8
-  , pattern GL_ALPHA_BIAS
-  , pattern GL_ALPHA_BITS
-  , pattern GL_ALPHA_SCALE
-  , pattern GL_ALPHA_TEST
-  , pattern GL_ALPHA_TEST_FUNC
-  , pattern GL_ALPHA_TEST_REF
-  , pattern GL_ALWAYS
-  , pattern GL_AMBIENT
-  , pattern GL_AMBIENT_AND_DIFFUSE
-  , pattern GL_AND
-  , pattern GL_AND_INVERTED
-  , pattern GL_AND_REVERSE
-  , pattern GL_ATTRIB_STACK_DEPTH
-  , pattern GL_AUTO_NORMAL
-  , pattern GL_AUX0
-  , pattern GL_AUX1
-  , pattern GL_AUX2
-  , pattern GL_AUX3
-  , pattern GL_AUX_BUFFERS
-  , pattern GL_BACK
-  , pattern GL_BACK_LEFT
-  , pattern GL_BACK_RIGHT
-  , pattern GL_BITMAP
-  , pattern GL_BITMAP_TOKEN
-  , pattern GL_BLEND
-  , pattern GL_BLEND_DST
-  , pattern GL_BLEND_SRC
-  , pattern GL_BLUE
-  , pattern GL_BLUE_BIAS
-  , pattern GL_BLUE_BITS
-  , pattern GL_BLUE_SCALE
-  , pattern GL_BYTE
-  , pattern GL_C3F_V3F
-  , pattern GL_C4F_N3F_V3F
-  , pattern GL_C4UB_V2F
-  , pattern GL_C4UB_V3F
-  , pattern GL_CCW
-  , pattern GL_CLAMP
-  , pattern GL_CLEAR
-  , pattern GL_CLIENT_ALL_ATTRIB_BITS
-  , pattern GL_CLIENT_ATTRIB_STACK_DEPTH
-  , pattern GL_CLIENT_PIXEL_STORE_BIT
-  , pattern GL_CLIENT_VERTEX_ARRAY_BIT
-  , pattern GL_CLIP_PLANE0
-  , pattern GL_CLIP_PLANE1
-  , pattern GL_CLIP_PLANE2
-  , pattern GL_CLIP_PLANE3
-  , pattern GL_CLIP_PLANE4
-  , pattern GL_CLIP_PLANE5
-  , pattern GL_COEFF
-  , pattern GL_COLOR
-  , pattern GL_COLOR_ARRAY
-  , pattern GL_COLOR_ARRAY_POINTER
-  , pattern GL_COLOR_ARRAY_SIZE
-  , pattern GL_COLOR_ARRAY_STRIDE
-  , pattern GL_COLOR_ARRAY_TYPE
-  , pattern GL_COLOR_BUFFER_BIT
-  , pattern GL_COLOR_CLEAR_VALUE
-  , pattern GL_COLOR_INDEX
-  , pattern GL_COLOR_INDEXES
-  , pattern GL_COLOR_LOGIC_OP
-  , pattern GL_COLOR_MATERIAL
-  , pattern GL_COLOR_MATERIAL_FACE
-  , pattern GL_COLOR_MATERIAL_PARAMETER
-  , pattern GL_COLOR_WRITEMASK
-  , pattern GL_COMPILE
-  , pattern GL_COMPILE_AND_EXECUTE
-  , pattern GL_CONSTANT_ATTENUATION
-  , pattern GL_COPY
-  , pattern GL_COPY_INVERTED
-  , pattern GL_COPY_PIXEL_TOKEN
-  , pattern GL_CULL_FACE
-  , pattern GL_CULL_FACE_MODE
-  , pattern GL_CURRENT_BIT
-  , pattern GL_CURRENT_COLOR
-  , pattern GL_CURRENT_INDEX
-  , pattern GL_CURRENT_NORMAL
-  , pattern GL_CURRENT_RASTER_COLOR
-  , pattern GL_CURRENT_RASTER_DISTANCE
-  , pattern GL_CURRENT_RASTER_INDEX
-  , pattern GL_CURRENT_RASTER_POSITION
-  , pattern GL_CURRENT_RASTER_POSITION_VALID
-  , pattern GL_CURRENT_RASTER_TEXTURE_COORDS
-  , pattern GL_CURRENT_TEXTURE_COORDS
-  , pattern GL_CW
-  , pattern GL_DECAL
-  , pattern GL_DECR
-  , pattern GL_DEPTH
-  , pattern GL_DEPTH_BIAS
-  , pattern GL_DEPTH_BITS
-  , pattern GL_DEPTH_BUFFER_BIT
-  , pattern GL_DEPTH_CLEAR_VALUE
-  , pattern GL_DEPTH_COMPONENT
-  , pattern GL_DEPTH_FUNC
-  , pattern GL_DEPTH_RANGE
-  , pattern GL_DEPTH_SCALE
-  , pattern GL_DEPTH_TEST
-  , pattern GL_DEPTH_WRITEMASK
-  , pattern GL_DIFFUSE
-  , pattern GL_DITHER
-  , pattern GL_DOMAIN
-  , pattern GL_DONT_CARE
-  , pattern GL_DOUBLE
-  , pattern GL_DOUBLEBUFFER
-  , pattern GL_DRAW_BUFFER
-  , pattern GL_DRAW_PIXEL_TOKEN
-  , pattern GL_DST_ALPHA
-  , pattern GL_DST_COLOR
-  , pattern GL_EDGE_FLAG
-  , pattern GL_EDGE_FLAG_ARRAY
-  , pattern GL_EDGE_FLAG_ARRAY_POINTER
-  , pattern GL_EDGE_FLAG_ARRAY_STRIDE
-  , pattern GL_EMISSION
-  , pattern GL_ENABLE_BIT
-  , pattern GL_EQUAL
-  , pattern GL_EQUIV
-  , pattern GL_EVAL_BIT
-  , pattern GL_EXP
-  , pattern GL_EXP2
-  , pattern GL_EXTENSIONS
-  , pattern GL_EYE_LINEAR
-  , pattern GL_EYE_PLANE
-  , pattern GL_FALSE
-  , pattern GL_FASTEST
-  , pattern GL_FEEDBACK
-  , pattern GL_FEEDBACK_BUFFER_POINTER
-  , pattern GL_FEEDBACK_BUFFER_SIZE
-  , pattern GL_FEEDBACK_BUFFER_TYPE
-  , pattern GL_FILL
-  , pattern GL_FLAT
-  , pattern GL_FLOAT
-  , pattern GL_FOG
-  , pattern GL_FOG_BIT
-  , pattern GL_FOG_COLOR
-  , pattern GL_FOG_DENSITY
-  , pattern GL_FOG_END
-  , pattern GL_FOG_HINT
-  , pattern GL_FOG_INDEX
-  , pattern GL_FOG_MODE
-  , pattern GL_FOG_START
-  , pattern GL_FRONT
-  , pattern GL_FRONT_AND_BACK
-  , pattern GL_FRONT_FACE
-  , pattern GL_FRONT_LEFT
-  , pattern GL_FRONT_RIGHT
-  , pattern GL_GEQUAL
-  , pattern GL_GREATER
-  , pattern GL_GREEN
-  , pattern GL_GREEN_BIAS
-  , pattern GL_GREEN_BITS
-  , pattern GL_GREEN_SCALE
-  , pattern GL_HINT_BIT
-  , pattern GL_INCR
-  , pattern GL_INDEX_ARRAY
-  , pattern GL_INDEX_ARRAY_POINTER
-  , pattern GL_INDEX_ARRAY_STRIDE
-  , pattern GL_INDEX_ARRAY_TYPE
-  , pattern GL_INDEX_BITS
-  , pattern GL_INDEX_CLEAR_VALUE
-  , pattern GL_INDEX_LOGIC_OP
-  , pattern GL_INDEX_MODE
-  , pattern GL_INDEX_OFFSET
-  , pattern GL_INDEX_SHIFT
-  , pattern GL_INDEX_WRITEMASK
-  , pattern GL_INT
-  , pattern GL_INTENSITY
-  , pattern GL_INTENSITY12
-  , pattern GL_INTENSITY16
-  , pattern GL_INTENSITY4
-  , pattern GL_INTENSITY8
-  , pattern GL_INVALID_ENUM
-  , pattern GL_INVALID_OPERATION
-  , pattern GL_INVALID_VALUE
-  , pattern GL_INVERT
-  , pattern GL_KEEP
-  , pattern GL_LEFT
-  , pattern GL_LEQUAL
-  , pattern GL_LESS
-  , pattern GL_LIGHT0
-  , pattern GL_LIGHT1
-  , pattern GL_LIGHT2
-  , pattern GL_LIGHT3
-  , pattern GL_LIGHT4
-  , pattern GL_LIGHT5
-  , pattern GL_LIGHT6
-  , pattern GL_LIGHT7
-  , pattern GL_LIGHTING
-  , pattern GL_LIGHTING_BIT
-  , pattern GL_LIGHT_MODEL_AMBIENT
-  , pattern GL_LIGHT_MODEL_LOCAL_VIEWER
-  , pattern GL_LIGHT_MODEL_TWO_SIDE
-  , pattern GL_LINE
-  , pattern GL_LINEAR
-  , pattern GL_LINEAR_ATTENUATION
-  , pattern GL_LINEAR_MIPMAP_LINEAR
-  , pattern GL_LINEAR_MIPMAP_NEAREST
-  , pattern GL_LINES
-  , pattern GL_LINE_BIT
-  , pattern GL_LINE_LOOP
-  , pattern GL_LINE_RESET_TOKEN
-  , pattern GL_LINE_SMOOTH
-  , pattern GL_LINE_SMOOTH_HINT
-  , pattern GL_LINE_STIPPLE
-  , pattern GL_LINE_STIPPLE_PATTERN
-  , pattern GL_LINE_STIPPLE_REPEAT
-  , pattern GL_LINE_STRIP
-  , pattern GL_LINE_TOKEN
-  , pattern GL_LINE_WIDTH
-  , pattern GL_LINE_WIDTH_GRANULARITY
-  , pattern GL_LINE_WIDTH_RANGE
-  , pattern GL_LIST_BASE
-  , pattern GL_LIST_BIT
-  , pattern GL_LIST_INDEX
-  , pattern GL_LIST_MODE
-  , pattern GL_LOAD
-  , pattern GL_LOGIC_OP
-  , pattern GL_LOGIC_OP_MODE
-  , pattern GL_LUMINANCE
-  , pattern GL_LUMINANCE12
-  , pattern GL_LUMINANCE12_ALPHA12
-  , pattern GL_LUMINANCE12_ALPHA4
-  , pattern GL_LUMINANCE16
-  , pattern GL_LUMINANCE16_ALPHA16
-  , pattern GL_LUMINANCE4
-  , pattern GL_LUMINANCE4_ALPHA4
-  , pattern GL_LUMINANCE6_ALPHA2
-  , pattern GL_LUMINANCE8
-  , pattern GL_LUMINANCE8_ALPHA8
-  , pattern GL_LUMINANCE_ALPHA
-  , pattern GL_MAP1_COLOR_4
-  , pattern GL_MAP1_GRID_DOMAIN
-  , pattern GL_MAP1_GRID_SEGMENTS
-  , pattern GL_MAP1_INDEX
-  , pattern GL_MAP1_NORMAL
-  , pattern GL_MAP1_TEXTURE_COORD_1
-  , pattern GL_MAP1_TEXTURE_COORD_2
-  , pattern GL_MAP1_TEXTURE_COORD_3
-  , pattern GL_MAP1_TEXTURE_COORD_4
-  , pattern GL_MAP1_VERTEX_3
-  , pattern GL_MAP1_VERTEX_4
-  , pattern GL_MAP2_COLOR_4
-  , pattern GL_MAP2_GRID_DOMAIN
-  , pattern GL_MAP2_GRID_SEGMENTS
-  , pattern GL_MAP2_INDEX
-  , pattern GL_MAP2_NORMAL
-  , pattern GL_MAP2_TEXTURE_COORD_1
-  , pattern GL_MAP2_TEXTURE_COORD_2
-  , pattern GL_MAP2_TEXTURE_COORD_3
-  , pattern GL_MAP2_TEXTURE_COORD_4
-  , pattern GL_MAP2_VERTEX_3
-  , pattern GL_MAP2_VERTEX_4
-  , pattern GL_MAP_COLOR
-  , pattern GL_MAP_STENCIL
-  , pattern GL_MATRIX_MODE
-  , pattern GL_MAX_ATTRIB_STACK_DEPTH
-  , pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
-  , pattern GL_MAX_CLIP_PLANES
-  , pattern GL_MAX_EVAL_ORDER
-  , pattern GL_MAX_LIGHTS
-  , pattern GL_MAX_LIST_NESTING
-  , pattern GL_MAX_MODELVIEW_STACK_DEPTH
-  , pattern GL_MAX_NAME_STACK_DEPTH
-  , pattern GL_MAX_PIXEL_MAP_TABLE
-  , pattern GL_MAX_PROJECTION_STACK_DEPTH
-  , pattern GL_MAX_TEXTURE_SIZE
-  , pattern GL_MAX_TEXTURE_STACK_DEPTH
-  , pattern GL_MAX_VIEWPORT_DIMS
-  , pattern GL_MODELVIEW
-  , pattern GL_MODELVIEW_MATRIX
-  , pattern GL_MODELVIEW_STACK_DEPTH
-  , pattern GL_MODULATE
-  , pattern GL_MULT
-  , pattern GL_N3F_V3F
-  , pattern GL_NAME_STACK_DEPTH
-  , pattern GL_NAND
-  , pattern GL_NEAREST
-  , pattern GL_NEAREST_MIPMAP_LINEAR
-  , pattern GL_NEAREST_MIPMAP_NEAREST
-  , pattern GL_NEVER
-  , pattern GL_NICEST
-  , pattern GL_NONE
-  , pattern GL_NOOP
-  , pattern GL_NOR
-  , pattern GL_NORMALIZE
-  , pattern GL_NORMAL_ARRAY
-  , pattern GL_NORMAL_ARRAY_POINTER
-  , pattern GL_NORMAL_ARRAY_STRIDE
-  , pattern GL_NORMAL_ARRAY_TYPE
-  , pattern GL_NOTEQUAL
-  , pattern GL_NO_ERROR
-  , pattern GL_OBJECT_LINEAR
-  , pattern GL_OBJECT_PLANE
-  , pattern GL_ONE
-  , pattern GL_ONE_MINUS_DST_ALPHA
-  , pattern GL_ONE_MINUS_DST_COLOR
-  , pattern GL_ONE_MINUS_SRC_ALPHA
-  , pattern GL_ONE_MINUS_SRC_COLOR
-  , pattern GL_OR
-  , pattern GL_ORDER
-  , pattern GL_OR_INVERTED
-  , pattern GL_OR_REVERSE
-  , pattern GL_OUT_OF_MEMORY
-  , pattern GL_PACK_ALIGNMENT
-  , pattern GL_PACK_LSB_FIRST
-  , pattern GL_PACK_ROW_LENGTH
-  , pattern GL_PACK_SKIP_PIXELS
-  , pattern GL_PACK_SKIP_ROWS
-  , pattern GL_PACK_SWAP_BYTES
-  , pattern GL_PASS_THROUGH_TOKEN
-  , pattern GL_PERSPECTIVE_CORRECTION_HINT
-  , pattern GL_PIXEL_MAP_A_TO_A
-  , pattern GL_PIXEL_MAP_A_TO_A_SIZE
-  , pattern GL_PIXEL_MAP_B_TO_B
-  , pattern GL_PIXEL_MAP_B_TO_B_SIZE
-  , pattern GL_PIXEL_MAP_G_TO_G
-  , pattern GL_PIXEL_MAP_G_TO_G_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_A
-  , pattern GL_PIXEL_MAP_I_TO_A_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_B
-  , pattern GL_PIXEL_MAP_I_TO_B_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_G
-  , pattern GL_PIXEL_MAP_I_TO_G_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_I
-  , pattern GL_PIXEL_MAP_I_TO_I_SIZE
-  , pattern GL_PIXEL_MAP_I_TO_R
-  , pattern GL_PIXEL_MAP_I_TO_R_SIZE
-  , pattern GL_PIXEL_MAP_R_TO_R
-  , pattern GL_PIXEL_MAP_R_TO_R_SIZE
-  , pattern GL_PIXEL_MAP_S_TO_S
-  , pattern GL_PIXEL_MAP_S_TO_S_SIZE
-  , pattern GL_PIXEL_MODE_BIT
-  , pattern GL_POINT
-  , pattern GL_POINTS
-  , pattern GL_POINT_BIT
-  , pattern GL_POINT_SIZE
-  , pattern GL_POINT_SIZE_GRANULARITY
-  , pattern GL_POINT_SIZE_RANGE
-  , pattern GL_POINT_SMOOTH
-  , pattern GL_POINT_SMOOTH_HINT
-  , pattern GL_POINT_TOKEN
-  , pattern GL_POLYGON
-  , pattern GL_POLYGON_BIT
-  , pattern GL_POLYGON_MODE
-  , pattern GL_POLYGON_OFFSET_FACTOR
-  , pattern GL_POLYGON_OFFSET_FILL
-  , pattern GL_POLYGON_OFFSET_LINE
-  , pattern GL_POLYGON_OFFSET_POINT
-  , pattern GL_POLYGON_OFFSET_UNITS
-  , pattern GL_POLYGON_SMOOTH
-  , pattern GL_POLYGON_SMOOTH_HINT
-  , pattern GL_POLYGON_STIPPLE
-  , pattern GL_POLYGON_STIPPLE_BIT
-  , pattern GL_POLYGON_TOKEN
-  , pattern GL_POSITION
-  , pattern GL_PROJECTION
-  , pattern GL_PROJECTION_MATRIX
-  , pattern GL_PROJECTION_STACK_DEPTH
-  , pattern GL_PROXY_TEXTURE_1D
-  , pattern GL_PROXY_TEXTURE_2D
-  , pattern GL_Q
-  , pattern GL_QUADRATIC_ATTENUATION
-  , pattern GL_QUADS
-  , pattern GL_QUAD_STRIP
-  , pattern GL_R
-  , pattern GL_R3_G3_B2
-  , pattern GL_READ_BUFFER
-  , pattern GL_RED
-  , pattern GL_RED_BIAS
-  , pattern GL_RED_BITS
-  , pattern GL_RED_SCALE
-  , pattern GL_RENDER
-  , pattern GL_RENDERER
-  , pattern GL_RENDER_MODE
-  , pattern GL_REPEAT
-  , pattern GL_REPLACE
-  , pattern GL_RETURN
-  , pattern GL_RGB
-  , pattern GL_RGB10
-  , pattern GL_RGB10_A2
-  , pattern GL_RGB12
-  , pattern GL_RGB16
-  , pattern GL_RGB4
-  , pattern GL_RGB5
-  , pattern GL_RGB5_A1
-  , pattern GL_RGB8
-  , pattern GL_RGBA
-  , pattern GL_RGBA12
-  , pattern GL_RGBA16
-  , pattern GL_RGBA2
-  , pattern GL_RGBA4
-  , pattern GL_RGBA8
-  , pattern GL_RGBA_MODE
-  , pattern GL_RIGHT
-  , pattern GL_S
-  , pattern GL_SCISSOR_BIT
-  , pattern GL_SCISSOR_BOX
-  , pattern GL_SCISSOR_TEST
-  , pattern GL_SELECT
-  , pattern GL_SELECTION_BUFFER_POINTER
-  , pattern GL_SELECTION_BUFFER_SIZE
-  , pattern GL_SET
-  , pattern GL_SHADE_MODEL
-  , pattern GL_SHININESS
-  , pattern GL_SHORT
-  , pattern GL_SMOOTH
-  , pattern GL_SPECULAR
-  , pattern GL_SPHERE_MAP
-  , pattern GL_SPOT_CUTOFF
-  , pattern GL_SPOT_DIRECTION
-  , pattern GL_SPOT_EXPONENT
-  , pattern GL_SRC_ALPHA
-  , pattern GL_SRC_ALPHA_SATURATE
-  , pattern GL_SRC_COLOR
-  , pattern GL_STACK_OVERFLOW
-  , pattern GL_STACK_UNDERFLOW
-  , pattern GL_STENCIL
-  , pattern GL_STENCIL_BITS
-  , pattern GL_STENCIL_BUFFER_BIT
-  , pattern GL_STENCIL_CLEAR_VALUE
-  , pattern GL_STENCIL_FAIL
-  , pattern GL_STENCIL_FUNC
-  , pattern GL_STENCIL_INDEX
-  , pattern GL_STENCIL_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_REF
-  , pattern GL_STENCIL_TEST
-  , pattern GL_STENCIL_VALUE_MASK
-  , pattern GL_STENCIL_WRITEMASK
-  , pattern GL_STEREO
-  , pattern GL_SUBPIXEL_BITS
-  , pattern GL_T
-  , pattern GL_T2F_C3F_V3F
-  , pattern GL_T2F_C4F_N3F_V3F
-  , pattern GL_T2F_C4UB_V3F
-  , pattern GL_T2F_N3F_V3F
-  , pattern GL_T2F_V3F
-  , pattern GL_T4F_C4F_N3F_V4F
-  , pattern GL_T4F_V4F
-  , pattern GL_TEXTURE
-  , pattern GL_TEXTURE_1D
-  , pattern GL_TEXTURE_2D
-  , pattern GL_TEXTURE_ALPHA_SIZE
-  , pattern GL_TEXTURE_BINDING_1D
-  , pattern GL_TEXTURE_BINDING_2D
-  , pattern GL_TEXTURE_BIT
-  , pattern GL_TEXTURE_BLUE_SIZE
-  , pattern GL_TEXTURE_BORDER
-  , pattern GL_TEXTURE_BORDER_COLOR
-  , pattern GL_TEXTURE_COMPONENTS
-  , pattern GL_TEXTURE_COORD_ARRAY
-  , pattern GL_TEXTURE_COORD_ARRAY_POINTER
-  , pattern GL_TEXTURE_COORD_ARRAY_SIZE
-  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE
-  , pattern GL_TEXTURE_COORD_ARRAY_TYPE
-  , pattern GL_TEXTURE_ENV
-  , pattern GL_TEXTURE_ENV_COLOR
-  , pattern GL_TEXTURE_ENV_MODE
-  , pattern GL_TEXTURE_GEN_MODE
-  , pattern GL_TEXTURE_GEN_Q
-  , pattern GL_TEXTURE_GEN_R
-  , pattern GL_TEXTURE_GEN_S
-  , pattern GL_TEXTURE_GEN_T
-  , pattern GL_TEXTURE_GREEN_SIZE
-  , pattern GL_TEXTURE_HEIGHT
-  , pattern GL_TEXTURE_INTENSITY_SIZE
-  , pattern GL_TEXTURE_INTERNAL_FORMAT
-  , pattern GL_TEXTURE_LUMINANCE_SIZE
-  , pattern GL_TEXTURE_MAG_FILTER
-  , pattern GL_TEXTURE_MATRIX
-  , pattern GL_TEXTURE_MIN_FILTER
-  , pattern GL_TEXTURE_PRIORITY
-  , pattern GL_TEXTURE_RED_SIZE
-  , pattern GL_TEXTURE_RESIDENT
-  , pattern GL_TEXTURE_STACK_DEPTH
-  , pattern GL_TEXTURE_WIDTH
-  , pattern GL_TEXTURE_WRAP_S
-  , pattern GL_TEXTURE_WRAP_T
-  , pattern GL_TRANSFORM_BIT
-  , pattern GL_TRIANGLES
-  , pattern GL_TRIANGLE_FAN
-  , pattern GL_TRIANGLE_STRIP
-  , pattern GL_TRUE
-  , pattern GL_UNPACK_ALIGNMENT
-  , pattern GL_UNPACK_LSB_FIRST
-  , pattern GL_UNPACK_ROW_LENGTH
-  , pattern GL_UNPACK_SKIP_PIXELS
-  , pattern GL_UNPACK_SKIP_ROWS
-  , pattern GL_UNPACK_SWAP_BYTES
-  , pattern GL_UNSIGNED_BYTE
-  , pattern GL_UNSIGNED_INT
-  , pattern GL_UNSIGNED_SHORT
-  , pattern GL_V2F
-  , pattern GL_V3F
-  , pattern GL_VENDOR
-  , pattern GL_VERSION
-  , pattern GL_VERTEX_ARRAY
-  , pattern GL_VERTEX_ARRAY_POINTER
-  , pattern GL_VERTEX_ARRAY_SIZE
-  , pattern GL_VERTEX_ARRAY_STRIDE
-  , pattern GL_VERTEX_ARRAY_TYPE
-  , pattern GL_VIEWPORT
-  , pattern GL_VIEWPORT_BIT
-  , pattern GL_XOR
-  , pattern GL_ZERO
-  , pattern GL_ZOOM_X
-  , pattern GL_ZOOM_Y
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard10
diff --git a/dist/build/autogen/Graphics/GL/Standard12.hs b/dist/build/autogen/Graphics/GL/Standard12.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard12.hs
+++ /dev/null
@@ -1,55 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard12 (
-  -- * Graphics.GL.Standard12
-    module Graphics.GL.Standard11
-  , glCopyTexSubImage3D
-  , glDrawRangeElements
-  , glTexImage3D
-  , glTexSubImage3D
-  , pattern GL_ALIASED_LINE_WIDTH_RANGE
-  , pattern GL_ALIASED_POINT_SIZE_RANGE
-  , pattern GL_BGR
-  , pattern GL_BGRA
-  , pattern GL_CLAMP_TO_EDGE
-  , pattern GL_LIGHT_MODEL_COLOR_CONTROL
-  , pattern GL_MAX_3D_TEXTURE_SIZE
-  , pattern GL_MAX_ELEMENTS_INDICES
-  , pattern GL_MAX_ELEMENTS_VERTICES
-  , pattern GL_PACK_IMAGE_HEIGHT
-  , pattern GL_PACK_SKIP_IMAGES
-  , pattern GL_PROXY_TEXTURE_3D
-  , pattern GL_RESCALE_NORMAL
-  , pattern GL_SEPARATE_SPECULAR_COLOR
-  , pattern GL_SINGLE_COLOR
-  , pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY
-  , pattern GL_SMOOTH_LINE_WIDTH_RANGE
-  , pattern GL_SMOOTH_POINT_SIZE_GRANULARITY
-  , pattern GL_SMOOTH_POINT_SIZE_RANGE
-  , pattern GL_TEXTURE_3D
-  , pattern GL_TEXTURE_BASE_LEVEL
-  , pattern GL_TEXTURE_BINDING_3D
-  , pattern GL_TEXTURE_DEPTH
-  , pattern GL_TEXTURE_MAX_LEVEL
-  , pattern GL_TEXTURE_MAX_LOD
-  , pattern GL_TEXTURE_MIN_LOD
-  , pattern GL_TEXTURE_WRAP_R
-  , pattern GL_UNPACK_IMAGE_HEIGHT
-  , pattern GL_UNPACK_SKIP_IMAGES
-  , pattern GL_UNSIGNED_BYTE_2_3_3_REV
-  , pattern GL_UNSIGNED_BYTE_3_3_2
-  , pattern GL_UNSIGNED_INT_10_10_10_2
-  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
-  , pattern GL_UNSIGNED_INT_8_8_8_8
-  , pattern GL_UNSIGNED_INT_8_8_8_8_REV
-  , pattern GL_UNSIGNED_SHORT_1_5_5_5_REV
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4
-  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV
-  , pattern GL_UNSIGNED_SHORT_5_5_5_1
-  , pattern GL_UNSIGNED_SHORT_5_6_5
-  , pattern GL_UNSIGNED_SHORT_5_6_5_REV
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard11
diff --git a/dist/build/autogen/Graphics/GL/Standard13.hs b/dist/build/autogen/Graphics/GL/Standard13.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard13.hs
+++ /dev/null
@@ -1,152 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard13 (
-  -- * Graphics.GL.Standard13
-    module Graphics.GL.Standard12
-  , glActiveTexture
-  , glClientActiveTexture
-  , glCompressedTexImage1D
-  , glCompressedTexImage2D
-  , glCompressedTexImage3D
-  , glCompressedTexSubImage1D
-  , glCompressedTexSubImage2D
-  , glCompressedTexSubImage3D
-  , glGetCompressedTexImage
-  , glLoadTransposeMatrixd
-  , glLoadTransposeMatrixf
-  , glMultTransposeMatrixd
-  , glMultTransposeMatrixf
-  , glMultiTexCoord1d
-  , glMultiTexCoord1dv
-  , glMultiTexCoord1f
-  , glMultiTexCoord1fv
-  , glMultiTexCoord1i
-  , glMultiTexCoord1iv
-  , glMultiTexCoord1s
-  , glMultiTexCoord1sv
-  , glMultiTexCoord2d
-  , glMultiTexCoord2dv
-  , glMultiTexCoord2f
-  , glMultiTexCoord2fv
-  , glMultiTexCoord2i
-  , glMultiTexCoord2iv
-  , glMultiTexCoord2s
-  , glMultiTexCoord2sv
-  , glMultiTexCoord3d
-  , glMultiTexCoord3dv
-  , glMultiTexCoord3f
-  , glMultiTexCoord3fv
-  , glMultiTexCoord3i
-  , glMultiTexCoord3iv
-  , glMultiTexCoord3s
-  , glMultiTexCoord3sv
-  , glMultiTexCoord4d
-  , glMultiTexCoord4dv
-  , glMultiTexCoord4f
-  , glMultiTexCoord4fv
-  , glMultiTexCoord4i
-  , glMultiTexCoord4iv
-  , glMultiTexCoord4s
-  , glMultiTexCoord4sv
-  , glSampleCoverage
-  , pattern GL_ACTIVE_TEXTURE
-  , pattern GL_ADD_SIGNED
-  , pattern GL_CLAMP_TO_BORDER
-  , pattern GL_CLIENT_ACTIVE_TEXTURE
-  , pattern GL_COMBINE
-  , pattern GL_COMBINE_ALPHA
-  , pattern GL_COMBINE_RGB
-  , pattern GL_COMPRESSED_ALPHA
-  , pattern GL_COMPRESSED_INTENSITY
-  , pattern GL_COMPRESSED_LUMINANCE
-  , pattern GL_COMPRESSED_LUMINANCE_ALPHA
-  , pattern GL_COMPRESSED_RGB
-  , pattern GL_COMPRESSED_RGBA
-  , pattern GL_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_CONSTANT
-  , pattern GL_DOT3_RGB
-  , pattern GL_DOT3_RGBA
-  , pattern GL_INTERPOLATE
-  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE
-  , pattern GL_MAX_TEXTURE_UNITS
-  , pattern GL_MULTISAMPLE
-  , pattern GL_MULTISAMPLE_BIT
-  , pattern GL_NORMAL_MAP
-  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
-  , pattern GL_OPERAND0_ALPHA
-  , pattern GL_OPERAND0_RGB
-  , pattern GL_OPERAND1_ALPHA
-  , pattern GL_OPERAND1_RGB
-  , pattern GL_OPERAND2_ALPHA
-  , pattern GL_OPERAND2_RGB
-  , pattern GL_PREVIOUS
-  , pattern GL_PRIMARY_COLOR
-  , pattern GL_PROXY_TEXTURE_CUBE_MAP
-  , pattern GL_REFLECTION_MAP
-  , pattern GL_RGB_SCALE
-  , pattern GL_SAMPLES
-  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
-  , pattern GL_SAMPLE_ALPHA_TO_ONE
-  , pattern GL_SAMPLE_BUFFERS
-  , pattern GL_SAMPLE_COVERAGE
-  , pattern GL_SAMPLE_COVERAGE_INVERT
-  , pattern GL_SAMPLE_COVERAGE_VALUE
-  , pattern GL_SOURCE0_ALPHA
-  , pattern GL_SOURCE0_RGB
-  , pattern GL_SOURCE1_ALPHA
-  , pattern GL_SOURCE1_RGB
-  , pattern GL_SOURCE2_ALPHA
-  , pattern GL_SOURCE2_RGB
-  , pattern GL_SUBTRACT
-  , pattern GL_TEXTURE0
-  , pattern GL_TEXTURE1
-  , pattern GL_TEXTURE10
-  , pattern GL_TEXTURE11
-  , pattern GL_TEXTURE12
-  , pattern GL_TEXTURE13
-  , pattern GL_TEXTURE14
-  , pattern GL_TEXTURE15
-  , pattern GL_TEXTURE16
-  , pattern GL_TEXTURE17
-  , pattern GL_TEXTURE18
-  , pattern GL_TEXTURE19
-  , pattern GL_TEXTURE2
-  , pattern GL_TEXTURE20
-  , pattern GL_TEXTURE21
-  , pattern GL_TEXTURE22
-  , pattern GL_TEXTURE23
-  , pattern GL_TEXTURE24
-  , pattern GL_TEXTURE25
-  , pattern GL_TEXTURE26
-  , pattern GL_TEXTURE27
-  , pattern GL_TEXTURE28
-  , pattern GL_TEXTURE29
-  , pattern GL_TEXTURE3
-  , pattern GL_TEXTURE30
-  , pattern GL_TEXTURE31
-  , pattern GL_TEXTURE4
-  , pattern GL_TEXTURE5
-  , pattern GL_TEXTURE6
-  , pattern GL_TEXTURE7
-  , pattern GL_TEXTURE8
-  , pattern GL_TEXTURE9
-  , pattern GL_TEXTURE_BINDING_CUBE_MAP
-  , pattern GL_TEXTURE_COMPRESSED
-  , pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE
-  , pattern GL_TEXTURE_COMPRESSION_HINT
-  , pattern GL_TEXTURE_CUBE_MAP
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
-  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y
-  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z
-  , pattern GL_TRANSPOSE_COLOR_MATRIX
-  , pattern GL_TRANSPOSE_MODELVIEW_MATRIX
-  , pattern GL_TRANSPOSE_PROJECTION_MATRIX
-  , pattern GL_TRANSPOSE_TEXTURE_MATRIX
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard12
diff --git a/dist/build/autogen/Graphics/GL/Standard14.hs b/dist/build/autogen/Graphics/GL/Standard14.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard14.hs
+++ /dev/null
@@ -1,105 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard14 (
-  -- * Graphics.GL.Standard14
-    module Graphics.GL.Standard13
-  , glBlendColor
-  , glBlendEquation
-  , glBlendFuncSeparate
-  , glFogCoordPointer
-  , glFogCoordd
-  , glFogCoorddv
-  , glFogCoordf
-  , glFogCoordfv
-  , glMultiDrawArrays
-  , glMultiDrawElements
-  , glPointParameterf
-  , glPointParameterfv
-  , glPointParameteri
-  , glPointParameteriv
-  , glSecondaryColor3b
-  , glSecondaryColor3bv
-  , glSecondaryColor3d
-  , glSecondaryColor3dv
-  , glSecondaryColor3f
-  , glSecondaryColor3fv
-  , glSecondaryColor3i
-  , glSecondaryColor3iv
-  , glSecondaryColor3s
-  , glSecondaryColor3sv
-  , glSecondaryColor3ub
-  , glSecondaryColor3ubv
-  , glSecondaryColor3ui
-  , glSecondaryColor3uiv
-  , glSecondaryColor3us
-  , glSecondaryColor3usv
-  , glSecondaryColorPointer
-  , glWindowPos2d
-  , glWindowPos2dv
-  , glWindowPos2f
-  , glWindowPos2fv
-  , glWindowPos2i
-  , glWindowPos2iv
-  , glWindowPos2s
-  , glWindowPos2sv
-  , glWindowPos3d
-  , glWindowPos3dv
-  , glWindowPos3f
-  , glWindowPos3fv
-  , glWindowPos3i
-  , glWindowPos3iv
-  , glWindowPos3s
-  , glWindowPos3sv
-  , pattern GL_BLEND_DST_ALPHA
-  , pattern GL_BLEND_DST_RGB
-  , pattern GL_BLEND_SRC_ALPHA
-  , pattern GL_BLEND_SRC_RGB
-  , pattern GL_COLOR_SUM
-  , pattern GL_COMPARE_R_TO_TEXTURE
-  , pattern GL_CONSTANT_ALPHA
-  , pattern GL_CONSTANT_COLOR
-  , pattern GL_CURRENT_FOG_COORDINATE
-  , pattern GL_CURRENT_SECONDARY_COLOR
-  , pattern GL_DECR_WRAP
-  , pattern GL_DEPTH_COMPONENT16
-  , pattern GL_DEPTH_COMPONENT24
-  , pattern GL_DEPTH_COMPONENT32
-  , pattern GL_DEPTH_TEXTURE_MODE
-  , pattern GL_FOG_COORDINATE
-  , pattern GL_FOG_COORDINATE_ARRAY
-  , pattern GL_FOG_COORDINATE_ARRAY_POINTER
-  , pattern GL_FOG_COORDINATE_ARRAY_STRIDE
-  , pattern GL_FOG_COORDINATE_ARRAY_TYPE
-  , pattern GL_FOG_COORDINATE_SOURCE
-  , pattern GL_FRAGMENT_DEPTH
-  , pattern GL_FUNC_ADD
-  , pattern GL_FUNC_REVERSE_SUBTRACT
-  , pattern GL_FUNC_SUBTRACT
-  , pattern GL_GENERATE_MIPMAP
-  , pattern GL_GENERATE_MIPMAP_HINT
-  , pattern GL_INCR_WRAP
-  , pattern GL_MAX
-  , pattern GL_MAX_TEXTURE_LOD_BIAS
-  , pattern GL_MIN
-  , pattern GL_MIRRORED_REPEAT
-  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
-  , pattern GL_ONE_MINUS_CONSTANT_COLOR
-  , pattern GL_POINT_DISTANCE_ATTENUATION
-  , pattern GL_POINT_FADE_THRESHOLD_SIZE
-  , pattern GL_POINT_SIZE_MAX
-  , pattern GL_POINT_SIZE_MIN
-  , pattern GL_SECONDARY_COLOR_ARRAY
-  , pattern GL_SECONDARY_COLOR_ARRAY_POINTER
-  , pattern GL_SECONDARY_COLOR_ARRAY_SIZE
-  , pattern GL_SECONDARY_COLOR_ARRAY_STRIDE
-  , pattern GL_SECONDARY_COLOR_ARRAY_TYPE
-  , pattern GL_TEXTURE_COMPARE_FUNC
-  , pattern GL_TEXTURE_COMPARE_MODE
-  , pattern GL_TEXTURE_DEPTH_SIZE
-  , pattern GL_TEXTURE_FILTER_CONTROL
-  , pattern GL_TEXTURE_LOD_BIAS
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard13
diff --git a/dist/build/autogen/Graphics/GL/Standard15.hs b/dist/build/autogen/Graphics/GL/Standard15.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard15.hs
+++ /dev/null
@@ -1,79 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard15 (
-  -- * Graphics.GL.Standard15
-    module Graphics.GL.Standard14
-  , glBeginQuery
-  , glBindBuffer
-  , glBufferData
-  , glBufferSubData
-  , glDeleteBuffers
-  , glDeleteQueries
-  , glEndQuery
-  , glGenBuffers
-  , glGenQueries
-  , glGetBufferParameteriv
-  , glGetBufferPointerv
-  , glGetBufferSubData
-  , glGetQueryObjectiv
-  , glGetQueryObjectuiv
-  , glGetQueryiv
-  , glIsBuffer
-  , glIsQuery
-  , glMapBuffer
-  , glUnmapBuffer
-  , pattern GL_ARRAY_BUFFER
-  , pattern GL_ARRAY_BUFFER_BINDING
-  , pattern GL_BUFFER_ACCESS
-  , pattern GL_BUFFER_MAPPED
-  , pattern GL_BUFFER_MAP_POINTER
-  , pattern GL_BUFFER_SIZE
-  , pattern GL_BUFFER_USAGE
-  , pattern GL_COLOR_ARRAY_BUFFER_BINDING
-  , pattern GL_CURRENT_FOG_COORD
-  , pattern GL_CURRENT_QUERY
-  , pattern GL_DYNAMIC_COPY
-  , pattern GL_DYNAMIC_DRAW
-  , pattern GL_DYNAMIC_READ
-  , pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING
-  , pattern GL_ELEMENT_ARRAY_BUFFER
-  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
-  , pattern GL_FOG_COORD
-  , pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
-  , pattern GL_FOG_COORD_ARRAY
-  , pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING
-  , pattern GL_FOG_COORD_ARRAY_POINTER
-  , pattern GL_FOG_COORD_ARRAY_STRIDE
-  , pattern GL_FOG_COORD_ARRAY_TYPE
-  , pattern GL_FOG_COORD_SRC
-  , pattern GL_INDEX_ARRAY_BUFFER_BINDING
-  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING
-  , pattern GL_QUERY_COUNTER_BITS
-  , pattern GL_QUERY_RESULT
-  , pattern GL_QUERY_RESULT_AVAILABLE
-  , pattern GL_READ_ONLY
-  , pattern GL_READ_WRITE
-  , pattern GL_SAMPLES_PASSED
-  , pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING
-  , pattern GL_SRC0_ALPHA
-  , pattern GL_SRC0_RGB
-  , pattern GL_SRC1_ALPHA
-  , pattern GL_SRC1_RGB
-  , pattern GL_SRC2_ALPHA
-  , pattern GL_SRC2_RGB
-  , pattern GL_STATIC_COPY
-  , pattern GL_STATIC_DRAW
-  , pattern GL_STATIC_READ
-  , pattern GL_STREAM_COPY
-  , pattern GL_STREAM_DRAW
-  , pattern GL_STREAM_READ
-  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
-  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING
-  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
-  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING
-  , pattern GL_WRITE_ONLY
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard14
diff --git a/dist/build/autogen/Graphics/GL/Standard20.hs b/dist/build/autogen/Graphics/GL/Standard20.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard20.hs
+++ /dev/null
@@ -1,187 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard20 (
-  -- * Graphics.GL.Standard20
-    module Graphics.GL.Standard15
-  , glAttachShader
-  , glBindAttribLocation
-  , glBlendEquationSeparate
-  , glCompileShader
-  , glCreateProgram
-  , glCreateShader
-  , glDeleteProgram
-  , glDeleteShader
-  , glDetachShader
-  , glDisableVertexAttribArray
-  , glDrawBuffers
-  , glEnableVertexAttribArray
-  , glGetActiveAttrib
-  , glGetActiveUniform
-  , glGetAttachedShaders
-  , glGetAttribLocation
-  , glGetProgramInfoLog
-  , glGetProgramiv
-  , glGetShaderInfoLog
-  , glGetShaderSource
-  , glGetShaderiv
-  , glGetUniformLocation
-  , glGetUniformfv
-  , glGetUniformiv
-  , glGetVertexAttribPointerv
-  , glGetVertexAttribdv
-  , glGetVertexAttribfv
-  , glGetVertexAttribiv
-  , glIsProgram
-  , glIsShader
-  , glLinkProgram
-  , glShaderSource
-  , glStencilFuncSeparate
-  , glStencilMaskSeparate
-  , glStencilOpSeparate
-  , glUniform1f
-  , glUniform1fv
-  , glUniform1i
-  , glUniform1iv
-  , glUniform2f
-  , glUniform2fv
-  , glUniform2i
-  , glUniform2iv
-  , glUniform3f
-  , glUniform3fv
-  , glUniform3i
-  , glUniform3iv
-  , glUniform4f
-  , glUniform4fv
-  , glUniform4i
-  , glUniform4iv
-  , glUniformMatrix2fv
-  , glUniformMatrix3fv
-  , glUniformMatrix4fv
-  , glUseProgram
-  , glValidateProgram
-  , glVertexAttrib1d
-  , glVertexAttrib1dv
-  , glVertexAttrib1f
-  , glVertexAttrib1fv
-  , glVertexAttrib1s
-  , glVertexAttrib1sv
-  , glVertexAttrib2d
-  , glVertexAttrib2dv
-  , glVertexAttrib2f
-  , glVertexAttrib2fv
-  , glVertexAttrib2s
-  , glVertexAttrib2sv
-  , glVertexAttrib3d
-  , glVertexAttrib3dv
-  , glVertexAttrib3f
-  , glVertexAttrib3fv
-  , glVertexAttrib3s
-  , glVertexAttrib3sv
-  , glVertexAttrib4Nbv
-  , glVertexAttrib4Niv
-  , glVertexAttrib4Nsv
-  , glVertexAttrib4Nub
-  , glVertexAttrib4Nubv
-  , glVertexAttrib4Nuiv
-  , glVertexAttrib4Nusv
-  , glVertexAttrib4bv
-  , glVertexAttrib4d
-  , glVertexAttrib4dv
-  , glVertexAttrib4f
-  , glVertexAttrib4fv
-  , glVertexAttrib4iv
-  , glVertexAttrib4s
-  , glVertexAttrib4sv
-  , glVertexAttrib4ubv
-  , glVertexAttrib4uiv
-  , glVertexAttrib4usv
-  , glVertexAttribPointer
-  , pattern GL_ACTIVE_ATTRIBUTES
-  , pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
-  , pattern GL_ACTIVE_UNIFORMS
-  , pattern GL_ACTIVE_UNIFORM_MAX_LENGTH
-  , pattern GL_ATTACHED_SHADERS
-  , pattern GL_BLEND_EQUATION_ALPHA
-  , pattern GL_BLEND_EQUATION_RGB
-  , pattern GL_BOOL
-  , pattern GL_BOOL_VEC2
-  , pattern GL_BOOL_VEC3
-  , pattern GL_BOOL_VEC4
-  , pattern GL_COMPILE_STATUS
-  , pattern GL_COORD_REPLACE
-  , pattern GL_CURRENT_PROGRAM
-  , pattern GL_CURRENT_VERTEX_ATTRIB
-  , pattern GL_DELETE_STATUS
-  , pattern GL_DRAW_BUFFER0
-  , pattern GL_DRAW_BUFFER1
-  , pattern GL_DRAW_BUFFER10
-  , pattern GL_DRAW_BUFFER11
-  , pattern GL_DRAW_BUFFER12
-  , pattern GL_DRAW_BUFFER13
-  , pattern GL_DRAW_BUFFER14
-  , pattern GL_DRAW_BUFFER15
-  , pattern GL_DRAW_BUFFER2
-  , pattern GL_DRAW_BUFFER3
-  , pattern GL_DRAW_BUFFER4
-  , pattern GL_DRAW_BUFFER5
-  , pattern GL_DRAW_BUFFER6
-  , pattern GL_DRAW_BUFFER7
-  , pattern GL_DRAW_BUFFER8
-  , pattern GL_DRAW_BUFFER9
-  , pattern GL_FLOAT_MAT2
-  , pattern GL_FLOAT_MAT3
-  , pattern GL_FLOAT_MAT4
-  , pattern GL_FLOAT_VEC2
-  , pattern GL_FLOAT_VEC3
-  , pattern GL_FLOAT_VEC4
-  , pattern GL_FRAGMENT_SHADER
-  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT
-  , pattern GL_INFO_LOG_LENGTH
-  , pattern GL_INT_VEC2
-  , pattern GL_INT_VEC3
-  , pattern GL_INT_VEC4
-  , pattern GL_LINK_STATUS
-  , pattern GL_LOWER_LEFT
-  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_DRAW_BUFFERS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
-  , pattern GL_MAX_TEXTURE_COORDS
-  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_VARYING_FLOATS
-  , pattern GL_MAX_VERTEX_ATTRIBS
-  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
-  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS
-  , pattern GL_POINT_SPRITE
-  , pattern GL_POINT_SPRITE_COORD_ORIGIN
-  , pattern GL_SAMPLER_1D
-  , pattern GL_SAMPLER_1D_SHADOW
-  , pattern GL_SAMPLER_2D
-  , pattern GL_SAMPLER_2D_SHADOW
-  , pattern GL_SAMPLER_3D
-  , pattern GL_SAMPLER_CUBE
-  , pattern GL_SHADER_SOURCE_LENGTH
-  , pattern GL_SHADER_TYPE
-  , pattern GL_SHADING_LANGUAGE_VERSION
-  , pattern GL_STENCIL_BACK_FAIL
-  , pattern GL_STENCIL_BACK_FUNC
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
-  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
-  , pattern GL_STENCIL_BACK_REF
-  , pattern GL_STENCIL_BACK_VALUE_MASK
-  , pattern GL_STENCIL_BACK_WRITEMASK
-  , pattern GL_UPPER_LEFT
-  , pattern GL_VALIDATE_STATUS
-  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
-  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
-  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
-  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
-  , pattern GL_VERTEX_PROGRAM_POINT_SIZE
-  , pattern GL_VERTEX_PROGRAM_TWO_SIDE
-  , pattern GL_VERTEX_SHADER
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard15
diff --git a/dist/build/autogen/Graphics/GL/Standard21.hs b/dist/build/autogen/Graphics/GL/Standard21.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard21.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard21 (
-  -- * Graphics.GL.Standard21
-    module Graphics.GL.Standard20
-  , glUniformMatrix2x3fv
-  , glUniformMatrix2x4fv
-  , glUniformMatrix3x2fv
-  , glUniformMatrix3x4fv
-  , glUniformMatrix4x2fv
-  , glUniformMatrix4x3fv
-  , pattern GL_COMPRESSED_SLUMINANCE
-  , pattern GL_COMPRESSED_SLUMINANCE_ALPHA
-  , pattern GL_COMPRESSED_SRGB
-  , pattern GL_COMPRESSED_SRGB_ALPHA
-  , pattern GL_CURRENT_RASTER_SECONDARY_COLOR
-  , pattern GL_FLOAT_MAT2x3
-  , pattern GL_FLOAT_MAT2x4
-  , pattern GL_FLOAT_MAT3x2
-  , pattern GL_FLOAT_MAT3x4
-  , pattern GL_FLOAT_MAT4x2
-  , pattern GL_FLOAT_MAT4x3
-  , pattern GL_PIXEL_PACK_BUFFER
-  , pattern GL_PIXEL_PACK_BUFFER_BINDING
-  , pattern GL_PIXEL_UNPACK_BUFFER
-  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING
-  , pattern GL_SLUMINANCE
-  , pattern GL_SLUMINANCE8
-  , pattern GL_SLUMINANCE8_ALPHA8
-  , pattern GL_SLUMINANCE_ALPHA
-  , pattern GL_SRGB
-  , pattern GL_SRGB8
-  , pattern GL_SRGB8_ALPHA8
-  , pattern GL_SRGB_ALPHA
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard20
diff --git a/dist/build/autogen/Graphics/GL/Standard30.hs b/dist/build/autogen/Graphics/GL/Standard30.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard30.hs
+++ /dev/null
@@ -1,331 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard30 (
-  -- * Graphics.GL.Standard30
-    module Graphics.GL.Standard21
-  , glBeginConditionalRender
-  , glBeginTransformFeedback
-  , glBindBufferBase
-  , glBindBufferRange
-  , glBindFragDataLocation
-  , glBindFramebuffer
-  , glBindRenderbuffer
-  , glBindVertexArray
-  , glBlitFramebuffer
-  , glCheckFramebufferStatus
-  , glClampColor
-  , glClearBufferfi
-  , glClearBufferfv
-  , glClearBufferiv
-  , glClearBufferuiv
-  , glColorMaski
-  , glDeleteFramebuffers
-  , glDeleteRenderbuffers
-  , glDeleteVertexArrays
-  , glDisablei
-  , glEnablei
-  , glEndConditionalRender
-  , glEndTransformFeedback
-  , glFlushMappedBufferRange
-  , glFramebufferRenderbuffer
-  , glFramebufferTexture1D
-  , glFramebufferTexture2D
-  , glFramebufferTexture3D
-  , glFramebufferTextureLayer
-  , glGenFramebuffers
-  , glGenRenderbuffers
-  , glGenVertexArrays
-  , glGenerateMipmap
-  , glGetBooleani_v
-  , glGetFragDataLocation
-  , glGetFramebufferAttachmentParameteriv
-  , glGetIntegeri_v
-  , glGetRenderbufferParameteriv
-  , glGetStringi
-  , glGetTexParameterIiv
-  , glGetTexParameterIuiv
-  , glGetTransformFeedbackVarying
-  , glGetUniformuiv
-  , glGetVertexAttribIiv
-  , glGetVertexAttribIuiv
-  , glIsEnabledi
-  , glIsFramebuffer
-  , glIsRenderbuffer
-  , glIsVertexArray
-  , glMapBufferRange
-  , glRenderbufferStorage
-  , glRenderbufferStorageMultisample
-  , glTexParameterIiv
-  , glTexParameterIuiv
-  , glTransformFeedbackVaryings
-  , glUniform1ui
-  , glUniform1uiv
-  , glUniform2ui
-  , glUniform2uiv
-  , glUniform3ui
-  , glUniform3uiv
-  , glUniform4ui
-  , glUniform4uiv
-  , glVertexAttribI1i
-  , glVertexAttribI1iv
-  , glVertexAttribI1ui
-  , glVertexAttribI1uiv
-  , glVertexAttribI2i
-  , glVertexAttribI2iv
-  , glVertexAttribI2ui
-  , glVertexAttribI2uiv
-  , glVertexAttribI3i
-  , glVertexAttribI3iv
-  , glVertexAttribI3ui
-  , glVertexAttribI3uiv
-  , glVertexAttribI4bv
-  , glVertexAttribI4i
-  , glVertexAttribI4iv
-  , glVertexAttribI4sv
-  , glVertexAttribI4ubv
-  , glVertexAttribI4ui
-  , glVertexAttribI4uiv
-  , glVertexAttribI4usv
-  , glVertexAttribIPointer
-  , pattern GL_ALPHA_INTEGER
-  , pattern GL_BGRA_INTEGER
-  , pattern GL_BGR_INTEGER
-  , pattern GL_BLUE_INTEGER
-  , pattern GL_BUFFER_ACCESS_FLAGS
-  , pattern GL_BUFFER_MAP_LENGTH
-  , pattern GL_BUFFER_MAP_OFFSET
-  , pattern GL_CLAMP_FRAGMENT_COLOR
-  , pattern GL_CLAMP_READ_COLOR
-  , pattern GL_CLAMP_VERTEX_COLOR
-  , pattern GL_CLIP_DISTANCE0
-  , pattern GL_CLIP_DISTANCE1
-  , pattern GL_CLIP_DISTANCE2
-  , pattern GL_CLIP_DISTANCE3
-  , pattern GL_CLIP_DISTANCE4
-  , pattern GL_CLIP_DISTANCE5
-  , pattern GL_CLIP_DISTANCE6
-  , pattern GL_CLIP_DISTANCE7
-  , pattern GL_COLOR_ATTACHMENT0
-  , pattern GL_COLOR_ATTACHMENT1
-  , pattern GL_COLOR_ATTACHMENT10
-  , pattern GL_COLOR_ATTACHMENT11
-  , pattern GL_COLOR_ATTACHMENT12
-  , pattern GL_COLOR_ATTACHMENT13
-  , pattern GL_COLOR_ATTACHMENT14
-  , pattern GL_COLOR_ATTACHMENT15
-  , pattern GL_COLOR_ATTACHMENT16
-  , pattern GL_COLOR_ATTACHMENT17
-  , pattern GL_COLOR_ATTACHMENT18
-  , pattern GL_COLOR_ATTACHMENT19
-  , pattern GL_COLOR_ATTACHMENT2
-  , pattern GL_COLOR_ATTACHMENT20
-  , pattern GL_COLOR_ATTACHMENT21
-  , pattern GL_COLOR_ATTACHMENT22
-  , pattern GL_COLOR_ATTACHMENT23
-  , pattern GL_COLOR_ATTACHMENT24
-  , pattern GL_COLOR_ATTACHMENT25
-  , pattern GL_COLOR_ATTACHMENT26
-  , pattern GL_COLOR_ATTACHMENT27
-  , pattern GL_COLOR_ATTACHMENT28
-  , pattern GL_COLOR_ATTACHMENT29
-  , pattern GL_COLOR_ATTACHMENT3
-  , pattern GL_COLOR_ATTACHMENT30
-  , pattern GL_COLOR_ATTACHMENT31
-  , pattern GL_COLOR_ATTACHMENT4
-  , pattern GL_COLOR_ATTACHMENT5
-  , pattern GL_COLOR_ATTACHMENT6
-  , pattern GL_COLOR_ATTACHMENT7
-  , pattern GL_COLOR_ATTACHMENT8
-  , pattern GL_COLOR_ATTACHMENT9
-  , pattern GL_COMPARE_REF_TO_TEXTURE
-  , pattern GL_COMPRESSED_RED
-  , pattern GL_COMPRESSED_RED_RGTC1
-  , pattern GL_COMPRESSED_RG
-  , pattern GL_COMPRESSED_RG_RGTC2
-  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1
-  , pattern GL_COMPRESSED_SIGNED_RG_RGTC2
-  , pattern GL_CONTEXT_FLAGS
-  , pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT
-  , pattern GL_DEPTH24_STENCIL8
-  , pattern GL_DEPTH32F_STENCIL8
-  , pattern GL_DEPTH_ATTACHMENT
-  , pattern GL_DEPTH_COMPONENT32F
-  , pattern GL_DEPTH_STENCIL
-  , pattern GL_DEPTH_STENCIL_ATTACHMENT
-  , pattern GL_DRAW_FRAMEBUFFER
-  , pattern GL_DRAW_FRAMEBUFFER_BINDING
-  , pattern GL_FIXED_ONLY
-  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
-  , pattern GL_FRAMEBUFFER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
-  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
-  , pattern GL_FRAMEBUFFER_BINDING
-  , pattern GL_FRAMEBUFFER_COMPLETE
-  , pattern GL_FRAMEBUFFER_DEFAULT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
-  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
-  , pattern GL_FRAMEBUFFER_SRGB
-  , pattern GL_FRAMEBUFFER_UNDEFINED
-  , pattern GL_FRAMEBUFFER_UNSUPPORTED
-  , pattern GL_GREEN_INTEGER
-  , pattern GL_HALF_FLOAT
-  , pattern GL_INDEX
-  , pattern GL_INTERLEAVED_ATTRIBS
-  , pattern GL_INT_SAMPLER_1D
-  , pattern GL_INT_SAMPLER_1D_ARRAY
-  , pattern GL_INT_SAMPLER_2D
-  , pattern GL_INT_SAMPLER_2D_ARRAY
-  , pattern GL_INT_SAMPLER_3D
-  , pattern GL_INT_SAMPLER_CUBE
-  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
-  , pattern GL_MAJOR_VERSION
-  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
-  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
-  , pattern GL_MAP_INVALIDATE_RANGE_BIT
-  , pattern GL_MAP_READ_BIT
-  , pattern GL_MAP_UNSYNCHRONIZED_BIT
-  , pattern GL_MAP_WRITE_BIT
-  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS
-  , pattern GL_MAX_CLIP_DISTANCES
-  , pattern GL_MAX_COLOR_ATTACHMENTS
-  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET
-  , pattern GL_MAX_RENDERBUFFER_SIZE
-  , pattern GL_MAX_SAMPLES
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
-  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
-  , pattern GL_MAX_VARYING_COMPONENTS
-  , pattern GL_MINOR_VERSION
-  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET
-  , pattern GL_NUM_EXTENSIONS
-  , pattern GL_PRIMITIVES_GENERATED
-  , pattern GL_PROXY_TEXTURE_1D_ARRAY
-  , pattern GL_PROXY_TEXTURE_2D_ARRAY
-  , pattern GL_QUERY_BY_REGION_NO_WAIT
-  , pattern GL_QUERY_BY_REGION_WAIT
-  , pattern GL_QUERY_NO_WAIT
-  , pattern GL_QUERY_WAIT
-  , pattern GL_R11F_G11F_B10F
-  , pattern GL_R16
-  , pattern GL_R16F
-  , pattern GL_R16I
-  , pattern GL_R16UI
-  , pattern GL_R32F
-  , pattern GL_R32I
-  , pattern GL_R32UI
-  , pattern GL_R8
-  , pattern GL_R8I
-  , pattern GL_R8UI
-  , pattern GL_RASTERIZER_DISCARD
-  , pattern GL_READ_FRAMEBUFFER
-  , pattern GL_READ_FRAMEBUFFER_BINDING
-  , pattern GL_RED_INTEGER
-  , pattern GL_RENDERBUFFER
-  , pattern GL_RENDERBUFFER_ALPHA_SIZE
-  , pattern GL_RENDERBUFFER_BINDING
-  , pattern GL_RENDERBUFFER_BLUE_SIZE
-  , pattern GL_RENDERBUFFER_DEPTH_SIZE
-  , pattern GL_RENDERBUFFER_GREEN_SIZE
-  , pattern GL_RENDERBUFFER_HEIGHT
-  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
-  , pattern GL_RENDERBUFFER_RED_SIZE
-  , pattern GL_RENDERBUFFER_SAMPLES
-  , pattern GL_RENDERBUFFER_STENCIL_SIZE
-  , pattern GL_RENDERBUFFER_WIDTH
-  , pattern GL_RG
-  , pattern GL_RG16
-  , pattern GL_RG16F
-  , pattern GL_RG16I
-  , pattern GL_RG16UI
-  , pattern GL_RG32F
-  , pattern GL_RG32I
-  , pattern GL_RG32UI
-  , pattern GL_RG8
-  , pattern GL_RG8I
-  , pattern GL_RG8UI
-  , pattern GL_RGB16F
-  , pattern GL_RGB16I
-  , pattern GL_RGB16UI
-  , pattern GL_RGB32F
-  , pattern GL_RGB32I
-  , pattern GL_RGB32UI
-  , pattern GL_RGB8I
-  , pattern GL_RGB8UI
-  , pattern GL_RGB9_E5
-  , pattern GL_RGBA16F
-  , pattern GL_RGBA16I
-  , pattern GL_RGBA16UI
-  , pattern GL_RGBA32F
-  , pattern GL_RGBA32I
-  , pattern GL_RGBA32UI
-  , pattern GL_RGBA8I
-  , pattern GL_RGBA8UI
-  , pattern GL_RGBA_INTEGER
-  , pattern GL_RGB_INTEGER
-  , pattern GL_RG_INTEGER
-  , pattern GL_SAMPLER_1D_ARRAY
-  , pattern GL_SAMPLER_1D_ARRAY_SHADOW
-  , pattern GL_SAMPLER_2D_ARRAY
-  , pattern GL_SAMPLER_2D_ARRAY_SHADOW
-  , pattern GL_SAMPLER_CUBE_SHADOW
-  , pattern GL_SEPARATE_ATTRIBS
-  , pattern GL_STENCIL_ATTACHMENT
-  , pattern GL_STENCIL_INDEX1
-  , pattern GL_STENCIL_INDEX16
-  , pattern GL_STENCIL_INDEX4
-  , pattern GL_STENCIL_INDEX8
-  , pattern GL_TEXTURE_1D_ARRAY
-  , pattern GL_TEXTURE_2D_ARRAY
-  , pattern GL_TEXTURE_ALPHA_TYPE
-  , pattern GL_TEXTURE_BINDING_1D_ARRAY
-  , pattern GL_TEXTURE_BINDING_2D_ARRAY
-  , pattern GL_TEXTURE_BLUE_TYPE
-  , pattern GL_TEXTURE_DEPTH_TYPE
-  , pattern GL_TEXTURE_GREEN_TYPE
-  , pattern GL_TEXTURE_INTENSITY_TYPE
-  , pattern GL_TEXTURE_LUMINANCE_TYPE
-  , pattern GL_TEXTURE_RED_TYPE
-  , pattern GL_TEXTURE_SHARED_SIZE
-  , pattern GL_TEXTURE_STENCIL_SIZE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
-  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START
-  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
-  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS
-  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
-  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
-  , pattern GL_UNSIGNED_INT_24_8
-  , pattern GL_UNSIGNED_INT_5_9_9_9_REV
-  , pattern GL_UNSIGNED_INT_SAMPLER_1D
-  , pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
-  , pattern GL_UNSIGNED_INT_SAMPLER_3D
-  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE
-  , pattern GL_UNSIGNED_INT_VEC2
-  , pattern GL_UNSIGNED_INT_VEC3
-  , pattern GL_UNSIGNED_INT_VEC4
-  , pattern GL_UNSIGNED_NORMALIZED
-  , pattern GL_VERTEX_ARRAY_BINDING
-  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard21
diff --git a/dist/build/autogen/Graphics/GL/Standard31.hs b/dist/build/autogen/Graphics/GL/Standard31.hs
deleted file mode 100644
--- a/dist/build/autogen/Graphics/GL/Standard31.hs
+++ /dev/null
@@ -1,84 +0,0 @@
--- This file was automatically generated.
-{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
-module Graphics.GL.Standard31 (
-  -- * Graphics.GL.Standard31
-    module Graphics.GL.Standard30
-  , glCopyBufferSubData
-  , glDrawArraysInstanced
-  , glDrawElementsInstanced
-  , glGetActiveUniformBlockName
-  , glGetActiveUniformBlockiv
-  , glGetActiveUniformName
-  , glGetActiveUniformsiv
-  , glGetUniformBlockIndex
-  , glGetUniformIndices
-  , glPrimitiveRestartIndex
-  , glTexBuffer
-  , glUniformBlockBinding
-  , pattern GL_ACTIVE_UNIFORM_BLOCKS
-  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
-  , pattern GL_BLEND_COLOR
-  , pattern GL_COPY_READ_BUFFER
-  , pattern GL_COPY_WRITE_BUFFER
-  , pattern GL_INT_SAMPLER_2D_RECT
-  , pattern GL_INT_SAMPLER_BUFFER
-  , pattern GL_INVALID_INDEX
-  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
-  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
-  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
-  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
-  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
-  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE
-  , pattern GL_MAX_TEXTURE_BUFFER_SIZE
-  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
-  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
-  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
-  , pattern GL_PRIMITIVE_RESTART
-  , pattern GL_PRIMITIVE_RESTART_INDEX
-  , pattern GL_PROXY_TEXTURE_RECTANGLE
-  , pattern GL_R16_SNORM
-  , pattern GL_R8_SNORM
-  , pattern GL_RG16_SNORM
-  , pattern GL_RG8_SNORM
-  , pattern GL_RGB16_SNORM
-  , pattern GL_RGB8_SNORM
-  , pattern GL_RGBA16_SNORM
-  , pattern GL_RGBA8_SNORM
-  , pattern GL_SAMPLER_2D_RECT
-  , pattern GL_SAMPLER_2D_RECT_SHADOW
-  , pattern GL_SAMPLER_BUFFER
-  , pattern GL_SIGNED_NORMALIZED
-  , pattern GL_TEXTURE_BINDING_BUFFER
-  , pattern GL_TEXTURE_BINDING_RECTANGLE
-  , pattern GL_TEXTURE_BUFFER
-  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING
-  , pattern GL_TEXTURE_RECTANGLE
-  , pattern GL_UNIFORM_ARRAY_STRIDE
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
-  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
-  , pattern GL_UNIFORM_BLOCK_BINDING
-  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
-  , pattern GL_UNIFORM_BLOCK_INDEX
-  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
-  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
-  , pattern GL_UNIFORM_BUFFER
-  , pattern GL_UNIFORM_BUFFER_BINDING
-  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
-  , pattern GL_UNIFORM_BUFFER_SIZE
-  , pattern GL_UNIFORM_BUFFER_START
-  , pattern GL_UNIFORM_IS_ROW_MAJOR
-  , pattern GL_UNIFORM_MATRIX_STRIDE
-  , pattern GL_UNIFORM_NAME_LENGTH
-  , pattern GL_UNIFORM_OFFSET
-  , pattern GL_UNIFORM_SIZE
-  , pattern GL_UNIFORM_TYPE
-  , pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT
-  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER
-) where
-
-import Graphics.GL.Internal.Shared
-
-import Graphics.GL.Standard30
diff --git a/extensions.txt b/extensions.txt
deleted file mode 100644
--- a/extensions.txt
+++ /dev/null
@@ -1,863 +0,0 @@
-GL_3DFX_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/3dfx_multisample.txt
-GL_3DFX_tbuffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/tbuffer.txt
-GL_3DFX_texture_compression_FXT1 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/texture_compression_FXT1.txt
-GL_3DL_stereo_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DL/stereo_control.txt
-GL_AMD_blend_minmax_factor https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/blend_minmax_factor.txt
-GL_AMD_compressed_3DC_texture https://www.khronos.org/registry/gles/extensions/AMD/AMD_compressed_3DC_texture.txt
-GL_AMD_compressed_ATC_texture https://www.khronos.org/registry/gles/extensions/AMD/AMD_compressed_ATC_texture.txt
-GL_AMD_conservative_depth https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/conservative_depth.txt
-GL_AMD_debug_output https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/debug_output.txt
-GL_AMD_depth_clamp_separate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/depth_clamp_separate.txt
-GL_AMD_draw_buffers_blend https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/draw_buffers_blend.txt
-GL_AMD_framebuffer_sample_positions https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_framebuffer_sample_positions.txt
-GL_AMD_gcn_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gcn_shader.txt
-GL_AMD_glx_gpu_association https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/glx_gpu_association.txt
-GL_AMD_gpu_shader_half_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gpu_shader_half_float.txt
-GL_AMD_gpu_shader_int64 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gpu_shader_int64.txt
-GL_AMD_interleaved_elements https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/interleaved_elements.txt
-GL_AMD_multi_draw_indirect https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/multi_draw_indirect.txt
-GL_AMD_name_gen_delete https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/name_gen_delete.txt
-GL_AMD_occlusion_query_event https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/occlusion_query_event.txt
-GL_AMD_performance_monitor https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/performance_monitor.txt
-GL_AMD_performance_monitor https://www.khronos.org/registry/gles/extensions/AMD/AMD_performance_monitor.txt
-GL_AMD_pinned_memory https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/pinned_memory.txt
-GL_AMD_program_binary_Z400 https://www.khronos.org/registry/gles/extensions/AMD/AMD_program_binary_Z400.txt
-GL_AMD_query_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/query_buffer_object.txt
-GL_AMD_sample_positions https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/sample_positions.txt
-GL_AMD_seamless_cubemap_per_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/seamless_cubemap_per_texture.txt
-GL_AMD_shader_atomic_counter_ops https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_atomic_counter_ops.txt
-GL_AMD_shader_ballot https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_ballot.txt
-GL_AMD_shader_explicit_vertex_parameter https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_explicit_vertex_parameter.txt
-GL_AMD_shader_stencil_export https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_stencil_export.txt
-GL_AMD_shader_stencil_value_export https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_stencil_value_export.txt
-GL_AMD_shader_trinary_minmax https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_trinary_minmax.txt
-GL_AMD_sparse_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/sparse_texture.txt
-GL_AMD_stencil_operation_extended https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/stencil_operation_extended.txt
-GL_AMD_texture_texture4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/texture_texture4.txt
-GL_AMD_transform_feedback3_lines_triangles https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback3_lines_triangles.txt
-GL_AMD_transform_feedback4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback4.txt
-GL_AMD_vertex_shader_layer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_layer.txt
-GL_AMD_vertex_shader_tessellator https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_tessellator.txt
-GL_AMD_vertex_shader_viewport_index https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_viewport_index.txt
-GL_AMD_wgl_gpu_association https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/wgl_gpu_association.txt
-GL_ANDROID_extension_pack_es31a https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt
-GL_ANGLE_depth_texture https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_depth_texture.txt
-GL_ANGLE_framebuffer_blit https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_blit.txt
-GL_ANGLE_framebuffer_multisample https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_multisample.txt
-GL_ANGLE_instanced_arrays https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt
-GL_ANGLE_pack_reverse_row_order https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_pack_reverse_row_order.txt
-GL_ANGLE_program_binary https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_program_binary.txt
-GL_ANGLE_texture_compression_dxt3 https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_compression_dxt3.txt
-GL_ANGLE_texture_compression_dxt5 https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_compression_dxt5.txt
-GL_ANGLE_texture_usage https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_usage.txt
-GL_ANGLE_translated_shader_source https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_translated_shader_source.txt
-GL_APPLE_aux_depth_stencil https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/aux_depth_stencil.txt
-GL_APPLE_client_storage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/client_storage.txt
-GL_APPLE_clip_distance https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_clip_distance.txt
-GL_APPLE_color_buffer_packed_float https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_color_buffer_packed_float.txt
-GL_APPLE_copy_texture_levels https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_copy_texture_levels.txt
-GL_APPLE_element_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/element_array.txt
-GL_APPLE_fence https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/fence.txt
-GL_APPLE_float_pixels https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/float_pixels.txt
-GL_APPLE_flush_buffer_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/flush_buffer_range.txt
-GL_APPLE_framebuffer_multisample https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_framebuffer_multisample.txt
-GL_APPLE_object_purgeable https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/object_purgeable.txt
-GL_APPLE_rgb_422 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/rgb_422.txt
-GL_APPLE_rgb_422 https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_rgb_422.txt
-GL_APPLE_row_bytes https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/row_bytes.txt
-GL_APPLE_specular_vector https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/specular_vector.txt
-GL_APPLE_sync https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt
-GL_APPLE_texture_2D_limited_npot https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_2D_limited_npot.txt
-GL_APPLE_texture_format_BGRA8888 https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_format_BGRA8888.txt
-GL_APPLE_texture_max_level https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_max_level.txt
-GL_APPLE_texture_packed_float https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_packed_float.txt
-GL_APPLE_texture_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/texture_range.txt
-GL_APPLE_transform_hint https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/transform_hint.txt
-GL_APPLE_vertex_array_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_array_object.txt
-GL_APPLE_vertex_array_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_array_range.txt
-GL_APPLE_vertex_program_evaluators https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_program_evaluators.txt
-GL_APPLE_ycbcr_422 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/ycbcr_422.txt
-GL_ARB_ES2_compatibility https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES2_compatibility.txt
-GL_ARB_ES3_1_compatibility https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_1_compatibility.txt
-GL_ARB_ES3_2_compatibility https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_2_compatibility.txt
-GL_ARB_ES3_compatibility https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_compatibility.txt
-GL_ARB_arrays_of_arrays https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/arrays_of_arrays.txt
-GL_ARB_base_instance https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/base_instance.txt
-GL_ARB_bindless_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/bindless_texture.txt
-GL_ARB_blend_func_extended https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/blend_func_extended.txt
-GL_ARB_buffer_storage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/buffer_storage.txt
-GL_ARB_cl_event https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cl_event.txt
-GL_ARB_clear_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_buffer_object.txt
-GL_ARB_clear_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_texture.txt
-GL_ARB_clip_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clip_control.txt
-GL_ARB_color_buffer_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/color_buffer_float.txt
-GL_ARB_compatibility https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compatibility.txt
-GL_ARB_compressed_texture_pixel_storage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compressed_texture_pixel_storage.txt
-GL_ARB_compute_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_shader.txt
-GL_ARB_compute_variable_group_size https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_variable_group_size.txt
-GL_ARB_conditional_render_inverted https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conditional_render_inverted.txt
-GL_ARB_conservative_depth https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conservative_depth.txt
-GL_ARB_copy_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_buffer.txt
-GL_ARB_copy_image https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_image.txt
-GL_ARB_cull_distance https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cull_distance.txt
-GL_ARB_debug_output https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/debug_output.txt
-GL_ARB_depth_buffer_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_buffer_float.txt
-GL_ARB_depth_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_clamp.txt
-GL_ARB_depth_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_texture.txt
-GL_ARB_derivative_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/derivative_control.txt
-GL_ARB_direct_state_access https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/direct_state_access.txt
-GL_ARB_draw_buffers https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers.txt
-GL_ARB_draw_buffers_blend https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers_blend.txt
-GL_ARB_draw_elements_base_vertex https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_elements_base_vertex.txt
-GL_ARB_draw_indirect https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_indirect.txt
-GL_ARB_draw_instanced https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_instanced.txt
-GL_ARB_enhanced_layouts https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/enhanced_layouts.txt
-GL_ARB_explicit_attrib_location https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_attrib_location.txt
-GL_ARB_explicit_uniform_location https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_uniform_location.txt
-GL_ARB_fragment_coord_conventions https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_coord_conventions.txt
-GL_ARB_fragment_layer_viewport https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_layer_viewport.txt
-GL_ARB_fragment_program https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program.txt
-GL_ARB_fragment_program_shadow https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program_shadow.txt
-GL_ARB_fragment_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_shader.txt
-GL_ARB_fragment_shader_interlock https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_shader_interlock.txt
-GL_ARB_framebuffer_no_attachments https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_no_attachments.txt
-GL_ARB_framebuffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_object.txt
-GL_ARB_framebuffer_sRGB https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_sRGB.txt
-GL_ARB_geometry_shader4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/geometry_shader4.txt
-GL_ARB_get_proc_address https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_proc_address.txt
-GL_ARB_get_program_binary https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_program_binary.txt
-GL_ARB_get_texture_sub_image https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_texture_sub_image.txt
-GL_ARB_glx_create_context https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/glx_create_context.txt
-GL_ARB_glx_create_context_robustness https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/glx_create_context_robustness.txt
-GL_ARB_glx_robustness_isolation https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/glx_robustness_isolation.txt
-GL_ARB_gpu_shader5 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader5.txt
-GL_ARB_gpu_shader_fp64 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader_fp64.txt
-GL_ARB_gpu_shader_int64 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader_int64.txt
-GL_ARB_half_float_pixel https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_pixel.txt
-GL_ARB_half_float_vertex https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_vertex.txt
-GL_ARB_indirect_parameters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/indirect_parameters.txt
-GL_ARB_instanced_arrays https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/instanced_arrays.txt
-GL_ARB_internalformat_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query.txt
-GL_ARB_internalformat_query2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query2.txt
-GL_ARB_invalidate_subdata https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/invalidate_subdata.txt
-GL_ARB_map_buffer_alignment https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_alignment.txt
-GL_ARB_map_buffer_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_range.txt
-GL_ARB_matrix_palette https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/matrix_palette.txt
-GL_ARB_multi_bind https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_bind.txt
-GL_ARB_multi_draw_indirect https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_draw_indirect.txt
-GL_ARB_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multisample.txt
-GL_ARB_multitexture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multitexture.txt
-GL_ARB_occlusion_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query.txt
-GL_ARB_occlusion_query2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query2.txt
-GL_ARB_parallel_shader_compile https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/parallel_shader_compile.txt
-GL_ARB_pipeline_statistics_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pipeline_statistics_query.txt
-GL_ARB_pixel_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pixel_buffer_object.txt
-GL_ARB_point_parameters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_parameters.txt
-GL_ARB_point_sprite https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_sprite.txt
-GL_ARB_post_depth_coverage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/post_depth_coverage.txt
-GL_ARB_program_interface_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/program_interface_query.txt
-GL_ARB_provoking_vertex https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/provoking_vertex.txt
-GL_ARB_query_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/query_buffer_object.txt
-GL_ARB_robust_buffer_access_behavior https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robust_buffer_access_behavior.txt
-GL_ARB_robustness https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robustness.txt
-GL_ARB_robustness_isolation https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robustness_isolation.txt
-GL_ARB_sample_locations https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sample_locations.txt
-GL_ARB_sample_shading https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sample_shading.txt
-GL_ARB_sampler_objects https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sampler_objects.txt
-GL_ARB_seamless_cube_map https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cube_map.txt
-GL_ARB_seamless_cubemap_per_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cubemap_per_texture.txt
-GL_ARB_separate_shader_objects https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/separate_shader_objects.txt
-GL_ARB_shader_atomic_counter_ops https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_atomic_counter_ops.txt
-GL_ARB_shader_atomic_counters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_atomic_counters.txt
-GL_ARB_shader_ballot https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_ballot.txt
-GL_ARB_shader_bit_encoding https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_bit_encoding.txt
-GL_ARB_shader_clock https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_clock.txt
-GL_ARB_shader_draw_parameters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_draw_parameters.txt
-GL_ARB_shader_group_vote https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_group_vote.txt
-GL_ARB_shader_image_load_store https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_load_store.txt
-GL_ARB_shader_image_size https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_size.txt
-GL_ARB_shader_objects https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_objects.txt
-GL_ARB_shader_precision https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_precision.txt
-GL_ARB_shader_stencil_export https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_stencil_export.txt
-GL_ARB_shader_storage_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_storage_buffer_object.txt
-GL_ARB_shader_subroutine https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_subroutine.txt
-GL_ARB_shader_texture_image_samples https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_image_samples.txt
-GL_ARB_shader_texture_lod https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_lod.txt
-GL_ARB_shader_viewport_layer_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_viewport_layer_array.txt
-GL_ARB_shading_language_100 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_100.txt
-GL_ARB_shading_language_420pack https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_420pack.txt
-GL_ARB_shading_language_include https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_include.txt
-GL_ARB_shading_language_packing https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_packing.txt
-GL_ARB_shadow https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow.txt
-GL_ARB_shadow_ambient https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow_ambient.txt
-GL_ARB_sparse_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_buffer.txt
-GL_ARB_sparse_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture.txt
-GL_ARB_sparse_texture2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture2.txt
-GL_ARB_sparse_texture_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture_clamp.txt
-GL_ARB_stencil_texturing https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/stencil_texturing.txt
-GL_ARB_sync https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sync.txt
-GL_ARB_tessellation_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/tessellation_shader.txt
-GL_ARB_texture_barrier https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_barrier.txt
-GL_ARB_texture_border_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_border_clamp.txt
-GL_ARB_texture_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object.txt
-GL_ARB_texture_buffer_object_rgb32 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object_rgb32.txt
-GL_ARB_texture_buffer_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_range.txt
-GL_ARB_texture_compression https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression.txt
-GL_ARB_texture_compression_bptc https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_bptc.txt
-GL_ARB_texture_compression_rgtc https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_rgtc.txt
-GL_ARB_texture_cube_map https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map.txt
-GL_ARB_texture_cube_map_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map_array.txt
-GL_ARB_texture_env_add https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_add.txt
-GL_ARB_texture_env_combine https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_combine.txt
-GL_ARB_texture_env_crossbar https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_crossbar.txt
-GL_ARB_texture_env_dot3 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_dot3.txt
-GL_ARB_texture_filter_minmax https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_filter_minmax.txt
-GL_ARB_texture_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_float.txt
-GL_ARB_texture_gather https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_gather.txt
-GL_ARB_texture_mirror_clamp_to_edge https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirror_clamp_to_edge.txt
-GL_ARB_texture_mirrored_repeat https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirrored_repeat.txt
-GL_ARB_texture_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_multisample.txt
-GL_ARB_texture_non_power_of_two https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_non_power_of_two.txt
-GL_ARB_texture_query_levels https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_levels.txt
-GL_ARB_texture_query_lod https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_lod.txt
-GL_ARB_texture_rectangle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rectangle.txt
-GL_ARB_texture_rg https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rg.txt
-GL_ARB_texture_rgb10_a2ui https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rgb10_a2ui.txt
-GL_ARB_texture_stencil8 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_stencil8.txt
-GL_ARB_texture_storage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage.txt
-GL_ARB_texture_storage_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage_multisample.txt
-GL_ARB_texture_swizzle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_swizzle.txt
-GL_ARB_texture_view https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_view.txt
-GL_ARB_timer_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/timer_query.txt
-GL_ARB_transform_feedback2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback2.txt
-GL_ARB_transform_feedback3 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback3.txt
-GL_ARB_transform_feedback_instanced https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_instanced.txt
-GL_ARB_transform_feedback_overflow_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_overflow_query.txt
-GL_ARB_transpose_matrix https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transpose_matrix.txt
-GL_ARB_uniform_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/uniform_buffer_object.txt
-GL_ARB_vertex_array_bgra https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_bgra.txt
-GL_ARB_vertex_array_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_object.txt
-GL_ARB_vertex_attrib_64bit https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_64bit.txt
-GL_ARB_vertex_attrib_binding https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_binding.txt
-GL_ARB_vertex_blend https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_blend.txt
-GL_ARB_vertex_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_buffer_object.txt
-GL_ARB_vertex_program https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_program.txt
-GL_ARB_vertex_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_shader.txt
-GL_ARB_vertex_type_10f_11f_11f_rev https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_10f_11f_11f_rev.txt
-GL_ARB_vertex_type_2_10_10_10_rev https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_2_10_10_10_rev.txt
-GL_ARB_viewport_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/viewport_array.txt
-GL_ARB_wgl_buffer_region https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_buffer_region.txt
-GL_ARB_wgl_create_context https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_create_context.txt
-GL_ARB_wgl_create_context_robustness https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_create_context_robustness.txt
-GL_ARB_wgl_extensions_string https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_extensions_string.txt
-GL_ARB_wgl_make_current_read https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_make_current_read.txt
-GL_ARB_wgl_pbuffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_pbuffer.txt
-GL_ARB_wgl_pixel_format https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_pixel_format.txt
-GL_ARB_wgl_render_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_render_texture.txt
-GL_ARB_wgl_robustness_isolation https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/wgl_robustness_isolation.txt
-GL_ARB_window_pos https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/window_pos.txt
-GL_ARM_mali_program_binary https://www.khronos.org/registry/gles/extensions/ARM/ARM_mali_program_binary.txt
-GL_ARM_mali_shader_binary https://www.khronos.org/registry/gles/extensions/ARM/ARM_mali_shader_binary.txt
-GL_ARM_rgba8 https://www.khronos.org/registry/gles/extensions/ARM/ARM_rgba8.txt
-GL_ARM_shader_framebuffer_fetch https://www.khronos.org/registry/gles/extensions/ARM/ARM_shader_framebuffer_fetch.txt
-GL_ARM_shader_framebuffer_fetch_depth_stencil https://www.khronos.org/registry/gles/extensions/ARM/ARM_shader_framebuffer_fetch_depth_stencil.txt
-GL_ATI_draw_buffers https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/draw_buffers.txt
-GL_ATI_element_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/element_array.txt
-GL_ATI_envmap_bumpmap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/envmap_bumpmap.txt
-GL_ATI_fragment_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/fragment_shader.txt
-GL_ATI_map_object_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/map_object_buffer.txt
-GL_ATI_meminfo https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/meminfo.txt
-GL_ATI_pixel_format_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pixel_format_float.txt
-GL_ATI_pn_triangles https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pn_triangles.txt
-GL_ATI_separate_stencil https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/separate_stencil.txt
-GL_ATI_text_fragment_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/text_fragment_shader.txt
-GL_ATI_texture_env_combine3 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_env_combine3.txt
-GL_ATI_texture_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_float.txt
-GL_ATI_texture_mirror_once https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_mirror_once.txt
-GL_ATI_vertex_array_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_array_object.txt
-GL_ATI_vertex_attrib_array_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_attrib_array_object.txt
-GL_ATI_vertex_streams https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_streams.txt
-GL_DMP_program_binary https://www.khronos.org/registry/gles/extensions/DMP/DMP_program_binary.txt
-GL_DMP_shader_binary https://www.khronos.org/registry/gles/extensions/DMP/DMP_shader_binary.txt
-GL_EXT_422_pixels https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/422_pixels.txt
-GL_EXT_EXT_debug_label https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/EXT_debug_label.txt
-GL_EXT_EXT_debug_marker https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/EXT_debug_marker.txt
-GL_EXT_abgr https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/abgr.txt
-GL_EXT_bgra https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bgra.txt
-GL_EXT_bindable_uniform https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bindable_uniform.txt
-GL_EXT_blend_color https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_color.txt
-GL_EXT_blend_equation_separate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_equation_separate.txt
-GL_EXT_blend_func_separate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_func_separate.txt
-GL_EXT_blend_logic_op https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_logic_op.txt
-GL_EXT_blend_minmax https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_minmax.txt
-GL_EXT_blend_minmax https://www.khronos.org/registry/gles/extensions/EXT/EXT_blend_minmax.txt
-GL_EXT_blend_subtract https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_subtract.txt
-GL_EXT_buffer_storage https://www.khronos.org/registry/gles/extensions/EXT/EXT_buffer_storage.txt
-GL_EXT_clear_texture https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clear_texture.txt
-GL_EXT_clip_cull_distance https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_cull_distance.txt
-GL_EXT_clip_volume_hint https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/clip_volume_hint.txt
-GL_EXT_cmyka https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cmyka.txt
-GL_EXT_color_buffer_float https://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_float.txt
-GL_EXT_color_buffer_half_float https://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_half_float.txt
-GL_EXT_color_subtable https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/color_subtable.txt
-GL_EXT_compiled_vertex_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/compiled_vertex_array.txt
-GL_EXT_compressed_ETC1_RGB8_sub_texture https://www.khronos.org/registry/gles/extensions/EXT/EXT_compressed_ETC1_RGB8_sub_texture.txt
-GL_EXT_conservative_depth https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_conservative_depth.txt
-GL_EXT_convolution https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/convolution.txt
-GL_EXT_coordinate_frame https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/coordinate_frame.txt
-GL_EXT_copy_image https://www.khronos.org/registry/gles/extensions/EXT/EXT_copy_image.txt
-GL_EXT_copy_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/copy_texture.txt
-GL_EXT_cull_vertex https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cull_vertex.txt
-GL_EXT_debug_label https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_label.txt
-GL_EXT_debug_marker https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt
-GL_EXT_depth_bounds_test https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/depth_bounds_test.txt
-GL_EXT_direct_state_access https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/direct_state_access.txt
-GL_EXT_discard_framebuffer https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_framebuffer.txt
-GL_EXT_disjoint_timer_query https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt
-GL_EXT_draw_buffers https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers.txt
-GL_EXT_draw_buffers2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_buffers2.txt
-GL_EXT_draw_buffers_indexed https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt
-GL_EXT_draw_instanced https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_instanced.txt
-GL_EXT_draw_instanced https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_instanced.txt
-GL_EXT_draw_range_elements https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_range_elements.txt
-GL_EXT_draw_transform_feedback https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_transform_feedback.txt
-GL_EXT_float_blend https://www.khronos.org/registry/gles/extensions/EXT/EXT_float_blend.txt
-GL_EXT_fog_coord https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/fog_coord.txt
-GL_EXT_frag_depth https://www.khronos.org/registry/gles/extensions/EXT/EXT_frag_depth.txt
-GL_EXT_fragment_lighting https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/fragment_lighting.txt
-GL_EXT_framebuffer_blit https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_blit.txt
-GL_EXT_framebuffer_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample.txt
-GL_EXT_framebuffer_multisample_blit_scaled https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample_blit_scaled.txt
-GL_EXT_framebuffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_object.txt
-GL_EXT_framebuffer_sRGB https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_sRGB.txt
-GL_EXT_geometry_point_size https://www.khronos.org/registry/gles/extensions/EXT/EXT_geometry_point_size.txt
-GL_EXT_geometry_shader https://www.khronos.org/registry/gles/extensions/EXT/EXT_geometry_shader.txt
-GL_EXT_geometry_shader4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/geometry_shader4.txt
-GL_EXT_glx_buffer_age https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/glx_buffer_age.txt
-GL_EXT_glx_create_context_es2_profile https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/glx_create_context_es2_profile.txt
-GL_EXT_glx_stereo_tree https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/glx_stereo_tree.txt
-GL_EXT_glx_swap_control_tear https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/glx_swap_control_tear.txt
-GL_EXT_gpu_program_parameters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/gpu_program_parameters.txt
-GL_EXT_gpu_shader4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/gpu_shader4.txt
-GL_EXT_gpu_shader5 https://www.khronos.org/registry/gles/extensions/EXT/EXT_gpu_shader5.txt
-GL_EXT_histogram https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/histogram.txt
-GL_EXT_import_context https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/import_context.txt
-GL_EXT_index_array_formats https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_array_formats.txt
-GL_EXT_index_func https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_func.txt
-GL_EXT_index_material https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_material.txt
-GL_EXT_index_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_texture.txt
-GL_EXT_instanced_arrays https://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt
-GL_EXT_light_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/light_texture.txt
-GL_EXT_map_buffer_range https://www.khronos.org/registry/gles/extensions/EXT/EXT_map_buffer_range.txt
-GL_EXT_misc_attribute https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/misc_attribute.txt
-GL_EXT_multi_draw_arrays https://www.khronos.org/registry/gles/extensions/EXT/EXT_multi_draw_arrays.txt
-GL_EXT_multi_draw_arrays https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/multi_draw_arrays.txt
-GL_EXT_multisample_compatibility https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisample_compatibility.txt
-GL_EXT_multisampled_render_to_texture https://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt
-GL_EXT_multiview_draw_buffers https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt
-GL_EXT_nurbs_tessellator https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/nurbs_tessellator.txt
-GL_EXT_object_space_tess https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/object_space_tess.txt
-GL_EXT_occlusion_query_boolean https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt
-GL_EXT_packed_depth_stencil https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_depth_stencil.txt
-GL_EXT_packed_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_float.txt
-GL_EXT_packed_pixels https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_pixels.txt
-GL_EXT_paletted_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/paletted_texture.txt
-GL_EXT_pixel_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_buffer_object.txt
-GL_EXT_pixel_transform https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform.txt
-GL_EXT_pixel_transform_color_table https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform_color_table.txt
-GL_EXT_point_parameters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/point_parameters.txt
-GL_EXT_polygon_offset https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset.txt
-GL_EXT_polygon_offset_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset_clamp.txt
-GL_EXT_post_depth_coverage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/post_depth_coverage.txt
-GL_EXT_primitive_bounding_box https://www.khronos.org/registry/gles/extensions/EXT/EXT_primitive_bounding_box.txt
-GL_EXT_protected_textures https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_protected_textures.txt
-GL_EXT_provoking_vertex https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/provoking_vertex.txt
-GL_EXT_pvrtc_sRGB https://www.khronos.org/registry/gles/extensions/EXT/EXT_pvrtc_sRGB.txt
-GL_EXT_raster_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/raster_multisample.txt
-GL_EXT_read_format_bgra https://www.khronos.org/registry/gles/extensions/EXT/EXT_read_format_bgra.txt
-GL_EXT_rescale_normal https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/rescale_normal.txt
-GL_EXT_robustness https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt
-GL_EXT_sRGB https://www.khronos.org/registry/gles/extensions/EXT/EXT_sRGB.txt
-GL_EXT_sRGB_write_control https://www.khronos.org/registry/gles/extensions/EXT/EXT_sRGB_write_control.txt
-GL_EXT_scene_marker https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/scene_marker.txt
-GL_EXT_secondary_color https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/secondary_color.txt
-GL_EXT_separate_shader_objects https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/separate_shader_objects.txt
-GL_EXT_separate_shader_objects https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt
-GL_EXT_separate_specular_color https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/separate_specular_color.txt
-GL_EXT_shader_framebuffer_fetch https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_framebuffer_fetch.txt
-GL_EXT_shader_group_vote https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_group_vote.txt
-GL_EXT_shader_image_load_formatted https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_image_load_formatted.txt
-GL_EXT_shader_image_load_store https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_image_load_store.txt
-GL_EXT_shader_implicit_conversions https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_implicit_conversions.txt
-GL_EXT_shader_integer_mix https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_integer_mix.txt
-GL_EXT_shader_integer_mix https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_integer_mix.txt
-GL_EXT_shader_io_blocks https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_io_blocks.txt
-GL_EXT_shader_non_constant_global_initializers https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_non_constant_global_initializers.txt
-GL_EXT_shader_pixel_local_storage https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_pixel_local_storage.txt
-GL_EXT_shader_pixel_local_storage2 https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_pixel_local_storage2.txt
-GL_EXT_shader_texture_lod https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_texture_lod.txt
-GL_EXT_shadow_funcs https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shadow_funcs.txt
-GL_EXT_shadow_samplers https://www.khronos.org/registry/gles/extensions/EXT/EXT_shadow_samplers.txt
-GL_EXT_shared_texture_palette https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shared_texture_palette.txt
-GL_EXT_sparse_texture https://www.khronos.org/registry/gles/extensions/EXT/EXT_sparse_texture.txt
-GL_EXT_sparse_texture2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/sparse_texture2.txt
-GL_EXT_static_vertex_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/static_vertex_array.txt
-GL_EXT_stencil_clear_tag https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_clear_tag.txt
-GL_EXT_stencil_two_side https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_two_side.txt
-GL_EXT_stencil_wrap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_wrap.txt
-GL_EXT_subtexture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/subtexture.txt
-GL_EXT_swap_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/swap_control.txt
-GL_EXT_tessellation_point_size https://www.khronos.org/registry/gles/extensions/EXT/EXT_tessellation_point_size.txt
-GL_EXT_tessellation_shader https://www.khronos.org/registry/gles/extensions/EXT/EXT_tessellation_shader.txt
-GL_EXT_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture.txt
-GL_EXT_texture3D https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture3D.txt
-GL_EXT_texture_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_array.txt
-GL_EXT_texture_border_clamp https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt
-GL_EXT_texture_buffer https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_buffer.txt
-GL_EXT_texture_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_buffer_object.txt
-GL_EXT_texture_compression_dxt1 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_dxt1.txt
-GL_EXT_texture_compression_dxt1 https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_compression_dxt1.txt
-GL_EXT_texture_compression_latc https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_latc.txt
-GL_EXT_texture_compression_rgtc https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_rgtc.txt
-GL_EXT_texture_compression_s3tc https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_s3tc.txt
-GL_EXT_texture_compression_s3tc https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_compression_s3tc.txt
-GL_EXT_texture_cube_map_array https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_cube_map_array.txt
-GL_EXT_texture_env https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env.txt
-GL_EXT_texture_env_add https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_add.txt
-GL_EXT_texture_env_combine https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_combine.txt
-GL_EXT_texture_env_dot3 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_dot3.txt
-GL_EXT_texture_filter_anisotropic https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_filter_anisotropic.txt
-GL_EXT_texture_filter_anisotropic https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_filter_anisotropic.txt
-GL_EXT_texture_filter_minmax https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_filter_minmax.txt
-GL_EXT_texture_format_BGRA8888 https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_format_BGRA8888.txt
-GL_EXT_texture_from_pixmap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_from_pixmap.txt
-GL_EXT_texture_integer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_integer.txt
-GL_EXT_texture_lod_bias https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_lod_bias.txt
-GL_EXT_texture_lod_bias https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_lod_bias.txt
-GL_EXT_texture_mirror_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_mirror_clamp.txt
-GL_EXT_texture_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_object.txt
-GL_EXT_texture_perturb_normal https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_perturb_normal.txt
-GL_EXT_texture_rg https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt
-GL_EXT_texture_sRGB https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB.txt
-GL_EXT_texture_sRGB_decode https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB_decode.txt
-GL_EXT_texture_sRGB_R8 https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_sRGB_R8.txt
-GL_EXT_texture_sRGB_RG8 https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_sRGB_RG8.txt
-GL_EXT_texture_shared_exponent https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_shared_exponent.txt
-GL_EXT_texture_snorm https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_snorm.txt
-GL_EXT_texture_storage https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt
-GL_EXT_texture_swizzle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_swizzle.txt
-GL_EXT_texture_type_2_10_10_10_REV https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_type_2_10_10_10_REV.txt
-GL_EXT_texture_view https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_view.txt
-GL_EXT_timer_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/timer_query.txt
-GL_EXT_transform_feedback https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/transform_feedback.txt
-GL_EXT_unpack_subimage https://www.khronos.org/registry/gles/extensions/EXT/EXT_unpack_subimage.txt
-GL_EXT_vertex_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array.txt
-GL_EXT_vertex_array_bgra https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array_bgra.txt
-GL_EXT_vertex_array_set https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array_set.txt
-GL_EXT_vertex_array_set.alt https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array_set.alt.txt
-GL_EXT_vertex_attrib_64bit https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_attrib_64bit.txt
-GL_EXT_vertex_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_shader.txt
-GL_EXT_vertex_weighting https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_weighting.txt
-GL_EXT_visual_info https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/visual_info.txt
-GL_EXT_visual_rating https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/visual_rating.txt
-GL_EXT_window_rectangles https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/window_rectangles.txt
-GL_EXT_wgl_create_context_es2_profile https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_create_context_es2_profile.txt
-GL_EXT_wgl_depth_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_depth_float.txt
-GL_EXT_wgl_display_color_table https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_display_color_table.txt
-GL_EXT_wgl_extensions_string https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_extensions_string.txt
-GL_EXT_wgl_make_current_read https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_make_current_read.txt
-GL_EXT_wgl_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_multisample.txt
-GL_EXT_wgl_pbuffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_pbuffer.txt
-GL_EXT_wgl_pixel_format https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_pixel_format.txt
-GL_EXT_wgl_swap_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_swap_control.txt
-GL_EXT_wgl_swap_control_tear https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/wgl_swap_control_tear.txt
-GL_EXT_x11_sync_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/x11_sync_object.txt
-GL_EXT_YUV_target https://www.khronos.org/registry/gles/extensions/EXT/EXT_YUV_target.txt
-GL_FJ_shader_binary_GCCSO https://www.khronos.org/registry/gles/extensions/FJ/FJ_shader_binary_GCCSO.txt
-GL_GREMEDY_frame_terminator https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/frame_terminator.txt
-GL_GREMEDY_string_marker https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/string_marker.txt
-GL_HP_convolution_border_modes https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/convolution_border_modes.txt
-GL_HP_image_transform https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/image_transform.txt
-GL_HP_occlusion_test https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/occlusion_test.txt
-GL_HP_texture_lighting https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/texture_lighting.txt
-GL_I3D_wgl_digital_video_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/I3D/wgl_digital_video_control.txt
-GL_I3D_wgl_gamma https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/I3D/wgl_gamma.txt
-GL_I3D_wgl_genlock https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/I3D/wgl_genlock.txt
-GL_I3D_wgl_image_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/I3D/wgl_image_buffer.txt
-GL_I3D_wgl_swap_frame_lock https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/I3D/wgl_swap_frame_lock.txt
-GL_I3D_wgl_swap_frame_usage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/I3D/wgl_swap_frame_usage.txt
-GL_IBM_cull_vertex https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/cull_vertex.txt
-GL_IBM_multimode_draw_arrays https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/multimode_draw_arrays.txt
-GL_IBM_rasterpos_clip https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/rasterpos_clip.txt
-GL_IBM_static_data https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/static_data.txt
-GL_IBM_texture_mirrored_repeat https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/texture_mirrored_repeat.txt
-GL_IBM_vertex_array_lists https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/vertex_array_lists.txt
-GL_IMG_bindless_texture https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_bindless_texture.txt
-GL_IMG_framebuffer_downsample https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_framebuffer_downsample.txt
-GL_IMG_multisampled_render_to_texture https://www.khronos.org/registry/gles/extensions/IMG/IMG_multisampled_render_to_texture.txt
-GL_IMG_program_binary https://www.khronos.org/registry/gles/extensions/IMG/IMG_program_binary.txt
-GL_IMG_read_format https://www.khronos.org/registry/gles/extensions/IMG/IMG_read_format.txt
-GL_IMG_shader_binary https://www.khronos.org/registry/gles/extensions/IMG/IMG_shader_binary.txt
-GL_IMG_texture_compression_pvrtc https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc.txt
-GL_IMG_texture_compression_pvrtc2 https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc2.txt
-GL_IMG_texture_env_enhanced_fixed_function https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_env_enhanced_fixed_function.txt
-GL_IMG_texture_filter_cubic https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_filter_cubic.txt
-GL_IMG_user_clip_plane https://www.khronos.org/registry/gles/extensions/IMG/IMG_user_clip_plane.txt
-GL_INGR_color_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/color_clamp.txt
-GL_INGR_interlace_read https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/interlace_read.txt
-GL_INTEL_conservative_rasterization https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/conservative_rasterization.txt
-GL_INTEL_fragment_shader_ordering https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/fragment_shader_ordering.txt
-GL_INTEL_framebuffer_CMAA https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/framebuffer_CMAA.txt
-GL_INTEL_map_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/map_texture.txt
-GL_INTEL_parallel_arrays https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/parallel_arrays.txt
-GL_INTEL_performance_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/performance_query.txt
-GL_INTEL_performance_query https://www.khronos.org/registry/gles/extensions/INTEL/INTEL_performance_query.txt
-GL_INTEL_swap_event https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/swap_event.txt
-GL_INTEL_texture_scissor https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/texture_scissor.txt
-GL_KHR_blend_equation_advanced https://www.khronos.org/registry/gles/extensions/KHR/KHR_blend_equation_advanced.txt
-GL_KHR_blend_equation_advanced https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/blend_equation_advanced.txt
-GL_KHR_blend_equation_advanced_coherent https://www.khronos.org/registry/gles/extensions/KHR/KHR_blend_equation_advanced_coherent.txt
-GL_KHR_context_flush_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/context_flush_control.txt
-GL_KHR_context_flush_control https://www.khronos.org/registry/gles/extensions/KHR/context_flush_control.txt
-GL_KHR_debug https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/debug.txt
-GL_KHR_debug https://www.khronos.org/registry/gles/extensions/KHR/debug.txt
-GL_KHR_no_error https://www.khronos.org/registry/gles/extensions/KHR/no_error.txt
-GL_KHR_robust_buffer_access_behavior https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/robust_buffer_access_behavior.txt
-GL_KHR_robust_buffer_access_behavior https://www.khronos.org/registry/gles/extensions/KHR/robust_buffer_access_behavior.txt
-GL_KHR_robustness https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/robustness.txt
-GL_KHR_robustness https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt
-GL_KHR_texture_compression_astc_hdr https://www.khronos.org/registry/gles/extensions/KHR/KHR_texture_compression_astc_hdr.txt
-GL_KHR_texture_compression_astc_hdr https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/texture_compression_astc_hdr.txt
-GL_KHR_texture_compression_astc_ldr https://www.khronos.org/registry/gles/extensions/KHR/KHR_texture_compression_astc_ldr.txt
-GL_KHR_texture_compression_astc_sliced_3d https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/texture_compression_astc_sliced_3d.txt
-GL_MESAX_texture_stack https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESAX/texture_stack.txt
-GL_MESA_agp_offset https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/agp_offset.txt
-GL_MESA_copy_sub_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/copy_sub_buffer.txt
-GL_MESA_glx_query_renderer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/glx_query_renderer.txt
-GL_MESA_pack_invert https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/pack_invert.txt
-GL_MESA_pixmap_colormap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/pixmap_colormap.txt
-GL_MESA_release_buffers https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/release_buffers.txt
-GL_MESA_resize_buffers https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/resize_buffers.txt
-GL_MESA_set_3dfx_mode https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/set_3dfx_mode.txt
-GL_MESA_window_pos https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/window_pos.txt
-GL_MESA_ycbcr_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/ycbcr_texture.txt
-GL_NVX_gpu_memory_info https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NVX/gpu_memory_info.txt
-GL_NVX_nvx_conditional_render https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NVX/nvx_conditional_render.txt
-GL_NV_3dvision_settings https://www.khronos.org/registry/gles/extensions/NV/NV_3dvision_settings.txt
-GL_NV_DX_interop https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/DX_interop.txt
-GL_NV_DX_interop2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/DX_interop2.txt
-GL_NV_EGL_stream_consumer_external https://www.khronos.org/registry/gles/extensions/NV/NV_EGL_stream_consumer_external.txt
-GL_NV_bgr https://www.khronos.org/registry/gles/extensions/NV/NV_bgr.txt
-GL_NV_bindless_multi_draw_indirect https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect.txt
-GL_NV_bindless_multi_draw_indirect_count https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect_count.txt
-GL_NV_bindless_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_texture.txt
-GL_NV_blend_equation_advanced https://www.khronos.org/registry/gles/extensions/NV/NV_blend_equation_advanced.txt
-GL_NV_blend_equation_advanced https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_equation_advanced.txt
-GL_NV_blend_equation_advanced_coherent https://www.khronos.org/registry/gles/extensions/NV/NV_blend_equation_advanced_coherent.txt
-GL_NV_blend_square https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_square.txt
-GL_NV_clip_space_w_scaling https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/clip_space_w_scaling.txt
-GL_NV_command_list https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/command_list.txt
-GL_NV_compute_program5 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/compute_program5.txt
-GL_NV_conditional_render https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conditional_render.txt
-GL_NV_conservative_raster https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster.txt
-GL_NV_conservative_raster_dilate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster_dilate.txt
-GL_NV_conservative_raster_pre_snap_triangles https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster_pre_snap_triangles.txt
-GL_NV_copy_buffer https://www.khronos.org/registry/gles/extensions/NV/NV_copy_buffer.txt
-GL_NV_copy_depth_to_color https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_depth_to_color.txt
-GL_NV_copy_image https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_image.txt
-GL_NV_coverage_sample https://www.khronos.org/registry/gles/extensions/NV/NV_coverage_sample.txt
-GL_NV_deep_texture3D https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/deep_texture3D.txt
-GL_NV_depth_buffer_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_buffer_float.txt
-GL_NV_depth_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_clamp.txt
-GL_NV_depth_nonlinear https://www.khronos.org/registry/gles/extensions/NV/NV_depth_nonlinear.txt
-GL_NV_draw_buffers https://www.khronos.org/registry/gles/extensions/NV/NV_draw_buffers.txt
-GL_NV_draw_instanced https://www.khronos.org/registry/gles/extensions/NV/NV_draw_instanced.txt
-GL_NV_draw_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/draw_texture.txt
-GL_NV_draw_texture https://www.khronos.org/registry/gles/extensions/NV/NV_draw_texture.txt
-GL_NV_evaluators https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/evaluators.txt
-GL_NV_explicit_attrib_location https://www.khronos.org/registry/gles/extensions/NV/NV_explicit_attrib_location.txt
-GL_NV_explicit_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/explicit_multisample.txt
-GL_NV_fbo_color_attachments https://www.khronos.org/registry/gles/extensions/NV/NV_fbo_color_attachments.txt
-GL_NV_fence https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fence.txt
-GL_NV_fence https://www.khronos.org/registry/gles/extensions/NV/NV_fence.txt
-GL_NV_fill_rectangle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fill_rectangle.txt
-GL_NV_float_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/float_buffer.txt
-GL_NV_fog_distance https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fog_distance.txt
-GL_NV_fragment_coverage_to_color https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_coverage_to_color.txt
-GL_NV_fragment_program https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program.txt
-GL_NV_fragment_program2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program2.txt
-GL_NV_fragment_program4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program4.txt
-GL_NV_fragment_program_option https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program_option.txt
-GL_NV_fragment_shader_interlock https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_shader_interlock.txt
-GL_NV_framebuffer_blit https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_blit.txt
-GL_NV_framebuffer_mixed_samples https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/framebuffer_mixed_samples.txt
-GL_NV_framebuffer_multisample https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_multisample.txt
-GL_NV_framebuffer_multisample_coverage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/framebuffer_multisample_coverage.txt
-GL_NV_generate_mipmap_sRGB https://www.khronos.org/registry/gles/extensions/NV/NV_generate_mipmap_sRGB.txt
-GL_NV_geometry_program4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_program4.txt
-GL_NV_geometry_shader4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader4.txt
-GL_NV_geometry_shader_passthrough https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader_passthrough.txt
-GL_NV_glx_copy_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/glx_copy_buffer.txt
-GL_NV_glx_delay_before_swap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/glx_delay_before_swap.txt
-GL_NV_glx_swap_group https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/glx_swap_group.txt
-GL_NV_glx_video_output https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/glx_video_output.txt
-GL_NV_gpu_affinity https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_affinity.txt
-GL_NV_gpu_program4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program4.txt
-GL_NV_gpu_program5 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5.txt
-GL_NV_gpu_program5_mem_extended https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5_mem_extended.txt
-GL_NV_gpu_shader5 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_shader5.txt
-GL_NV_half_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/half_float.txt
-GL_NV_instanced_arrays https://www.khronos.org/registry/gles/extensions/NV/NV_instanced_arrays.txt
-GL_NV_internalformat_sample_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/internalformat_sample_query.txt
-GL_NV_internalformat_sample_query https://www.khronos.org/registry/gles/extensions/NV/NV_internalformat_sample_query.txt
-GL_NV_light_max_exponent https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/light_max_exponent.txt
-GL_NV_multisample_coverage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_coverage.txt
-GL_NV_multisample_filter_hint https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_filter_hint.txt
-GL_NV_non_square_matrices https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt
-GL_NV_occlusion_query https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/occlusion_query.txt
-GL_NV_pack_subimage https://www.khronos.org/registry/gles/extensions/NV/NV_pack_subimage.txt
-GL_NV_packed_depth_stencil https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/packed_depth_stencil.txt
-GL_NV_packed_float https://www.khronos.org/registry/gles/extensions/NV/NV_packed_float.txt
-GL_NV_parameter_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object.txt
-GL_NV_parameter_buffer_object2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object2.txt
-GL_NV_path_rendering https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/path_rendering.txt
-GL_NV_path_rendering_shared_edge https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/path_rendering_shared_edge.txt
-GL_NV_pixel_buffer_object https://www.khronos.org/registry/gles/extensions/NV/NV_pixel_buffer_object.txt
-GL_NV_pixel_data_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/pixel_data_range.txt
-GL_NV_platform_binary https://www.khronos.org/registry/gles/extensions/NV/NV_platform_binary.txt
-GL_NV_point_sprite https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/point_sprite.txt
-GL_NV_polygon_mode https://www.khronos.org/registry/gles/extensions/NV/NV_polygon_mode.txt
-GL_NV_present_video https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/present_video.txt
-GL_NV_primitive_restart https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/primitive_restart.txt
-GL_NV_read_buffer https://www.khronos.org/registry/gles/extensions/NV/NV_read_buffer.txt
-GL_NV_read_depth_stencil https://www.khronos.org/registry/gles/extensions/NV/NV_read_depth_stencil.txt
-GL_NV_register_combiners https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/register_combiners.txt
-GL_NV_register_combiners2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/register_combiners2.txt
-GL_NV_render_depth_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/render_depth_texture.txt
-GL_NV_render_texture_rectangle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/render_texture_rectangle.txt
-GL_NV_robustness_video_memory_purge https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/robustness_video_memory_purge.txt
-GL_NV_sRGB_formats https://www.khronos.org/registry/gles/extensions/NV/NV_sRGB_formats.txt
-GL_NV_sample_locations https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_locations.txt
-GL_NV_sample_mask_override_coverage https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_mask_override_coverage.txt
-GL_NV_shader_atomic_counters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_counters.txt
-GL_NV_shader_atomic_float https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_float.txt
-GL_NV_shader_atomic_float64 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_float64.txt
-GL_NV_shader_atomic_fp16_vector https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_fp16_vector.txt
-GL_NV_shader_atomic_int64 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_int64.txt
-GL_NV_shader_buffer_load https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_buffer_load.txt
-GL_NV_shader_buffer_store https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_buffer_store.txt
-GL_NV_shader_storage_buffer_object https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_storage_buffer_object.txt
-GL_NV_shader_thread_group https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_group.txt
-GL_NV_shader_thread_shuffle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_shuffle.txt
-GL_NV_shadow_samplers_array https://www.khronos.org/registry/gles/extensions/NV/NV_shadow_samplers_array.txt
-GL_NV_shadow_samplers_cube https://www.khronos.org/registry/gles/extensions/NV/NV_shadow_samplers_cube.txt
-GL_NV_stereo_view_rendering https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/stereo_view_rendering.txt
-GL_NV_tessellation_program5 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/tessellation_program5.txt
-GL_NV_texgen_emboss https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_emboss.txt
-GL_NV_texgen_reflection https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_reflection.txt
-GL_NV_texture_array https://www.khronos.org/registry/gles/extensions/NV/NV_texture_array.txt
-GL_NV_texture_barrier https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_barrier.txt
-GL_NV_texture_border_clamp https://www.khronos.org/registry/gles/extensions/NV/NV_texture_border_clamp.txt
-GL_NV_texture_compression_latc https://www.khronos.org/registry/gles/extensions/NV/NV_texture_compression_latc.txt
-GL_NV_texture_compression_s3tc https://www.khronos.org/registry/gles/extensions/NV/NV_texture_compression_s3tc.txt
-GL_NV_texture_compression_s3tc_update https://www.khronos.org/registry/gles/extensions/NV/NV_texture_compression_s3tc_update.txt
-GL_NV_texture_compression_vtc https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_compression_vtc.txt
-GL_NV_texture_env_combine4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_env_combine4.txt
-GL_NV_texture_expand_normal https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_expand_normal.txt
-GL_NV_texture_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_multisample.txt
-GL_NV_texture_npot_2D_mipmap https://www.khronos.org/registry/gles/extensions/NV/NV_texture_npot_2D_mipmap.txt
-GL_NV_texture_rectangle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_rectangle.txt
-GL_NV_texture_shader https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader.txt
-GL_NV_texture_shader2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader2.txt
-GL_NV_texture_shader3 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader3.txt
-GL_NV_transform_feedback https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback.txt
-GL_NV_transform_feedback2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback2.txt
-GL_NV_uniform_buffer_unified_memory https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/uniform_buffer_unified_memory.txt
-GL_NV_vdpau_interop https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vdpau_interop.txt
-GL_NV_vertex_array_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range.txt
-GL_NV_vertex_array_range2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range2.txt
-GL_NV_vertex_attrib_integer_64bit https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_attrib_integer_64bit.txt
-GL_NV_vertex_buffer_unified_memory https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_buffer_unified_memory.txt
-GL_NV_vertex_program https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program.txt
-GL_NV_vertex_program1_1 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program1_1.txt
-GL_NV_vertex_program2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2.txt
-GL_NV_vertex_program2_option https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2_option.txt
-GL_NV_vertex_program3 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program3.txt
-GL_NV_vertex_program4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program4.txt
-GL_NV_video_capture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/video_capture.txt
-GL_NV_viewport_array2 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/viewport_array2.txt
-GL_NV_viewport_swizzle https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/viewport_swizzle.txt
-GL_NV_wgl_delay_before_swap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/wgl_delay_before_swap.txt
-GL_NV_wgl_swap_group https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/wgl_swap_group.txt
-GL_NV_wgl_video_output https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/wgl_video_output.txt
-GL_OES_EGL_image https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt
-GL_OES_EGL_image_external https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external.txt
-GL_OES_EGL_image_external_essl3 https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external_essl3.txt
-GL_OES_EGL_sync https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_sync.txt
-GL_OES_blend_equation_separate https://www.khronos.org/registry/gles/extensions/OES/OES_blend_equation_separate.txt
-GL_OES_blend_func_separate https://www.khronos.org/registry/gles/extensions/OES/OES_blend_func_separate.txt
-GL_OES_blend_subtract https://www.khronos.org/registry/gles/extensions/OES/OES_blend_subtract.txt
-GL_OES_byte_coordinates https://www.khronos.org/registry/gles/extensions/OES/OES_byte_coordinates.txt
-GL_OES_compressed_ETC1_RGB8_texture https://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt
-GL_OES_compressed_paletted_texture https://www.khronos.org/registry/gles/extensions/OES/OES_compressed_paletted_texture.txt
-GL_OES_copy_image https://www.khronos.org/registry/gles/extensions/OES/OES_copy_image.txt
-GL_OES_depth24 https://www.khronos.org/registry/gles/extensions/OES/OES_depth24.txt
-GL_OES_depth32 https://www.khronos.org/registry/gles/extensions/OES/OES_depth32.txt
-GL_OES_depth_texture https://www.khronos.org/registry/gles/extensions/OES/OES_depth_texture.txt
-GL_OES_depth_texture_cube_map https://www.khronos.org/registry/gles/extensions/OES/OES_depth_texture_cube_map.txt
-GL_OES_draw_buffers_indexed https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt
-GL_OES_draw_elements_base_vertex https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt
-GL_OES_draw_texture https://www.khronos.org/registry/gles/extensions/OES/OES_draw_texture.txt
-GL_OES_element_index_uint https://www.khronos.org/registry/gles/extensions/OES/OES_element_index_uint.txt
-GL_OES_extended_matrix_palette https://www.khronos.org/registry/gles/extensions/OES/OES_extended_matrix_palette.txt
-GL_OES_fbo_render_mipmap https://www.khronos.org/registry/gles/extensions/OES/OES_fbo_render_mipmap.txt
-GL_OES_fixed_point https://www.khronos.org/registry/gles/extensions/OES/OES_fixed_point.txt
-GL_OES_fragment_precision_high https://www.khronos.org/registry/gles/extensions/OES/OES_fragment_precision_high.txt
-GL_OES_framebuffer_object https://www.khronos.org/registry/gles/extensions/OES/OES_framebuffer_object.txt
-GL_OES_geometry_point_size https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt
-GL_OES_geometry_shader https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt
-GL_OES_get_program_binary https://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt
-GL_OES_gpu_shader5 https://www.khronos.org/registry/gles/extensions/OES/OES_gpu_shader5.txt
-GL_OES_mapbuffer https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt
-GL_OES_matrix_get https://www.khronos.org/registry/gles/extensions/OES/OES_matrix_get.txt
-GL_OES_matrix_palette https://www.khronos.org/registry/gles/extensions/OES/OES_matrix_palette.txt
-GL_OES_packed_depth_stencil https://www.khronos.org/registry/gles/extensions/OES/OES_packed_depth_stencil.txt
-GL_OES_point_size_array https://www.khronos.org/registry/gles/extensions/OES/OES_point_size_array.txt
-GL_OES_point_sprite https://www.khronos.org/registry/gles/extensions/OES/OES_point_sprite.txt
-GL_OES_primitive_bounding_box https://www.khronos.org/registry/gles/extensions/OES/OES_primitive_bounding_box.txt
-GL_OES_query_matrix https://www.khronos.org/registry/gles/extensions/OES/OES_query_matrix.txt
-GL_OES_read_format https://www.khronos.org/registry/gles/extensions/OES/OES_read_format.txt
-GL_OES_required_internalformat https://www.khronos.org/registry/gles/extensions/OES/OES_required_internalformat.txt
-GL_OES_rgb8_rgba8 https://www.khronos.org/registry/gles/extensions/OES/OES_rgb8_rgba8.txt
-GL_OES_sample_shading https://www.khronos.org/registry/gles/extensions/OES/OES_sample_shading.txt
-GL_OES_sample_variables https://www.khronos.org/registry/gles/extensions/OES/OES_sample_variables.txt
-GL_OES_shader_image_atomic https://www.khronos.org/registry/gles/extensions/OES/OES_shader_image_atomic.txt
-GL_OES_shader_io_blocks https://www.khronos.org/registry/gles/extensions/OES/OES_shader_io_blocks.txt
-GL_OES_shader_multisample_interpolation https://www.khronos.org/registry/gles/extensions/OES/OES_shader_multisample_interpolation.txt
-GL_OES_single_precision https://www.khronos.org/registry/gles/extensions/OES/OES_single_precision.txt
-GL_OES_standard_derivatives https://www.khronos.org/registry/gles/extensions/OES/OES_standard_derivatives.txt
-GL_OES_stencil1 https://www.khronos.org/registry/gles/extensions/OES/OES_stencil1.txt
-GL_OES_stencil4 https://www.khronos.org/registry/gles/extensions/OES/OES_stencil4.txt
-GL_OES_stencil8 https://www.khronos.org/registry/gles/extensions/OES/OES_stencil8.txt
-GL_OES_stencil_wrap https://www.khronos.org/registry/gles/extensions/OES/OES_stencil_wrap.txt
-GL_OES_surfaceless_context https://www.khronos.org/registry/gles/extensions/OES/OES_surfaceless_context.txt
-GL_OES_tessellation_point_size https://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt
-GL_OES_tessellation_shader https://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt
-GL_OES_texture_3D https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt
-GL_OES_texture_border_clamp https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt
-GL_OES_texture_buffer https://www.khronos.org/registry/gles/extensions/OES/OES_texture_buffer.txt
-GL_OES_texture_compression_astc https://www.khronos.org/registry/gles/extensions/OES/OES_texture_compression_astc.txt
-GL_OES_texture_cube_map https://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map.txt
-GL_OES_texture_cube_map_array https://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map_array.txt
-GL_OES_texture_env_crossbar https://www.khronos.org/registry/gles/extensions/OES/OES_texture_env_crossbar.txt
-GL_OES_texture_float https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt
-GL_OES_texture_float_linear https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float_linear.txt
-GL_OES_texture_half_float https://www.khronos.org/registry/gles/extensions/OES/OES_texture_half_float.txt
-GL_OES_texture_half_float_linear https://www.khronos.org/registry/gles/extensions/OES/OES_texture_half_float_linear.txt
-GL_OES_texture_mirrored_repeat https://www.khronos.org/registry/gles/extensions/OES/OES_texture_mirrored_repeat.txt
-GL_OES_texture_npot https://www.khronos.org/registry/gles/extensions/OES/OES_texture_npot.txt
-GL_OES_texture_stencil8 https://www.khronos.org/registry/gles/extensions/OES/OES_texture_stencil8.txt
-GL_OES_texture_storage_multisample_2d_array https://www.khronos.org/registry/gles/extensions/OES/OES_texture_storage_multisample_2d_array.txt
-GL_OES_texture_view https://www.khronos.org/registry/gles/extensions/OES/OES_texture_view.txt
-GL_OES_vertex_array_object https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt
-GL_OES_vertex_half_float https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_half_float.txt
-GL_OES_vertex_type_10_10_10_2 https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_type_10_10_10_2.txt
-GL_OES_viewport_array https://www.khronos.org/registry/OpenGL/extensions/OES/OES_viewport_array.txt
-GL_OML_glx_swap_method https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/glx_swap_method.txt
-GL_OML_glx_sync_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/glx_sync_control.txt
-GL_OML_interlace https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/interlace.txt
-GL_OML_resample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/resample.txt
-GL_OML_subsample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/subsample.txt
-GL_OML_wgl_sync_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/wgl_sync_control.txt
-GL_OVR_multiview https://www.khronos.org/registry/gles/extensions/OVR/multiview.txt
-GL_OVR_multiview2 https://www.khronos.org/registry/gles/extensions/OVR/multiview2.txt
-GL_OVR_multiview_multisampled_render_to_texture https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview_multisampled_render_to_texture.txt
-GL_PGI_misc_hints https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/misc_hints.txt
-GL_PGI_vertex_hints https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/vertex_hints.txt
-GL_QCOM_alpha_test https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_alpha_test.txt
-GL_QCOM_binning_control https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_binning_control.txt
-GL_QCOM_driver_control https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt
-GL_QCOM_extended_get https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt
-GL_QCOM_extended_get2 https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt
-GL_QCOM_performance_monitor_global_mode https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_performance_monitor_global_mode.txt
-GL_QCOM_tiled_rendering https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_tiled_rendering.txt
-GL_QCOM_writeonly_rendering https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_writeonly_rendering.txt
-GL_REND_screen_coordinates https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/REND/screen_coordinates.txt
-GL_S3_s3tc https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/S3/s3tc.txt
-GL_SGIS_blended_overlay https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/blended_overlay.txt
-GL_SGIS_color_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/color_range.txt
-GL_SGIS_detail_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/detail_texture.txt
-GL_SGIS_fog_func https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/fog_func.txt
-GL_SGIS_generate_mipmap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/generate_mipmap.txt
-GL_SGIS_multisample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/multisample.txt
-GL_SGIS_pixel_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/pixel_texture.txt
-GL_SGIS_point_line_texgen https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/point_line_texgen.txt
-GL_SGIS_sharpen_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/sharpen_texture.txt
-GL_SGIS_texture4D https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture4D.txt
-GL_SGIS_texture_border_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_border_clamp.txt
-GL_SGIS_texture_color_mask https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_color_mask.txt
-GL_SGIS_texture_edge_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_edge_clamp.txt
-GL_SGIS_texture_filter4 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_filter4.txt
-GL_SGIS_texture_lod https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_lod.txt
-GL_SGIS_texture_select https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_select.txt
-GL_SGIX_async https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async.txt
-GL_SGIX_async_histogram https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_histogram.txt
-GL_SGIX_async_pixel https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_pixel.txt
-GL_SGIX_blend_alpha_minmax https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/blend_alpha_minmax.txt
-GL_SGIX_clipmap https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/clipmap.txt
-GL_SGIX_convolution_accuracy https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/convolution_accuracy.txt
-GL_SGIX_depth_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/depth_texture.txt
-GL_SGIX_dmbuffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/dmbuffer.txt
-GL_SGIX_fbconfig https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/fbconfig.txt
-GL_SGIX_flush_raster https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/flush_raster.txt
-GL_SGIX_fog_offset https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/fog_offset.txt
-GL_SGIX_fog_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/fog_texture.txt
-GL_SGIX_fragment_specular_lighting https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/fragment_specular_lighting.txt
-GL_SGIX_framezoom https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/framezoom.txt
-GL_SGIX_hyperpipe_group https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/hyperpipe_group.txt
-GL_SGIX_instruments https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/instruments.txt
-GL_SGIX_interlace https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/interlace.txt
-GL_SGIX_ir_instrument1 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ir_instrument1.txt
-GL_SGIX_list_priority https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/list_priority.txt
-GL_SGIX_pbuffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/pbuffer.txt
-GL_SGIX_pixel_texture_bits https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/pixel_texture_bits.txt
-GL_SGIX_reference_plane https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/reference_plane.txt
-GL_SGIX_resample https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/resample.txt
-GL_SGIX_sgix_pixel_texture https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/sgix_pixel_texture.txt
-GL_SGIX_shadow https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow.txt
-GL_SGIX_shadow_ambient https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow_ambient.txt
-GL_SGIX_sprite https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/sprite.txt
-GL_SGIX_swap_barrier https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/swap_barrier.txt
-GL_SGIX_swap_group https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/swap_group.txt
-GL_SGIX_tag_sample_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/tag_sample_buffer.txt
-GL_SGIX_texture_coordinate_clamp https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_coordinate_clamp.txt
-GL_SGIX_texture_env_add https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_env_add.txt
-GL_SGIX_texture_lod_bias https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_lod_bias.txt
-GL_SGIX_texture_multi_buffer https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_multi_buffer.txt
-GL_SGIX_texture_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_range.txt
-GL_SGIX_texture_scale_bias https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_scale_bias.txt
-GL_SGIX_vertex_preclip https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/vertex_preclip.txt
-GL_SGIX_video_resize https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/video_resize.txt
-GL_SGIX_video_source https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/video_source.txt
-GL_SGIX_visual_select_group https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/visual_select_group.txt
-GL_SGIX_ycrcb https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ycrcb.txt
-GL_SGI_color_matrix https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_matrix.txt
-GL_SGI_color_table https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_table.txt
-GL_SGI_cushion https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/cushion.txt
-GL_SGI_filter4_parameters https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/filter4_parameters.txt
-GL_SGI_make_current_read https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/make_current_read.txt
-GL_SGI_swap_control https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/swap_control.txt
-GL_SGI_texture_color_table https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/texture_color_table.txt
-GL_SGI_video_sync https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/video_sync.txt
-GL_SUNX_constant_data https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUNX/constant_data.txt
-GL_SUN_convolution_border_modes https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/convolution_border_modes.txt
-GL_SUN_get_transparent_index https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/get_transparent_index.txt
-GL_SUN_global_alpha https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/global_alpha.txt
-GL_SUN_mesh_array https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/mesh_array.txt
-GL_SUN_multi_draw_arrays https://www.khronos.org/registry/gles/extensions/SUN/SUN_multi_draw_arrays.txt
-GL_SUN_slice_accum https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/slice_accum.txt
-GL_SUN_triangle_list https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/triangle_list.txt
-GL_SUN_vertex https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/vertex.txt
-GL_VIV_shader_binary https://www.khronos.org/registry/gles/extensions/VIV/VIV_shader_binary.txt
-GL_WIN_phong_shading https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/phong_shading.txt
-GL_WIN_specular_fog https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/specular_fog.txt
diff --git a/generated-src/Graphics/GL/Compatibility32.hs b/generated-src/Graphics/GL/Compatibility32.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility32.hs
@@ -0,0 +1,791 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Compatibility32 (
+  -- * Graphics.GL.Compatibility32
+    module Graphics.GL.Core32
+  , glAccum
+  , glAlphaFunc
+  , glAreTexturesResident
+  , glArrayElement
+  , glBegin
+  , glBitmap
+  , glCallList
+  , glCallLists
+  , glClearAccum
+  , glClearIndex
+  , glClientActiveTexture
+  , glClipPlane
+  , glColor3b
+  , glColor3bv
+  , glColor3d
+  , glColor3dv
+  , glColor3f
+  , glColor3fv
+  , glColor3i
+  , glColor3iv
+  , glColor3s
+  , glColor3sv
+  , glColor3ub
+  , glColor3ubv
+  , glColor3ui
+  , glColor3uiv
+  , glColor3us
+  , glColor3usv
+  , glColor4b
+  , glColor4bv
+  , glColor4d
+  , glColor4dv
+  , glColor4f
+  , glColor4fv
+  , glColor4i
+  , glColor4iv
+  , glColor4s
+  , glColor4sv
+  , glColor4ub
+  , glColor4ubv
+  , glColor4ui
+  , glColor4uiv
+  , glColor4us
+  , glColor4usv
+  , glColorMaterial
+  , glColorPointer
+  , glCopyPixels
+  , glDeleteLists
+  , glDisableClientState
+  , glDrawPixels
+  , glEdgeFlag
+  , glEdgeFlagPointer
+  , glEdgeFlagv
+  , glEnableClientState
+  , glEnd
+  , glEndList
+  , glEvalCoord1d
+  , glEvalCoord1dv
+  , glEvalCoord1f
+  , glEvalCoord1fv
+  , glEvalCoord2d
+  , glEvalCoord2dv
+  , glEvalCoord2f
+  , glEvalCoord2fv
+  , glEvalMesh1
+  , glEvalMesh2
+  , glEvalPoint1
+  , glEvalPoint2
+  , glFeedbackBuffer
+  , glFogCoordPointer
+  , glFogCoordd
+  , glFogCoorddv
+  , glFogCoordf
+  , glFogCoordfv
+  , glFogf
+  , glFogfv
+  , glFogi
+  , glFogiv
+  , glFrustum
+  , glGenLists
+  , glGetClipPlane
+  , glGetLightfv
+  , glGetLightiv
+  , glGetMapdv
+  , glGetMapfv
+  , glGetMapiv
+  , glGetMaterialfv
+  , glGetMaterialiv
+  , glGetPixelMapfv
+  , glGetPixelMapuiv
+  , glGetPixelMapusv
+  , glGetPointerv
+  , glGetPolygonStipple
+  , glGetTexEnvfv
+  , glGetTexEnviv
+  , glGetTexGendv
+  , glGetTexGenfv
+  , glGetTexGeniv
+  , glIndexMask
+  , glIndexPointer
+  , glIndexd
+  , glIndexdv
+  , glIndexf
+  , glIndexfv
+  , glIndexi
+  , glIndexiv
+  , glIndexs
+  , glIndexsv
+  , glIndexub
+  , glIndexubv
+  , glInitNames
+  , glInterleavedArrays
+  , glIsList
+  , glLightModelf
+  , glLightModelfv
+  , glLightModeli
+  , glLightModeliv
+  , glLightf
+  , glLightfv
+  , glLighti
+  , glLightiv
+  , glLineStipple
+  , glListBase
+  , glLoadIdentity
+  , glLoadMatrixd
+  , glLoadMatrixf
+  , glLoadName
+  , glLoadTransposeMatrixd
+  , glLoadTransposeMatrixf
+  , glMap1d
+  , glMap1f
+  , glMap2d
+  , glMap2f
+  , glMapGrid1d
+  , glMapGrid1f
+  , glMapGrid2d
+  , glMapGrid2f
+  , glMaterialf
+  , glMaterialfv
+  , glMateriali
+  , glMaterialiv
+  , glMatrixMode
+  , glMultMatrixd
+  , glMultMatrixf
+  , glMultTransposeMatrixd
+  , glMultTransposeMatrixf
+  , glMultiTexCoord1d
+  , glMultiTexCoord1dv
+  , glMultiTexCoord1f
+  , glMultiTexCoord1fv
+  , glMultiTexCoord1i
+  , glMultiTexCoord1iv
+  , glMultiTexCoord1s
+  , glMultiTexCoord1sv
+  , glMultiTexCoord2d
+  , glMultiTexCoord2dv
+  , glMultiTexCoord2f
+  , glMultiTexCoord2fv
+  , glMultiTexCoord2i
+  , glMultiTexCoord2iv
+  , glMultiTexCoord2s
+  , glMultiTexCoord2sv
+  , glMultiTexCoord3d
+  , glMultiTexCoord3dv
+  , glMultiTexCoord3f
+  , glMultiTexCoord3fv
+  , glMultiTexCoord3i
+  , glMultiTexCoord3iv
+  , glMultiTexCoord3s
+  , glMultiTexCoord3sv
+  , glMultiTexCoord4d
+  , glMultiTexCoord4dv
+  , glMultiTexCoord4f
+  , glMultiTexCoord4fv
+  , glMultiTexCoord4i
+  , glMultiTexCoord4iv
+  , glMultiTexCoord4s
+  , glMultiTexCoord4sv
+  , glNewList
+  , glNormal3b
+  , glNormal3bv
+  , glNormal3d
+  , glNormal3dv
+  , glNormal3f
+  , glNormal3fv
+  , glNormal3i
+  , glNormal3iv
+  , glNormal3s
+  , glNormal3sv
+  , glNormalPointer
+  , glOrtho
+  , glPassThrough
+  , glPixelMapfv
+  , glPixelMapuiv
+  , glPixelMapusv
+  , glPixelTransferf
+  , glPixelTransferi
+  , glPixelZoom
+  , glPolygonStipple
+  , glPopAttrib
+  , glPopClientAttrib
+  , glPopMatrix
+  , glPopName
+  , glPrioritizeTextures
+  , glPushAttrib
+  , glPushClientAttrib
+  , glPushMatrix
+  , glPushName
+  , glRasterPos2d
+  , glRasterPos2dv
+  , glRasterPos2f
+  , glRasterPos2fv
+  , glRasterPos2i
+  , glRasterPos2iv
+  , glRasterPos2s
+  , glRasterPos2sv
+  , glRasterPos3d
+  , glRasterPos3dv
+  , glRasterPos3f
+  , glRasterPos3fv
+  , glRasterPos3i
+  , glRasterPos3iv
+  , glRasterPos3s
+  , glRasterPos3sv
+  , glRasterPos4d
+  , glRasterPos4dv
+  , glRasterPos4f
+  , glRasterPos4fv
+  , glRasterPos4i
+  , glRasterPos4iv
+  , glRasterPos4s
+  , glRasterPos4sv
+  , glRectd
+  , glRectdv
+  , glRectf
+  , glRectfv
+  , glRecti
+  , glRectiv
+  , glRects
+  , glRectsv
+  , glRenderMode
+  , glRotated
+  , glRotatef
+  , glScaled
+  , glScalef
+  , glSecondaryColor3b
+  , glSecondaryColor3bv
+  , glSecondaryColor3d
+  , glSecondaryColor3dv
+  , glSecondaryColor3f
+  , glSecondaryColor3fv
+  , glSecondaryColor3i
+  , glSecondaryColor3iv
+  , glSecondaryColor3s
+  , glSecondaryColor3sv
+  , glSecondaryColor3ub
+  , glSecondaryColor3ubv
+  , glSecondaryColor3ui
+  , glSecondaryColor3uiv
+  , glSecondaryColor3us
+  , glSecondaryColor3usv
+  , glSecondaryColorPointer
+  , glSelectBuffer
+  , glShadeModel
+  , glTexCoord1d
+  , glTexCoord1dv
+  , glTexCoord1f
+  , glTexCoord1fv
+  , glTexCoord1i
+  , glTexCoord1iv
+  , glTexCoord1s
+  , glTexCoord1sv
+  , glTexCoord2d
+  , glTexCoord2dv
+  , glTexCoord2f
+  , glTexCoord2fv
+  , glTexCoord2i
+  , glTexCoord2iv
+  , glTexCoord2s
+  , glTexCoord2sv
+  , glTexCoord3d
+  , glTexCoord3dv
+  , glTexCoord3f
+  , glTexCoord3fv
+  , glTexCoord3i
+  , glTexCoord3iv
+  , glTexCoord3s
+  , glTexCoord3sv
+  , glTexCoord4d
+  , glTexCoord4dv
+  , glTexCoord4f
+  , glTexCoord4fv
+  , glTexCoord4i
+  , glTexCoord4iv
+  , glTexCoord4s
+  , glTexCoord4sv
+  , glTexCoordPointer
+  , glTexEnvf
+  , glTexEnvfv
+  , glTexEnvi
+  , glTexEnviv
+  , glTexGend
+  , glTexGendv
+  , glTexGenf
+  , glTexGenfv
+  , glTexGeni
+  , glTexGeniv
+  , glTranslated
+  , glTranslatef
+  , glVertex2d
+  , glVertex2dv
+  , glVertex2f
+  , glVertex2fv
+  , glVertex2i
+  , glVertex2iv
+  , glVertex2s
+  , glVertex2sv
+  , glVertex3d
+  , glVertex3dv
+  , glVertex3f
+  , glVertex3fv
+  , glVertex3i
+  , glVertex3iv
+  , glVertex3s
+  , glVertex3sv
+  , glVertex4d
+  , glVertex4dv
+  , glVertex4f
+  , glVertex4fv
+  , glVertex4i
+  , glVertex4iv
+  , glVertex4s
+  , glVertex4sv
+  , glVertexPointer
+  , glWindowPos2d
+  , glWindowPos2dv
+  , glWindowPos2f
+  , glWindowPos2fv
+  , glWindowPos2i
+  , glWindowPos2iv
+  , glWindowPos2s
+  , glWindowPos2sv
+  , glWindowPos3d
+  , glWindowPos3dv
+  , glWindowPos3f
+  , glWindowPos3fv
+  , glWindowPos3i
+  , glWindowPos3iv
+  , glWindowPos3s
+  , glWindowPos3sv
+  , pattern GL_2D
+  , pattern GL_2_BYTES
+  , pattern GL_3D
+  , pattern GL_3D_COLOR
+  , pattern GL_3D_COLOR_TEXTURE
+  , pattern GL_3_BYTES
+  , pattern GL_4D_COLOR_TEXTURE
+  , pattern GL_4_BYTES
+  , pattern GL_ACCUM
+  , pattern GL_ACCUM_ALPHA_BITS
+  , pattern GL_ACCUM_BLUE_BITS
+  , pattern GL_ACCUM_BUFFER_BIT
+  , pattern GL_ACCUM_CLEAR_VALUE
+  , pattern GL_ACCUM_GREEN_BITS
+  , pattern GL_ACCUM_RED_BITS
+  , pattern GL_ADD
+  , pattern GL_ADD_SIGNED
+  , pattern GL_ALIASED_POINT_SIZE_RANGE
+  , pattern GL_ALL_ATTRIB_BITS
+  , pattern GL_ALPHA12
+  , pattern GL_ALPHA16
+  , pattern GL_ALPHA4
+  , pattern GL_ALPHA8
+  , pattern GL_ALPHA_BIAS
+  , pattern GL_ALPHA_BITS
+  , pattern GL_ALPHA_INTEGER
+  , pattern GL_ALPHA_SCALE
+  , pattern GL_ALPHA_TEST
+  , pattern GL_ALPHA_TEST_FUNC
+  , pattern GL_ALPHA_TEST_REF
+  , pattern GL_AMBIENT
+  , pattern GL_AMBIENT_AND_DIFFUSE
+  , pattern GL_ATTRIB_STACK_DEPTH
+  , pattern GL_AUTO_NORMAL
+  , pattern GL_AUX0
+  , pattern GL_AUX1
+  , pattern GL_AUX2
+  , pattern GL_AUX3
+  , pattern GL_AUX_BUFFERS
+  , pattern GL_BITMAP
+  , pattern GL_BITMAP_TOKEN
+  , pattern GL_BLUE_BIAS
+  , pattern GL_BLUE_BITS
+  , pattern GL_BLUE_SCALE
+  , pattern GL_C3F_V3F
+  , pattern GL_C4F_N3F_V3F
+  , pattern GL_C4UB_V2F
+  , pattern GL_C4UB_V3F
+  , pattern GL_CLAMP
+  , pattern GL_CLAMP_FRAGMENT_COLOR
+  , pattern GL_CLAMP_VERTEX_COLOR
+  , pattern GL_CLIENT_ACTIVE_TEXTURE
+  , pattern GL_CLIENT_ALL_ATTRIB_BITS
+  , pattern GL_CLIENT_ATTRIB_STACK_DEPTH
+  , pattern GL_CLIENT_PIXEL_STORE_BIT
+  , pattern GL_CLIENT_VERTEX_ARRAY_BIT
+  , pattern GL_CLIP_PLANE0
+  , pattern GL_CLIP_PLANE1
+  , pattern GL_CLIP_PLANE2
+  , pattern GL_CLIP_PLANE3
+  , pattern GL_CLIP_PLANE4
+  , pattern GL_CLIP_PLANE5
+  , pattern GL_COEFF
+  , pattern GL_COLOR_ARRAY
+  , pattern GL_COLOR_ARRAY_BUFFER_BINDING
+  , pattern GL_COLOR_ARRAY_POINTER
+  , pattern GL_COLOR_ARRAY_SIZE
+  , pattern GL_COLOR_ARRAY_STRIDE
+  , pattern GL_COLOR_ARRAY_TYPE
+  , pattern GL_COLOR_INDEX
+  , pattern GL_COLOR_INDEXES
+  , pattern GL_COLOR_MATERIAL
+  , pattern GL_COLOR_MATERIAL_FACE
+  , pattern GL_COLOR_MATERIAL_PARAMETER
+  , pattern GL_COLOR_SUM
+  , pattern GL_COMBINE
+  , pattern GL_COMBINE_ALPHA
+  , pattern GL_COMBINE_RGB
+  , pattern GL_COMPARE_R_TO_TEXTURE
+  , pattern GL_COMPILE
+  , pattern GL_COMPILE_AND_EXECUTE
+  , pattern GL_COMPRESSED_ALPHA
+  , pattern GL_COMPRESSED_INTENSITY
+  , pattern GL_COMPRESSED_LUMINANCE
+  , pattern GL_COMPRESSED_LUMINANCE_ALPHA
+  , pattern GL_COMPRESSED_SLUMINANCE
+  , pattern GL_COMPRESSED_SLUMINANCE_ALPHA
+  , pattern GL_CONSTANT
+  , pattern GL_CONSTANT_ATTENUATION
+  , pattern GL_COORD_REPLACE
+  , pattern GL_COPY_PIXEL_TOKEN
+  , pattern GL_CURRENT_BIT
+  , pattern GL_CURRENT_COLOR
+  , pattern GL_CURRENT_FOG_COORD
+  , pattern GL_CURRENT_FOG_COORDINATE
+  , pattern GL_CURRENT_INDEX
+  , pattern GL_CURRENT_NORMAL
+  , pattern GL_CURRENT_RASTER_COLOR
+  , pattern GL_CURRENT_RASTER_DISTANCE
+  , pattern GL_CURRENT_RASTER_INDEX
+  , pattern GL_CURRENT_RASTER_POSITION
+  , pattern GL_CURRENT_RASTER_POSITION_VALID
+  , pattern GL_CURRENT_RASTER_SECONDARY_COLOR
+  , pattern GL_CURRENT_RASTER_TEXTURE_COORDS
+  , pattern GL_CURRENT_SECONDARY_COLOR
+  , pattern GL_CURRENT_TEXTURE_COORDS
+  , pattern GL_DECAL
+  , pattern GL_DEPTH_BIAS
+  , pattern GL_DEPTH_BITS
+  , pattern GL_DEPTH_SCALE
+  , pattern GL_DEPTH_TEXTURE_MODE
+  , pattern GL_DIFFUSE
+  , pattern GL_DOMAIN
+  , pattern GL_DOT3_RGB
+  , pattern GL_DOT3_RGBA
+  , pattern GL_DRAW_PIXEL_TOKEN
+  , pattern GL_EDGE_FLAG
+  , pattern GL_EDGE_FLAG_ARRAY
+  , pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING
+  , pattern GL_EDGE_FLAG_ARRAY_POINTER
+  , pattern GL_EDGE_FLAG_ARRAY_STRIDE
+  , pattern GL_EMISSION
+  , pattern GL_ENABLE_BIT
+  , pattern GL_EVAL_BIT
+  , pattern GL_EXP
+  , pattern GL_EXP2
+  , pattern GL_EYE_LINEAR
+  , pattern GL_EYE_PLANE
+  , pattern GL_FEEDBACK
+  , pattern GL_FEEDBACK_BUFFER_POINTER
+  , pattern GL_FEEDBACK_BUFFER_SIZE
+  , pattern GL_FEEDBACK_BUFFER_TYPE
+  , pattern GL_FLAT
+  , pattern GL_FOG
+  , pattern GL_FOG_BIT
+  , pattern GL_FOG_COLOR
+  , pattern GL_FOG_COORD
+  , pattern GL_FOG_COORDINATE
+  , pattern GL_FOG_COORDINATE_ARRAY
+  , pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
+  , pattern GL_FOG_COORDINATE_ARRAY_POINTER
+  , pattern GL_FOG_COORDINATE_ARRAY_STRIDE
+  , pattern GL_FOG_COORDINATE_ARRAY_TYPE
+  , pattern GL_FOG_COORDINATE_SOURCE
+  , pattern GL_FOG_COORD_ARRAY
+  , pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING
+  , pattern GL_FOG_COORD_ARRAY_POINTER
+  , pattern GL_FOG_COORD_ARRAY_STRIDE
+  , pattern GL_FOG_COORD_ARRAY_TYPE
+  , pattern GL_FOG_COORD_SRC
+  , pattern GL_FOG_DENSITY
+  , pattern GL_FOG_END
+  , pattern GL_FOG_HINT
+  , pattern GL_FOG_INDEX
+  , pattern GL_FOG_MODE
+  , pattern GL_FOG_START
+  , pattern GL_FRAGMENT_DEPTH
+  , pattern GL_GENERATE_MIPMAP
+  , pattern GL_GENERATE_MIPMAP_HINT
+  , pattern GL_GREEN_BIAS
+  , pattern GL_GREEN_BITS
+  , pattern GL_GREEN_SCALE
+  , pattern GL_HINT_BIT
+  , pattern GL_INDEX_ARRAY
+  , pattern GL_INDEX_ARRAY_BUFFER_BINDING
+  , pattern GL_INDEX_ARRAY_POINTER
+  , pattern GL_INDEX_ARRAY_STRIDE
+  , pattern GL_INDEX_ARRAY_TYPE
+  , pattern GL_INDEX_BITS
+  , pattern GL_INDEX_CLEAR_VALUE
+  , pattern GL_INDEX_LOGIC_OP
+  , pattern GL_INDEX_MODE
+  , pattern GL_INDEX_OFFSET
+  , pattern GL_INDEX_SHIFT
+  , pattern GL_INDEX_WRITEMASK
+  , pattern GL_INTENSITY
+  , pattern GL_INTENSITY12
+  , pattern GL_INTENSITY16
+  , pattern GL_INTENSITY4
+  , pattern GL_INTENSITY8
+  , pattern GL_INTERPOLATE
+  , pattern GL_LIGHT0
+  , pattern GL_LIGHT1
+  , pattern GL_LIGHT2
+  , pattern GL_LIGHT3
+  , pattern GL_LIGHT4
+  , pattern GL_LIGHT5
+  , pattern GL_LIGHT6
+  , pattern GL_LIGHT7
+  , pattern GL_LIGHTING
+  , pattern GL_LIGHTING_BIT
+  , pattern GL_LIGHT_MODEL_AMBIENT
+  , pattern GL_LIGHT_MODEL_COLOR_CONTROL
+  , pattern GL_LIGHT_MODEL_LOCAL_VIEWER
+  , pattern GL_LIGHT_MODEL_TWO_SIDE
+  , pattern GL_LINEAR_ATTENUATION
+  , pattern GL_LINE_BIT
+  , pattern GL_LINE_RESET_TOKEN
+  , pattern GL_LINE_STIPPLE
+  , pattern GL_LINE_STIPPLE_PATTERN
+  , pattern GL_LINE_STIPPLE_REPEAT
+  , pattern GL_LINE_TOKEN
+  , pattern GL_LIST_BASE
+  , pattern GL_LIST_BIT
+  , pattern GL_LIST_INDEX
+  , pattern GL_LIST_MODE
+  , pattern GL_LOAD
+  , pattern GL_LOGIC_OP
+  , pattern GL_LUMINANCE
+  , pattern GL_LUMINANCE12
+  , pattern GL_LUMINANCE12_ALPHA12
+  , pattern GL_LUMINANCE12_ALPHA4
+  , pattern GL_LUMINANCE16
+  , pattern GL_LUMINANCE16_ALPHA16
+  , pattern GL_LUMINANCE4
+  , pattern GL_LUMINANCE4_ALPHA4
+  , pattern GL_LUMINANCE6_ALPHA2
+  , pattern GL_LUMINANCE8
+  , pattern GL_LUMINANCE8_ALPHA8
+  , pattern GL_LUMINANCE_ALPHA
+  , pattern GL_MAP1_COLOR_4
+  , pattern GL_MAP1_GRID_DOMAIN
+  , pattern GL_MAP1_GRID_SEGMENTS
+  , pattern GL_MAP1_INDEX
+  , pattern GL_MAP1_NORMAL
+  , pattern GL_MAP1_TEXTURE_COORD_1
+  , pattern GL_MAP1_TEXTURE_COORD_2
+  , pattern GL_MAP1_TEXTURE_COORD_3
+  , pattern GL_MAP1_TEXTURE_COORD_4
+  , pattern GL_MAP1_VERTEX_3
+  , pattern GL_MAP1_VERTEX_4
+  , pattern GL_MAP2_COLOR_4
+  , pattern GL_MAP2_GRID_DOMAIN
+  , pattern GL_MAP2_GRID_SEGMENTS
+  , pattern GL_MAP2_INDEX
+  , pattern GL_MAP2_NORMAL
+  , pattern GL_MAP2_TEXTURE_COORD_1
+  , pattern GL_MAP2_TEXTURE_COORD_2
+  , pattern GL_MAP2_TEXTURE_COORD_3
+  , pattern GL_MAP2_TEXTURE_COORD_4
+  , pattern GL_MAP2_VERTEX_3
+  , pattern GL_MAP2_VERTEX_4
+  , pattern GL_MAP_COLOR
+  , pattern GL_MAP_STENCIL
+  , pattern GL_MATRIX_MODE
+  , pattern GL_MAX_ATTRIB_STACK_DEPTH
+  , pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
+  , pattern GL_MAX_CLIP_PLANES
+  , pattern GL_MAX_EVAL_ORDER
+  , pattern GL_MAX_LIGHTS
+  , pattern GL_MAX_LIST_NESTING
+  , pattern GL_MAX_MODELVIEW_STACK_DEPTH
+  , pattern GL_MAX_NAME_STACK_DEPTH
+  , pattern GL_MAX_PIXEL_MAP_TABLE
+  , pattern GL_MAX_PROJECTION_STACK_DEPTH
+  , pattern GL_MAX_TEXTURE_COORDS
+  , pattern GL_MAX_TEXTURE_STACK_DEPTH
+  , pattern GL_MAX_TEXTURE_UNITS
+  , pattern GL_MODELVIEW
+  , pattern GL_MODELVIEW_MATRIX
+  , pattern GL_MODELVIEW_STACK_DEPTH
+  , pattern GL_MODULATE
+  , pattern GL_MULT
+  , pattern GL_MULTISAMPLE_BIT
+  , pattern GL_N3F_V3F
+  , pattern GL_NAME_STACK_DEPTH
+  , pattern GL_NORMALIZE
+  , pattern GL_NORMAL_ARRAY
+  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING
+  , pattern GL_NORMAL_ARRAY_POINTER
+  , pattern GL_NORMAL_ARRAY_STRIDE
+  , pattern GL_NORMAL_ARRAY_TYPE
+  , pattern GL_NORMAL_MAP
+  , pattern GL_OBJECT_LINEAR
+  , pattern GL_OBJECT_PLANE
+  , pattern GL_OPERAND0_ALPHA
+  , pattern GL_OPERAND0_RGB
+  , pattern GL_OPERAND1_ALPHA
+  , pattern GL_OPERAND1_RGB
+  , pattern GL_OPERAND2_ALPHA
+  , pattern GL_OPERAND2_RGB
+  , pattern GL_ORDER
+  , pattern GL_PASS_THROUGH_TOKEN
+  , pattern GL_PERSPECTIVE_CORRECTION_HINT
+  , pattern GL_PIXEL_MAP_A_TO_A
+  , pattern GL_PIXEL_MAP_A_TO_A_SIZE
+  , pattern GL_PIXEL_MAP_B_TO_B
+  , pattern GL_PIXEL_MAP_B_TO_B_SIZE
+  , pattern GL_PIXEL_MAP_G_TO_G
+  , pattern GL_PIXEL_MAP_G_TO_G_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_A
+  , pattern GL_PIXEL_MAP_I_TO_A_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_B
+  , pattern GL_PIXEL_MAP_I_TO_B_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_G
+  , pattern GL_PIXEL_MAP_I_TO_G_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_I
+  , pattern GL_PIXEL_MAP_I_TO_I_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_R
+  , pattern GL_PIXEL_MAP_I_TO_R_SIZE
+  , pattern GL_PIXEL_MAP_R_TO_R
+  , pattern GL_PIXEL_MAP_R_TO_R_SIZE
+  , pattern GL_PIXEL_MAP_S_TO_S
+  , pattern GL_PIXEL_MAP_S_TO_S_SIZE
+  , pattern GL_PIXEL_MODE_BIT
+  , pattern GL_POINT_BIT
+  , pattern GL_POINT_DISTANCE_ATTENUATION
+  , pattern GL_POINT_SIZE_MAX
+  , pattern GL_POINT_SIZE_MIN
+  , pattern GL_POINT_SMOOTH
+  , pattern GL_POINT_SMOOTH_HINT
+  , pattern GL_POINT_SPRITE
+  , pattern GL_POINT_TOKEN
+  , pattern GL_POLYGON
+  , pattern GL_POLYGON_BIT
+  , pattern GL_POLYGON_STIPPLE
+  , pattern GL_POLYGON_STIPPLE_BIT
+  , pattern GL_POLYGON_TOKEN
+  , pattern GL_POSITION
+  , pattern GL_PREVIOUS
+  , pattern GL_PRIMARY_COLOR
+  , pattern GL_PROJECTION
+  , pattern GL_PROJECTION_MATRIX
+  , pattern GL_PROJECTION_STACK_DEPTH
+  , pattern GL_Q
+  , pattern GL_QUADRATIC_ATTENUATION
+  , pattern GL_QUADS
+  , pattern GL_QUAD_STRIP
+  , pattern GL_R
+  , pattern GL_RED_BIAS
+  , pattern GL_RED_BITS
+  , pattern GL_RED_SCALE
+  , pattern GL_REFLECTION_MAP
+  , pattern GL_RENDER
+  , pattern GL_RENDER_MODE
+  , pattern GL_RESCALE_NORMAL
+  , pattern GL_RETURN
+  , pattern GL_RGBA_MODE
+  , pattern GL_RGB_SCALE
+  , pattern GL_S
+  , pattern GL_SCISSOR_BIT
+  , pattern GL_SECONDARY_COLOR_ARRAY
+  , pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING
+  , pattern GL_SECONDARY_COLOR_ARRAY_POINTER
+  , pattern GL_SECONDARY_COLOR_ARRAY_SIZE
+  , pattern GL_SECONDARY_COLOR_ARRAY_STRIDE
+  , pattern GL_SECONDARY_COLOR_ARRAY_TYPE
+  , pattern GL_SELECT
+  , pattern GL_SELECTION_BUFFER_POINTER
+  , pattern GL_SELECTION_BUFFER_SIZE
+  , pattern GL_SEPARATE_SPECULAR_COLOR
+  , pattern GL_SHADE_MODEL
+  , pattern GL_SHININESS
+  , pattern GL_SINGLE_COLOR
+  , pattern GL_SLUMINANCE
+  , pattern GL_SLUMINANCE8
+  , pattern GL_SLUMINANCE8_ALPHA8
+  , pattern GL_SLUMINANCE_ALPHA
+  , pattern GL_SMOOTH
+  , pattern GL_SOURCE0_ALPHA
+  , pattern GL_SOURCE0_RGB
+  , pattern GL_SOURCE1_ALPHA
+  , pattern GL_SOURCE1_RGB
+  , pattern GL_SOURCE2_ALPHA
+  , pattern GL_SOURCE2_RGB
+  , pattern GL_SPECULAR
+  , pattern GL_SPHERE_MAP
+  , pattern GL_SPOT_CUTOFF
+  , pattern GL_SPOT_DIRECTION
+  , pattern GL_SPOT_EXPONENT
+  , pattern GL_SRC0_ALPHA
+  , pattern GL_SRC0_RGB
+  , pattern GL_SRC1_RGB
+  , pattern GL_SRC2_ALPHA
+  , pattern GL_SRC2_RGB
+  , pattern GL_STACK_OVERFLOW
+  , pattern GL_STACK_UNDERFLOW
+  , pattern GL_STENCIL_BITS
+  , pattern GL_SUBTRACT
+  , pattern GL_T
+  , pattern GL_T2F_C3F_V3F
+  , pattern GL_T2F_C4F_N3F_V3F
+  , pattern GL_T2F_C4UB_V3F
+  , pattern GL_T2F_N3F_V3F
+  , pattern GL_T2F_V3F
+  , pattern GL_T4F_C4F_N3F_V4F
+  , pattern GL_T4F_V4F
+  , pattern GL_TEXTURE_BIT
+  , pattern GL_TEXTURE_BORDER
+  , pattern GL_TEXTURE_COMPONENTS
+  , pattern GL_TEXTURE_COORD_ARRAY
+  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
+  , pattern GL_TEXTURE_COORD_ARRAY_POINTER
+  , pattern GL_TEXTURE_COORD_ARRAY_SIZE
+  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE
+  , pattern GL_TEXTURE_COORD_ARRAY_TYPE
+  , pattern GL_TEXTURE_ENV
+  , pattern GL_TEXTURE_ENV_COLOR
+  , pattern GL_TEXTURE_ENV_MODE
+  , pattern GL_TEXTURE_FILTER_CONTROL
+  , pattern GL_TEXTURE_GEN_MODE
+  , pattern GL_TEXTURE_GEN_Q
+  , pattern GL_TEXTURE_GEN_R
+  , pattern GL_TEXTURE_GEN_S
+  , pattern GL_TEXTURE_GEN_T
+  , pattern GL_TEXTURE_INTENSITY_SIZE
+  , pattern GL_TEXTURE_INTENSITY_TYPE
+  , pattern GL_TEXTURE_LUMINANCE_SIZE
+  , pattern GL_TEXTURE_LUMINANCE_TYPE
+  , pattern GL_TEXTURE_MATRIX
+  , pattern GL_TEXTURE_PRIORITY
+  , pattern GL_TEXTURE_RESIDENT
+  , pattern GL_TEXTURE_STACK_DEPTH
+  , pattern GL_TRANSFORM_BIT
+  , pattern GL_TRANSPOSE_COLOR_MATRIX
+  , pattern GL_TRANSPOSE_MODELVIEW_MATRIX
+  , pattern GL_TRANSPOSE_PROJECTION_MATRIX
+  , pattern GL_TRANSPOSE_TEXTURE_MATRIX
+  , pattern GL_V2F
+  , pattern GL_V3F
+  , pattern GL_VERTEX_ARRAY
+  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ARRAY_POINTER
+  , pattern GL_VERTEX_ARRAY_SIZE
+  , pattern GL_VERTEX_ARRAY_STRIDE
+  , pattern GL_VERTEX_ARRAY_TYPE
+  , pattern GL_VERTEX_PROGRAM_TWO_SIDE
+  , pattern GL_VIEWPORT_BIT
+  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING
+  , pattern GL_ZOOM_X
+  , pattern GL_ZOOM_Y
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Core32
diff --git a/generated-src/Graphics/GL/Compatibility33.hs b/generated-src/Graphics/GL/Compatibility33.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility33.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Compatibility33 (
+  -- * Graphics.GL.Compatibility33
+    module Graphics.GL.Compatibility32
+  , module Graphics.GL.Core33
+  , glColorP3ui
+  , glColorP3uiv
+  , glColorP4ui
+  , glColorP4uiv
+  , glMultiTexCoordP1ui
+  , glMultiTexCoordP1uiv
+  , glMultiTexCoordP2ui
+  , glMultiTexCoordP2uiv
+  , glMultiTexCoordP3ui
+  , glMultiTexCoordP3uiv
+  , glMultiTexCoordP4ui
+  , glMultiTexCoordP4uiv
+  , glNormalP3ui
+  , glNormalP3uiv
+  , glSecondaryColorP3ui
+  , glSecondaryColorP3uiv
+  , glTexCoordP1ui
+  , glTexCoordP1uiv
+  , glTexCoordP2ui
+  , glTexCoordP2uiv
+  , glTexCoordP3ui
+  , glTexCoordP3uiv
+  , glTexCoordP4ui
+  , glTexCoordP4uiv
+  , glVertexP2ui
+  , glVertexP2uiv
+  , glVertexP3ui
+  , glVertexP3uiv
+  , glVertexP4ui
+  , glVertexP4uiv
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Compatibility32
+import Graphics.GL.Core33
diff --git a/generated-src/Graphics/GL/Compatibility40.hs b/generated-src/Graphics/GL/Compatibility40.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility40.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Compatibility40 (
+  -- * Graphics.GL.Compatibility40
+    module Graphics.GL.Compatibility33
+  , module Graphics.GL.Core40
+) where
+
+
+
+import Graphics.GL.Compatibility33
+import Graphics.GL.Core40
diff --git a/generated-src/Graphics/GL/Compatibility41.hs b/generated-src/Graphics/GL/Compatibility41.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility41.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Compatibility41 (
+  -- * Graphics.GL.Compatibility41
+    module Graphics.GL.Compatibility40
+  , module Graphics.GL.Core41
+) where
+
+
+
+import Graphics.GL.Compatibility40
+import Graphics.GL.Core41
diff --git a/generated-src/Graphics/GL/Compatibility42.hs b/generated-src/Graphics/GL/Compatibility42.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility42.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Compatibility42 (
+  -- * Graphics.GL.Compatibility42
+    module Graphics.GL.Compatibility41
+  , module Graphics.GL.Core42
+) where
+
+
+
+import Graphics.GL.Compatibility41
+import Graphics.GL.Core42
diff --git a/generated-src/Graphics/GL/Compatibility43.hs b/generated-src/Graphics/GL/Compatibility43.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility43.hs
@@ -0,0 +1,13 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Compatibility43 (
+  -- * Graphics.GL.Compatibility43
+    module Graphics.GL.Compatibility42
+  , module Graphics.GL.Core43
+  , pattern GL_DISPLAY_LIST
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Compatibility42
+import Graphics.GL.Core43
diff --git a/generated-src/Graphics/GL/Compatibility44.hs b/generated-src/Graphics/GL/Compatibility44.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility44.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Compatibility44 (
+  -- * Graphics.GL.Compatibility44
+    module Graphics.GL.Compatibility43
+  , module Graphics.GL.Core44
+) where
+
+
+
+import Graphics.GL.Compatibility43
+import Graphics.GL.Core44
diff --git a/generated-src/Graphics/GL/Compatibility45.hs b/generated-src/Graphics/GL/Compatibility45.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Compatibility45.hs
@@ -0,0 +1,161 @@
+-- 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 = ffienumenumenumsizeiPtrVIOV glGetnColorTableFunPtr
+
+glGetnColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnColorTableFunPtr = unsafePerformIO (getProcAddress "glGetnColorTable")
+
+{-# NOINLINE glGetnColorTableFunPtr #-}
+
+-- | Usage: @'glGetnConvolutionFilter' target format type bufSize image@
+
+
+glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnConvolutionFilter = ffienumenumenumsizeiPtrVIOV glGetnConvolutionFilterFunPtr
+
+glGetnConvolutionFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnConvolutionFilterFunPtr = unsafePerformIO (getProcAddress "glGetnConvolutionFilter")
+
+{-# NOINLINE glGetnConvolutionFilterFunPtr #-}
+
+-- | Usage: @'glGetnHistogram' target reset format type bufSize values@
+
+
+glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnHistogram = ffienumbooleanenumenumsizeiPtrVIOV glGetnHistogramFunPtr
+
+glGetnHistogramFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnHistogramFunPtr = unsafePerformIO (getProcAddress "glGetnHistogram")
+
+{-# NOINLINE glGetnHistogramFunPtr #-}
+
+-- | Usage: @'glGetnMapdv' target query bufSize v@
+
+
+glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
+glGetnMapdv = ffienumenumsizeiPtrdoubleIOV glGetnMapdvFunPtr
+
+glGetnMapdvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
+glGetnMapdvFunPtr = unsafePerformIO (getProcAddress "glGetnMapdv")
+
+{-# NOINLINE glGetnMapdvFunPtr #-}
+
+-- | Usage: @'glGetnMapfv' target query bufSize v@
+
+
+glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glGetnMapfv = ffienumenumsizeiPtrfloatIOV glGetnMapfvFunPtr
+
+glGetnMapfvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnMapfvFunPtr = unsafePerformIO (getProcAddress "glGetnMapfv")
+
+{-# NOINLINE glGetnMapfvFunPtr #-}
+
+-- | Usage: @'glGetnMapiv' target query bufSize v@
+
+
+glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+glGetnMapiv = ffienumenumsizeiPtrintIOV glGetnMapivFunPtr
+
+glGetnMapivFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+glGetnMapivFunPtr = unsafePerformIO (getProcAddress "glGetnMapiv")
+
+{-# NOINLINE glGetnMapivFunPtr #-}
+
+-- | Usage: @'glGetnMinmax' target reset format type bufSize values@
+
+
+glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnMinmax = ffienumbooleanenumenumsizeiPtrVIOV glGetnMinmaxFunPtr
+
+glGetnMinmaxFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnMinmaxFunPtr = unsafePerformIO (getProcAddress "glGetnMinmax")
+
+{-# NOINLINE glGetnMinmaxFunPtr #-}
+
+-- | Usage: @'glGetnPixelMapfv' map bufSize values@
+
+
+glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glGetnPixelMapfv = ffienumsizeiPtrfloatIOV glGetnPixelMapfvFunPtr
+
+glGetnPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapfv")
+
+{-# NOINLINE glGetnPixelMapfvFunPtr #-}
+
+-- | Usage: @'glGetnPixelMapuiv' map bufSize values@
+
+
+glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glGetnPixelMapuiv = ffienumsizeiPtruintIOV glGetnPixelMapuivFunPtr
+
+glGetnPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glGetnPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapuiv")
+
+{-# NOINLINE glGetnPixelMapuivFunPtr #-}
+
+-- | Usage: @'glGetnPixelMapusv' map bufSize values@
+
+
+glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
+glGetnPixelMapusv = ffienumsizeiPtrushortIOV glGetnPixelMapusvFunPtr
+
+glGetnPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+glGetnPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapusv")
+
+{-# NOINLINE glGetnPixelMapusvFunPtr #-}
+
+-- | Usage: @'glGetnPolygonStipple' bufSize pattern@
+
+
+glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
+glGetnPolygonStipple = ffisizeiPtrubyteIOV glGetnPolygonStippleFunPtr
+
+glGetnPolygonStippleFunPtr :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
+glGetnPolygonStippleFunPtr = unsafePerformIO (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 = ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV glGetnSeparableFilterFunPtr
+
+glGetnSeparableFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ())
+glGetnSeparableFilterFunPtr = unsafePerformIO (getProcAddress "glGetnSeparableFilter")
+
+{-# NOINLINE glGetnSeparableFilterFunPtr #-}
diff --git a/generated-src/Graphics/GL/Core32.hs b/generated-src/Graphics/GL/Core32.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core32.hs
@@ -0,0 +1,1133 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core32 (
+  -- * Graphics.GL.Core32
+    glActiveTexture
+  , glAttachShader
+  , glBeginConditionalRender
+  , glBeginQuery
+  , glBeginTransformFeedback
+  , glBindAttribLocation
+  , glBindBuffer
+  , glBindBufferBase
+  , glBindBufferRange
+  , glBindFragDataLocation
+  , glBindFramebuffer
+  , glBindRenderbuffer
+  , glBindTexture
+  , glBindVertexArray
+  , glBlendColor
+  , glBlendEquation
+  , glBlendEquationSeparate
+  , glBlendFunc
+  , glBlendFuncSeparate
+  , glBlitFramebuffer
+  , glBufferData
+  , glBufferSubData
+  , glCheckFramebufferStatus
+  , glClampColor
+  , glClear
+  , glClearBufferfi
+  , glClearBufferfv
+  , glClearBufferiv
+  , glClearBufferuiv
+  , glClearColor
+  , glClearDepth
+  , glClearStencil
+  , glClientWaitSync
+  , glColorMask
+  , glColorMaski
+  , glCompileShader
+  , glCompressedTexImage1D
+  , glCompressedTexImage2D
+  , glCompressedTexImage3D
+  , glCompressedTexSubImage1D
+  , glCompressedTexSubImage2D
+  , glCompressedTexSubImage3D
+  , glCopyBufferSubData
+  , glCopyTexImage1D
+  , glCopyTexImage2D
+  , glCopyTexSubImage1D
+  , glCopyTexSubImage2D
+  , glCopyTexSubImage3D
+  , glCreateProgram
+  , glCreateShader
+  , glCullFace
+  , glDeleteBuffers
+  , glDeleteFramebuffers
+  , glDeleteProgram
+  , glDeleteQueries
+  , glDeleteRenderbuffers
+  , glDeleteShader
+  , glDeleteSync
+  , glDeleteTextures
+  , glDeleteVertexArrays
+  , glDepthFunc
+  , glDepthMask
+  , glDepthRange
+  , glDetachShader
+  , glDisable
+  , glDisableVertexAttribArray
+  , glDisablei
+  , glDrawArrays
+  , glDrawArraysInstanced
+  , glDrawBuffer
+  , glDrawBuffers
+  , glDrawElements
+  , glDrawElementsBaseVertex
+  , glDrawElementsInstanced
+  , glDrawElementsInstancedBaseVertex
+  , glDrawRangeElements
+  , glDrawRangeElementsBaseVertex
+  , glEnable
+  , glEnableVertexAttribArray
+  , glEnablei
+  , glEndConditionalRender
+  , glEndQuery
+  , glEndTransformFeedback
+  , glFenceSync
+  , glFinish
+  , glFlush
+  , glFlushMappedBufferRange
+  , glFramebufferRenderbuffer
+  , glFramebufferTexture
+  , glFramebufferTexture1D
+  , glFramebufferTexture2D
+  , glFramebufferTexture3D
+  , glFramebufferTextureLayer
+  , glFrontFace
+  , glGenBuffers
+  , glGenFramebuffers
+  , glGenQueries
+  , glGenRenderbuffers
+  , glGenTextures
+  , glGenVertexArrays
+  , glGenerateMipmap
+  , glGetActiveAttrib
+  , glGetActiveUniform
+  , glGetActiveUniformBlockName
+  , glGetActiveUniformBlockiv
+  , glGetActiveUniformName
+  , glGetActiveUniformsiv
+  , glGetAttachedShaders
+  , glGetAttribLocation
+  , glGetBooleani_v
+  , glGetBooleanv
+  , glGetBufferParameteri64v
+  , glGetBufferParameteriv
+  , glGetBufferPointerv
+  , glGetBufferSubData
+  , glGetCompressedTexImage
+  , glGetDoublev
+  , glGetError
+  , glGetFloatv
+  , glGetFragDataLocation
+  , glGetFramebufferAttachmentParameteriv
+  , glGetInteger64i_v
+  , glGetInteger64v
+  , glGetIntegeri_v
+  , glGetIntegerv
+  , glGetMultisamplefv
+  , glGetProgramInfoLog
+  , glGetProgramiv
+  , glGetQueryObjectiv
+  , glGetQueryObjectuiv
+  , glGetQueryiv
+  , glGetRenderbufferParameteriv
+  , glGetShaderInfoLog
+  , glGetShaderSource
+  , glGetShaderiv
+  , glGetString
+  , glGetStringi
+  , glGetSynciv
+  , glGetTexImage
+  , glGetTexLevelParameterfv
+  , glGetTexLevelParameteriv
+  , glGetTexParameterIiv
+  , glGetTexParameterIuiv
+  , glGetTexParameterfv
+  , glGetTexParameteriv
+  , glGetTransformFeedbackVarying
+  , glGetUniformBlockIndex
+  , glGetUniformIndices
+  , glGetUniformLocation
+  , glGetUniformfv
+  , glGetUniformiv
+  , glGetUniformuiv
+  , glGetVertexAttribIiv
+  , glGetVertexAttribIuiv
+  , glGetVertexAttribPointerv
+  , glGetVertexAttribdv
+  , glGetVertexAttribfv
+  , glGetVertexAttribiv
+  , glHint
+  , glIsBuffer
+  , glIsEnabled
+  , glIsEnabledi
+  , glIsFramebuffer
+  , glIsProgram
+  , glIsQuery
+  , glIsRenderbuffer
+  , glIsShader
+  , glIsSync
+  , glIsTexture
+  , glIsVertexArray
+  , glLineWidth
+  , glLinkProgram
+  , glLogicOp
+  , glMapBuffer
+  , glMapBufferRange
+  , glMultiDrawArrays
+  , glMultiDrawElements
+  , glMultiDrawElementsBaseVertex
+  , glPixelStoref
+  , glPixelStorei
+  , glPointParameterf
+  , glPointParameterfv
+  , glPointParameteri
+  , glPointParameteriv
+  , glPointSize
+  , glPolygonMode
+  , glPolygonOffset
+  , glPrimitiveRestartIndex
+  , glProvokingVertex
+  , glReadBuffer
+  , glReadPixels
+  , glRenderbufferStorage
+  , glRenderbufferStorageMultisample
+  , glSampleCoverage
+  , glSampleMaski
+  , glScissor
+  , glShaderSource
+  , glStencilFunc
+  , glStencilFuncSeparate
+  , glStencilMask
+  , glStencilMaskSeparate
+  , glStencilOp
+  , glStencilOpSeparate
+  , glTexBuffer
+  , glTexImage1D
+  , glTexImage2D
+  , glTexImage2DMultisample
+  , glTexImage3D
+  , glTexImage3DMultisample
+  , glTexParameterIiv
+  , glTexParameterIuiv
+  , glTexParameterf
+  , glTexParameterfv
+  , glTexParameteri
+  , glTexParameteriv
+  , glTexSubImage1D
+  , glTexSubImage2D
+  , glTexSubImage3D
+  , glTransformFeedbackVaryings
+  , glUniform1f
+  , glUniform1fv
+  , glUniform1i
+  , glUniform1iv
+  , glUniform1ui
+  , glUniform1uiv
+  , glUniform2f
+  , glUniform2fv
+  , glUniform2i
+  , glUniform2iv
+  , glUniform2ui
+  , glUniform2uiv
+  , glUniform3f
+  , glUniform3fv
+  , glUniform3i
+  , glUniform3iv
+  , glUniform3ui
+  , glUniform3uiv
+  , glUniform4f
+  , glUniform4fv
+  , glUniform4i
+  , glUniform4iv
+  , glUniform4ui
+  , glUniform4uiv
+  , glUniformBlockBinding
+  , glUniformMatrix2fv
+  , glUniformMatrix2x3fv
+  , glUniformMatrix2x4fv
+  , glUniformMatrix3fv
+  , glUniformMatrix3x2fv
+  , glUniformMatrix3x4fv
+  , glUniformMatrix4fv
+  , glUniformMatrix4x2fv
+  , glUniformMatrix4x3fv
+  , glUnmapBuffer
+  , glUseProgram
+  , glValidateProgram
+  , glVertexAttrib1d
+  , glVertexAttrib1dv
+  , glVertexAttrib1f
+  , glVertexAttrib1fv
+  , glVertexAttrib1s
+  , glVertexAttrib1sv
+  , glVertexAttrib2d
+  , glVertexAttrib2dv
+  , glVertexAttrib2f
+  , glVertexAttrib2fv
+  , glVertexAttrib2s
+  , glVertexAttrib2sv
+  , glVertexAttrib3d
+  , glVertexAttrib3dv
+  , glVertexAttrib3f
+  , glVertexAttrib3fv
+  , glVertexAttrib3s
+  , glVertexAttrib3sv
+  , glVertexAttrib4Nbv
+  , glVertexAttrib4Niv
+  , glVertexAttrib4Nsv
+  , glVertexAttrib4Nub
+  , glVertexAttrib4Nubv
+  , glVertexAttrib4Nuiv
+  , glVertexAttrib4Nusv
+  , glVertexAttrib4bv
+  , glVertexAttrib4d
+  , glVertexAttrib4dv
+  , glVertexAttrib4f
+  , glVertexAttrib4fv
+  , glVertexAttrib4iv
+  , glVertexAttrib4s
+  , glVertexAttrib4sv
+  , glVertexAttrib4ubv
+  , glVertexAttrib4uiv
+  , glVertexAttrib4usv
+  , glVertexAttribI1i
+  , glVertexAttribI1iv
+  , glVertexAttribI1ui
+  , glVertexAttribI1uiv
+  , glVertexAttribI2i
+  , glVertexAttribI2iv
+  , glVertexAttribI2ui
+  , glVertexAttribI2uiv
+  , glVertexAttribI3i
+  , glVertexAttribI3iv
+  , glVertexAttribI3ui
+  , glVertexAttribI3uiv
+  , glVertexAttribI4bv
+  , glVertexAttribI4i
+  , glVertexAttribI4iv
+  , glVertexAttribI4sv
+  , glVertexAttribI4ubv
+  , glVertexAttribI4ui
+  , glVertexAttribI4uiv
+  , glVertexAttribI4usv
+  , glVertexAttribIPointer
+  , glVertexAttribPointer
+  , glViewport
+  , glWaitSync
+  , pattern GL_ACTIVE_ATTRIBUTES
+  , pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
+  , pattern GL_ACTIVE_TEXTURE
+  , pattern GL_ACTIVE_UNIFORMS
+  , pattern GL_ACTIVE_UNIFORM_BLOCKS
+  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
+  , pattern GL_ACTIVE_UNIFORM_MAX_LENGTH
+  , pattern GL_ALIASED_LINE_WIDTH_RANGE
+  , pattern GL_ALPHA
+  , pattern GL_ALREADY_SIGNALED
+  , pattern GL_ALWAYS
+  , pattern GL_AND
+  , pattern GL_AND_INVERTED
+  , pattern GL_AND_REVERSE
+  , pattern GL_ARRAY_BUFFER
+  , pattern GL_ARRAY_BUFFER_BINDING
+  , pattern GL_ATTACHED_SHADERS
+  , pattern GL_BACK
+  , pattern GL_BACK_LEFT
+  , pattern GL_BACK_RIGHT
+  , pattern GL_BGR
+  , pattern GL_BGRA
+  , pattern GL_BGRA_INTEGER
+  , pattern GL_BGR_INTEGER
+  , pattern GL_BLEND
+  , pattern GL_BLEND_COLOR
+  , pattern GL_BLEND_DST
+  , pattern GL_BLEND_DST_ALPHA
+  , pattern GL_BLEND_DST_RGB
+  , pattern GL_BLEND_EQUATION_ALPHA
+  , pattern GL_BLEND_EQUATION_RGB
+  , pattern GL_BLEND_SRC
+  , pattern GL_BLEND_SRC_ALPHA
+  , pattern GL_BLEND_SRC_RGB
+  , pattern GL_BLUE
+  , pattern GL_BLUE_INTEGER
+  , pattern GL_BOOL
+  , pattern GL_BOOL_VEC2
+  , pattern GL_BOOL_VEC3
+  , pattern GL_BOOL_VEC4
+  , pattern GL_BUFFER_ACCESS
+  , pattern GL_BUFFER_ACCESS_FLAGS
+  , pattern GL_BUFFER_MAPPED
+  , pattern GL_BUFFER_MAP_LENGTH
+  , pattern GL_BUFFER_MAP_OFFSET
+  , pattern GL_BUFFER_MAP_POINTER
+  , pattern GL_BUFFER_SIZE
+  , pattern GL_BUFFER_USAGE
+  , pattern GL_BYTE
+  , pattern GL_CCW
+  , pattern GL_CLAMP_READ_COLOR
+  , pattern GL_CLAMP_TO_BORDER
+  , pattern GL_CLAMP_TO_EDGE
+  , pattern GL_CLEAR
+  , pattern GL_CLIP_DISTANCE0
+  , pattern GL_CLIP_DISTANCE1
+  , pattern GL_CLIP_DISTANCE2
+  , pattern GL_CLIP_DISTANCE3
+  , pattern GL_CLIP_DISTANCE4
+  , pattern GL_CLIP_DISTANCE5
+  , pattern GL_CLIP_DISTANCE6
+  , pattern GL_CLIP_DISTANCE7
+  , pattern GL_COLOR
+  , pattern GL_COLOR_ATTACHMENT0
+  , pattern GL_COLOR_ATTACHMENT1
+  , pattern GL_COLOR_ATTACHMENT10
+  , pattern GL_COLOR_ATTACHMENT11
+  , pattern GL_COLOR_ATTACHMENT12
+  , pattern GL_COLOR_ATTACHMENT13
+  , pattern GL_COLOR_ATTACHMENT14
+  , pattern GL_COLOR_ATTACHMENT15
+  , pattern GL_COLOR_ATTACHMENT16
+  , pattern GL_COLOR_ATTACHMENT17
+  , pattern GL_COLOR_ATTACHMENT18
+  , pattern GL_COLOR_ATTACHMENT19
+  , pattern GL_COLOR_ATTACHMENT2
+  , pattern GL_COLOR_ATTACHMENT20
+  , pattern GL_COLOR_ATTACHMENT21
+  , pattern GL_COLOR_ATTACHMENT22
+  , pattern GL_COLOR_ATTACHMENT23
+  , pattern GL_COLOR_ATTACHMENT24
+  , pattern GL_COLOR_ATTACHMENT25
+  , pattern GL_COLOR_ATTACHMENT26
+  , pattern GL_COLOR_ATTACHMENT27
+  , pattern GL_COLOR_ATTACHMENT28
+  , pattern GL_COLOR_ATTACHMENT29
+  , pattern GL_COLOR_ATTACHMENT3
+  , pattern GL_COLOR_ATTACHMENT30
+  , pattern GL_COLOR_ATTACHMENT31
+  , pattern GL_COLOR_ATTACHMENT4
+  , pattern GL_COLOR_ATTACHMENT5
+  , pattern GL_COLOR_ATTACHMENT6
+  , pattern GL_COLOR_ATTACHMENT7
+  , pattern GL_COLOR_ATTACHMENT8
+  , pattern GL_COLOR_ATTACHMENT9
+  , pattern GL_COLOR_BUFFER_BIT
+  , pattern GL_COLOR_CLEAR_VALUE
+  , pattern GL_COLOR_LOGIC_OP
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_COMPARE_REF_TO_TEXTURE
+  , pattern GL_COMPILE_STATUS
+  , pattern GL_COMPRESSED_RED
+  , pattern GL_COMPRESSED_RED_RGTC1
+  , pattern GL_COMPRESSED_RG
+  , pattern GL_COMPRESSED_RGB
+  , pattern GL_COMPRESSED_RGBA
+  , pattern GL_COMPRESSED_RG_RGTC2
+  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1
+  , pattern GL_COMPRESSED_SIGNED_RG_RGTC2
+  , pattern GL_COMPRESSED_SRGB
+  , pattern GL_COMPRESSED_SRGB_ALPHA
+  , pattern GL_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_CONDITION_SATISFIED
+  , pattern GL_CONSTANT_ALPHA
+  , pattern GL_CONSTANT_COLOR
+  , pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT
+  , pattern GL_CONTEXT_CORE_PROFILE_BIT
+  , pattern GL_CONTEXT_FLAGS
+  , pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT
+  , pattern GL_CONTEXT_PROFILE_MASK
+  , pattern GL_COPY
+  , pattern GL_COPY_INVERTED
+  , pattern GL_COPY_READ_BUFFER
+  , pattern GL_COPY_WRITE_BUFFER
+  , pattern GL_CULL_FACE
+  , pattern GL_CULL_FACE_MODE
+  , pattern GL_CURRENT_PROGRAM
+  , pattern GL_CURRENT_QUERY
+  , pattern GL_CURRENT_VERTEX_ATTRIB
+  , pattern GL_CW
+  , pattern GL_DECR
+  , pattern GL_DECR_WRAP
+  , pattern GL_DELETE_STATUS
+  , pattern GL_DEPTH
+  , pattern GL_DEPTH24_STENCIL8
+  , pattern GL_DEPTH32F_STENCIL8
+  , pattern GL_DEPTH_ATTACHMENT
+  , pattern GL_DEPTH_BUFFER_BIT
+  , pattern GL_DEPTH_CLAMP
+  , pattern GL_DEPTH_CLEAR_VALUE
+  , pattern GL_DEPTH_COMPONENT
+  , pattern GL_DEPTH_COMPONENT16
+  , pattern GL_DEPTH_COMPONENT24
+  , pattern GL_DEPTH_COMPONENT32
+  , pattern GL_DEPTH_COMPONENT32F
+  , pattern GL_DEPTH_FUNC
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_DEPTH_STENCIL
+  , pattern GL_DEPTH_STENCIL_ATTACHMENT
+  , pattern GL_DEPTH_TEST
+  , pattern GL_DEPTH_WRITEMASK
+  , pattern GL_DITHER
+  , pattern GL_DONT_CARE
+  , pattern GL_DOUBLE
+  , pattern GL_DOUBLEBUFFER
+  , pattern GL_DRAW_BUFFER
+  , pattern GL_DRAW_BUFFER0
+  , pattern GL_DRAW_BUFFER1
+  , pattern GL_DRAW_BUFFER10
+  , pattern GL_DRAW_BUFFER11
+  , pattern GL_DRAW_BUFFER12
+  , pattern GL_DRAW_BUFFER13
+  , pattern GL_DRAW_BUFFER14
+  , pattern GL_DRAW_BUFFER15
+  , pattern GL_DRAW_BUFFER2
+  , pattern GL_DRAW_BUFFER3
+  , pattern GL_DRAW_BUFFER4
+  , pattern GL_DRAW_BUFFER5
+  , pattern GL_DRAW_BUFFER6
+  , pattern GL_DRAW_BUFFER7
+  , pattern GL_DRAW_BUFFER8
+  , pattern GL_DRAW_BUFFER9
+  , pattern GL_DRAW_FRAMEBUFFER
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_DYNAMIC_COPY
+  , pattern GL_DYNAMIC_DRAW
+  , pattern GL_DYNAMIC_READ
+  , pattern GL_ELEMENT_ARRAY_BUFFER
+  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
+  , pattern GL_EQUAL
+  , pattern GL_EQUIV
+  , pattern GL_EXTENSIONS
+  , pattern GL_FALSE
+  , pattern GL_FASTEST
+  , pattern GL_FILL
+  , pattern GL_FIRST_VERTEX_CONVENTION
+  , pattern GL_FIXED_ONLY
+  , pattern GL_FLOAT
+  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
+  , pattern GL_FLOAT_MAT2
+  , pattern GL_FLOAT_MAT2x3
+  , pattern GL_FLOAT_MAT2x4
+  , pattern GL_FLOAT_MAT3
+  , pattern GL_FLOAT_MAT3x2
+  , pattern GL_FLOAT_MAT3x4
+  , pattern GL_FLOAT_MAT4
+  , pattern GL_FLOAT_MAT4x2
+  , pattern GL_FLOAT_MAT4x3
+  , pattern GL_FLOAT_VEC2
+  , pattern GL_FLOAT_VEC3
+  , pattern GL_FLOAT_VEC4
+  , pattern GL_FRAGMENT_SHADER
+  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT
+  , pattern GL_FRAMEBUFFER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
+  , pattern GL_FRAMEBUFFER_BINDING
+  , pattern GL_FRAMEBUFFER_COMPLETE
+  , pattern GL_FRAMEBUFFER_DEFAULT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
+  , pattern GL_FRAMEBUFFER_SRGB
+  , pattern GL_FRAMEBUFFER_UNDEFINED
+  , pattern GL_FRAMEBUFFER_UNSUPPORTED
+  , pattern GL_FRONT
+  , pattern GL_FRONT_AND_BACK
+  , pattern GL_FRONT_FACE
+  , pattern GL_FRONT_LEFT
+  , pattern GL_FRONT_RIGHT
+  , pattern GL_FUNC_ADD
+  , pattern GL_FUNC_REVERSE_SUBTRACT
+  , pattern GL_FUNC_SUBTRACT
+  , pattern GL_GEOMETRY_INPUT_TYPE
+  , pattern GL_GEOMETRY_OUTPUT_TYPE
+  , pattern GL_GEOMETRY_SHADER
+  , pattern GL_GEOMETRY_VERTICES_OUT
+  , pattern GL_GEQUAL
+  , pattern GL_GREATER
+  , pattern GL_GREEN
+  , pattern GL_GREEN_INTEGER
+  , pattern GL_HALF_FLOAT
+  , pattern GL_INCR
+  , pattern GL_INCR_WRAP
+  , pattern GL_INDEX
+  , pattern GL_INFO_LOG_LENGTH
+  , pattern GL_INT
+  , pattern GL_INTERLEAVED_ATTRIBS
+  , pattern GL_INT_SAMPLER_1D
+  , pattern GL_INT_SAMPLER_1D_ARRAY
+  , pattern GL_INT_SAMPLER_2D
+  , pattern GL_INT_SAMPLER_2D_ARRAY
+  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_INT_SAMPLER_2D_RECT
+  , pattern GL_INT_SAMPLER_3D
+  , pattern GL_INT_SAMPLER_BUFFER
+  , pattern GL_INT_SAMPLER_CUBE
+  , pattern GL_INT_VEC2
+  , pattern GL_INT_VEC3
+  , pattern GL_INT_VEC4
+  , pattern GL_INVALID_ENUM
+  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
+  , pattern GL_INVALID_INDEX
+  , pattern GL_INVALID_OPERATION
+  , pattern GL_INVALID_VALUE
+  , pattern GL_INVERT
+  , pattern GL_KEEP
+  , pattern GL_LAST_VERTEX_CONVENTION
+  , pattern GL_LEFT
+  , pattern GL_LEQUAL
+  , pattern GL_LESS
+  , pattern GL_LINE
+  , pattern GL_LINEAR
+  , pattern GL_LINEAR_MIPMAP_LINEAR
+  , pattern GL_LINEAR_MIPMAP_NEAREST
+  , pattern GL_LINES
+  , pattern GL_LINES_ADJACENCY
+  , pattern GL_LINE_LOOP
+  , pattern GL_LINE_SMOOTH
+  , pattern GL_LINE_SMOOTH_HINT
+  , pattern GL_LINE_STRIP
+  , pattern GL_LINE_STRIP_ADJACENCY
+  , pattern GL_LINE_WIDTH
+  , pattern GL_LINE_WIDTH_GRANULARITY
+  , pattern GL_LINE_WIDTH_RANGE
+  , pattern GL_LINK_STATUS
+  , pattern GL_LOGIC_OP_MODE
+  , pattern GL_LOWER_LEFT
+  , pattern GL_MAJOR_VERSION
+  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
+  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
+  , pattern GL_MAP_INVALIDATE_RANGE_BIT
+  , pattern GL_MAP_READ_BIT
+  , pattern GL_MAP_UNSYNCHRONIZED_BIT
+  , pattern GL_MAP_WRITE_BIT
+  , pattern GL_MAX
+  , pattern GL_MAX_3D_TEXTURE_SIZE
+  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS
+  , pattern GL_MAX_CLIP_DISTANCES
+  , pattern GL_MAX_COLOR_ATTACHMENTS
+  , pattern GL_MAX_COLOR_TEXTURE_SAMPLES
+  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
+  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
+  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE
+  , pattern GL_MAX_DEPTH_TEXTURE_SAMPLES
+  , pattern GL_MAX_DRAW_BUFFERS
+  , pattern GL_MAX_ELEMENTS_INDICES
+  , pattern GL_MAX_ELEMENTS_VERTICES
+  , pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
+  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS
+  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS
+  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES
+  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
+  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS
+  , pattern GL_MAX_INTEGER_SAMPLES
+  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET
+  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE
+  , pattern GL_MAX_RENDERBUFFER_SIZE
+  , pattern GL_MAX_SAMPLES
+  , pattern GL_MAX_SAMPLE_MASK_WORDS
+  , pattern GL_MAX_SERVER_WAIT_TIMEOUT
+  , pattern GL_MAX_TEXTURE_BUFFER_SIZE
+  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TEXTURE_LOD_BIAS
+  , pattern GL_MAX_TEXTURE_SIZE
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
+  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
+  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
+  , pattern GL_MAX_VARYING_COMPONENTS
+  , pattern GL_MAX_VARYING_FLOATS
+  , pattern GL_MAX_VERTEX_ATTRIBS
+  , pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS
+  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
+  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS
+  , pattern GL_MAX_VIEWPORT_DIMS
+  , pattern GL_MIN
+  , pattern GL_MINOR_VERSION
+  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET
+  , pattern GL_MIRRORED_REPEAT
+  , pattern GL_MULTISAMPLE
+  , pattern GL_NAND
+  , pattern GL_NEAREST
+  , pattern GL_NEAREST_MIPMAP_LINEAR
+  , pattern GL_NEAREST_MIPMAP_NEAREST
+  , pattern GL_NEVER
+  , pattern GL_NICEST
+  , pattern GL_NONE
+  , pattern GL_NOOP
+  , pattern GL_NOR
+  , pattern GL_NOTEQUAL
+  , pattern GL_NO_ERROR
+  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_NUM_EXTENSIONS
+  , pattern GL_OBJECT_TYPE
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_OR
+  , pattern GL_OR_INVERTED
+  , pattern GL_OR_REVERSE
+  , pattern GL_OUT_OF_MEMORY
+  , pattern GL_PACK_ALIGNMENT
+  , pattern GL_PACK_IMAGE_HEIGHT
+  , pattern GL_PACK_LSB_FIRST
+  , pattern GL_PACK_ROW_LENGTH
+  , pattern GL_PACK_SKIP_IMAGES
+  , pattern GL_PACK_SKIP_PIXELS
+  , pattern GL_PACK_SKIP_ROWS
+  , pattern GL_PACK_SWAP_BYTES
+  , pattern GL_PIXEL_PACK_BUFFER
+  , pattern GL_PIXEL_PACK_BUFFER_BINDING
+  , pattern GL_PIXEL_UNPACK_BUFFER
+  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING
+  , pattern GL_POINT
+  , pattern GL_POINTS
+  , pattern GL_POINT_FADE_THRESHOLD_SIZE
+  , pattern GL_POINT_SIZE
+  , pattern GL_POINT_SIZE_GRANULARITY
+  , pattern GL_POINT_SIZE_RANGE
+  , pattern GL_POINT_SPRITE_COORD_ORIGIN
+  , pattern GL_POLYGON_MODE
+  , pattern GL_POLYGON_OFFSET_FACTOR
+  , pattern GL_POLYGON_OFFSET_FILL
+  , pattern GL_POLYGON_OFFSET_LINE
+  , pattern GL_POLYGON_OFFSET_POINT
+  , pattern GL_POLYGON_OFFSET_UNITS
+  , pattern GL_POLYGON_SMOOTH
+  , pattern GL_POLYGON_SMOOTH_HINT
+  , pattern GL_PRIMITIVES_GENERATED
+  , pattern GL_PRIMITIVE_RESTART
+  , pattern GL_PRIMITIVE_RESTART_INDEX
+  , pattern GL_PROGRAM_POINT_SIZE
+  , pattern GL_PROVOKING_VERTEX
+  , pattern GL_PROXY_TEXTURE_1D
+  , pattern GL_PROXY_TEXTURE_1D_ARRAY
+  , pattern GL_PROXY_TEXTURE_2D
+  , pattern GL_PROXY_TEXTURE_2D_ARRAY
+  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE
+  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_PROXY_TEXTURE_3D
+  , pattern GL_PROXY_TEXTURE_CUBE_MAP
+  , pattern GL_PROXY_TEXTURE_RECTANGLE
+  , pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
+  , pattern GL_QUERY_BY_REGION_NO_WAIT
+  , pattern GL_QUERY_BY_REGION_WAIT
+  , pattern GL_QUERY_COUNTER_BITS
+  , pattern GL_QUERY_NO_WAIT
+  , pattern GL_QUERY_RESULT
+  , pattern GL_QUERY_RESULT_AVAILABLE
+  , pattern GL_QUERY_WAIT
+  , pattern GL_R11F_G11F_B10F
+  , pattern GL_R16
+  , pattern GL_R16F
+  , pattern GL_R16I
+  , pattern GL_R16UI
+  , pattern GL_R16_SNORM
+  , pattern GL_R32F
+  , pattern GL_R32I
+  , pattern GL_R32UI
+  , pattern GL_R3_G3_B2
+  , pattern GL_R8
+  , pattern GL_R8I
+  , pattern GL_R8UI
+  , pattern GL_R8_SNORM
+  , pattern GL_RASTERIZER_DISCARD
+  , pattern GL_READ_BUFFER
+  , pattern GL_READ_FRAMEBUFFER
+  , pattern GL_READ_FRAMEBUFFER_BINDING
+  , pattern GL_READ_ONLY
+  , pattern GL_READ_WRITE
+  , pattern GL_RED
+  , pattern GL_RED_INTEGER
+  , pattern GL_RENDERBUFFER
+  , pattern GL_RENDERBUFFER_ALPHA_SIZE
+  , pattern GL_RENDERBUFFER_BINDING
+  , pattern GL_RENDERBUFFER_BLUE_SIZE
+  , pattern GL_RENDERBUFFER_DEPTH_SIZE
+  , pattern GL_RENDERBUFFER_GREEN_SIZE
+  , pattern GL_RENDERBUFFER_HEIGHT
+  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
+  , pattern GL_RENDERBUFFER_RED_SIZE
+  , pattern GL_RENDERBUFFER_SAMPLES
+  , pattern GL_RENDERBUFFER_STENCIL_SIZE
+  , pattern GL_RENDERBUFFER_WIDTH
+  , pattern GL_RENDERER
+  , pattern GL_REPEAT
+  , pattern GL_REPLACE
+  , pattern GL_RG
+  , pattern GL_RG16
+  , pattern GL_RG16F
+  , pattern GL_RG16I
+  , pattern GL_RG16UI
+  , pattern GL_RG16_SNORM
+  , pattern GL_RG32F
+  , pattern GL_RG32I
+  , pattern GL_RG32UI
+  , pattern GL_RG8
+  , pattern GL_RG8I
+  , pattern GL_RG8UI
+  , pattern GL_RG8_SNORM
+  , pattern GL_RGB
+  , pattern GL_RGB10
+  , pattern GL_RGB10_A2
+  , pattern GL_RGB12
+  , pattern GL_RGB16
+  , pattern GL_RGB16F
+  , pattern GL_RGB16I
+  , pattern GL_RGB16UI
+  , pattern GL_RGB16_SNORM
+  , pattern GL_RGB32F
+  , pattern GL_RGB32I
+  , pattern GL_RGB32UI
+  , pattern GL_RGB4
+  , pattern GL_RGB5
+  , pattern GL_RGB5_A1
+  , pattern GL_RGB8
+  , pattern GL_RGB8I
+  , pattern GL_RGB8UI
+  , pattern GL_RGB8_SNORM
+  , pattern GL_RGB9_E5
+  , pattern GL_RGBA
+  , pattern GL_RGBA12
+  , pattern GL_RGBA16
+  , pattern GL_RGBA16F
+  , pattern GL_RGBA16I
+  , pattern GL_RGBA16UI
+  , pattern GL_RGBA16_SNORM
+  , pattern GL_RGBA2
+  , pattern GL_RGBA32F
+  , pattern GL_RGBA32I
+  , pattern GL_RGBA32UI
+  , pattern GL_RGBA4
+  , pattern GL_RGBA8
+  , pattern GL_RGBA8I
+  , pattern GL_RGBA8UI
+  , pattern GL_RGBA8_SNORM
+  , pattern GL_RGBA_INTEGER
+  , pattern GL_RGB_INTEGER
+  , pattern GL_RG_INTEGER
+  , pattern GL_RIGHT
+  , pattern GL_SAMPLER_1D
+  , pattern GL_SAMPLER_1D_ARRAY
+  , pattern GL_SAMPLER_1D_ARRAY_SHADOW
+  , pattern GL_SAMPLER_1D_SHADOW
+  , pattern GL_SAMPLER_2D
+  , pattern GL_SAMPLER_2D_ARRAY
+  , pattern GL_SAMPLER_2D_ARRAY_SHADOW
+  , pattern GL_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_SAMPLER_2D_RECT
+  , pattern GL_SAMPLER_2D_RECT_SHADOW
+  , pattern GL_SAMPLER_2D_SHADOW
+  , pattern GL_SAMPLER_3D
+  , pattern GL_SAMPLER_BUFFER
+  , pattern GL_SAMPLER_CUBE
+  , pattern GL_SAMPLER_CUBE_SHADOW
+  , pattern GL_SAMPLES
+  , pattern GL_SAMPLES_PASSED
+  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
+  , pattern GL_SAMPLE_ALPHA_TO_ONE
+  , pattern GL_SAMPLE_BUFFERS
+  , pattern GL_SAMPLE_COVERAGE
+  , pattern GL_SAMPLE_COVERAGE_INVERT
+  , pattern GL_SAMPLE_COVERAGE_VALUE
+  , pattern GL_SAMPLE_MASK
+  , pattern GL_SAMPLE_MASK_VALUE
+  , pattern GL_SAMPLE_POSITION
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_SEPARATE_ATTRIBS
+  , pattern GL_SET
+  , pattern GL_SHADER_SOURCE_LENGTH
+  , pattern GL_SHADER_TYPE
+  , pattern GL_SHADING_LANGUAGE_VERSION
+  , pattern GL_SHORT
+  , pattern GL_SIGNALED
+  , pattern GL_SIGNED_NORMALIZED
+  , pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY
+  , pattern GL_SMOOTH_LINE_WIDTH_RANGE
+  , pattern GL_SMOOTH_POINT_SIZE_GRANULARITY
+  , pattern GL_SMOOTH_POINT_SIZE_RANGE
+  , pattern GL_SRC1_ALPHA
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_SRGB
+  , pattern GL_SRGB8
+  , pattern GL_SRGB8_ALPHA8
+  , pattern GL_SRGB_ALPHA
+  , pattern GL_STATIC_COPY
+  , pattern GL_STATIC_DRAW
+  , pattern GL_STATIC_READ
+  , pattern GL_STENCIL
+  , pattern GL_STENCIL_ATTACHMENT
+  , pattern GL_STENCIL_BACK_FAIL
+  , pattern GL_STENCIL_BACK_FUNC
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_BACK_REF
+  , pattern GL_STENCIL_BACK_VALUE_MASK
+  , pattern GL_STENCIL_BACK_WRITEMASK
+  , pattern GL_STENCIL_BUFFER_BIT
+  , pattern GL_STENCIL_CLEAR_VALUE
+  , pattern GL_STENCIL_FAIL
+  , pattern GL_STENCIL_FUNC
+  , pattern GL_STENCIL_INDEX
+  , pattern GL_STENCIL_INDEX1
+  , pattern GL_STENCIL_INDEX16
+  , pattern GL_STENCIL_INDEX4
+  , pattern GL_STENCIL_INDEX8
+  , pattern GL_STENCIL_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_REF
+  , pattern GL_STENCIL_TEST
+  , pattern GL_STENCIL_VALUE_MASK
+  , pattern GL_STENCIL_WRITEMASK
+  , pattern GL_STEREO
+  , pattern GL_STREAM_COPY
+  , pattern GL_STREAM_DRAW
+  , pattern GL_STREAM_READ
+  , pattern GL_SUBPIXEL_BITS
+  , pattern GL_SYNC_CONDITION
+  , pattern GL_SYNC_FENCE
+  , pattern GL_SYNC_FLAGS
+  , pattern GL_SYNC_FLUSH_COMMANDS_BIT
+  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE
+  , pattern GL_SYNC_STATUS
+  , pattern GL_TEXTURE
+  , pattern GL_TEXTURE0
+  , pattern GL_TEXTURE1
+  , pattern GL_TEXTURE10
+  , pattern GL_TEXTURE11
+  , pattern GL_TEXTURE12
+  , pattern GL_TEXTURE13
+  , pattern GL_TEXTURE14
+  , pattern GL_TEXTURE15
+  , pattern GL_TEXTURE16
+  , pattern GL_TEXTURE17
+  , pattern GL_TEXTURE18
+  , pattern GL_TEXTURE19
+  , pattern GL_TEXTURE2
+  , pattern GL_TEXTURE20
+  , pattern GL_TEXTURE21
+  , pattern GL_TEXTURE22
+  , pattern GL_TEXTURE23
+  , pattern GL_TEXTURE24
+  , pattern GL_TEXTURE25
+  , pattern GL_TEXTURE26
+  , pattern GL_TEXTURE27
+  , pattern GL_TEXTURE28
+  , pattern GL_TEXTURE29
+  , pattern GL_TEXTURE3
+  , pattern GL_TEXTURE30
+  , pattern GL_TEXTURE31
+  , pattern GL_TEXTURE4
+  , pattern GL_TEXTURE5
+  , pattern GL_TEXTURE6
+  , pattern GL_TEXTURE7
+  , pattern GL_TEXTURE8
+  , pattern GL_TEXTURE9
+  , pattern GL_TEXTURE_1D
+  , pattern GL_TEXTURE_1D_ARRAY
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_2D_ARRAY
+  , pattern GL_TEXTURE_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_3D
+  , pattern GL_TEXTURE_ALPHA_SIZE
+  , pattern GL_TEXTURE_ALPHA_TYPE
+  , pattern GL_TEXTURE_BASE_LEVEL
+  , pattern GL_TEXTURE_BINDING_1D
+  , pattern GL_TEXTURE_BINDING_1D_ARRAY
+  , pattern GL_TEXTURE_BINDING_2D
+  , pattern GL_TEXTURE_BINDING_2D_ARRAY
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_BINDING_3D
+  , pattern GL_TEXTURE_BINDING_BUFFER
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP
+  , pattern GL_TEXTURE_BINDING_RECTANGLE
+  , pattern GL_TEXTURE_BLUE_SIZE
+  , pattern GL_TEXTURE_BLUE_TYPE
+  , pattern GL_TEXTURE_BORDER_COLOR
+  , pattern GL_TEXTURE_BUFFER
+  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING
+  , pattern GL_TEXTURE_COMPARE_FUNC
+  , pattern GL_TEXTURE_COMPARE_MODE
+  , pattern GL_TEXTURE_COMPRESSED
+  , pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE
+  , pattern GL_TEXTURE_COMPRESSION_HINT
+  , pattern GL_TEXTURE_CUBE_MAP
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z
+  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
+  , pattern GL_TEXTURE_DEPTH
+  , pattern GL_TEXTURE_DEPTH_SIZE
+  , pattern GL_TEXTURE_DEPTH_TYPE
+  , pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
+  , pattern GL_TEXTURE_GREEN_SIZE
+  , pattern GL_TEXTURE_GREEN_TYPE
+  , pattern GL_TEXTURE_HEIGHT
+  , pattern GL_TEXTURE_INTERNAL_FORMAT
+  , pattern GL_TEXTURE_LOD_BIAS
+  , pattern GL_TEXTURE_MAG_FILTER
+  , pattern GL_TEXTURE_MAX_LEVEL
+  , pattern GL_TEXTURE_MAX_LOD
+  , pattern GL_TEXTURE_MIN_FILTER
+  , pattern GL_TEXTURE_MIN_LOD
+  , pattern GL_TEXTURE_RECTANGLE
+  , pattern GL_TEXTURE_RED_SIZE
+  , pattern GL_TEXTURE_RED_TYPE
+  , pattern GL_TEXTURE_SAMPLES
+  , pattern GL_TEXTURE_SHARED_SIZE
+  , pattern GL_TEXTURE_STENCIL_SIZE
+  , pattern GL_TEXTURE_WIDTH
+  , pattern GL_TEXTURE_WRAP_R
+  , pattern GL_TEXTURE_WRAP_S
+  , pattern GL_TEXTURE_WRAP_T
+  , pattern GL_TIMEOUT_EXPIRED
+  , pattern GL_TIMEOUT_IGNORED
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START
+  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
+  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS
+  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+  , pattern GL_TRIANGLES
+  , pattern GL_TRIANGLES_ADJACENCY
+  , pattern GL_TRIANGLE_FAN
+  , pattern GL_TRIANGLE_STRIP
+  , pattern GL_TRIANGLE_STRIP_ADJACENCY
+  , pattern GL_TRUE
+  , pattern GL_UNIFORM_ARRAY_STRIDE
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
+  , pattern GL_UNIFORM_BLOCK_BINDING
+  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
+  , pattern GL_UNIFORM_BLOCK_INDEX
+  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_UNIFORM_BUFFER
+  , pattern GL_UNIFORM_BUFFER_BINDING
+  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_UNIFORM_BUFFER_SIZE
+  , pattern GL_UNIFORM_BUFFER_START
+  , pattern GL_UNIFORM_IS_ROW_MAJOR
+  , pattern GL_UNIFORM_MATRIX_STRIDE
+  , pattern GL_UNIFORM_NAME_LENGTH
+  , pattern GL_UNIFORM_OFFSET
+  , pattern GL_UNIFORM_SIZE
+  , pattern GL_UNIFORM_TYPE
+  , pattern GL_UNPACK_ALIGNMENT
+  , pattern GL_UNPACK_IMAGE_HEIGHT
+  , pattern GL_UNPACK_LSB_FIRST
+  , pattern GL_UNPACK_ROW_LENGTH
+  , pattern GL_UNPACK_SKIP_IMAGES
+  , pattern GL_UNPACK_SKIP_PIXELS
+  , pattern GL_UNPACK_SKIP_ROWS
+  , pattern GL_UNPACK_SWAP_BYTES
+  , pattern GL_UNSIGNALED
+  , pattern GL_UNSIGNED_BYTE
+  , pattern GL_UNSIGNED_BYTE_2_3_3_REV
+  , pattern GL_UNSIGNED_BYTE_3_3_2
+  , pattern GL_UNSIGNED_INT
+  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
+  , pattern GL_UNSIGNED_INT_10_10_10_2
+  , pattern GL_UNSIGNED_INT_24_8
+  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
+  , pattern GL_UNSIGNED_INT_5_9_9_9_REV
+  , pattern GL_UNSIGNED_INT_8_8_8_8
+  , pattern GL_UNSIGNED_INT_8_8_8_8_REV
+  , pattern GL_UNSIGNED_INT_SAMPLER_1D
+  , pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT
+  , pattern GL_UNSIGNED_INT_SAMPLER_3D
+  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE
+  , pattern GL_UNSIGNED_INT_VEC2
+  , pattern GL_UNSIGNED_INT_VEC3
+  , pattern GL_UNSIGNED_INT_VEC4
+  , pattern GL_UNSIGNED_NORMALIZED
+  , pattern GL_UNSIGNED_SHORT
+  , pattern GL_UNSIGNED_SHORT_1_5_5_5_REV
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV
+  , pattern GL_UNSIGNED_SHORT_5_5_5_1
+  , pattern GL_UNSIGNED_SHORT_5_6_5
+  , pattern GL_UNSIGNED_SHORT_5_6_5_REV
+  , pattern GL_UPPER_LEFT
+  , pattern GL_VALIDATE_STATUS
+  , pattern GL_VENDOR
+  , pattern GL_VERSION
+  , pattern GL_VERTEX_ARRAY_BINDING
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER
+  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
+  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
+  , pattern GL_VERTEX_PROGRAM_POINT_SIZE
+  , pattern GL_VERTEX_SHADER
+  , pattern GL_VIEWPORT
+  , pattern GL_WAIT_FAILED
+  , pattern GL_WRITE_ONLY
+  , pattern GL_XOR
+  , pattern GL_ZERO
+) where
+
+import Graphics.GL.Internal.Shared
+
+pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+
+pattern GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+pattern GL_CONTEXT_PROFILE_MASK = 0x9126
+
+pattern GL_PROGRAM_POINT_SIZE = 0x8642
diff --git a/generated-src/Graphics/GL/Core33.hs b/generated-src/Graphics/GL/Core33.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core33.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core33 (
+  -- * Graphics.GL.Core33
+    module Graphics.GL.Core32
+  , glBindFragDataLocationIndexed
+  , glBindSampler
+  , glDeleteSamplers
+  , glGenSamplers
+  , glGetFragDataIndex
+  , glGetQueryObjecti64v
+  , glGetQueryObjectui64v
+  , glGetSamplerParameterIiv
+  , glGetSamplerParameterIuiv
+  , glGetSamplerParameterfv
+  , glGetSamplerParameteriv
+  , glIsSampler
+  , glQueryCounter
+  , glSamplerParameterIiv
+  , glSamplerParameterIuiv
+  , glSamplerParameterf
+  , glSamplerParameterfv
+  , glSamplerParameteri
+  , glSamplerParameteriv
+  , glVertexAttribDivisor
+  , glVertexAttribP1ui
+  , glVertexAttribP1uiv
+  , glVertexAttribP2ui
+  , glVertexAttribP2uiv
+  , glVertexAttribP3ui
+  , glVertexAttribP3uiv
+  , glVertexAttribP4ui
+  , glVertexAttribP4uiv
+  , pattern GL_ANY_SAMPLES_PASSED
+  , pattern GL_INT_2_10_10_10_REV
+  , pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
+  , pattern GL_ONE_MINUS_SRC1_ALPHA
+  , pattern GL_ONE_MINUS_SRC1_COLOR
+  , pattern GL_RGB10_A2UI
+  , pattern GL_SAMPLER_BINDING
+  , pattern GL_SRC1_COLOR
+  , pattern GL_TEXTURE_SWIZZLE_A
+  , pattern GL_TEXTURE_SWIZZLE_B
+  , pattern GL_TEXTURE_SWIZZLE_G
+  , pattern GL_TEXTURE_SWIZZLE_R
+  , pattern GL_TEXTURE_SWIZZLE_RGBA
+  , pattern GL_TIMESTAMP
+  , pattern GL_TIME_ELAPSED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Core32
diff --git a/generated-src/Graphics/GL/Core40.hs b/generated-src/Graphics/GL/Core40.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core40.hs
@@ -0,0 +1,136 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core40 (
+  -- * Graphics.GL.Core40
+    module Graphics.GL.Core33
+  , glBeginQueryIndexed
+  , glBindTransformFeedback
+  , glBlendEquationSeparatei
+  , glBlendEquationi
+  , glBlendFuncSeparatei
+  , glBlendFunci
+  , glDeleteTransformFeedbacks
+  , glDrawArraysIndirect
+  , glDrawElementsIndirect
+  , glDrawTransformFeedback
+  , glDrawTransformFeedbackStream
+  , glEndQueryIndexed
+  , glGenTransformFeedbacks
+  , glGetActiveSubroutineName
+  , glGetActiveSubroutineUniformName
+  , glGetActiveSubroutineUniformiv
+  , glGetProgramStageiv
+  , glGetQueryIndexediv
+  , glGetSubroutineIndex
+  , glGetSubroutineUniformLocation
+  , glGetUniformSubroutineuiv
+  , glGetUniformdv
+  , glIsTransformFeedback
+  , glMinSampleShading
+  , glPatchParameterfv
+  , glPatchParameteri
+  , glPauseTransformFeedback
+  , glResumeTransformFeedback
+  , glUniform1d
+  , glUniform1dv
+  , glUniform2d
+  , glUniform2dv
+  , glUniform3d
+  , glUniform3dv
+  , glUniform4d
+  , glUniform4dv
+  , glUniformMatrix2dv
+  , glUniformMatrix2x3dv
+  , glUniformMatrix2x4dv
+  , glUniformMatrix3dv
+  , glUniformMatrix3x2dv
+  , glUniformMatrix3x4dv
+  , glUniformMatrix4dv
+  , glUniformMatrix4x2dv
+  , glUniformMatrix4x3dv
+  , glUniformSubroutinesuiv
+  , pattern GL_ACTIVE_SUBROUTINES
+  , pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH
+  , pattern GL_ACTIVE_SUBROUTINE_UNIFORMS
+  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
+  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
+  , pattern GL_COMPATIBLE_SUBROUTINES
+  , pattern GL_DOUBLE_MAT2
+  , pattern GL_DOUBLE_MAT2x3
+  , pattern GL_DOUBLE_MAT2x4
+  , pattern GL_DOUBLE_MAT3
+  , pattern GL_DOUBLE_MAT3x2
+  , pattern GL_DOUBLE_MAT3x4
+  , pattern GL_DOUBLE_MAT4
+  , pattern GL_DOUBLE_MAT4x2
+  , pattern GL_DOUBLE_MAT4x3
+  , pattern GL_DOUBLE_VEC2
+  , pattern GL_DOUBLE_VEC3
+  , pattern GL_DOUBLE_VEC4
+  , pattern GL_DRAW_INDIRECT_BUFFER
+  , pattern GL_DRAW_INDIRECT_BUFFER_BINDING
+  , pattern GL_FRACTIONAL_EVEN
+  , pattern GL_FRACTIONAL_ODD
+  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
+  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
+  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY
+  , pattern GL_ISOLINES
+  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
+  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
+  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS
+  , pattern GL_MAX_PATCH_VERTICES
+  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET
+  , pattern GL_MAX_SUBROUTINES
+  , pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
+  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
+  , pattern GL_MAX_TESS_GEN_LEVEL
+  , pattern GL_MAX_TESS_PATCH_COMPONENTS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
+  , pattern GL_MAX_VERTEX_STREAMS
+  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
+  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET
+  , pattern GL_MIN_SAMPLE_SHADING_VALUE
+  , pattern GL_NUM_COMPATIBLE_SUBROUTINES
+  , pattern GL_PATCHES
+  , pattern GL_PATCH_DEFAULT_INNER_LEVEL
+  , pattern GL_PATCH_DEFAULT_OUTER_LEVEL
+  , pattern GL_PATCH_VERTICES
+  , pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY
+  , pattern GL_QUADS
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
+  , pattern GL_SAMPLE_SHADING
+  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES
+  , pattern GL_TESS_CONTROL_SHADER
+  , pattern GL_TESS_EVALUATION_SHADER
+  , pattern GL_TESS_GEN_MODE
+  , pattern GL_TESS_GEN_POINT_MODE
+  , pattern GL_TESS_GEN_SPACING
+  , pattern GL_TESS_GEN_VERTEX_ORDER
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
+  , pattern GL_TEXTURE_CUBE_MAP_ARRAY
+  , pattern GL_TRANSFORM_FEEDBACK
+  , pattern GL_TRANSFORM_FEEDBACK_BINDING
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Core33
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
diff --git a/generated-src/Graphics/GL/Core41.hs b/generated-src/Graphics/GL/Core41.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core41.hs
@@ -0,0 +1,133 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core41 (
+  -- * Graphics.GL.Core41
+    module Graphics.GL.Core40
+  , glActiveShaderProgram
+  , glBindProgramPipeline
+  , glClearDepthf
+  , glCreateShaderProgramv
+  , glDeleteProgramPipelines
+  , glDepthRangeArrayv
+  , glDepthRangeIndexed
+  , glDepthRangef
+  , glGenProgramPipelines
+  , glGetDoublei_v
+  , glGetFloati_v
+  , glGetProgramBinary
+  , glGetProgramPipelineInfoLog
+  , glGetProgramPipelineiv
+  , glGetShaderPrecisionFormat
+  , glGetVertexAttribLdv
+  , glIsProgramPipeline
+  , glProgramBinary
+  , glProgramParameteri
+  , glProgramUniform1d
+  , glProgramUniform1dv
+  , glProgramUniform1f
+  , glProgramUniform1fv
+  , glProgramUniform1i
+  , glProgramUniform1iv
+  , glProgramUniform1ui
+  , glProgramUniform1uiv
+  , glProgramUniform2d
+  , glProgramUniform2dv
+  , glProgramUniform2f
+  , glProgramUniform2fv
+  , glProgramUniform2i
+  , glProgramUniform2iv
+  , glProgramUniform2ui
+  , glProgramUniform2uiv
+  , glProgramUniform3d
+  , glProgramUniform3dv
+  , glProgramUniform3f
+  , glProgramUniform3fv
+  , glProgramUniform3i
+  , glProgramUniform3iv
+  , glProgramUniform3ui
+  , glProgramUniform3uiv
+  , glProgramUniform4d
+  , glProgramUniform4dv
+  , glProgramUniform4f
+  , glProgramUniform4fv
+  , glProgramUniform4i
+  , glProgramUniform4iv
+  , glProgramUniform4ui
+  , glProgramUniform4uiv
+  , glProgramUniformMatrix2dv
+  , glProgramUniformMatrix2fv
+  , glProgramUniformMatrix2x3dv
+  , glProgramUniformMatrix2x3fv
+  , glProgramUniformMatrix2x4dv
+  , glProgramUniformMatrix2x4fv
+  , glProgramUniformMatrix3dv
+  , glProgramUniformMatrix3fv
+  , glProgramUniformMatrix3x2dv
+  , glProgramUniformMatrix3x2fv
+  , glProgramUniformMatrix3x4dv
+  , glProgramUniformMatrix3x4fv
+  , glProgramUniformMatrix4dv
+  , glProgramUniformMatrix4fv
+  , glProgramUniformMatrix4x2dv
+  , glProgramUniformMatrix4x2fv
+  , glProgramUniformMatrix4x3dv
+  , glProgramUniformMatrix4x3fv
+  , glReleaseShaderCompiler
+  , glScissorArrayv
+  , glScissorIndexed
+  , glScissorIndexedv
+  , glShaderBinary
+  , glUseProgramStages
+  , glValidateProgramPipeline
+  , glVertexAttribL1d
+  , glVertexAttribL1dv
+  , glVertexAttribL2d
+  , glVertexAttribL2dv
+  , glVertexAttribL3d
+  , glVertexAttribL3dv
+  , glVertexAttribL4d
+  , glVertexAttribL4dv
+  , glVertexAttribLPointer
+  , glViewportArrayv
+  , glViewportIndexedf
+  , glViewportIndexedfv
+  , pattern GL_ACTIVE_PROGRAM
+  , pattern GL_ALL_SHADER_BITS
+  , pattern GL_FIXED
+  , pattern GL_FRAGMENT_SHADER_BIT
+  , pattern GL_GEOMETRY_SHADER_BIT
+  , pattern GL_HIGH_FLOAT
+  , pattern GL_HIGH_INT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
+  , pattern GL_LAYER_PROVOKING_VERTEX
+  , pattern GL_LOW_FLOAT
+  , pattern GL_LOW_INT
+  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
+  , pattern GL_MAX_VARYING_VECTORS
+  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
+  , pattern GL_MAX_VIEWPORTS
+  , pattern GL_MEDIUM_FLOAT
+  , pattern GL_MEDIUM_INT
+  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
+  , pattern GL_NUM_SHADER_BINARY_FORMATS
+  , pattern GL_PROGRAM_BINARY_FORMATS
+  , pattern GL_PROGRAM_BINARY_LENGTH
+  , pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT
+  , pattern GL_PROGRAM_PIPELINE_BINDING
+  , pattern GL_PROGRAM_SEPARABLE
+  , pattern GL_RGB565
+  , pattern GL_SHADER_BINARY_FORMATS
+  , pattern GL_SHADER_COMPILER
+  , pattern GL_TESS_CONTROL_SHADER_BIT
+  , pattern GL_TESS_EVALUATION_SHADER_BIT
+  , pattern GL_UNDEFINED_VERTEX
+  , pattern GL_VERTEX_SHADER_BIT
+  , pattern GL_VIEWPORT_BOUNDS_RANGE
+  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX
+  , pattern GL_VIEWPORT_SUBPIXEL_BITS
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Core40
diff --git a/generated-src/Graphics/GL/Core42.hs b/generated-src/Graphics/GL/Core42.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core42.hs
@@ -0,0 +1,142 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core42 (
+  -- * Graphics.GL.Core42
+    module Graphics.GL.Core41
+  , glBindImageTexture
+  , glDrawArraysInstancedBaseInstance
+  , glDrawElementsInstancedBaseInstance
+  , glDrawElementsInstancedBaseVertexBaseInstance
+  , glDrawTransformFeedbackInstanced
+  , glDrawTransformFeedbackStreamInstanced
+  , glGetActiveAtomicCounterBufferiv
+  , glGetInternalformativ
+  , glMemoryBarrier
+  , glTexStorage1D
+  , glTexStorage2D
+  , glTexStorage3D
+  , pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_ALL_BARRIER_BITS
+  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT
+  , pattern GL_ATOMIC_COUNTER_BUFFER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
+  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
+  , pattern GL_ATOMIC_COUNTER_BUFFER_BINDING
+  , pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_SIZE
+  , pattern GL_ATOMIC_COUNTER_BUFFER_START
+  , pattern GL_BUFFER_UPDATE_BARRIER_BIT
+  , pattern GL_COMMAND_BARRIER_BIT
+  , pattern GL_COMPRESSED_RGBA_BPTC_UNORM
+  , pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT
+  , pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
+  , pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
+  , pattern GL_COPY_READ_BUFFER_BINDING
+  , pattern GL_COPY_WRITE_BUFFER_BINDING
+  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT
+  , pattern GL_FRAMEBUFFER_BARRIER_BIT
+  , pattern GL_IMAGE_1D
+  , pattern GL_IMAGE_1D_ARRAY
+  , pattern GL_IMAGE_2D
+  , pattern GL_IMAGE_2D_ARRAY
+  , pattern GL_IMAGE_2D_MULTISAMPLE
+  , pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_IMAGE_2D_RECT
+  , pattern GL_IMAGE_3D
+  , pattern GL_IMAGE_BINDING_ACCESS
+  , pattern GL_IMAGE_BINDING_FORMAT
+  , pattern GL_IMAGE_BINDING_LAYER
+  , pattern GL_IMAGE_BINDING_LAYERED
+  , pattern GL_IMAGE_BINDING_LEVEL
+  , pattern GL_IMAGE_BINDING_NAME
+  , pattern GL_IMAGE_BUFFER
+  , pattern GL_IMAGE_CUBE
+  , pattern GL_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
+  , pattern GL_INT_IMAGE_1D
+  , pattern GL_INT_IMAGE_1D_ARRAY
+  , pattern GL_INT_IMAGE_2D
+  , pattern GL_INT_IMAGE_2D_ARRAY
+  , pattern GL_INT_IMAGE_2D_MULTISAMPLE
+  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_INT_IMAGE_2D_RECT
+  , pattern GL_INT_IMAGE_3D
+  , pattern GL_INT_IMAGE_BUFFER
+  , pattern GL_INT_IMAGE_CUBE
+  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
+  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
+  , pattern GL_MAX_COMBINED_ATOMIC_COUNTERS
+  , pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_COMBINED_IMAGE_UNIFORMS
+  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
+  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS
+  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS
+  , pattern GL_MAX_IMAGE_SAMPLES
+  , pattern GL_MAX_IMAGE_UNITS
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
+  , pattern GL_MAX_VERTEX_ATOMIC_COUNTERS
+  , pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_VERTEX_IMAGE_UNIFORMS
+  , pattern GL_MIN_MAP_BUFFER_ALIGNMENT
+  , pattern GL_NUM_SAMPLE_COUNTS
+  , pattern GL_PACK_COMPRESSED_BLOCK_DEPTH
+  , pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT
+  , pattern GL_PACK_COMPRESSED_BLOCK_SIZE
+  , pattern GL_PACK_COMPRESSED_BLOCK_WIDTH
+  , pattern GL_PIXEL_BUFFER_BARRIER_BIT
+  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
+  , pattern GL_TEXTURE_FETCH_BARRIER_BIT
+  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
+  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT
+  , pattern GL_TRANSFORM_FEEDBACK_ACTIVE
+  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT
+  , pattern GL_TRANSFORM_FEEDBACK_PAUSED
+  , pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
+  , pattern GL_UNIFORM_BARRIER_BIT
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH
+  , pattern GL_UNSIGNED_INT_ATOMIC_COUNTER
+  , pattern GL_UNSIGNED_INT_IMAGE_1D
+  , pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY
+  , pattern GL_UNSIGNED_INT_IMAGE_2D
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_RECT
+  , pattern GL_UNSIGNED_INT_IMAGE_3D
+  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Core41
+
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
+
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
+
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
+
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
diff --git a/generated-src/Graphics/GL/Core43.hs b/generated-src/Graphics/GL/Core43.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core43.hs
@@ -0,0 +1,319 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core43 (
+  -- * Graphics.GL.Core43
+    module Graphics.GL.Core42
+  , glBindVertexBuffer
+  , glClearBufferData
+  , glClearBufferSubData
+  , glCopyImageSubData
+  , glDebugMessageCallback
+  , glDebugMessageControl
+  , glDebugMessageInsert
+  , glDispatchCompute
+  , glDispatchComputeIndirect
+  , glFramebufferParameteri
+  , glGetDebugMessageLog
+  , glGetFramebufferParameteriv
+  , glGetInternalformati64v
+  , glGetObjectLabel
+  , glGetObjectPtrLabel
+  , glGetPointerv
+  , glGetProgramInterfaceiv
+  , glGetProgramResourceIndex
+  , glGetProgramResourceLocation
+  , glGetProgramResourceLocationIndex
+  , glGetProgramResourceName
+  , glGetProgramResourceiv
+  , glInvalidateBufferData
+  , glInvalidateBufferSubData
+  , glInvalidateFramebuffer
+  , glInvalidateSubFramebuffer
+  , glInvalidateTexImage
+  , glInvalidateTexSubImage
+  , glMultiDrawArraysIndirect
+  , glMultiDrawElementsIndirect
+  , glObjectLabel
+  , glObjectPtrLabel
+  , glPopDebugGroup
+  , glPushDebugGroup
+  , glShaderStorageBlockBinding
+  , glTexBufferRange
+  , glTexStorage2DMultisample
+  , glTexStorage3DMultisample
+  , glTextureView
+  , glVertexAttribBinding
+  , glVertexAttribFormat
+  , glVertexAttribIFormat
+  , glVertexAttribLFormat
+  , glVertexBindingDivisor
+  , pattern GL_ACTIVE_RESOURCES
+  , pattern GL_ACTIVE_VARIABLES
+  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE
+  , pattern GL_ARRAY_SIZE
+  , pattern GL_ARRAY_STRIDE
+  , pattern GL_ATOMIC_COUNTER_BUFFER_INDEX
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER
+  , pattern GL_AUTO_GENERATE_MIPMAP
+  , pattern GL_BLOCK_INDEX
+  , pattern GL_BUFFER
+  , pattern GL_BUFFER_BINDING
+  , pattern GL_BUFFER_DATA_SIZE
+  , pattern GL_BUFFER_VARIABLE
+  , pattern GL_CAVEAT_SUPPORT
+  , pattern GL_CLEAR_BUFFER
+  , pattern GL_COLOR_COMPONENTS
+  , pattern GL_COLOR_ENCODING
+  , pattern GL_COLOR_RENDERABLE
+  , pattern GL_COMPRESSED_R11_EAC
+  , pattern GL_COMPRESSED_RG11_EAC
+  , pattern GL_COMPRESSED_RGB8_ETC2
+  , pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
+  , pattern GL_COMPRESSED_RGBA8_ETC2_EAC
+  , pattern GL_COMPRESSED_SIGNED_R11_EAC
+  , pattern GL_COMPRESSED_SIGNED_RG11_EAC
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
+  , pattern GL_COMPRESSED_SRGB8_ETC2
+  , pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
+  , pattern GL_COMPUTE_SHADER
+  , pattern GL_COMPUTE_SHADER_BIT
+  , pattern GL_COMPUTE_SUBROUTINE
+  , pattern GL_COMPUTE_SUBROUTINE_UNIFORM
+  , pattern GL_COMPUTE_TEXTURE
+  , pattern GL_COMPUTE_WORK_GROUP_SIZE
+  , pattern GL_CONTEXT_FLAG_DEBUG_BIT
+  , pattern GL_DEBUG_CALLBACK_FUNCTION
+  , pattern GL_DEBUG_CALLBACK_USER_PARAM
+  , pattern GL_DEBUG_GROUP_STACK_DEPTH
+  , pattern GL_DEBUG_LOGGED_MESSAGES
+  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
+  , pattern GL_DEBUG_OUTPUT
+  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS
+  , pattern GL_DEBUG_SEVERITY_HIGH
+  , pattern GL_DEBUG_SEVERITY_LOW
+  , pattern GL_DEBUG_SEVERITY_MEDIUM
+  , pattern GL_DEBUG_SEVERITY_NOTIFICATION
+  , pattern GL_DEBUG_SOURCE_API
+  , pattern GL_DEBUG_SOURCE_APPLICATION
+  , pattern GL_DEBUG_SOURCE_OTHER
+  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER
+  , pattern GL_DEBUG_SOURCE_THIRD_PARTY
+  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM
+  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
+  , pattern GL_DEBUG_TYPE_ERROR
+  , pattern GL_DEBUG_TYPE_MARKER
+  , pattern GL_DEBUG_TYPE_OTHER
+  , pattern GL_DEBUG_TYPE_PERFORMANCE
+  , pattern GL_DEBUG_TYPE_POP_GROUP
+  , pattern GL_DEBUG_TYPE_PORTABILITY
+  , pattern GL_DEBUG_TYPE_PUSH_GROUP
+  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
+  , pattern GL_DEPTH_COMPONENTS
+  , pattern GL_DEPTH_RENDERABLE
+  , pattern GL_DEPTH_STENCIL_TEXTURE_MODE
+  , pattern GL_DISPATCH_INDIRECT_BUFFER
+  , pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING
+  , pattern GL_FILTER
+  , pattern GL_FRAGMENT_SUBROUTINE
+  , pattern GL_FRAGMENT_SUBROUTINE_UNIFORM
+  , pattern GL_FRAGMENT_TEXTURE
+  , pattern GL_FRAMEBUFFER_BLEND
+  , pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
+  , pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT
+  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS
+  , pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES
+  , pattern GL_FRAMEBUFFER_DEFAULT_WIDTH
+  , pattern GL_FRAMEBUFFER_RENDERABLE
+  , pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED
+  , pattern GL_FULL_SUPPORT
+  , pattern GL_GEOMETRY_SUBROUTINE
+  , pattern GL_GEOMETRY_SUBROUTINE_UNIFORM
+  , pattern GL_GEOMETRY_TEXTURE
+  , pattern GL_GET_TEXTURE_IMAGE_FORMAT
+  , pattern GL_GET_TEXTURE_IMAGE_TYPE
+  , pattern GL_IMAGE_CLASS_10_10_10_2
+  , pattern GL_IMAGE_CLASS_11_11_10
+  , pattern GL_IMAGE_CLASS_1_X_16
+  , pattern GL_IMAGE_CLASS_1_X_32
+  , pattern GL_IMAGE_CLASS_1_X_8
+  , pattern GL_IMAGE_CLASS_2_X_16
+  , pattern GL_IMAGE_CLASS_2_X_32
+  , pattern GL_IMAGE_CLASS_2_X_8
+  , pattern GL_IMAGE_CLASS_4_X_16
+  , pattern GL_IMAGE_CLASS_4_X_32
+  , pattern GL_IMAGE_CLASS_4_X_8
+  , pattern GL_IMAGE_COMPATIBILITY_CLASS
+  , pattern GL_IMAGE_PIXEL_FORMAT
+  , pattern GL_IMAGE_PIXEL_TYPE
+  , pattern GL_IMAGE_TEXEL_SIZE
+  , pattern GL_INTERNALFORMAT_ALPHA_SIZE
+  , pattern GL_INTERNALFORMAT_ALPHA_TYPE
+  , pattern GL_INTERNALFORMAT_BLUE_SIZE
+  , pattern GL_INTERNALFORMAT_BLUE_TYPE
+  , pattern GL_INTERNALFORMAT_DEPTH_SIZE
+  , pattern GL_INTERNALFORMAT_DEPTH_TYPE
+  , pattern GL_INTERNALFORMAT_GREEN_SIZE
+  , pattern GL_INTERNALFORMAT_GREEN_TYPE
+  , pattern GL_INTERNALFORMAT_PREFERRED
+  , pattern GL_INTERNALFORMAT_RED_SIZE
+  , pattern GL_INTERNALFORMAT_RED_TYPE
+  , pattern GL_INTERNALFORMAT_SHARED_SIZE
+  , pattern GL_INTERNALFORMAT_STENCIL_SIZE
+  , pattern GL_INTERNALFORMAT_STENCIL_TYPE
+  , pattern GL_INTERNALFORMAT_SUPPORTED
+  , pattern GL_IS_PER_PATCH
+  , pattern GL_IS_ROW_MAJOR
+  , pattern GL_LOCATION
+  , pattern GL_LOCATION_INDEX
+  , pattern GL_MANUAL_GENERATE_MIPMAP
+  , pattern GL_MATRIX_STRIDE
+  , pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_DIMENSIONS
+  , pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
+  , pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS
+  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS
+  , pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
+  , pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS
+  , pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE
+  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH
+  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES
+  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH
+  , pattern GL_MAX_DEPTH
+  , pattern GL_MAX_ELEMENT_INDEX
+  , pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_FRAMEBUFFER_HEIGHT
+  , pattern GL_MAX_FRAMEBUFFER_LAYERS
+  , pattern GL_MAX_FRAMEBUFFER_SAMPLES
+  , pattern GL_MAX_FRAMEBUFFER_WIDTH
+  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_HEIGHT
+  , pattern GL_MAX_LABEL_LENGTH
+  , pattern GL_MAX_LAYERS
+  , pattern GL_MAX_NAME_LENGTH
+  , pattern GL_MAX_NUM_ACTIVE_VARIABLES
+  , pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES
+  , pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE
+  , pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
+  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_UNIFORM_LOCATIONS
+  , pattern GL_MAX_VERTEX_ATTRIB_BINDINGS
+  , pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
+  , pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_WIDTH
+  , pattern GL_MIPMAP
+  , pattern GL_NAME_LENGTH
+  , pattern GL_NUM_ACTIVE_VARIABLES
+  , pattern GL_NUM_SHADING_LANGUAGE_VERSIONS
+  , pattern GL_OFFSET
+  , pattern GL_PRIMITIVE_RESTART_FIXED_INDEX
+  , pattern GL_PROGRAM
+  , pattern GL_PROGRAM_INPUT
+  , pattern GL_PROGRAM_OUTPUT
+  , pattern GL_PROGRAM_PIPELINE
+  , pattern GL_QUERY
+  , pattern GL_READ_PIXELS
+  , pattern GL_READ_PIXELS_FORMAT
+  , pattern GL_READ_PIXELS_TYPE
+  , pattern GL_REFERENCED_BY_COMPUTE_SHADER
+  , pattern GL_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER
+  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER
+  , pattern GL_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_SAMPLER
+  , pattern GL_SHADER
+  , pattern GL_SHADER_IMAGE_ATOMIC
+  , pattern GL_SHADER_IMAGE_LOAD
+  , pattern GL_SHADER_IMAGE_STORE
+  , pattern GL_SHADER_STORAGE_BARRIER_BIT
+  , pattern GL_SHADER_STORAGE_BLOCK
+  , pattern GL_SHADER_STORAGE_BUFFER
+  , pattern GL_SHADER_STORAGE_BUFFER_BINDING
+  , pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_SHADER_STORAGE_BUFFER_SIZE
+  , pattern GL_SHADER_STORAGE_BUFFER_START
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE
+  , pattern GL_SRGB_READ
+  , pattern GL_SRGB_WRITE
+  , pattern GL_STACK_OVERFLOW
+  , pattern GL_STACK_UNDERFLOW
+  , pattern GL_STENCIL_COMPONENTS
+  , pattern GL_STENCIL_RENDERABLE
+  , pattern GL_TESS_CONTROL_SUBROUTINE
+  , pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM
+  , pattern GL_TESS_CONTROL_TEXTURE
+  , pattern GL_TESS_EVALUATION_SUBROUTINE
+  , pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
+  , pattern GL_TESS_EVALUATION_TEXTURE
+  , pattern GL_TEXTURE_BUFFER_OFFSET
+  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_TEXTURE_BUFFER_SIZE
+  , pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT
+  , pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE
+  , pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH
+  , pattern GL_TEXTURE_GATHER
+  , pattern GL_TEXTURE_GATHER_SHADOW
+  , pattern GL_TEXTURE_IMAGE_FORMAT
+  , pattern GL_TEXTURE_IMAGE_TYPE
+  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
+  , pattern GL_TEXTURE_SHADOW
+  , pattern GL_TEXTURE_VIEW
+  , pattern GL_TEXTURE_VIEW_MIN_LAYER
+  , pattern GL_TEXTURE_VIEW_MIN_LEVEL
+  , pattern GL_TEXTURE_VIEW_NUM_LAYERS
+  , pattern GL_TEXTURE_VIEW_NUM_LEVELS
+  , pattern GL_TOP_LEVEL_ARRAY_SIZE
+  , pattern GL_TOP_LEVEL_ARRAY_STRIDE
+  , pattern GL_TRANSFORM_FEEDBACK_VARYING
+  , pattern GL_TYPE
+  , pattern GL_UNIFORM
+  , pattern GL_UNIFORM_BLOCK
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
+  , pattern GL_VERTEX_ARRAY
+  , pattern GL_VERTEX_ATTRIB_ARRAY_LONG
+  , pattern GL_VERTEX_ATTRIB_BINDING
+  , pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET
+  , pattern GL_VERTEX_BINDING_BUFFER
+  , pattern GL_VERTEX_BINDING_DIVISOR
+  , pattern GL_VERTEX_BINDING_OFFSET
+  , pattern GL_VERTEX_BINDING_STRIDE
+  , pattern GL_VERTEX_SUBROUTINE
+  , pattern GL_VERTEX_SUBROUTINE_UNIFORM
+  , pattern GL_VERTEX_TEXTURE
+  , pattern GL_VIEW_CLASS_128_BITS
+  , pattern GL_VIEW_CLASS_16_BITS
+  , pattern GL_VIEW_CLASS_24_BITS
+  , pattern GL_VIEW_CLASS_32_BITS
+  , pattern GL_VIEW_CLASS_48_BITS
+  , pattern GL_VIEW_CLASS_64_BITS
+  , pattern GL_VIEW_CLASS_8_BITS
+  , pattern GL_VIEW_CLASS_96_BITS
+  , pattern GL_VIEW_CLASS_BPTC_FLOAT
+  , pattern GL_VIEW_CLASS_BPTC_UNORM
+  , pattern GL_VIEW_CLASS_RGTC1_RED
+  , pattern GL_VIEW_CLASS_RGTC2_RG
+  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGB
+  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA
+  , pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA
+  , pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA
+  , pattern GL_VIEW_COMPATIBILITY_CLASS
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Core42
+
+pattern GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9
+
+pattern GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E
diff --git a/generated-src/Graphics/GL/Core44.hs b/generated-src/Graphics/GL/Core44.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core44.hs
@@ -0,0 +1,38 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core44 (
+  -- * Graphics.GL.Core44
+    module Graphics.GL.Core43
+  , glBindBuffersBase
+  , glBindBuffersRange
+  , glBindImageTextures
+  , glBindSamplers
+  , glBindTextures
+  , glBindVertexBuffers
+  , glBufferStorage
+  , glClearTexImage
+  , glClearTexSubImage
+  , pattern GL_BUFFER_IMMUTABLE_STORAGE
+  , pattern GL_BUFFER_STORAGE_FLAGS
+  , pattern GL_CLEAR_TEXTURE
+  , pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
+  , pattern GL_CLIENT_STORAGE_BIT
+  , pattern GL_DYNAMIC_STORAGE_BIT
+  , pattern GL_LOCATION_COMPONENT
+  , pattern GL_MAP_COHERENT_BIT
+  , pattern GL_MAP_PERSISTENT_BIT
+  , pattern GL_MAX_VERTEX_ATTRIB_STRIDE
+  , pattern GL_MIRROR_CLAMP_TO_EDGE
+  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
+  , pattern GL_QUERY_BUFFER
+  , pattern GL_QUERY_BUFFER_BARRIER_BIT
+  , pattern GL_QUERY_BUFFER_BINDING
+  , pattern GL_QUERY_RESULT_NO_WAIT
+  , pattern GL_TEXTURE_BUFFER_BINDING
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Core43
diff --git a/generated-src/Graphics/GL/Core45.hs b/generated-src/Graphics/GL/Core45.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Core45.hs
@@ -0,0 +1,181 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Core45 (
+  -- * Graphics.GL.Core45
+    module Graphics.GL.Core44
+  , glBindTextureUnit
+  , glBlitNamedFramebuffer
+  , glCheckNamedFramebufferStatus
+  , glClearNamedBufferData
+  , glClearNamedBufferSubData
+  , glClearNamedFramebufferfi
+  , glClearNamedFramebufferfv
+  , glClearNamedFramebufferiv
+  , glClearNamedFramebufferuiv
+  , glClipControl
+  , glCompressedTextureSubImage1D
+  , glCompressedTextureSubImage2D
+  , glCompressedTextureSubImage3D
+  , glCopyNamedBufferSubData
+  , glCopyTextureSubImage1D
+  , glCopyTextureSubImage2D
+  , glCopyTextureSubImage3D
+  , glCreateBuffers
+  , glCreateFramebuffers
+  , glCreateProgramPipelines
+  , glCreateQueries
+  , glCreateRenderbuffers
+  , glCreateSamplers
+  , glCreateTextures
+  , glCreateTransformFeedbacks
+  , glCreateVertexArrays
+  , glDisableVertexArrayAttrib
+  , glEnableVertexArrayAttrib
+  , glFlushMappedNamedBufferRange
+  , glGenerateTextureMipmap
+  , glGetCompressedTextureImage
+  , glGetCompressedTextureSubImage
+  , glGetGraphicsResetStatus
+  , glGetNamedBufferParameteri64v
+  , glGetNamedBufferParameteriv
+  , glGetNamedBufferPointerv
+  , glGetNamedBufferSubData
+  , glGetNamedFramebufferAttachmentParameteriv
+  , glGetNamedFramebufferParameteriv
+  , glGetNamedRenderbufferParameteriv
+  , glGetQueryBufferObjecti64v
+  , glGetQueryBufferObjectiv
+  , glGetQueryBufferObjectui64v
+  , glGetQueryBufferObjectuiv
+  , glGetTextureImage
+  , glGetTextureLevelParameterfv
+  , glGetTextureLevelParameteriv
+  , glGetTextureParameterIiv
+  , glGetTextureParameterIuiv
+  , glGetTextureParameterfv
+  , glGetTextureParameteriv
+  , glGetTextureSubImage
+  , glGetTransformFeedbacki64_v
+  , glGetTransformFeedbacki_v
+  , glGetTransformFeedbackiv
+  , glGetVertexArrayIndexed64iv
+  , glGetVertexArrayIndexediv
+  , glGetVertexArrayiv
+  , glGetnCompressedTexImage
+  , glGetnTexImage
+  , glGetnUniformdv
+  , glGetnUniformfv
+  , glGetnUniformiv
+  , glGetnUniformuiv
+  , glInvalidateNamedFramebufferData
+  , glInvalidateNamedFramebufferSubData
+  , glMapNamedBuffer
+  , glMapNamedBufferRange
+  , glMemoryBarrierByRegion
+  , glNamedBufferData
+  , glNamedBufferStorage
+  , glNamedBufferSubData
+  , glNamedFramebufferDrawBuffer
+  , glNamedFramebufferDrawBuffers
+  , glNamedFramebufferParameteri
+  , glNamedFramebufferReadBuffer
+  , glNamedFramebufferRenderbuffer
+  , glNamedFramebufferTexture
+  , glNamedFramebufferTextureLayer
+  , glNamedRenderbufferStorage
+  , glNamedRenderbufferStorageMultisample
+  , glReadnPixels
+  , glTextureBarrier
+  , glTextureBuffer
+  , glTextureBufferRange
+  , glTextureParameterIiv
+  , glTextureParameterIuiv
+  , glTextureParameterf
+  , glTextureParameterfv
+  , glTextureParameteri
+  , glTextureParameteriv
+  , glTextureStorage1D
+  , glTextureStorage2D
+  , glTextureStorage2DMultisample
+  , glTextureStorage3D
+  , glTextureStorage3DMultisample
+  , glTextureSubImage1D
+  , glTextureSubImage2D
+  , glTextureSubImage3D
+  , glTransformFeedbackBufferBase
+  , glTransformFeedbackBufferRange
+  , glUnmapNamedBuffer
+  , glVertexArrayAttribBinding
+  , glVertexArrayAttribFormat
+  , glVertexArrayAttribIFormat
+  , glVertexArrayAttribLFormat
+  , glVertexArrayBindingDivisor
+  , glVertexArrayElementBuffer
+  , glVertexArrayVertexBuffer
+  , glVertexArrayVertexBuffers
+  , pattern GL_CLIP_DEPTH_MODE
+  , pattern GL_CLIP_ORIGIN
+  , pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT
+  , pattern GL_CONTEXT_LOST
+  , pattern GL_CONTEXT_RELEASE_BEHAVIOR
+  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH
+  , pattern GL_GUILTY_CONTEXT_RESET
+  , pattern GL_INNOCENT_CONTEXT_RESET
+  , pattern GL_LOSE_CONTEXT_ON_RESET
+  , pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES
+  , pattern GL_MAX_CULL_DISTANCES
+  , pattern GL_NEGATIVE_ONE_TO_ONE
+  , pattern GL_NO_RESET_NOTIFICATION
+  , pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED
+  , pattern GL_QUERY_BY_REGION_WAIT_INVERTED
+  , pattern GL_QUERY_NO_WAIT_INVERTED
+  , pattern GL_QUERY_TARGET
+  , pattern GL_QUERY_WAIT_INVERTED
+  , pattern GL_RESET_NOTIFICATION_STRATEGY
+  , pattern GL_TEXTURE_TARGET
+  , pattern GL_UNKNOWN_CONTEXT_RESET
+  , pattern GL_ZERO_TO_ONE
+) where
+
+import Control.Monad.IO.Class
+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
+
+import Graphics.GL.Core44
+
+-- | Usage: @'glGetnCompressedTexImage' target lod bufSize pixels@
+
+
+glGetnCompressedTexImage :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()
+glGetnCompressedTexImage = ffienumintsizeiPtrVIOV glGetnCompressedTexImageFunPtr
+
+glGetnCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ())
+glGetnCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetnCompressedTexImage")
+
+{-# NOINLINE glGetnCompressedTexImageFunPtr #-}
+
+-- | Usage: @'glGetnTexImage' target level format type bufSize pixels@
+
+
+glGetnTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnTexImage = ffienumintenumenumsizeiPtrVIOV glGetnTexImageFunPtr
+
+glGetnTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnTexImageFunPtr = unsafePerformIO (getProcAddress "glGetnTexImage")
+
+{-# NOINLINE glGetnTexImageFunPtr #-}
+
+-- | Usage: @'glGetnUniformdv' program location bufSize params@
+
+
+glGetnUniformdv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glGetnUniformdv = ffiuintintsizeiPtrdoubleIOV glGetnUniformdvFunPtr
+
+glGetnUniformdvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glGetnUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformdv")
+
+{-# NOINLINE glGetnUniformdvFunPtr #-}
diff --git a/generated-src/Graphics/GL/Embedded20.hs b/generated-src/Graphics/GL/Embedded20.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Embedded20.hs
@@ -0,0 +1,450 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Embedded20 (
+  -- * Graphics.GL.Embedded20
+    glActiveTexture
+  , glAttachShader
+  , glBindAttribLocation
+  , glBindBuffer
+  , glBindFramebuffer
+  , glBindRenderbuffer
+  , glBindTexture
+  , glBlendColor
+  , glBlendEquation
+  , glBlendEquationSeparate
+  , glBlendFunc
+  , glBlendFuncSeparate
+  , glBufferData
+  , glBufferSubData
+  , glCheckFramebufferStatus
+  , glClear
+  , glClearColor
+  , glClearDepthf
+  , glClearStencil
+  , glColorMask
+  , glCompileShader
+  , glCompressedTexImage2D
+  , glCompressedTexSubImage2D
+  , glCopyTexImage2D
+  , glCopyTexSubImage2D
+  , glCreateProgram
+  , glCreateShader
+  , glCullFace
+  , glDeleteBuffers
+  , glDeleteFramebuffers
+  , glDeleteProgram
+  , glDeleteRenderbuffers
+  , glDeleteShader
+  , glDeleteTextures
+  , glDepthFunc
+  , glDepthMask
+  , glDepthRangef
+  , glDetachShader
+  , glDisable
+  , glDisableVertexAttribArray
+  , glDrawArrays
+  , glDrawElements
+  , glEnable
+  , glEnableVertexAttribArray
+  , glFinish
+  , glFlush
+  , glFramebufferRenderbuffer
+  , glFramebufferTexture2D
+  , glFrontFace
+  , glGenBuffers
+  , glGenFramebuffers
+  , glGenRenderbuffers
+  , glGenTextures
+  , glGenerateMipmap
+  , glGetActiveAttrib
+  , glGetActiveUniform
+  , glGetAttachedShaders
+  , glGetAttribLocation
+  , glGetBooleanv
+  , glGetBufferParameteriv
+  , glGetError
+  , glGetFloatv
+  , glGetFramebufferAttachmentParameteriv
+  , glGetIntegerv
+  , glGetProgramInfoLog
+  , glGetProgramiv
+  , glGetRenderbufferParameteriv
+  , glGetShaderInfoLog
+  , glGetShaderPrecisionFormat
+  , glGetShaderSource
+  , glGetShaderiv
+  , glGetString
+  , glGetTexParameterfv
+  , glGetTexParameteriv
+  , glGetUniformLocation
+  , glGetUniformfv
+  , glGetUniformiv
+  , glGetVertexAttribPointerv
+  , glGetVertexAttribfv
+  , glGetVertexAttribiv
+  , glHint
+  , glIsBuffer
+  , glIsEnabled
+  , glIsFramebuffer
+  , glIsProgram
+  , glIsRenderbuffer
+  , glIsShader
+  , glIsTexture
+  , glLineWidth
+  , glLinkProgram
+  , glPixelStorei
+  , glPolygonOffset
+  , glReadPixels
+  , glReleaseShaderCompiler
+  , glRenderbufferStorage
+  , glSampleCoverage
+  , glScissor
+  , glShaderBinary
+  , glShaderSource
+  , glStencilFunc
+  , glStencilFuncSeparate
+  , glStencilMask
+  , glStencilMaskSeparate
+  , glStencilOp
+  , glStencilOpSeparate
+  , glTexImage2D
+  , glTexParameterf
+  , glTexParameterfv
+  , glTexParameteri
+  , glTexParameteriv
+  , glTexSubImage2D
+  , glUniform1f
+  , glUniform1fv
+  , glUniform1i
+  , glUniform1iv
+  , glUniform2f
+  , glUniform2fv
+  , glUniform2i
+  , glUniform2iv
+  , glUniform3f
+  , glUniform3fv
+  , glUniform3i
+  , glUniform3iv
+  , glUniform4f
+  , glUniform4fv
+  , glUniform4i
+  , glUniform4iv
+  , glUniformMatrix2fv
+  , glUniformMatrix3fv
+  , glUniformMatrix4fv
+  , glUseProgram
+  , glValidateProgram
+  , glVertexAttrib1f
+  , glVertexAttrib1fv
+  , glVertexAttrib2f
+  , glVertexAttrib2fv
+  , glVertexAttrib3f
+  , glVertexAttrib3fv
+  , glVertexAttrib4f
+  , glVertexAttrib4fv
+  , glVertexAttribPointer
+  , glViewport
+  , pattern GL_ACTIVE_ATTRIBUTES
+  , pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
+  , pattern GL_ACTIVE_TEXTURE
+  , pattern GL_ACTIVE_UNIFORMS
+  , pattern GL_ACTIVE_UNIFORM_MAX_LENGTH
+  , pattern GL_ALIASED_LINE_WIDTH_RANGE
+  , pattern GL_ALIASED_POINT_SIZE_RANGE
+  , pattern GL_ALPHA
+  , pattern GL_ALPHA_BITS
+  , pattern GL_ALWAYS
+  , pattern GL_ARRAY_BUFFER
+  , pattern GL_ARRAY_BUFFER_BINDING
+  , pattern GL_ATTACHED_SHADERS
+  , pattern GL_BACK
+  , pattern GL_BLEND
+  , pattern GL_BLEND_COLOR
+  , pattern GL_BLEND_DST_ALPHA
+  , pattern GL_BLEND_DST_RGB
+  , pattern GL_BLEND_EQUATION
+  , pattern GL_BLEND_EQUATION_ALPHA
+  , pattern GL_BLEND_EQUATION_RGB
+  , pattern GL_BLEND_SRC_ALPHA
+  , pattern GL_BLEND_SRC_RGB
+  , pattern GL_BLUE_BITS
+  , pattern GL_BOOL
+  , pattern GL_BOOL_VEC2
+  , pattern GL_BOOL_VEC3
+  , pattern GL_BOOL_VEC4
+  , pattern GL_BUFFER_SIZE
+  , pattern GL_BUFFER_USAGE
+  , pattern GL_BYTE
+  , pattern GL_CCW
+  , pattern GL_CLAMP_TO_EDGE
+  , pattern GL_COLOR_ATTACHMENT0
+  , pattern GL_COLOR_BUFFER_BIT
+  , pattern GL_COLOR_CLEAR_VALUE
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_COMPILE_STATUS
+  , pattern GL_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_CONSTANT_ALPHA
+  , pattern GL_CONSTANT_COLOR
+  , pattern GL_CULL_FACE
+  , pattern GL_CULL_FACE_MODE
+  , pattern GL_CURRENT_PROGRAM
+  , pattern GL_CURRENT_VERTEX_ATTRIB
+  , pattern GL_CW
+  , pattern GL_DECR
+  , pattern GL_DECR_WRAP
+  , pattern GL_DELETE_STATUS
+  , pattern GL_DEPTH_ATTACHMENT
+  , pattern GL_DEPTH_BITS
+  , pattern GL_DEPTH_BUFFER_BIT
+  , pattern GL_DEPTH_CLEAR_VALUE
+  , pattern GL_DEPTH_COMPONENT
+  , pattern GL_DEPTH_COMPONENT16
+  , pattern GL_DEPTH_FUNC
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_DEPTH_TEST
+  , pattern GL_DEPTH_WRITEMASK
+  , pattern GL_DITHER
+  , pattern GL_DONT_CARE
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_DYNAMIC_DRAW
+  , pattern GL_ELEMENT_ARRAY_BUFFER
+  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
+  , pattern GL_EQUAL
+  , pattern GL_EXTENSIONS
+  , pattern GL_FALSE
+  , pattern GL_FASTEST
+  , pattern GL_FIXED
+  , pattern GL_FLOAT
+  , pattern GL_FLOAT_MAT2
+  , pattern GL_FLOAT_MAT3
+  , pattern GL_FLOAT_MAT4
+  , pattern GL_FLOAT_VEC2
+  , pattern GL_FLOAT_VEC3
+  , pattern GL_FLOAT_VEC4
+  , pattern GL_FRAGMENT_SHADER
+  , pattern GL_FRAMEBUFFER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
+  , pattern GL_FRAMEBUFFER_BINDING
+  , pattern GL_FRAMEBUFFER_COMPLETE
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_UNSUPPORTED
+  , pattern GL_FRONT
+  , pattern GL_FRONT_AND_BACK
+  , pattern GL_FRONT_FACE
+  , pattern GL_FUNC_ADD
+  , pattern GL_FUNC_REVERSE_SUBTRACT
+  , pattern GL_FUNC_SUBTRACT
+  , pattern GL_GENERATE_MIPMAP_HINT
+  , pattern GL_GEQUAL
+  , pattern GL_GREATER
+  , pattern GL_GREEN_BITS
+  , pattern GL_HIGH_FLOAT
+  , pattern GL_HIGH_INT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
+  , pattern GL_INCR
+  , pattern GL_INCR_WRAP
+  , pattern GL_INFO_LOG_LENGTH
+  , pattern GL_INT
+  , pattern GL_INT_VEC2
+  , pattern GL_INT_VEC3
+  , pattern GL_INT_VEC4
+  , pattern GL_INVALID_ENUM
+  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
+  , pattern GL_INVALID_OPERATION
+  , pattern GL_INVALID_VALUE
+  , pattern GL_INVERT
+  , pattern GL_KEEP
+  , pattern GL_LEQUAL
+  , pattern GL_LESS
+  , pattern GL_LINEAR
+  , pattern GL_LINEAR_MIPMAP_LINEAR
+  , pattern GL_LINEAR_MIPMAP_NEAREST
+  , pattern GL_LINES
+  , pattern GL_LINE_LOOP
+  , pattern GL_LINE_STRIP
+  , pattern GL_LINE_WIDTH
+  , pattern GL_LINK_STATUS
+  , pattern GL_LOW_FLOAT
+  , pattern GL_LOW_INT
+  , pattern GL_LUMINANCE
+  , pattern GL_LUMINANCE_ALPHA
+  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE
+  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
+  , pattern GL_MAX_RENDERBUFFER_SIZE
+  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TEXTURE_SIZE
+  , pattern GL_MAX_VARYING_VECTORS
+  , pattern GL_MAX_VERTEX_ATTRIBS
+  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
+  , pattern GL_MAX_VIEWPORT_DIMS
+  , pattern GL_MEDIUM_FLOAT
+  , pattern GL_MEDIUM_INT
+  , pattern GL_MIRRORED_REPEAT
+  , pattern GL_NEAREST
+  , pattern GL_NEAREST_MIPMAP_LINEAR
+  , pattern GL_NEAREST_MIPMAP_NEAREST
+  , pattern GL_NEVER
+  , pattern GL_NICEST
+  , pattern GL_NONE
+  , pattern GL_NOTEQUAL
+  , pattern GL_NO_ERROR
+  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_NUM_SHADER_BINARY_FORMATS
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_OUT_OF_MEMORY
+  , pattern GL_PACK_ALIGNMENT
+  , pattern GL_POINTS
+  , pattern GL_POLYGON_OFFSET_FACTOR
+  , pattern GL_POLYGON_OFFSET_FILL
+  , pattern GL_POLYGON_OFFSET_UNITS
+  , pattern GL_RED_BITS
+  , pattern GL_RENDERBUFFER
+  , pattern GL_RENDERBUFFER_ALPHA_SIZE
+  , pattern GL_RENDERBUFFER_BINDING
+  , pattern GL_RENDERBUFFER_BLUE_SIZE
+  , pattern GL_RENDERBUFFER_DEPTH_SIZE
+  , pattern GL_RENDERBUFFER_GREEN_SIZE
+  , pattern GL_RENDERBUFFER_HEIGHT
+  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
+  , pattern GL_RENDERBUFFER_RED_SIZE
+  , pattern GL_RENDERBUFFER_STENCIL_SIZE
+  , pattern GL_RENDERBUFFER_WIDTH
+  , pattern GL_RENDERER
+  , pattern GL_REPEAT
+  , pattern GL_REPLACE
+  , pattern GL_RGB
+  , pattern GL_RGB565
+  , pattern GL_RGB5_A1
+  , pattern GL_RGBA
+  , pattern GL_RGBA4
+  , pattern GL_SAMPLER_2D
+  , pattern GL_SAMPLER_CUBE
+  , pattern GL_SAMPLES
+  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
+  , pattern GL_SAMPLE_BUFFERS
+  , pattern GL_SAMPLE_COVERAGE
+  , pattern GL_SAMPLE_COVERAGE_INVERT
+  , pattern GL_SAMPLE_COVERAGE_VALUE
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_SHADER_BINARY_FORMATS
+  , pattern GL_SHADER_COMPILER
+  , pattern GL_SHADER_SOURCE_LENGTH
+  , pattern GL_SHADER_TYPE
+  , pattern GL_SHADING_LANGUAGE_VERSION
+  , pattern GL_SHORT
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_STATIC_DRAW
+  , pattern GL_STENCIL_ATTACHMENT
+  , pattern GL_STENCIL_BACK_FAIL
+  , pattern GL_STENCIL_BACK_FUNC
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_BACK_REF
+  , pattern GL_STENCIL_BACK_VALUE_MASK
+  , pattern GL_STENCIL_BACK_WRITEMASK
+  , pattern GL_STENCIL_BITS
+  , pattern GL_STENCIL_BUFFER_BIT
+  , pattern GL_STENCIL_CLEAR_VALUE
+  , pattern GL_STENCIL_FAIL
+  , pattern GL_STENCIL_FUNC
+  , pattern GL_STENCIL_INDEX8
+  , pattern GL_STENCIL_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_REF
+  , pattern GL_STENCIL_TEST
+  , pattern GL_STENCIL_VALUE_MASK
+  , pattern GL_STENCIL_WRITEMASK
+  , pattern GL_STREAM_DRAW
+  , pattern GL_SUBPIXEL_BITS
+  , pattern GL_TEXTURE
+  , pattern GL_TEXTURE0
+  , pattern GL_TEXTURE1
+  , pattern GL_TEXTURE10
+  , pattern GL_TEXTURE11
+  , pattern GL_TEXTURE12
+  , pattern GL_TEXTURE13
+  , pattern GL_TEXTURE14
+  , pattern GL_TEXTURE15
+  , pattern GL_TEXTURE16
+  , pattern GL_TEXTURE17
+  , pattern GL_TEXTURE18
+  , pattern GL_TEXTURE19
+  , pattern GL_TEXTURE2
+  , pattern GL_TEXTURE20
+  , pattern GL_TEXTURE21
+  , pattern GL_TEXTURE22
+  , pattern GL_TEXTURE23
+  , pattern GL_TEXTURE24
+  , pattern GL_TEXTURE25
+  , pattern GL_TEXTURE26
+  , pattern GL_TEXTURE27
+  , pattern GL_TEXTURE28
+  , pattern GL_TEXTURE29
+  , pattern GL_TEXTURE3
+  , pattern GL_TEXTURE30
+  , pattern GL_TEXTURE31
+  , pattern GL_TEXTURE4
+  , pattern GL_TEXTURE5
+  , pattern GL_TEXTURE6
+  , pattern GL_TEXTURE7
+  , pattern GL_TEXTURE8
+  , pattern GL_TEXTURE9
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_BINDING_2D
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP
+  , pattern GL_TEXTURE_CUBE_MAP
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z
+  , pattern GL_TEXTURE_MAG_FILTER
+  , pattern GL_TEXTURE_MIN_FILTER
+  , pattern GL_TEXTURE_WRAP_S
+  , pattern GL_TEXTURE_WRAP_T
+  , pattern GL_TRIANGLES
+  , pattern GL_TRIANGLE_FAN
+  , pattern GL_TRIANGLE_STRIP
+  , pattern GL_TRUE
+  , pattern GL_UNPACK_ALIGNMENT
+  , pattern GL_UNSIGNED_BYTE
+  , pattern GL_UNSIGNED_INT
+  , pattern GL_UNSIGNED_SHORT
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4
+  , pattern GL_UNSIGNED_SHORT_5_5_5_1
+  , pattern GL_UNSIGNED_SHORT_5_6_5
+  , pattern GL_VALIDATE_STATUS
+  , pattern GL_VENDOR
+  , pattern GL_VERSION
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
+  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
+  , pattern GL_VERTEX_SHADER
+  , pattern GL_VIEWPORT
+  , pattern GL_ZERO
+) where
+
+import Graphics.GL.Internal.Shared
diff --git a/generated-src/Graphics/GL/Embedded30.hs b/generated-src/Graphics/GL/Embedded30.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Embedded30.hs
@@ -0,0 +1,435 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Embedded30 (
+  -- * Graphics.GL.Embedded30
+    module Graphics.GL.Embedded20
+  , glBeginQuery
+  , glBeginTransformFeedback
+  , glBindBufferBase
+  , glBindBufferRange
+  , glBindSampler
+  , glBindTransformFeedback
+  , glBindVertexArray
+  , glBlitFramebuffer
+  , glClearBufferfi
+  , glClearBufferfv
+  , glClearBufferiv
+  , glClearBufferuiv
+  , glClientWaitSync
+  , glCompressedTexImage3D
+  , glCompressedTexSubImage3D
+  , glCopyBufferSubData
+  , glCopyTexSubImage3D
+  , glDeleteQueries
+  , glDeleteSamplers
+  , glDeleteSync
+  , glDeleteTransformFeedbacks
+  , glDeleteVertexArrays
+  , glDrawArraysInstanced
+  , glDrawBuffers
+  , glDrawElementsInstanced
+  , glDrawRangeElements
+  , glEndQuery
+  , glEndTransformFeedback
+  , glFenceSync
+  , glFlushMappedBufferRange
+  , glFramebufferTextureLayer
+  , glGenQueries
+  , glGenSamplers
+  , glGenTransformFeedbacks
+  , glGenVertexArrays
+  , glGetActiveUniformBlockName
+  , glGetActiveUniformBlockiv
+  , glGetActiveUniformsiv
+  , glGetBufferParameteri64v
+  , glGetBufferPointerv
+  , glGetFragDataLocation
+  , glGetInteger64i_v
+  , glGetInteger64v
+  , glGetIntegeri_v
+  , glGetInternalformativ
+  , glGetProgramBinary
+  , glGetQueryObjectuiv
+  , glGetQueryiv
+  , glGetSamplerParameterfv
+  , glGetSamplerParameteriv
+  , glGetStringi
+  , glGetSynciv
+  , glGetTransformFeedbackVarying
+  , glGetUniformBlockIndex
+  , glGetUniformIndices
+  , glGetUniformuiv
+  , glGetVertexAttribIiv
+  , glGetVertexAttribIuiv
+  , glInvalidateFramebuffer
+  , glInvalidateSubFramebuffer
+  , glIsQuery
+  , glIsSampler
+  , glIsSync
+  , glIsTransformFeedback
+  , glIsVertexArray
+  , glMapBufferRange
+  , glPauseTransformFeedback
+  , glProgramBinary
+  , glProgramParameteri
+  , glReadBuffer
+  , glRenderbufferStorageMultisample
+  , glResumeTransformFeedback
+  , glSamplerParameterf
+  , glSamplerParameterfv
+  , glSamplerParameteri
+  , glSamplerParameteriv
+  , glTexImage3D
+  , glTexStorage2D
+  , glTexStorage3D
+  , glTexSubImage3D
+  , glTransformFeedbackVaryings
+  , glUniform1ui
+  , glUniform1uiv
+  , glUniform2ui
+  , glUniform2uiv
+  , glUniform3ui
+  , glUniform3uiv
+  , glUniform4ui
+  , glUniform4uiv
+  , glUniformBlockBinding
+  , glUniformMatrix2x3fv
+  , glUniformMatrix2x4fv
+  , glUniformMatrix3x2fv
+  , glUniformMatrix3x4fv
+  , glUniformMatrix4x2fv
+  , glUniformMatrix4x3fv
+  , glUnmapBuffer
+  , glVertexAttribDivisor
+  , glVertexAttribI4i
+  , glVertexAttribI4iv
+  , glVertexAttribI4ui
+  , glVertexAttribI4uiv
+  , glVertexAttribIPointer
+  , glWaitSync
+  , pattern GL_ACTIVE_UNIFORM_BLOCKS
+  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
+  , pattern GL_ALREADY_SIGNALED
+  , pattern GL_ANY_SAMPLES_PASSED
+  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE
+  , pattern GL_BLUE
+  , pattern GL_BUFFER_ACCESS_FLAGS
+  , pattern GL_BUFFER_MAPPED
+  , pattern GL_BUFFER_MAP_LENGTH
+  , pattern GL_BUFFER_MAP_OFFSET
+  , pattern GL_BUFFER_MAP_POINTER
+  , pattern GL_COLOR
+  , pattern GL_COLOR_ATTACHMENT1
+  , pattern GL_COLOR_ATTACHMENT10
+  , pattern GL_COLOR_ATTACHMENT11
+  , pattern GL_COLOR_ATTACHMENT12
+  , pattern GL_COLOR_ATTACHMENT13
+  , pattern GL_COLOR_ATTACHMENT14
+  , pattern GL_COLOR_ATTACHMENT15
+  , pattern GL_COLOR_ATTACHMENT16
+  , pattern GL_COLOR_ATTACHMENT17
+  , pattern GL_COLOR_ATTACHMENT18
+  , pattern GL_COLOR_ATTACHMENT19
+  , pattern GL_COLOR_ATTACHMENT2
+  , pattern GL_COLOR_ATTACHMENT20
+  , pattern GL_COLOR_ATTACHMENT21
+  , pattern GL_COLOR_ATTACHMENT22
+  , pattern GL_COLOR_ATTACHMENT23
+  , pattern GL_COLOR_ATTACHMENT24
+  , pattern GL_COLOR_ATTACHMENT25
+  , pattern GL_COLOR_ATTACHMENT26
+  , pattern GL_COLOR_ATTACHMENT27
+  , pattern GL_COLOR_ATTACHMENT28
+  , pattern GL_COLOR_ATTACHMENT29
+  , pattern GL_COLOR_ATTACHMENT3
+  , pattern GL_COLOR_ATTACHMENT30
+  , pattern GL_COLOR_ATTACHMENT31
+  , pattern GL_COLOR_ATTACHMENT4
+  , pattern GL_COLOR_ATTACHMENT5
+  , pattern GL_COLOR_ATTACHMENT6
+  , pattern GL_COLOR_ATTACHMENT7
+  , pattern GL_COLOR_ATTACHMENT8
+  , pattern GL_COLOR_ATTACHMENT9
+  , pattern GL_COMPARE_REF_TO_TEXTURE
+  , pattern GL_COMPRESSED_R11_EAC
+  , pattern GL_COMPRESSED_RG11_EAC
+  , pattern GL_COMPRESSED_RGB8_ETC2
+  , pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
+  , pattern GL_COMPRESSED_RGBA8_ETC2_EAC
+  , pattern GL_COMPRESSED_SIGNED_R11_EAC
+  , pattern GL_COMPRESSED_SIGNED_RG11_EAC
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
+  , pattern GL_COMPRESSED_SRGB8_ETC2
+  , pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
+  , pattern GL_CONDITION_SATISFIED
+  , pattern GL_COPY_READ_BUFFER
+  , pattern GL_COPY_READ_BUFFER_BINDING
+  , pattern GL_COPY_WRITE_BUFFER
+  , pattern GL_COPY_WRITE_BUFFER_BINDING
+  , pattern GL_CURRENT_QUERY
+  , pattern GL_DEPTH
+  , pattern GL_DEPTH24_STENCIL8
+  , pattern GL_DEPTH32F_STENCIL8
+  , pattern GL_DEPTH_COMPONENT24
+  , pattern GL_DEPTH_COMPONENT32F
+  , pattern GL_DEPTH_STENCIL
+  , pattern GL_DEPTH_STENCIL_ATTACHMENT
+  , pattern GL_DRAW_BUFFER0
+  , pattern GL_DRAW_BUFFER1
+  , pattern GL_DRAW_BUFFER10
+  , pattern GL_DRAW_BUFFER11
+  , pattern GL_DRAW_BUFFER12
+  , pattern GL_DRAW_BUFFER13
+  , pattern GL_DRAW_BUFFER14
+  , pattern GL_DRAW_BUFFER15
+  , pattern GL_DRAW_BUFFER2
+  , pattern GL_DRAW_BUFFER3
+  , pattern GL_DRAW_BUFFER4
+  , pattern GL_DRAW_BUFFER5
+  , pattern GL_DRAW_BUFFER6
+  , pattern GL_DRAW_BUFFER7
+  , pattern GL_DRAW_BUFFER8
+  , pattern GL_DRAW_BUFFER9
+  , pattern GL_DRAW_FRAMEBUFFER
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING
+  , pattern GL_DYNAMIC_COPY
+  , pattern GL_DYNAMIC_READ
+  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
+  , pattern GL_FLOAT_MAT2x3
+  , pattern GL_FLOAT_MAT2x4
+  , pattern GL_FLOAT_MAT3x2
+  , pattern GL_FLOAT_MAT3x4
+  , pattern GL_FLOAT_MAT4x2
+  , pattern GL_FLOAT_MAT4x3
+  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
+  , pattern GL_FRAMEBUFFER_DEFAULT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
+  , pattern GL_FRAMEBUFFER_UNDEFINED
+  , pattern GL_GREEN
+  , pattern GL_HALF_FLOAT
+  , pattern GL_INTERLEAVED_ATTRIBS
+  , pattern GL_INT_2_10_10_10_REV
+  , pattern GL_INT_SAMPLER_2D
+  , pattern GL_INT_SAMPLER_2D_ARRAY
+  , pattern GL_INT_SAMPLER_3D
+  , pattern GL_INT_SAMPLER_CUBE
+  , pattern GL_INVALID_INDEX
+  , pattern GL_MAJOR_VERSION
+  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
+  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
+  , pattern GL_MAP_INVALIDATE_RANGE_BIT
+  , pattern GL_MAP_READ_BIT
+  , pattern GL_MAP_UNSYNCHRONIZED_BIT
+  , pattern GL_MAP_WRITE_BIT
+  , pattern GL_MAX
+  , pattern GL_MAX_3D_TEXTURE_SIZE
+  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS
+  , pattern GL_MAX_COLOR_ATTACHMENTS
+  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
+  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
+  , pattern GL_MAX_DRAW_BUFFERS
+  , pattern GL_MAX_ELEMENTS_INDICES
+  , pattern GL_MAX_ELEMENTS_VERTICES
+  , pattern GL_MAX_ELEMENT_INDEX
+  , pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
+  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET
+  , pattern GL_MAX_SAMPLES
+  , pattern GL_MAX_SERVER_WAIT_TIMEOUT
+  , pattern GL_MAX_TEXTURE_LOD_BIAS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
+  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
+  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
+  , pattern GL_MAX_VARYING_COMPONENTS
+  , pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS
+  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
+  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS
+  , pattern GL_MIN
+  , pattern GL_MINOR_VERSION
+  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET
+  , pattern GL_NUM_EXTENSIONS
+  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
+  , pattern GL_NUM_SAMPLE_COUNTS
+  , pattern GL_OBJECT_TYPE
+  , pattern GL_PACK_ROW_LENGTH
+  , pattern GL_PACK_SKIP_PIXELS
+  , pattern GL_PACK_SKIP_ROWS
+  , pattern GL_PIXEL_PACK_BUFFER
+  , pattern GL_PIXEL_PACK_BUFFER_BINDING
+  , pattern GL_PIXEL_UNPACK_BUFFER
+  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING
+  , pattern GL_PRIMITIVE_RESTART_FIXED_INDEX
+  , pattern GL_PROGRAM_BINARY_FORMATS
+  , pattern GL_PROGRAM_BINARY_LENGTH
+  , pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT
+  , pattern GL_QUERY_RESULT
+  , pattern GL_QUERY_RESULT_AVAILABLE
+  , pattern GL_R11F_G11F_B10F
+  , pattern GL_R16F
+  , pattern GL_R16I
+  , pattern GL_R16UI
+  , pattern GL_R32F
+  , pattern GL_R32I
+  , pattern GL_R32UI
+  , pattern GL_R8
+  , pattern GL_R8I
+  , pattern GL_R8UI
+  , pattern GL_R8_SNORM
+  , pattern GL_RASTERIZER_DISCARD
+  , pattern GL_READ_BUFFER
+  , pattern GL_READ_FRAMEBUFFER
+  , pattern GL_READ_FRAMEBUFFER_BINDING
+  , pattern GL_RED
+  , pattern GL_RED_INTEGER
+  , pattern GL_RENDERBUFFER_SAMPLES
+  , pattern GL_RG
+  , pattern GL_RG16F
+  , pattern GL_RG16I
+  , pattern GL_RG16UI
+  , pattern GL_RG32F
+  , pattern GL_RG32I
+  , pattern GL_RG32UI
+  , pattern GL_RG8
+  , pattern GL_RG8I
+  , pattern GL_RG8UI
+  , pattern GL_RG8_SNORM
+  , pattern GL_RGB10_A2
+  , pattern GL_RGB10_A2UI
+  , pattern GL_RGB16F
+  , pattern GL_RGB16I
+  , pattern GL_RGB16UI
+  , pattern GL_RGB32F
+  , pattern GL_RGB32I
+  , pattern GL_RGB32UI
+  , pattern GL_RGB8
+  , pattern GL_RGB8I
+  , pattern GL_RGB8UI
+  , pattern GL_RGB8_SNORM
+  , pattern GL_RGB9_E5
+  , pattern GL_RGBA16F
+  , pattern GL_RGBA16I
+  , pattern GL_RGBA16UI
+  , pattern GL_RGBA32F
+  , pattern GL_RGBA32I
+  , pattern GL_RGBA32UI
+  , pattern GL_RGBA8
+  , pattern GL_RGBA8I
+  , pattern GL_RGBA8UI
+  , pattern GL_RGBA8_SNORM
+  , pattern GL_RGBA_INTEGER
+  , pattern GL_RGB_INTEGER
+  , pattern GL_RG_INTEGER
+  , pattern GL_SAMPLER_2D_ARRAY
+  , pattern GL_SAMPLER_2D_ARRAY_SHADOW
+  , pattern GL_SAMPLER_2D_SHADOW
+  , pattern GL_SAMPLER_3D
+  , pattern GL_SAMPLER_BINDING
+  , pattern GL_SAMPLER_CUBE_SHADOW
+  , pattern GL_SEPARATE_ATTRIBS
+  , pattern GL_SIGNALED
+  , pattern GL_SIGNED_NORMALIZED
+  , pattern GL_SRGB
+  , pattern GL_SRGB8
+  , pattern GL_SRGB8_ALPHA8
+  , pattern GL_STATIC_COPY
+  , pattern GL_STATIC_READ
+  , pattern GL_STENCIL
+  , pattern GL_STREAM_COPY
+  , pattern GL_STREAM_READ
+  , pattern GL_SYNC_CONDITION
+  , pattern GL_SYNC_FENCE
+  , pattern GL_SYNC_FLAGS
+  , pattern GL_SYNC_FLUSH_COMMANDS_BIT
+  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE
+  , pattern GL_SYNC_STATUS
+  , pattern GL_TEXTURE_2D_ARRAY
+  , pattern GL_TEXTURE_3D
+  , pattern GL_TEXTURE_BASE_LEVEL
+  , pattern GL_TEXTURE_BINDING_2D_ARRAY
+  , pattern GL_TEXTURE_BINDING_3D
+  , pattern GL_TEXTURE_COMPARE_FUNC
+  , pattern GL_TEXTURE_COMPARE_MODE
+  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
+  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
+  , pattern GL_TEXTURE_MAX_LEVEL
+  , pattern GL_TEXTURE_MAX_LOD
+  , pattern GL_TEXTURE_MIN_LOD
+  , pattern GL_TEXTURE_SWIZZLE_A
+  , pattern GL_TEXTURE_SWIZZLE_B
+  , pattern GL_TEXTURE_SWIZZLE_G
+  , pattern GL_TEXTURE_SWIZZLE_R
+  , pattern GL_TEXTURE_WRAP_R
+  , pattern GL_TIMEOUT_EXPIRED
+  , pattern GL_TIMEOUT_IGNORED
+  , pattern GL_TRANSFORM_FEEDBACK
+  , pattern GL_TRANSFORM_FEEDBACK_ACTIVE
+  , pattern GL_TRANSFORM_FEEDBACK_BINDING
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START
+  , pattern GL_TRANSFORM_FEEDBACK_PAUSED
+  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
+  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS
+  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+  , pattern GL_UNIFORM_ARRAY_STRIDE
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
+  , pattern GL_UNIFORM_BLOCK_BINDING
+  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
+  , pattern GL_UNIFORM_BLOCK_INDEX
+  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_UNIFORM_BUFFER
+  , pattern GL_UNIFORM_BUFFER_BINDING
+  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_UNIFORM_BUFFER_SIZE
+  , pattern GL_UNIFORM_BUFFER_START
+  , pattern GL_UNIFORM_IS_ROW_MAJOR
+  , pattern GL_UNIFORM_MATRIX_STRIDE
+  , pattern GL_UNIFORM_NAME_LENGTH
+  , pattern GL_UNIFORM_OFFSET
+  , pattern GL_UNIFORM_SIZE
+  , pattern GL_UNIFORM_TYPE
+  , pattern GL_UNPACK_IMAGE_HEIGHT
+  , pattern GL_UNPACK_ROW_LENGTH
+  , pattern GL_UNPACK_SKIP_IMAGES
+  , pattern GL_UNPACK_SKIP_PIXELS
+  , pattern GL_UNPACK_SKIP_ROWS
+  , pattern GL_UNSIGNALED
+  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
+  , pattern GL_UNSIGNED_INT_24_8
+  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
+  , pattern GL_UNSIGNED_INT_5_9_9_9_REV
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_3D
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE
+  , pattern GL_UNSIGNED_INT_VEC2
+  , pattern GL_UNSIGNED_INT_VEC3
+  , pattern GL_UNSIGNED_INT_VEC4
+  , pattern GL_UNSIGNED_NORMALIZED
+  , pattern GL_VERTEX_ARRAY_BINDING
+  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR
+  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER
+  , pattern GL_WAIT_FAILED
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Embedded20
diff --git a/generated-src/Graphics/GL/Embedded31.hs b/generated-src/Graphics/GL/Embedded31.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Embedded31.hs
@@ -0,0 +1,251 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Embedded31 (
+  -- * Graphics.GL.Embedded31
+    module Graphics.GL.Embedded30
+  , glActiveShaderProgram
+  , glBindImageTexture
+  , glBindProgramPipeline
+  , glBindVertexBuffer
+  , glCreateShaderProgramv
+  , glDeleteProgramPipelines
+  , glDispatchCompute
+  , glDispatchComputeIndirect
+  , glDrawArraysIndirect
+  , glDrawElementsIndirect
+  , glFramebufferParameteri
+  , glGenProgramPipelines
+  , glGetBooleani_v
+  , glGetFramebufferParameteriv
+  , glGetMultisamplefv
+  , glGetProgramInterfaceiv
+  , glGetProgramPipelineInfoLog
+  , glGetProgramPipelineiv
+  , glGetProgramResourceIndex
+  , glGetProgramResourceLocation
+  , glGetProgramResourceName
+  , glGetProgramResourceiv
+  , glGetTexLevelParameterfv
+  , glGetTexLevelParameteriv
+  , glIsProgramPipeline
+  , glMemoryBarrier
+  , glMemoryBarrierByRegion
+  , glProgramUniform1f
+  , glProgramUniform1fv
+  , glProgramUniform1i
+  , glProgramUniform1iv
+  , glProgramUniform1ui
+  , glProgramUniform1uiv
+  , glProgramUniform2f
+  , glProgramUniform2fv
+  , glProgramUniform2i
+  , glProgramUniform2iv
+  , glProgramUniform2ui
+  , glProgramUniform2uiv
+  , glProgramUniform3f
+  , glProgramUniform3fv
+  , glProgramUniform3i
+  , glProgramUniform3iv
+  , glProgramUniform3ui
+  , glProgramUniform3uiv
+  , glProgramUniform4f
+  , glProgramUniform4fv
+  , glProgramUniform4i
+  , glProgramUniform4iv
+  , glProgramUniform4ui
+  , glProgramUniform4uiv
+  , glProgramUniformMatrix2fv
+  , glProgramUniformMatrix2x3fv
+  , glProgramUniformMatrix2x4fv
+  , glProgramUniformMatrix3fv
+  , glProgramUniformMatrix3x2fv
+  , glProgramUniformMatrix3x4fv
+  , glProgramUniformMatrix4fv
+  , glProgramUniformMatrix4x2fv
+  , glProgramUniformMatrix4x3fv
+  , glSampleMaski
+  , glTexStorage2DMultisample
+  , glUseProgramStages
+  , glValidateProgramPipeline
+  , glVertexAttribBinding
+  , glVertexAttribFormat
+  , glVertexAttribIFormat
+  , glVertexBindingDivisor
+  , pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_ACTIVE_PROGRAM
+  , pattern GL_ACTIVE_RESOURCES
+  , pattern GL_ACTIVE_VARIABLES
+  , pattern GL_ALL_BARRIER_BITS
+  , pattern GL_ALL_SHADER_BITS
+  , pattern GL_ARRAY_SIZE
+  , pattern GL_ARRAY_STRIDE
+  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT
+  , pattern GL_ATOMIC_COUNTER_BUFFER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_BINDING
+  , pattern GL_ATOMIC_COUNTER_BUFFER_INDEX
+  , pattern GL_ATOMIC_COUNTER_BUFFER_SIZE
+  , pattern GL_ATOMIC_COUNTER_BUFFER_START
+  , pattern GL_BLOCK_INDEX
+  , pattern GL_BUFFER_BINDING
+  , pattern GL_BUFFER_DATA_SIZE
+  , pattern GL_BUFFER_UPDATE_BARRIER_BIT
+  , pattern GL_BUFFER_VARIABLE
+  , pattern GL_COMMAND_BARRIER_BIT
+  , pattern GL_COMPUTE_SHADER
+  , pattern GL_COMPUTE_SHADER_BIT
+  , pattern GL_COMPUTE_WORK_GROUP_SIZE
+  , pattern GL_DEPTH_STENCIL_TEXTURE_MODE
+  , pattern GL_DISPATCH_INDIRECT_BUFFER
+  , pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING
+  , pattern GL_DRAW_INDIRECT_BUFFER
+  , pattern GL_DRAW_INDIRECT_BUFFER_BINDING
+  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT
+  , pattern GL_FRAGMENT_SHADER_BIT
+  , pattern GL_FRAMEBUFFER_BARRIER_BIT
+  , pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
+  , pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT
+  , pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES
+  , pattern GL_FRAMEBUFFER_DEFAULT_WIDTH
+  , pattern GL_IMAGE_2D
+  , pattern GL_IMAGE_2D_ARRAY
+  , pattern GL_IMAGE_3D
+  , pattern GL_IMAGE_BINDING_ACCESS
+  , pattern GL_IMAGE_BINDING_FORMAT
+  , pattern GL_IMAGE_BINDING_LAYER
+  , pattern GL_IMAGE_BINDING_LAYERED
+  , pattern GL_IMAGE_BINDING_LEVEL
+  , pattern GL_IMAGE_BINDING_NAME
+  , pattern GL_IMAGE_CUBE
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
+  , pattern GL_INT_IMAGE_2D
+  , pattern GL_INT_IMAGE_2D_ARRAY
+  , pattern GL_INT_IMAGE_3D
+  , pattern GL_INT_IMAGE_CUBE
+  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_IS_ROW_MAJOR
+  , pattern GL_LOCATION
+  , pattern GL_MATRIX_STRIDE
+  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
+  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
+  , pattern GL_MAX_COLOR_TEXTURE_SAMPLES
+  , pattern GL_MAX_COMBINED_ATOMIC_COUNTERS
+  , pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_IMAGE_UNIFORMS
+  , pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
+  , pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS
+  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS
+  , pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
+  , pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS
+  , pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE
+  , pattern GL_MAX_DEPTH_TEXTURE_SAMPLES
+  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS
+  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS
+  , pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_FRAMEBUFFER_HEIGHT
+  , pattern GL_MAX_FRAMEBUFFER_SAMPLES
+  , pattern GL_MAX_FRAMEBUFFER_WIDTH
+  , pattern GL_MAX_IMAGE_UNITS
+  , pattern GL_MAX_INTEGER_SAMPLES
+  , pattern GL_MAX_NAME_LENGTH
+  , pattern GL_MAX_NUM_ACTIVE_VARIABLES
+  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET
+  , pattern GL_MAX_SAMPLE_MASK_WORDS
+  , pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE
+  , pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
+  , pattern GL_MAX_UNIFORM_LOCATIONS
+  , pattern GL_MAX_VERTEX_ATOMIC_COUNTERS
+  , pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_VERTEX_ATTRIB_BINDINGS
+  , pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
+  , pattern GL_MAX_VERTEX_ATTRIB_STRIDE
+  , pattern GL_MAX_VERTEX_IMAGE_UNIFORMS
+  , pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
+  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET
+  , pattern GL_NAME_LENGTH
+  , pattern GL_NUM_ACTIVE_VARIABLES
+  , pattern GL_OFFSET
+  , pattern GL_PIXEL_BUFFER_BARRIER_BIT
+  , pattern GL_PROGRAM_INPUT
+  , pattern GL_PROGRAM_OUTPUT
+  , pattern GL_PROGRAM_PIPELINE_BINDING
+  , pattern GL_PROGRAM_SEPARABLE
+  , pattern GL_READ_ONLY
+  , pattern GL_READ_WRITE
+  , pattern GL_REFERENCED_BY_COMPUTE_SHADER
+  , pattern GL_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_SAMPLE_MASK
+  , pattern GL_SAMPLE_MASK_VALUE
+  , pattern GL_SAMPLE_POSITION
+  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
+  , pattern GL_SHADER_STORAGE_BARRIER_BIT
+  , pattern GL_SHADER_STORAGE_BLOCK
+  , pattern GL_SHADER_STORAGE_BUFFER
+  , pattern GL_SHADER_STORAGE_BUFFER_BINDING
+  , pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_SHADER_STORAGE_BUFFER_SIZE
+  , pattern GL_SHADER_STORAGE_BUFFER_START
+  , pattern GL_STENCIL_INDEX
+  , pattern GL_TEXTURE_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_ALPHA_SIZE
+  , pattern GL_TEXTURE_ALPHA_TYPE
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_BLUE_SIZE
+  , pattern GL_TEXTURE_BLUE_TYPE
+  , pattern GL_TEXTURE_COMPRESSED
+  , pattern GL_TEXTURE_DEPTH
+  , pattern GL_TEXTURE_DEPTH_SIZE
+  , pattern GL_TEXTURE_DEPTH_TYPE
+  , pattern GL_TEXTURE_FETCH_BARRIER_BIT
+  , pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
+  , pattern GL_TEXTURE_GREEN_SIZE
+  , pattern GL_TEXTURE_GREEN_TYPE
+  , pattern GL_TEXTURE_HEIGHT
+  , pattern GL_TEXTURE_INTERNAL_FORMAT
+  , pattern GL_TEXTURE_RED_SIZE
+  , pattern GL_TEXTURE_RED_TYPE
+  , pattern GL_TEXTURE_SAMPLES
+  , pattern GL_TEXTURE_SHARED_SIZE
+  , pattern GL_TEXTURE_STENCIL_SIZE
+  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT
+  , pattern GL_TEXTURE_WIDTH
+  , pattern GL_TOP_LEVEL_ARRAY_SIZE
+  , pattern GL_TOP_LEVEL_ARRAY_STRIDE
+  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT
+  , pattern GL_TRANSFORM_FEEDBACK_VARYING
+  , pattern GL_TYPE
+  , pattern GL_UNIFORM
+  , pattern GL_UNIFORM_BARRIER_BIT
+  , pattern GL_UNIFORM_BLOCK
+  , pattern GL_UNSIGNED_INT_ATOMIC_COUNTER
+  , pattern GL_UNSIGNED_INT_IMAGE_2D
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY
+  , pattern GL_UNSIGNED_INT_IMAGE_3D
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
+  , pattern GL_VERTEX_ATTRIB_BINDING
+  , pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET
+  , pattern GL_VERTEX_BINDING_BUFFER
+  , pattern GL_VERTEX_BINDING_DIVISOR
+  , pattern GL_VERTEX_BINDING_OFFSET
+  , pattern GL_VERTEX_BINDING_STRIDE
+  , pattern GL_VERTEX_SHADER_BIT
+  , pattern GL_WRITE_ONLY
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Embedded30
diff --git a/generated-src/Graphics/GL/Embedded32.hs b/generated-src/Graphics/GL/Embedded32.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Embedded32.hs
@@ -0,0 +1,380 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Embedded32 (
+  -- * Graphics.GL.Embedded32
+    module Graphics.GL.Embedded31
+  , glBlendBarrier
+  , glBlendEquationSeparatei
+  , glBlendEquationi
+  , glBlendFuncSeparatei
+  , glBlendFunci
+  , glColorMaski
+  , glCopyImageSubData
+  , glDebugMessageCallback
+  , glDebugMessageControl
+  , glDebugMessageInsert
+  , glDisablei
+  , glDrawElementsBaseVertex
+  , glDrawElementsInstancedBaseVertex
+  , glDrawRangeElementsBaseVertex
+  , glEnablei
+  , glFramebufferTexture
+  , glGetDebugMessageLog
+  , glGetGraphicsResetStatus
+  , glGetObjectLabel
+  , glGetObjectPtrLabel
+  , glGetPointerv
+  , glGetSamplerParameterIiv
+  , glGetSamplerParameterIuiv
+  , glGetTexParameterIiv
+  , glGetTexParameterIuiv
+  , glGetnUniformfv
+  , glGetnUniformiv
+  , glGetnUniformuiv
+  , glIsEnabledi
+  , glMinSampleShading
+  , glObjectLabel
+  , glObjectPtrLabel
+  , glPatchParameteri
+  , glPopDebugGroup
+  , glPrimitiveBoundingBox
+  , glPushDebugGroup
+  , glReadnPixels
+  , glSamplerParameterIiv
+  , glSamplerParameterIuiv
+  , glTexBuffer
+  , glTexBufferRange
+  , glTexParameterIiv
+  , glTexParameterIuiv
+  , glTexStorage3DMultisample
+  , pattern GL_BUFFER
+  , pattern GL_CLAMP_TO_BORDER
+  , pattern GL_COLORBURN
+  , pattern GL_COLORDODGE
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x10
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x5
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x6
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x8
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x10
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x12
+  , pattern GL_COMPRESSED_RGBA_ASTC_4x4
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x4
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x5
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x5
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x6
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x5
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x6
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x8
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8
+  , pattern GL_CONTEXT_FLAGS
+  , pattern GL_CONTEXT_FLAG_DEBUG_BIT
+  , pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT
+  , pattern GL_CONTEXT_LOST
+  , pattern GL_DARKEN
+  , pattern GL_DEBUG_CALLBACK_FUNCTION
+  , pattern GL_DEBUG_CALLBACK_USER_PARAM
+  , pattern GL_DEBUG_GROUP_STACK_DEPTH
+  , pattern GL_DEBUG_LOGGED_MESSAGES
+  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
+  , pattern GL_DEBUG_OUTPUT
+  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS
+  , pattern GL_DEBUG_SEVERITY_HIGH
+  , pattern GL_DEBUG_SEVERITY_LOW
+  , pattern GL_DEBUG_SEVERITY_MEDIUM
+  , pattern GL_DEBUG_SEVERITY_NOTIFICATION
+  , pattern GL_DEBUG_SOURCE_API
+  , pattern GL_DEBUG_SOURCE_APPLICATION
+  , pattern GL_DEBUG_SOURCE_OTHER
+  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER
+  , pattern GL_DEBUG_SOURCE_THIRD_PARTY
+  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM
+  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
+  , pattern GL_DEBUG_TYPE_ERROR
+  , pattern GL_DEBUG_TYPE_MARKER
+  , pattern GL_DEBUG_TYPE_OTHER
+  , pattern GL_DEBUG_TYPE_PERFORMANCE
+  , pattern GL_DEBUG_TYPE_POP_GROUP
+  , pattern GL_DEBUG_TYPE_PORTABILITY
+  , pattern GL_DEBUG_TYPE_PUSH_GROUP
+  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
+  , pattern GL_DIFFERENCE
+  , pattern GL_EXCLUSION
+  , pattern GL_FIRST_VERTEX_CONVENTION
+  , pattern GL_FRACTIONAL_EVEN
+  , pattern GL_FRACTIONAL_ODD
+  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED
+  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS
+  , pattern GL_GEOMETRY_INPUT_TYPE
+  , pattern GL_GEOMETRY_OUTPUT_TYPE
+  , pattern GL_GEOMETRY_SHADER
+  , pattern GL_GEOMETRY_SHADER_BIT
+  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
+  , pattern GL_GEOMETRY_VERTICES_OUT
+  , pattern GL_GUILTY_CONTEXT_RESET
+  , pattern GL_HARDLIGHT
+  , pattern GL_HSL_COLOR
+  , pattern GL_HSL_HUE
+  , pattern GL_HSL_LUMINOSITY
+  , pattern GL_HSL_SATURATION
+  , pattern GL_IMAGE_BUFFER
+  , pattern GL_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_INNOCENT_CONTEXT_RESET
+  , pattern GL_INT_IMAGE_BUFFER
+  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_INT_SAMPLER_BUFFER
+  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY
+  , pattern GL_ISOLINES
+  , pattern GL_IS_PER_PATCH
+  , pattern GL_LAST_VERTEX_CONVENTION
+  , pattern GL_LAYER_PROVOKING_VERTEX
+  , pattern GL_LIGHTEN
+  , pattern GL_LINES_ADJACENCY
+  , pattern GL_LINE_STRIP_ADJACENCY
+  , pattern GL_LOSE_CONTEXT_ON_RESET
+  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
+  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH
+  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES
+  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH
+  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
+  , pattern GL_MAX_FRAMEBUFFER_LAYERS
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS
+  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS
+  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS
+  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES
+  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS
+  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
+  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS
+  , pattern GL_MAX_LABEL_LENGTH
+  , pattern GL_MAX_PATCH_VERTICES
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
+  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
+  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
+  , pattern GL_MAX_TESS_GEN_LEVEL
+  , pattern GL_MAX_TESS_PATCH_COMPONENTS
+  , pattern GL_MAX_TEXTURE_BUFFER_SIZE
+  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
+  , pattern GL_MIN_SAMPLE_SHADING_VALUE
+  , pattern GL_MULTIPLY
+  , pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY
+  , pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE
+  , pattern GL_NO_RESET_NOTIFICATION
+  , pattern GL_OVERLAY
+  , pattern GL_PATCHES
+  , pattern GL_PATCH_VERTICES
+  , pattern GL_PRIMITIVES_GENERATED
+  , pattern GL_PRIMITIVE_BOUNDING_BOX
+  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
+  , pattern GL_PROGRAM
+  , pattern GL_PROGRAM_PIPELINE
+  , pattern GL_QUADS
+  , pattern GL_QUERY
+  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER
+  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER
+  , pattern GL_RESET_NOTIFICATION_STRATEGY
+  , pattern GL_SAMPLER
+  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_SAMPLER_BUFFER
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW
+  , pattern GL_SAMPLE_SHADING
+  , pattern GL_SCREEN
+  , pattern GL_SHADER
+  , pattern GL_SOFTLIGHT
+  , pattern GL_STACK_OVERFLOW
+  , pattern GL_STACK_UNDERFLOW
+  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES
+  , pattern GL_TESS_CONTROL_SHADER
+  , pattern GL_TESS_CONTROL_SHADER_BIT
+  , pattern GL_TESS_EVALUATION_SHADER
+  , pattern GL_TESS_EVALUATION_SHADER_BIT
+  , pattern GL_TESS_GEN_MODE
+  , pattern GL_TESS_GEN_POINT_MODE
+  , pattern GL_TESS_GEN_SPACING
+  , pattern GL_TESS_GEN_VERTEX_ORDER
+  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_BINDING_BUFFER
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
+  , pattern GL_TEXTURE_BORDER_COLOR
+  , pattern GL_TEXTURE_BUFFER
+  , pattern GL_TEXTURE_BUFFER_BINDING
+  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING
+  , pattern GL_TEXTURE_BUFFER_OFFSET
+  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_TEXTURE_BUFFER_SIZE
+  , pattern GL_TEXTURE_CUBE_MAP_ARRAY
+  , pattern GL_TRIANGLES_ADJACENCY
+  , pattern GL_TRIANGLE_STRIP_ADJACENCY
+  , pattern GL_UNDEFINED_VERTEX
+  , pattern GL_UNKNOWN_CONTEXT_RESET
+  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
+  , pattern GL_VERTEX_ARRAY
+) where
+
+import Control.Monad.IO.Class
+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
+
+import Graphics.GL.Embedded31
+
+-- | Usage: @'glBlendBarrier'@
+
+
+glBlendBarrier :: MonadIO m => m ()
+glBlendBarrier = ffiIOV glBlendBarrierFunPtr
+
+glBlendBarrierFunPtr :: FunPtr (IO ())
+glBlendBarrierFunPtr = unsafePerformIO (getProcAddress "glBlendBarrier")
+
+{-# NOINLINE glBlendBarrierFunPtr #-}
+
+-- | Usage: @'glPrimitiveBoundingBox' minX minY minZ minW maxX maxY maxZ maxW@
+
+
+glPrimitiveBoundingBox :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glPrimitiveBoundingBox = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxFunPtr
+
+glPrimitiveBoundingBoxFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glPrimitiveBoundingBoxFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBox")
+
+{-# NOINLINE glPrimitiveBoundingBoxFunPtr #-}
+
+pattern GL_COLORBURN = 0x929A
+
+pattern GL_COLORDODGE = 0x9299
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10 = 0x93BB
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5 = 0x93B8
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6 = 0x93B9
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8 = 0x93BA
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10 = 0x93BC
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12 = 0x93BD
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4 = 0x93B0
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4 = 0x93B1
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5 = 0x93B2
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5 = 0x93B3
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6 = 0x93B4
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5 = 0x93B5
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6 = 0x93B6
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8 = 0x93B7
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7
+
+pattern GL_DARKEN = 0x9297
+
+pattern GL_DIFFERENCE = 0x929E
+
+pattern GL_EXCLUSION = 0x92A0
+
+pattern GL_HARDLIGHT = 0x929B
+
+pattern GL_HSL_COLOR = 0x92AF
+
+pattern GL_HSL_HUE = 0x92AD
+
+pattern GL_HSL_LUMINOSITY = 0x92B0
+
+pattern GL_HSL_SATURATION = 0x92AE
+
+pattern GL_LIGHTEN = 0x9298
+
+pattern GL_MULTIPLY = 0x9294
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY = 0x9382
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE = 0x9381
+
+pattern GL_OVERLAY = 0x9296
+
+pattern GL_PRIMITIVE_BOUNDING_BOX = 0x92BE
+
+pattern GL_SCREEN = 0x9295
+
+pattern GL_SOFTLIGHT = 0x929C
diff --git a/generated-src/Graphics/GL/EmbeddedCommon11.hs b/generated-src/Graphics/GL/EmbeddedCommon11.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/EmbeddedCommon11.hs
@@ -0,0 +1,102 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.EmbeddedCommon11 (
+  -- * Graphics.GL.EmbeddedCommon11
+    module Graphics.GL.EmbeddedLite11
+  , glAlphaFunc
+  , glClearColor
+  , glClearDepthf
+  , glClipPlanef
+  , glColor4f
+  , glDepthRangef
+  , glFogf
+  , glFogfv
+  , glFrustumf
+  , glGetClipPlanef
+  , glGetFloatv
+  , glGetLightfv
+  , glGetMaterialfv
+  , glGetTexEnvfv
+  , glGetTexParameterfv
+  , glLightModelf
+  , glLightModelfv
+  , glLightf
+  , glLightfv
+  , glLineWidth
+  , glLoadMatrixf
+  , glMaterialf
+  , glMaterialfv
+  , glMultMatrixf
+  , glMultiTexCoord4f
+  , glNormal3f
+  , glOrthof
+  , glPointParameterf
+  , glPointParameterfv
+  , glPointSize
+  , glPolygonOffset
+  , glRotatef
+  , glScalef
+  , glTexEnvf
+  , glTexEnvfv
+  , glTexParameterf
+  , glTexParameterfv
+  , glTranslatef
+) where
+
+import Control.Monad.IO.Class
+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
+
+import Graphics.GL.EmbeddedLite11
+
+-- | Usage: @'glClipPlanef' p eqn@
+--
+-- The length of @eqn@ should be @4@.
+
+
+glClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glClipPlanef = ffienumPtrfloatIOV glClipPlanefFunPtr
+
+glClipPlanefFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glClipPlanefFunPtr = unsafePerformIO (getProcAddress "glClipPlanef")
+
+{-# NOINLINE glClipPlanefFunPtr #-}
+
+-- | Usage: @'glFrustumf' l r b t n f@
+
+
+glFrustumf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glFrustumf = ffifloatfloatfloatfloatfloatfloatIOV glFrustumfFunPtr
+
+glFrustumfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glFrustumfFunPtr = unsafePerformIO (getProcAddress "glFrustumf")
+
+{-# NOINLINE glFrustumfFunPtr #-}
+
+-- | Usage: @'glGetClipPlanef' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlanef :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetClipPlanef = ffienumPtrfloatIOV glGetClipPlanefFunPtr
+
+glGetClipPlanefFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetClipPlanefFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanef")
+
+{-# NOINLINE glGetClipPlanefFunPtr #-}
+
+-- | Usage: @'glOrthof' l r b t n f@
+
+
+glOrthof :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glOrthof = ffifloatfloatfloatfloatfloatfloatIOV glOrthofFunPtr
+
+glOrthofFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glOrthofFunPtr = unsafePerformIO (getProcAddress "glOrthof")
+
+{-# NOINLINE glOrthofFunPtr #-}
diff --git a/generated-src/Graphics/GL/EmbeddedLite11.hs b/generated-src/Graphics/GL/EmbeddedLite11.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/EmbeddedLite11.hs
@@ -0,0 +1,917 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.EmbeddedLite11 (
+  -- * Graphics.GL.EmbeddedLite11
+    glActiveTexture
+  , glAlphaFuncx
+  , glBindBuffer
+  , glBindTexture
+  , glBlendFunc
+  , glBufferData
+  , glBufferSubData
+  , glClear
+  , glClearColorx
+  , glClearDepthx
+  , glClearStencil
+  , glClientActiveTexture
+  , glClipPlanex
+  , glColor4ub
+  , glColor4x
+  , glColorMask
+  , glColorPointer
+  , glCompressedTexImage2D
+  , glCompressedTexSubImage2D
+  , glCopyTexImage2D
+  , glCopyTexSubImage2D
+  , glCullFace
+  , glDeleteBuffers
+  , glDeleteTextures
+  , glDepthFunc
+  , glDepthMask
+  , glDepthRangex
+  , glDisable
+  , glDisableClientState
+  , glDrawArrays
+  , glDrawElements
+  , glEnable
+  , glEnableClientState
+  , glFinish
+  , glFlush
+  , glFogx
+  , glFogxv
+  , glFrontFace
+  , glFrustumx
+  , glGenBuffers
+  , glGenTextures
+  , glGetBooleanv
+  , glGetBufferParameteriv
+  , glGetClipPlanex
+  , glGetError
+  , glGetFixedv
+  , glGetIntegerv
+  , glGetLightxv
+  , glGetMaterialxv
+  , glGetPointerv
+  , glGetString
+  , glGetTexEnviv
+  , glGetTexEnvxv
+  , glGetTexParameteriv
+  , glGetTexParameterxv
+  , glHint
+  , glIsBuffer
+  , glIsEnabled
+  , glIsTexture
+  , glLightModelx
+  , glLightModelxv
+  , glLightx
+  , glLightxv
+  , glLineWidthx
+  , glLoadIdentity
+  , glLoadMatrixx
+  , glLogicOp
+  , glMaterialx
+  , glMaterialxv
+  , glMatrixMode
+  , glMultMatrixx
+  , glMultiTexCoord4x
+  , glNormal3x
+  , glNormalPointer
+  , glOrthox
+  , glPixelStorei
+  , glPointParameterx
+  , glPointParameterxv
+  , glPointSizex
+  , glPolygonOffsetx
+  , glPopMatrix
+  , glPushMatrix
+  , glReadPixels
+  , glRotatex
+  , glSampleCoverage
+  , glSampleCoveragex
+  , glScalex
+  , glScissor
+  , glShadeModel
+  , glStencilFunc
+  , glStencilMask
+  , glStencilOp
+  , glTexCoordPointer
+  , glTexEnvi
+  , glTexEnviv
+  , glTexEnvx
+  , glTexEnvxv
+  , glTexImage2D
+  , glTexParameteri
+  , glTexParameteriv
+  , glTexParameterx
+  , glTexParameterxv
+  , glTexSubImage2D
+  , glTranslatex
+  , glVertexPointer
+  , glViewport
+  , pattern GL_ACTIVE_TEXTURE
+  , pattern GL_ADD
+  , pattern GL_ADD_SIGNED
+  , pattern GL_ALIASED_LINE_WIDTH_RANGE
+  , pattern GL_ALIASED_POINT_SIZE_RANGE
+  , pattern GL_ALPHA
+  , pattern GL_ALPHA_BITS
+  , pattern GL_ALPHA_SCALE
+  , pattern GL_ALPHA_TEST
+  , pattern GL_ALPHA_TEST_FUNC
+  , pattern GL_ALPHA_TEST_REF
+  , pattern GL_ALWAYS
+  , pattern GL_AMBIENT
+  , pattern GL_AMBIENT_AND_DIFFUSE
+  , pattern GL_AND
+  , pattern GL_AND_INVERTED
+  , pattern GL_AND_REVERSE
+  , pattern GL_ARRAY_BUFFER
+  , pattern GL_ARRAY_BUFFER_BINDING
+  , pattern GL_BACK
+  , pattern GL_BLEND
+  , pattern GL_BLEND_DST
+  , pattern GL_BLEND_SRC
+  , pattern GL_BLUE_BITS
+  , pattern GL_BUFFER_SIZE
+  , pattern GL_BUFFER_USAGE
+  , pattern GL_BYTE
+  , pattern GL_CCW
+  , pattern GL_CLAMP_TO_EDGE
+  , pattern GL_CLEAR
+  , pattern GL_CLIENT_ACTIVE_TEXTURE
+  , pattern GL_CLIP_PLANE0
+  , pattern GL_CLIP_PLANE1
+  , pattern GL_CLIP_PLANE2
+  , pattern GL_CLIP_PLANE3
+  , pattern GL_CLIP_PLANE4
+  , pattern GL_CLIP_PLANE5
+  , pattern GL_COLOR_ARRAY
+  , pattern GL_COLOR_ARRAY_BUFFER_BINDING
+  , pattern GL_COLOR_ARRAY_POINTER
+  , pattern GL_COLOR_ARRAY_SIZE
+  , pattern GL_COLOR_ARRAY_STRIDE
+  , pattern GL_COLOR_ARRAY_TYPE
+  , pattern GL_COLOR_BUFFER_BIT
+  , pattern GL_COLOR_CLEAR_VALUE
+  , pattern GL_COLOR_LOGIC_OP
+  , pattern GL_COLOR_MATERIAL
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_COMBINE
+  , pattern GL_COMBINE_ALPHA
+  , pattern GL_COMBINE_RGB
+  , pattern GL_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_CONSTANT
+  , pattern GL_CONSTANT_ATTENUATION
+  , pattern GL_COPY
+  , pattern GL_COPY_INVERTED
+  , pattern GL_CULL_FACE
+  , pattern GL_CULL_FACE_MODE
+  , pattern GL_CURRENT_COLOR
+  , pattern GL_CURRENT_NORMAL
+  , pattern GL_CURRENT_TEXTURE_COORDS
+  , pattern GL_CW
+  , pattern GL_DECAL
+  , pattern GL_DECR
+  , pattern GL_DEPTH_BITS
+  , pattern GL_DEPTH_BUFFER_BIT
+  , pattern GL_DEPTH_CLEAR_VALUE
+  , pattern GL_DEPTH_FUNC
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_DEPTH_TEST
+  , pattern GL_DEPTH_WRITEMASK
+  , pattern GL_DIFFUSE
+  , pattern GL_DITHER
+  , pattern GL_DONT_CARE
+  , pattern GL_DOT3_RGB
+  , pattern GL_DOT3_RGBA
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_DYNAMIC_DRAW
+  , pattern GL_ELEMENT_ARRAY_BUFFER
+  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
+  , pattern GL_EMISSION
+  , pattern GL_EQUAL
+  , pattern GL_EQUIV
+  , pattern GL_EXP
+  , pattern GL_EXP2
+  , pattern GL_EXTENSIONS
+  , pattern GL_FALSE
+  , pattern GL_FASTEST
+  , pattern GL_FIXED
+  , pattern GL_FLAT
+  , pattern GL_FLOAT
+  , pattern GL_FOG
+  , pattern GL_FOG_COLOR
+  , pattern GL_FOG_DENSITY
+  , pattern GL_FOG_END
+  , pattern GL_FOG_HINT
+  , pattern GL_FOG_MODE
+  , pattern GL_FOG_START
+  , pattern GL_FRONT
+  , pattern GL_FRONT_AND_BACK
+  , pattern GL_FRONT_FACE
+  , pattern GL_GENERATE_MIPMAP
+  , pattern GL_GENERATE_MIPMAP_HINT
+  , pattern GL_GEQUAL
+  , pattern GL_GREATER
+  , pattern GL_GREEN_BITS
+  , pattern GL_INCR
+  , pattern GL_INTERPOLATE
+  , pattern GL_INVALID_ENUM
+  , pattern GL_INVALID_OPERATION
+  , pattern GL_INVALID_VALUE
+  , pattern GL_INVERT
+  , pattern GL_KEEP
+  , pattern GL_LEQUAL
+  , pattern GL_LESS
+  , pattern GL_LIGHT0
+  , pattern GL_LIGHT1
+  , pattern GL_LIGHT2
+  , pattern GL_LIGHT3
+  , pattern GL_LIGHT4
+  , pattern GL_LIGHT5
+  , pattern GL_LIGHT6
+  , pattern GL_LIGHT7
+  , pattern GL_LIGHTING
+  , pattern GL_LIGHT_MODEL_AMBIENT
+  , pattern GL_LIGHT_MODEL_TWO_SIDE
+  , pattern GL_LINEAR
+  , pattern GL_LINEAR_ATTENUATION
+  , pattern GL_LINEAR_MIPMAP_LINEAR
+  , pattern GL_LINEAR_MIPMAP_NEAREST
+  , pattern GL_LINES
+  , pattern GL_LINE_LOOP
+  , pattern GL_LINE_SMOOTH
+  , pattern GL_LINE_SMOOTH_HINT
+  , pattern GL_LINE_STRIP
+  , pattern GL_LINE_WIDTH
+  , pattern GL_LOGIC_OP_MODE
+  , pattern GL_LUMINANCE
+  , pattern GL_LUMINANCE_ALPHA
+  , pattern GL_MATRIX_MODE
+  , pattern GL_MAX_CLIP_PLANES
+  , pattern GL_MAX_LIGHTS
+  , pattern GL_MAX_MODELVIEW_STACK_DEPTH
+  , pattern GL_MAX_PROJECTION_STACK_DEPTH
+  , pattern GL_MAX_TEXTURE_SIZE
+  , pattern GL_MAX_TEXTURE_STACK_DEPTH
+  , pattern GL_MAX_TEXTURE_UNITS
+  , pattern GL_MAX_VIEWPORT_DIMS
+  , pattern GL_MODELVIEW
+  , pattern GL_MODELVIEW_MATRIX
+  , pattern GL_MODELVIEW_STACK_DEPTH
+  , pattern GL_MODULATE
+  , pattern GL_MULTISAMPLE
+  , pattern GL_NAND
+  , pattern GL_NEAREST
+  , pattern GL_NEAREST_MIPMAP_LINEAR
+  , pattern GL_NEAREST_MIPMAP_NEAREST
+  , pattern GL_NEVER
+  , pattern GL_NICEST
+  , pattern GL_NOOP
+  , pattern GL_NOR
+  , pattern GL_NORMALIZE
+  , pattern GL_NORMAL_ARRAY
+  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING
+  , pattern GL_NORMAL_ARRAY_POINTER
+  , pattern GL_NORMAL_ARRAY_STRIDE
+  , pattern GL_NORMAL_ARRAY_TYPE
+  , pattern GL_NOTEQUAL
+  , pattern GL_NO_ERROR
+  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_OPERAND0_ALPHA
+  , pattern GL_OPERAND0_RGB
+  , pattern GL_OPERAND1_ALPHA
+  , pattern GL_OPERAND1_RGB
+  , pattern GL_OPERAND2_ALPHA
+  , pattern GL_OPERAND2_RGB
+  , pattern GL_OR
+  , pattern GL_OR_INVERTED
+  , pattern GL_OR_REVERSE
+  , pattern GL_OUT_OF_MEMORY
+  , pattern GL_PACK_ALIGNMENT
+  , pattern GL_PERSPECTIVE_CORRECTION_HINT
+  , pattern GL_POINTS
+  , pattern GL_POINT_DISTANCE_ATTENUATION
+  , pattern GL_POINT_FADE_THRESHOLD_SIZE
+  , pattern GL_POINT_SIZE
+  , pattern GL_POINT_SIZE_MAX
+  , pattern GL_POINT_SIZE_MIN
+  , pattern GL_POINT_SMOOTH
+  , pattern GL_POINT_SMOOTH_HINT
+  , pattern GL_POLYGON_OFFSET_FACTOR
+  , pattern GL_POLYGON_OFFSET_FILL
+  , pattern GL_POLYGON_OFFSET_UNITS
+  , pattern GL_POSITION
+  , pattern GL_PREVIOUS
+  , pattern GL_PRIMARY_COLOR
+  , pattern GL_PROJECTION
+  , pattern GL_PROJECTION_MATRIX
+  , pattern GL_PROJECTION_STACK_DEPTH
+  , pattern GL_QUADRATIC_ATTENUATION
+  , pattern GL_RED_BITS
+  , pattern GL_RENDERER
+  , pattern GL_REPEAT
+  , pattern GL_REPLACE
+  , pattern GL_RESCALE_NORMAL
+  , pattern GL_RGB
+  , pattern GL_RGBA
+  , pattern GL_RGB_SCALE
+  , pattern GL_SAMPLES
+  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
+  , pattern GL_SAMPLE_ALPHA_TO_ONE
+  , pattern GL_SAMPLE_BUFFERS
+  , pattern GL_SAMPLE_COVERAGE
+  , pattern GL_SAMPLE_COVERAGE_INVERT
+  , pattern GL_SAMPLE_COVERAGE_VALUE
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_SET
+  , pattern GL_SHADE_MODEL
+  , pattern GL_SHININESS
+  , pattern GL_SHORT
+  , pattern GL_SMOOTH
+  , pattern GL_SMOOTH_LINE_WIDTH_RANGE
+  , pattern GL_SMOOTH_POINT_SIZE_RANGE
+  , pattern GL_SPECULAR
+  , pattern GL_SPOT_CUTOFF
+  , pattern GL_SPOT_DIRECTION
+  , pattern GL_SPOT_EXPONENT
+  , pattern GL_SRC0_ALPHA
+  , pattern GL_SRC0_RGB
+  , pattern GL_SRC1_ALPHA
+  , pattern GL_SRC1_RGB
+  , pattern GL_SRC2_ALPHA
+  , pattern GL_SRC2_RGB
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_STACK_OVERFLOW
+  , pattern GL_STACK_UNDERFLOW
+  , pattern GL_STATIC_DRAW
+  , pattern GL_STENCIL_BITS
+  , pattern GL_STENCIL_BUFFER_BIT
+  , pattern GL_STENCIL_CLEAR_VALUE
+  , pattern GL_STENCIL_FAIL
+  , pattern GL_STENCIL_FUNC
+  , pattern GL_STENCIL_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_REF
+  , pattern GL_STENCIL_TEST
+  , pattern GL_STENCIL_VALUE_MASK
+  , pattern GL_STENCIL_WRITEMASK
+  , pattern GL_SUBPIXEL_BITS
+  , pattern GL_SUBTRACT
+  , pattern GL_TEXTURE
+  , pattern GL_TEXTURE0
+  , pattern GL_TEXTURE1
+  , pattern GL_TEXTURE10
+  , pattern GL_TEXTURE11
+  , pattern GL_TEXTURE12
+  , pattern GL_TEXTURE13
+  , pattern GL_TEXTURE14
+  , pattern GL_TEXTURE15
+  , pattern GL_TEXTURE16
+  , pattern GL_TEXTURE17
+  , pattern GL_TEXTURE18
+  , pattern GL_TEXTURE19
+  , pattern GL_TEXTURE2
+  , pattern GL_TEXTURE20
+  , pattern GL_TEXTURE21
+  , pattern GL_TEXTURE22
+  , pattern GL_TEXTURE23
+  , pattern GL_TEXTURE24
+  , pattern GL_TEXTURE25
+  , pattern GL_TEXTURE26
+  , pattern GL_TEXTURE27
+  , pattern GL_TEXTURE28
+  , pattern GL_TEXTURE29
+  , pattern GL_TEXTURE3
+  , pattern GL_TEXTURE30
+  , pattern GL_TEXTURE31
+  , pattern GL_TEXTURE4
+  , pattern GL_TEXTURE5
+  , pattern GL_TEXTURE6
+  , pattern GL_TEXTURE7
+  , pattern GL_TEXTURE8
+  , pattern GL_TEXTURE9
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_BINDING_2D
+  , pattern GL_TEXTURE_COORD_ARRAY
+  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
+  , pattern GL_TEXTURE_COORD_ARRAY_POINTER
+  , pattern GL_TEXTURE_COORD_ARRAY_SIZE
+  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE
+  , pattern GL_TEXTURE_COORD_ARRAY_TYPE
+  , pattern GL_TEXTURE_ENV
+  , pattern GL_TEXTURE_ENV_COLOR
+  , pattern GL_TEXTURE_ENV_MODE
+  , pattern GL_TEXTURE_MAG_FILTER
+  , pattern GL_TEXTURE_MATRIX
+  , pattern GL_TEXTURE_MIN_FILTER
+  , pattern GL_TEXTURE_STACK_DEPTH
+  , pattern GL_TEXTURE_WRAP_S
+  , pattern GL_TEXTURE_WRAP_T
+  , pattern GL_TRIANGLES
+  , pattern GL_TRIANGLE_FAN
+  , pattern GL_TRIANGLE_STRIP
+  , pattern GL_TRUE
+  , pattern GL_UNPACK_ALIGNMENT
+  , pattern GL_UNSIGNED_BYTE
+  , pattern GL_UNSIGNED_SHORT
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4
+  , pattern GL_UNSIGNED_SHORT_5_5_5_1
+  , pattern GL_UNSIGNED_SHORT_5_6_5
+  , pattern GL_VENDOR
+  , pattern GL_VERSION
+  , pattern GL_VERSION_ES_CL_1_0
+  , pattern GL_VERSION_ES_CL_1_1
+  , pattern GL_VERSION_ES_CM_1_1
+  , pattern GL_VERTEX_ARRAY
+  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ARRAY_POINTER
+  , pattern GL_VERTEX_ARRAY_SIZE
+  , pattern GL_VERTEX_ARRAY_STRIDE
+  , pattern GL_VERTEX_ARRAY_TYPE
+  , pattern GL_VIEWPORT
+  , pattern GL_XOR
+  , pattern GL_ZERO
+) where
+
+import Control.Monad.IO.Class
+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
+
+-- | Usage: @'glAlphaFuncx' func ref@
+
+
+glAlphaFuncx :: MonadIO m => GLenum -> GLfixed -> m ()
+glAlphaFuncx = ffienumfixedIOV glAlphaFuncxFunPtr
+
+glAlphaFuncxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glAlphaFuncxFunPtr = unsafePerformIO (getProcAddress "glAlphaFuncx")
+
+{-# NOINLINE glAlphaFuncxFunPtr #-}
+
+-- | Usage: @'glClearColorx' red green blue alpha@
+
+
+glClearColorx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glClearColorx = ffifixedfixedfixedfixedIOV glClearColorxFunPtr
+
+glClearColorxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glClearColorxFunPtr = unsafePerformIO (getProcAddress "glClearColorx")
+
+{-# NOINLINE glClearColorxFunPtr #-}
+
+-- | Usage: @'glClearDepthx' depth@
+
+
+glClearDepthx :: MonadIO m => GLfixed -> m ()
+glClearDepthx = ffifixedIOV glClearDepthxFunPtr
+
+glClearDepthxFunPtr :: FunPtr (GLfixed -> IO ())
+glClearDepthxFunPtr = unsafePerformIO (getProcAddress "glClearDepthx")
+
+{-# NOINLINE glClearDepthxFunPtr #-}
+
+-- | Usage: @'glClipPlanex' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glClipPlanex = ffienumPtrfixedIOV glClipPlanexFunPtr
+
+glClipPlanexFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glClipPlanexFunPtr = unsafePerformIO (getProcAddress "glClipPlanex")
+
+{-# NOINLINE glClipPlanexFunPtr #-}
+
+-- | Usage: @'glColor4x' red green blue alpha@
+
+
+glColor4x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glColor4x = ffifixedfixedfixedfixedIOV glColor4xFunPtr
+
+glColor4xFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glColor4xFunPtr = unsafePerformIO (getProcAddress "glColor4x")
+
+{-# NOINLINE glColor4xFunPtr #-}
+
+-- | Usage: @'glDepthRangex' n f@
+
+
+glDepthRangex :: MonadIO m => GLfixed -> GLfixed -> m ()
+glDepthRangex = ffifixedfixedIOV glDepthRangexFunPtr
+
+glDepthRangexFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glDepthRangexFunPtr = unsafePerformIO (getProcAddress "glDepthRangex")
+
+{-# NOINLINE glDepthRangexFunPtr #-}
+
+-- | Usage: @'glFogx' pname param@
+
+
+glFogx :: MonadIO m => GLenum -> GLfixed -> m ()
+glFogx = ffienumfixedIOV glFogxFunPtr
+
+glFogxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glFogxFunPtr = unsafePerformIO (getProcAddress "glFogx")
+
+{-# NOINLINE glFogxFunPtr #-}
+
+-- | Usage: @'glFogxv' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glFogxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glFogxv = ffienumPtrfixedIOV glFogxvFunPtr
+
+glFogxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glFogxvFunPtr = unsafePerformIO (getProcAddress "glFogxv")
+
+{-# NOINLINE glFogxvFunPtr #-}
+
+-- | Usage: @'glFrustumx' l r b t n f@
+
+
+glFrustumx :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glFrustumx = ffifixedfixedfixedfixedfixedfixedIOV glFrustumxFunPtr
+
+glFrustumxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glFrustumxFunPtr = unsafePerformIO (getProcAddress "glFrustumx")
+
+{-# NOINLINE glFrustumxFunPtr #-}
+
+-- | Usage: @'glGetClipPlanex' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlanex :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glGetClipPlanex = ffienumPtrfixedIOV glGetClipPlanexFunPtr
+
+glGetClipPlanexFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glGetClipPlanexFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanex")
+
+{-# NOINLINE glGetClipPlanexFunPtr #-}
+
+-- | Usage: @'glGetFixedv' pname params@
+
+
+glGetFixedv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glGetFixedv = ffienumPtrfixedIOV glGetFixedvFunPtr
+
+glGetFixedvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glGetFixedvFunPtr = unsafePerformIO (getProcAddress "glGetFixedv")
+
+{-# NOINLINE glGetFixedvFunPtr #-}
+
+-- | Usage: @'glGetLightxv' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetLightxv = ffienumenumPtrfixedIOV glGetLightxvFunPtr
+
+glGetLightxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetLightxvFunPtr = unsafePerformIO (getProcAddress "glGetLightxv")
+
+{-# NOINLINE glGetLightxvFunPtr #-}
+
+-- | Usage: @'glGetMaterialxv' face pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetMaterialxv = ffienumenumPtrfixedIOV glGetMaterialxvFunPtr
+
+glGetMaterialxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetMaterialxvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialxv")
+
+{-# NOINLINE glGetMaterialxvFunPtr #-}
+
+-- | Usage: @'glGetTexEnvxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexEnvxv = ffienumenumPtrfixedIOV glGetTexEnvxvFunPtr
+
+glGetTexEnvxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexEnvxvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvxv")
+
+{-# NOINLINE glGetTexEnvxvFunPtr #-}
+
+-- | Usage: @'glGetTexParameterxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexParameterxv = ffienumenumPtrfixedIOV glGetTexParameterxvFunPtr
+
+glGetTexParameterxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexParameterxvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterxv")
+
+{-# NOINLINE glGetTexParameterxvFunPtr #-}
+
+-- | Usage: @'glLightModelx' pname param@
+
+
+glLightModelx :: MonadIO m => GLenum -> GLfixed -> m ()
+glLightModelx = ffienumfixedIOV glLightModelxFunPtr
+
+glLightModelxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glLightModelxFunPtr = unsafePerformIO (getProcAddress "glLightModelx")
+
+{-# NOINLINE glLightModelxFunPtr #-}
+
+-- | Usage: @'glLightModelxv' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glLightModelxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glLightModelxv = ffienumPtrfixedIOV glLightModelxvFunPtr
+
+glLightModelxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glLightModelxvFunPtr = unsafePerformIO (getProcAddress "glLightModelxv")
+
+{-# NOINLINE glLightModelxvFunPtr #-}
+
+-- | Usage: @'glLightx' light pname param@
+
+
+glLightx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glLightx = ffienumenumfixedIOV glLightxFunPtr
+
+glLightxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glLightxFunPtr = unsafePerformIO (getProcAddress "glLightx")
+
+{-# NOINLINE glLightxFunPtr #-}
+
+-- | Usage: @'glLightxv' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glLightxv = ffienumenumPtrfixedIOV glLightxvFunPtr
+
+glLightxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glLightxvFunPtr = unsafePerformIO (getProcAddress "glLightxv")
+
+{-# NOINLINE glLightxvFunPtr #-}
+
+-- | Usage: @'glLineWidthx' width@
+
+
+glLineWidthx :: MonadIO m => GLfixed -> m ()
+glLineWidthx = ffifixedIOV glLineWidthxFunPtr
+
+glLineWidthxFunPtr :: FunPtr (GLfixed -> IO ())
+glLineWidthxFunPtr = unsafePerformIO (getProcAddress "glLineWidthx")
+
+{-# NOINLINE glLineWidthxFunPtr #-}
+
+-- | Usage: @'glLoadMatrixx' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadMatrixx :: MonadIO m => Ptr GLfixed -> m ()
+glLoadMatrixx = ffiPtrfixedIOV glLoadMatrixxFunPtr
+
+glLoadMatrixxFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glLoadMatrixxFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixx")
+
+{-# NOINLINE glLoadMatrixxFunPtr #-}
+
+-- | Usage: @'glMaterialx' face pname param@
+
+
+glMaterialx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glMaterialx = ffienumenumfixedIOV glMaterialxFunPtr
+
+glMaterialxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glMaterialxFunPtr = unsafePerformIO (getProcAddress "glMaterialx")
+
+{-# NOINLINE glMaterialxFunPtr #-}
+
+-- | Usage: @'glMaterialxv' face pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glMaterialxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glMaterialxv = ffienumenumPtrfixedIOV glMaterialxvFunPtr
+
+glMaterialxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glMaterialxvFunPtr = unsafePerformIO (getProcAddress "glMaterialxv")
+
+{-# NOINLINE glMaterialxvFunPtr #-}
+
+-- | Usage: @'glMultMatrixx' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultMatrixx :: MonadIO m => Ptr GLfixed -> m ()
+glMultMatrixx = ffiPtrfixedIOV glMultMatrixxFunPtr
+
+glMultMatrixxFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glMultMatrixxFunPtr = unsafePerformIO (getProcAddress "glMultMatrixx")
+
+{-# NOINLINE glMultMatrixxFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4x' texture s t r q@
+
+
+glMultiTexCoord4x :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glMultiTexCoord4x = ffienumfixedfixedfixedfixedIOV glMultiTexCoord4xFunPtr
+
+glMultiTexCoord4xFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glMultiTexCoord4xFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4x")
+
+{-# NOINLINE glMultiTexCoord4xFunPtr #-}
+
+-- | Usage: @'glNormal3x' nx ny nz@
+
+
+glNormal3x :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glNormal3x = ffifixedfixedfixedIOV glNormal3xFunPtr
+
+glNormal3xFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glNormal3xFunPtr = unsafePerformIO (getProcAddress "glNormal3x")
+
+{-# NOINLINE glNormal3xFunPtr #-}
+
+-- | Usage: @'glOrthox' l r b t n f@
+
+
+glOrthox :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glOrthox = ffifixedfixedfixedfixedfixedfixedIOV glOrthoxFunPtr
+
+glOrthoxFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glOrthoxFunPtr = unsafePerformIO (getProcAddress "glOrthox")
+
+{-# NOINLINE glOrthoxFunPtr #-}
+
+-- | Usage: @'glPointParameterx' pname param@
+
+
+glPointParameterx :: MonadIO m => GLenum -> GLfixed -> m ()
+glPointParameterx = ffienumfixedIOV glPointParameterxFunPtr
+
+glPointParameterxFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glPointParameterxFunPtr = unsafePerformIO (getProcAddress "glPointParameterx")
+
+{-# NOINLINE glPointParameterxFunPtr #-}
+
+-- | Usage: @'glPointParameterxv' pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameterxv :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glPointParameterxv = ffienumPtrfixedIOV glPointParameterxvFunPtr
+
+glPointParameterxvFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glPointParameterxvFunPtr = unsafePerformIO (getProcAddress "glPointParameterxv")
+
+{-# NOINLINE glPointParameterxvFunPtr #-}
+
+-- | Usage: @'glPointSizex' size@
+
+
+glPointSizex :: MonadIO m => GLfixed -> m ()
+glPointSizex = ffifixedIOV glPointSizexFunPtr
+
+glPointSizexFunPtr :: FunPtr (GLfixed -> IO ())
+glPointSizexFunPtr = unsafePerformIO (getProcAddress "glPointSizex")
+
+{-# NOINLINE glPointSizexFunPtr #-}
+
+-- | Usage: @'glPolygonOffsetx' factor units@
+
+
+glPolygonOffsetx :: MonadIO m => GLfixed -> GLfixed -> m ()
+glPolygonOffsetx = ffifixedfixedIOV glPolygonOffsetxFunPtr
+
+glPolygonOffsetxFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glPolygonOffsetxFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetx")
+
+{-# NOINLINE glPolygonOffsetxFunPtr #-}
+
+-- | Usage: @'glRotatex' angle x y z@
+
+
+glRotatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glRotatex = ffifixedfixedfixedfixedIOV glRotatexFunPtr
+
+glRotatexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glRotatexFunPtr = unsafePerformIO (getProcAddress "glRotatex")
+
+{-# NOINLINE glRotatexFunPtr #-}
+
+-- | Usage: @'glSampleCoveragex' value invert@
+
+
+glSampleCoveragex :: MonadIO m => GLclampx -> GLboolean -> m ()
+glSampleCoveragex = fficlampxbooleanIOV glSampleCoveragexFunPtr
+
+glSampleCoveragexFunPtr :: FunPtr (GLclampx -> GLboolean -> IO ())
+glSampleCoveragexFunPtr = unsafePerformIO (getProcAddress "glSampleCoveragex")
+
+{-# NOINLINE glSampleCoveragexFunPtr #-}
+
+-- | Usage: @'glScalex' x y z@
+
+
+glScalex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glScalex = ffifixedfixedfixedIOV glScalexFunPtr
+
+glScalexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glScalexFunPtr = unsafePerformIO (getProcAddress "glScalex")
+
+{-# NOINLINE glScalexFunPtr #-}
+
+-- | Usage: @'glTexEnvx' target pname param@
+
+
+glTexEnvx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexEnvx = ffienumenumfixedIOV glTexEnvxFunPtr
+
+glTexEnvxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexEnvxFunPtr = unsafePerformIO (getProcAddress "glTexEnvx")
+
+{-# NOINLINE glTexEnvxFunPtr #-}
+
+-- | Usage: @'glTexEnvxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexEnvxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexEnvxv = ffienumenumPtrfixedIOV glTexEnvxvFunPtr
+
+glTexEnvxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexEnvxvFunPtr = unsafePerformIO (getProcAddress "glTexEnvxv")
+
+{-# NOINLINE glTexEnvxvFunPtr #-}
+
+-- | Usage: @'glTexParameterx' target pname param@
+
+
+glTexParameterx :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexParameterx = ffienumenumfixedIOV glTexParameterxFunPtr
+
+glTexParameterxFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexParameterxFunPtr = unsafePerformIO (getProcAddress "glTexParameterx")
+
+{-# NOINLINE glTexParameterxFunPtr #-}
+
+-- | Usage: @'glTexParameterxv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterxv :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexParameterxv = ffienumenumPtrfixedIOV glTexParameterxvFunPtr
+
+glTexParameterxvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexParameterxvFunPtr = unsafePerformIO (getProcAddress "glTexParameterxv")
+
+{-# NOINLINE glTexParameterxvFunPtr #-}
+
+-- | Usage: @'glTranslatex' x y z@
+
+
+glTranslatex :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glTranslatex = ffifixedfixedfixedIOV glTranslatexFunPtr
+
+glTranslatexFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glTranslatexFunPtr = unsafePerformIO (getProcAddress "glTranslatex")
+
+{-# NOINLINE glTranslatexFunPtr #-}
+
+pattern GL_VERSION_ES_CL_1_0 = 1
+
+pattern GL_VERSION_ES_CL_1_1 = 1
+
+pattern GL_VERSION_ES_CM_1_1 = 1
diff --git a/generated-src/Graphics/GL/Ext.hs b/generated-src/Graphics/GL/Ext.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext.hs
@@ -0,0 +1,78 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext (
+  -- * Extensions
+    module Graphics.GL.Ext.ThreeDFX
+  , module Graphics.GL.Ext.AMD
+  , module Graphics.GL.Ext.ANDROID
+  , module Graphics.GL.Ext.ANGLE
+  , module Graphics.GL.Ext.APPLE
+  , module Graphics.GL.Ext.ARB
+  , module Graphics.GL.Ext.ARM
+  , module Graphics.GL.Ext.ATI
+  , module Graphics.GL.Ext.DMP
+  , module Graphics.GL.Ext.EXT
+  , module Graphics.GL.Ext.FJ
+  , module Graphics.GL.Ext.GREMEDY
+  , module Graphics.GL.Ext.HP
+  , module Graphics.GL.Ext.IBM
+  , module Graphics.GL.Ext.IMG
+  , module Graphics.GL.Ext.INGR
+  , module Graphics.GL.Ext.INTEL
+  , module Graphics.GL.Ext.KHR
+  , module Graphics.GL.Ext.MESA
+  , module Graphics.GL.Ext.MESAX
+  , module Graphics.GL.Ext.NV
+  , module Graphics.GL.Ext.NVX
+  , module Graphics.GL.Ext.OES
+  , module Graphics.GL.Ext.OML
+  , module Graphics.GL.Ext.OVR
+  , module Graphics.GL.Ext.PGI
+  , module Graphics.GL.Ext.QCOM
+  , module Graphics.GL.Ext.REND
+  , module Graphics.GL.Ext.S3
+  , module Graphics.GL.Ext.SGI
+  , module Graphics.GL.Ext.SGIS
+  , module Graphics.GL.Ext.SGIX
+  , module Graphics.GL.Ext.SUN
+  , module Graphics.GL.Ext.SUNX
+  , module Graphics.GL.Ext.VIV
+  , module Graphics.GL.Ext.WIN
+) where
+
+import Graphics.GL.Ext.ThreeDFX
+import Graphics.GL.Ext.AMD
+import Graphics.GL.Ext.ANDROID
+import Graphics.GL.Ext.ANGLE
+import Graphics.GL.Ext.APPLE
+import Graphics.GL.Ext.ARB
+import Graphics.GL.Ext.ARM
+import Graphics.GL.Ext.ATI
+import Graphics.GL.Ext.DMP
+import Graphics.GL.Ext.EXT
+import Graphics.GL.Ext.FJ
+import Graphics.GL.Ext.GREMEDY
+import Graphics.GL.Ext.HP
+import Graphics.GL.Ext.IBM
+import Graphics.GL.Ext.IMG
+import Graphics.GL.Ext.INGR
+import Graphics.GL.Ext.INTEL
+import Graphics.GL.Ext.KHR
+import Graphics.GL.Ext.MESA
+import Graphics.GL.Ext.MESAX
+import Graphics.GL.Ext.NV
+import Graphics.GL.Ext.NVX
+import Graphics.GL.Ext.OES
+import Graphics.GL.Ext.OML
+import Graphics.GL.Ext.OVR
+import Graphics.GL.Ext.PGI
+import Graphics.GL.Ext.QCOM
+import Graphics.GL.Ext.REND
+import Graphics.GL.Ext.S3
+import Graphics.GL.Ext.SGI
+import Graphics.GL.Ext.SGIS
+import Graphics.GL.Ext.SGIX
+import Graphics.GL.Ext.SUN
+import Graphics.GL.Ext.SUNX
+import Graphics.GL.Ext.VIV
+import Graphics.GL.Ext.WIN
diff --git a/generated-src/Graphics/GL/Ext/AMD.hs b/generated-src/Graphics/GL/Ext/AMD.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD.hs
@@ -0,0 +1,74 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD (
+  -- * AMD Extensions
+    module Graphics.GL.Ext.AMD.BlendMinmaxFactor
+  , module Graphics.GL.Ext.AMD.Compressed3DCTexture
+  , module Graphics.GL.Ext.AMD.CompressedATCTexture
+  , module Graphics.GL.Ext.AMD.ConservativeDepth
+  , module Graphics.GL.Ext.AMD.DebugOutput
+  , module Graphics.GL.Ext.AMD.DepthClampSeparate
+  , module Graphics.GL.Ext.AMD.DrawBuffersBlend
+  , module Graphics.GL.Ext.AMD.FramebufferSamplePositions
+  , module Graphics.GL.Ext.AMD.GcnShader
+  , module Graphics.GL.Ext.AMD.GpuShaderHalfFloat
+  , module Graphics.GL.Ext.AMD.GpuShaderInt64
+  , module Graphics.GL.Ext.AMD.InterleavedElements
+  , module Graphics.GL.Ext.AMD.MultiDrawIndirect
+  , module Graphics.GL.Ext.AMD.NameGenDelete
+  , module Graphics.GL.Ext.AMD.OcclusionQueryEvent
+  , module Graphics.GL.Ext.AMD.PerformanceMonitor
+  , module Graphics.GL.Ext.AMD.PinnedMemory
+  , module Graphics.GL.Ext.AMD.ProgramBinaryZ400
+  , module Graphics.GL.Ext.AMD.QueryBufferObject
+  , module Graphics.GL.Ext.AMD.SamplePositions
+  , module Graphics.GL.Ext.AMD.SeamlessCubemapPerTexture
+  , module Graphics.GL.Ext.AMD.ShaderAtomicCounterOps
+  , module Graphics.GL.Ext.AMD.ShaderBallot
+  , module Graphics.GL.Ext.AMD.ShaderExplicitVertexParameter
+  , module Graphics.GL.Ext.AMD.ShaderStencilExport
+  , module Graphics.GL.Ext.AMD.ShaderTrinaryMinmax
+  , module Graphics.GL.Ext.AMD.SparseTexture
+  , module Graphics.GL.Ext.AMD.StencilOperationExtended
+  , module Graphics.GL.Ext.AMD.TextureTexture4
+  , module Graphics.GL.Ext.AMD.TransformFeedback3LinesTriangles
+  , module Graphics.GL.Ext.AMD.TransformFeedback4
+  , module Graphics.GL.Ext.AMD.VertexShaderLayer
+  , module Graphics.GL.Ext.AMD.VertexShaderTessellator
+  , module Graphics.GL.Ext.AMD.VertexShaderViewportIndex
+) where
+
+import Graphics.GL.Ext.AMD.BlendMinmaxFactor
+import Graphics.GL.Ext.AMD.Compressed3DCTexture
+import Graphics.GL.Ext.AMD.CompressedATCTexture
+import Graphics.GL.Ext.AMD.ConservativeDepth
+import Graphics.GL.Ext.AMD.DebugOutput
+import Graphics.GL.Ext.AMD.DepthClampSeparate
+import Graphics.GL.Ext.AMD.DrawBuffersBlend
+import Graphics.GL.Ext.AMD.FramebufferSamplePositions
+import Graphics.GL.Ext.AMD.GcnShader
+import Graphics.GL.Ext.AMD.GpuShaderHalfFloat
+import Graphics.GL.Ext.AMD.GpuShaderInt64
+import Graphics.GL.Ext.AMD.InterleavedElements
+import Graphics.GL.Ext.AMD.MultiDrawIndirect
+import Graphics.GL.Ext.AMD.NameGenDelete
+import Graphics.GL.Ext.AMD.OcclusionQueryEvent
+import Graphics.GL.Ext.AMD.PerformanceMonitor
+import Graphics.GL.Ext.AMD.PinnedMemory
+import Graphics.GL.Ext.AMD.ProgramBinaryZ400
+import Graphics.GL.Ext.AMD.QueryBufferObject
+import Graphics.GL.Ext.AMD.SamplePositions
+import Graphics.GL.Ext.AMD.SeamlessCubemapPerTexture
+import Graphics.GL.Ext.AMD.ShaderAtomicCounterOps
+import Graphics.GL.Ext.AMD.ShaderBallot
+import Graphics.GL.Ext.AMD.ShaderExplicitVertexParameter
+import Graphics.GL.Ext.AMD.ShaderStencilExport
+import Graphics.GL.Ext.AMD.ShaderTrinaryMinmax
+import Graphics.GL.Ext.AMD.SparseTexture
+import Graphics.GL.Ext.AMD.StencilOperationExtended
+import Graphics.GL.Ext.AMD.TextureTexture4
+import Graphics.GL.Ext.AMD.TransformFeedback3LinesTriangles
+import Graphics.GL.Ext.AMD.TransformFeedback4
+import Graphics.GL.Ext.AMD.VertexShaderLayer
+import Graphics.GL.Ext.AMD.VertexShaderTessellator
+import Graphics.GL.Ext.AMD.VertexShaderViewportIndex
diff --git a/generated-src/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs b/generated-src/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.BlendMinmaxFactor (
+  -- * Extension Support
+    gl_AMD_blend_minmax_factor
+
+  -- * GL_AMD_blend_minmax_factor
+  , pattern GL_FACTOR_MAX_AMD
+  , pattern GL_FACTOR_MIN_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/blend_minmax_factor.txt GL_AMD_blend_minmax_factor> extension is available.
+
+gl_AMD_blend_minmax_factor :: Bool
+gl_AMD_blend_minmax_factor = member "GL_AMD_blend_minmax_factor" extensions
+{-# NOINLINE gl_AMD_blend_minmax_factor #-}
+
+pattern GL_FACTOR_MAX_AMD = 0x901D
+
+pattern GL_FACTOR_MIN_AMD = 0x901C
diff --git a/generated-src/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs b/generated-src/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.Compressed3DCTexture (
+  -- * Extension Support
+    gl_AMD_compressed_3DC_texture
+
+  -- * GL_AMD_compressed_3DC_texture
+  , pattern GL_3DC_XY_AMD
+  , pattern GL_3DC_X_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_compressed_3DC_texture.txt GL_AMD_compressed_3DC_texture> extension is available.
+
+gl_AMD_compressed_3DC_texture :: Bool
+gl_AMD_compressed_3DC_texture = member "GL_AMD_compressed_3DC_texture" extensions
+{-# NOINLINE gl_AMD_compressed_3DC_texture #-}
+
+pattern GL_3DC_XY_AMD = 0x87FA
+
+pattern GL_3DC_X_AMD = 0x87F9
diff --git a/generated-src/Graphics/GL/Ext/AMD/CompressedATCTexture.hs b/generated-src/Graphics/GL/Ext/AMD/CompressedATCTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/CompressedATCTexture.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.CompressedATCTexture (
+  -- * Extension Support
+    gl_AMD_compressed_ATC_texture
+
+  -- * GL_AMD_compressed_ATC_texture
+  , pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD
+  , pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD
+  , pattern GL_ATC_RGB_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_compressed_ATC_texture.txt GL_AMD_compressed_ATC_texture> extension is available.
+
+gl_AMD_compressed_ATC_texture :: Bool
+gl_AMD_compressed_ATC_texture = member "GL_AMD_compressed_ATC_texture" extensions
+{-# NOINLINE gl_AMD_compressed_ATC_texture #-}
+
+pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93
+
+pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE
+
+pattern GL_ATC_RGB_AMD = 0x8C92
diff --git a/generated-src/Graphics/GL/Ext/AMD/ConservativeDepth.hs b/generated-src/Graphics/GL/Ext/AMD/ConservativeDepth.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/ConservativeDepth.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.ConservativeDepth (
+  -- * Extension Support
+    gl_AMD_conservative_depth
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/conservative_depth.txt GL_AMD_conservative_depth> extension is available.
+
+gl_AMD_conservative_depth :: Bool
+gl_AMD_conservative_depth = member "GL_AMD_conservative_depth" extensions
+{-# NOINLINE gl_AMD_conservative_depth #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/DebugOutput.hs b/generated-src/Graphics/GL/Ext/AMD/DebugOutput.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/DebugOutput.hs
@@ -0,0 +1,128 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.DebugOutput (
+  -- * Extension Support
+    gl_AMD_debug_output
+
+  -- * GL_AMD_debug_output
+  , glDebugMessageCallbackAMD
+  , glDebugMessageEnableAMD
+  , glDebugMessageInsertAMD
+  , glGetDebugMessageLogAMD
+  , pattern GL_DEBUG_CATEGORY_API_ERROR_AMD
+  , pattern GL_DEBUG_CATEGORY_APPLICATION_AMD
+  , pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD
+  , pattern GL_DEBUG_CATEGORY_OTHER_AMD
+  , pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD
+  , pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD
+  , pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD
+  , pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD
+  , pattern GL_DEBUG_LOGGED_MESSAGES_AMD
+  , pattern GL_DEBUG_SEVERITY_HIGH_AMD
+  , pattern GL_DEBUG_SEVERITY_LOW_AMD
+  , pattern GL_DEBUG_SEVERITY_MEDIUM_AMD
+  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD
+  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/debug_output.txt GL_AMD_debug_output> extension is available.
+
+gl_AMD_debug_output :: Bool
+gl_AMD_debug_output = member "GL_AMD_debug_output" extensions
+{-# NOINLINE gl_AMD_debug_output #-}
+
+-- | Usage: @'glDebugMessageCallbackAMD' callback userParam@
+
+
+glDebugMessageCallbackAMD :: MonadIO m => GLDEBUGPROCAMD -> Ptr () -> m ()
+glDebugMessageCallbackAMD = ffiDEBUGPROCAMDPtrVIOV glDebugMessageCallbackAMDFunPtr
+
+glDebugMessageCallbackAMDFunPtr :: FunPtr (GLDEBUGPROCAMD -> Ptr () -> IO ())
+glDebugMessageCallbackAMDFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallbackAMD")
+
+{-# NOINLINE glDebugMessageCallbackAMDFunPtr #-}
+
+-- | Usage: @'glDebugMessageEnableAMD' category severity count ids enabled@
+--
+-- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @ids@ should be @count@.
+
+
+glDebugMessageEnableAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+glDebugMessageEnableAMD = ffienumenumsizeiPtruintbooleanIOV glDebugMessageEnableAMDFunPtr
+
+glDebugMessageEnableAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+glDebugMessageEnableAMDFunPtr = unsafePerformIO (getProcAddress "glDebugMessageEnableAMD")
+
+{-# NOINLINE glDebugMessageEnableAMDFunPtr #-}
+
+-- | Usage: @'glDebugMessageInsertAMD' category severity id length buf@
+--
+-- The length of @buf@ should be @length@.
+
+
+glDebugMessageInsertAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glDebugMessageInsertAMD = ffienumenumuintsizeiPtrcharIOV glDebugMessageInsertAMDFunPtr
+
+glDebugMessageInsertAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glDebugMessageInsertAMDFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertAMD")
+
+{-# NOINLINE glDebugMessageInsertAMDFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLogAMD' count bufsize categories severities ids lengths message@
+--
+-- The length of @categories@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @message@ should be @bufsize@.
+
+
+glGetDebugMessageLogAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+glGetDebugMessageLogAMD = ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint glGetDebugMessageLogAMDFunPtr
+
+glGetDebugMessageLogAMDFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+glGetDebugMessageLogAMDFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLogAMD")
+
+{-# NOINLINE glGetDebugMessageLogAMDFunPtr #-}
+
+pattern GL_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149
+
+pattern GL_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F
+
+pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B
+
+pattern GL_DEBUG_CATEGORY_OTHER_AMD = 0x9150
+
+pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D
+
+pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E
+
+pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C
+
+pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A
+
+pattern GL_DEBUG_LOGGED_MESSAGES_AMD = 0x9145
+
+pattern GL_DEBUG_SEVERITY_HIGH_AMD = 0x9146
+
+pattern GL_DEBUG_SEVERITY_LOW_AMD = 0x9148
+
+pattern GL_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143
diff --git a/generated-src/Graphics/GL/Ext/AMD/DepthClampSeparate.hs b/generated-src/Graphics/GL/Ext/AMD/DepthClampSeparate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/DepthClampSeparate.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.DepthClampSeparate (
+  -- * Extension Support
+    gl_AMD_depth_clamp_separate
+
+  -- * GL_AMD_depth_clamp_separate
+  , pattern GL_DEPTH_CLAMP_FAR_AMD
+  , pattern GL_DEPTH_CLAMP_NEAR_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/depth_clamp_separate.txt GL_AMD_depth_clamp_separate> extension is available.
+
+gl_AMD_depth_clamp_separate :: Bool
+gl_AMD_depth_clamp_separate = member "GL_AMD_depth_clamp_separate" extensions
+{-# NOINLINE gl_AMD_depth_clamp_separate #-}
+
+pattern GL_DEPTH_CLAMP_FAR_AMD = 0x901F
+
+pattern GL_DEPTH_CLAMP_NEAR_AMD = 0x901E
diff --git a/generated-src/Graphics/GL/Ext/AMD/DrawBuffersBlend.hs b/generated-src/Graphics/GL/Ext/AMD/DrawBuffersBlend.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/DrawBuffersBlend.hs
@@ -0,0 +1,78 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.DrawBuffersBlend (
+  -- * Extension Support
+    gl_AMD_draw_buffers_blend
+
+  -- * GL_AMD_draw_buffers_blend
+  , glBlendEquationIndexedAMD
+  , glBlendEquationSeparateIndexedAMD
+  , glBlendFuncIndexedAMD
+  , glBlendFuncSeparateIndexedAMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/draw_buffers_blend.txt GL_AMD_draw_buffers_blend> extension is available.
+
+gl_AMD_draw_buffers_blend :: Bool
+gl_AMD_draw_buffers_blend = member "GL_AMD_draw_buffers_blend" extensions
+{-# NOINLINE gl_AMD_draw_buffers_blend #-}
+
+-- | Usage: @'glBlendEquationIndexedAMD' buf mode@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
+
+
+glBlendEquationIndexedAMD :: MonadIO m => GLuint -> GLenum -> m ()
+glBlendEquationIndexedAMD = ffiuintenumIOV glBlendEquationIndexedAMDFunPtr
+
+glBlendEquationIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBlendEquationIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendEquationIndexedAMD")
+
+{-# NOINLINE glBlendEquationIndexedAMDFunPtr #-}
+
+-- | Usage: @'glBlendEquationSeparateIndexedAMD' buf modeRGB modeAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
+
+
+glBlendEquationSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendEquationSeparateIndexedAMD = ffiuintenumenumIOV glBlendEquationSeparateIndexedAMDFunPtr
+
+glBlendEquationSeparateIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendEquationSeparateIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateIndexedAMD")
+
+{-# NOINLINE glBlendEquationSeparateIndexedAMDFunPtr #-}
+
+-- | Usage: @'glBlendFuncIndexedAMD' buf src dst@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
+
+
+glBlendFuncIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendFuncIndexedAMD = ffiuintenumenumIOV glBlendFuncIndexedAMDFunPtr
+
+glBlendFuncIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendFuncIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendFuncIndexedAMD")
+
+{-# NOINLINE glBlendFuncIndexedAMDFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparateIndexedAMD' buf srcRGB dstRGB srcAlpha dstAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
+
+
+glBlendFuncSeparateIndexedAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparateIndexedAMD = ffiuintenumenumenumenumIOV glBlendFuncSeparateIndexedAMDFunPtr
+
+glBlendFuncSeparateIndexedAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateIndexedAMDFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateIndexedAMD")
+
+{-# NOINLINE glBlendFuncSeparateIndexedAMDFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs b/generated-src/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs
@@ -0,0 +1,81 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.FramebufferSamplePositions (
+  -- * Extension Support
+    gl_AMD_framebuffer_sample_positions
+
+  -- * GL_AMD_framebuffer_sample_positions
+  , glFramebufferSamplePositionsfvAMD
+  , glGetFramebufferParameterfvAMD
+  , glGetNamedFramebufferParameterfvAMD
+  , glNamedFramebufferSamplePositionsfvAMD
+  , pattern GL_ALL_PIXELS_AMD
+  , pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD
+  , pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD
+  , pattern GL_SUBSAMPLE_DISTANCE_AMD
+) 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://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_framebuffer_sample_positions.txt GL_AMD_framebuffer_sample_positions> extension is available.
+
+gl_AMD_framebuffer_sample_positions :: Bool
+gl_AMD_framebuffer_sample_positions = member "GL_AMD_framebuffer_sample_positions" extensions
+{-# NOINLINE gl_AMD_framebuffer_sample_positions #-}
+
+-- | Usage: @'glFramebufferSamplePositionsfvAMD' target numsamples pixelindex values@
+
+
+glFramebufferSamplePositionsfvAMD :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()
+glFramebufferSamplePositionsfvAMD = ffienumuintuintPtrfloatIOV glFramebufferSamplePositionsfvAMDFunPtr
+
+glFramebufferSamplePositionsfvAMDFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
+glFramebufferSamplePositionsfvAMDFunPtr = unsafePerformIO (getProcAddress "glFramebufferSamplePositionsfvAMD")
+
+{-# NOINLINE glFramebufferSamplePositionsfvAMDFunPtr #-}
+
+-- | Usage: @'glGetFramebufferParameterfvAMD' target pname numsamples pixelindex size values@
+
+
+glGetFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glGetFramebufferParameterfvAMD = ffienumenumuintuintsizeiPtrfloatIOV glGetFramebufferParameterfvAMDFunPtr
+
+glGetFramebufferParameterfvAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetFramebufferParameterfvAMDFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameterfvAMD")
+
+{-# NOINLINE glGetFramebufferParameterfvAMDFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferParameterfvAMD' framebuffer pname numsamples pixelindex size values@
+
+
+glGetNamedFramebufferParameterfvAMD :: MonadIO m => GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glGetNamedFramebufferParameterfvAMD = ffienumenumuintuintsizeiPtrfloatIOV glGetNamedFramebufferParameterfvAMDFunPtr
+
+glGetNamedFramebufferParameterfvAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetNamedFramebufferParameterfvAMDFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameterfvAMD")
+
+{-# NOINLINE glGetNamedFramebufferParameterfvAMDFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferSamplePositionsfvAMD' framebuffer numsamples pixelindex values@
+
+
+glNamedFramebufferSamplePositionsfvAMD :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
+glNamedFramebufferSamplePositionsfvAMD = ffiuintuintuintPtrfloatIOV glNamedFramebufferSamplePositionsfvAMDFunPtr
+
+glNamedFramebufferSamplePositionsfvAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
+glNamedFramebufferSamplePositionsfvAMDFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferSamplePositionsfvAMD")
+
+{-# NOINLINE glNamedFramebufferSamplePositionsfvAMDFunPtr #-}
+
+pattern GL_ALL_PIXELS_AMD = 0xFFFFFFFF
+
+pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD = 0x91AE
+
+pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD = 0x91AF
diff --git a/generated-src/Graphics/GL/Ext/AMD/GcnShader.hs b/generated-src/Graphics/GL/Ext/AMD/GcnShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/GcnShader.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.GcnShader (
+  -- * Extension Support
+    gl_AMD_gcn_shader
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gcn_shader.txt GL_AMD_gcn_shader> extension is available.
+
+gl_AMD_gcn_shader :: Bool
+gl_AMD_gcn_shader = member "GL_AMD_gcn_shader" extensions
+{-# NOINLINE gl_AMD_gcn_shader #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs b/generated-src/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs
@@ -0,0 +1,49 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.GpuShaderHalfFloat (
+  -- * Extension Support
+    gl_AMD_gpu_shader_half_float
+
+  -- * GL_AMD_gpu_shader_half_float
+  , pattern GL_FLOAT16_MAT2_AMD
+  , pattern GL_FLOAT16_MAT2x3_AMD
+  , pattern GL_FLOAT16_MAT2x4_AMD
+  , pattern GL_FLOAT16_MAT3_AMD
+  , pattern GL_FLOAT16_MAT3x2_AMD
+  , pattern GL_FLOAT16_MAT3x4_AMD
+  , pattern GL_FLOAT16_MAT4_AMD
+  , pattern GL_FLOAT16_MAT4x2_AMD
+  , pattern GL_FLOAT16_MAT4x3_AMD
+  , pattern GL_FLOAT16_NV
+  , pattern GL_FLOAT16_VEC2_NV
+  , pattern GL_FLOAT16_VEC3_NV
+  , pattern GL_FLOAT16_VEC4_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gpu_shader_half_float.txt GL_AMD_gpu_shader_half_float> extension is available.
+
+gl_AMD_gpu_shader_half_float :: Bool
+gl_AMD_gpu_shader_half_float = member "GL_AMD_gpu_shader_half_float" extensions
+{-# NOINLINE gl_AMD_gpu_shader_half_float #-}
+
+pattern GL_FLOAT16_MAT2_AMD = 0x91C5
+
+pattern GL_FLOAT16_MAT2x3_AMD = 0x91C8
+
+pattern GL_FLOAT16_MAT2x4_AMD = 0x91C9
+
+pattern GL_FLOAT16_MAT3_AMD = 0x91C6
+
+pattern GL_FLOAT16_MAT3x2_AMD = 0x91CA
+
+pattern GL_FLOAT16_MAT3x4_AMD = 0x91CB
+
+pattern GL_FLOAT16_MAT4_AMD = 0x91C7
+
+pattern GL_FLOAT16_MAT4x2_AMD = 0x91CC
+
+pattern GL_FLOAT16_MAT4x3_AMD = 0x91CD
diff --git a/generated-src/Graphics/GL/Ext/AMD/GpuShaderInt64.hs b/generated-src/Graphics/GL/Ext/AMD/GpuShaderInt64.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/GpuShaderInt64.hs
@@ -0,0 +1,80 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.GpuShaderInt64 (
+  -- * Extension Support
+    gl_AMD_gpu_shader_int64
+
+  -- * GL_AMD_gpu_shader_int64
+  , glGetUniformi64vNV
+  , glGetUniformui64vNV
+  , glProgramUniform1i64NV
+  , glProgramUniform1i64vNV
+  , glProgramUniform1ui64NV
+  , glProgramUniform1ui64vNV
+  , glProgramUniform2i64NV
+  , glProgramUniform2i64vNV
+  , glProgramUniform2ui64NV
+  , glProgramUniform2ui64vNV
+  , glProgramUniform3i64NV
+  , glProgramUniform3i64vNV
+  , glProgramUniform3ui64NV
+  , glProgramUniform3ui64vNV
+  , glProgramUniform4i64NV
+  , glProgramUniform4i64vNV
+  , glProgramUniform4ui64NV
+  , glProgramUniform4ui64vNV
+  , glUniform1i64NV
+  , glUniform1i64vNV
+  , glUniform1ui64NV
+  , glUniform1ui64vNV
+  , glUniform2i64NV
+  , glUniform2i64vNV
+  , glUniform2ui64NV
+  , glUniform2ui64vNV
+  , glUniform3i64NV
+  , glUniform3i64vNV
+  , glUniform3ui64NV
+  , glUniform3ui64vNV
+  , glUniform4i64NV
+  , glUniform4i64vNV
+  , glUniform4ui64NV
+  , glUniform4ui64vNV
+  , pattern GL_FLOAT16_NV
+  , pattern GL_FLOAT16_VEC2_NV
+  , pattern GL_FLOAT16_VEC3_NV
+  , pattern GL_FLOAT16_VEC4_NV
+  , pattern GL_INT16_NV
+  , pattern GL_INT16_VEC2_NV
+  , pattern GL_INT16_VEC3_NV
+  , pattern GL_INT16_VEC4_NV
+  , pattern GL_INT64_NV
+  , pattern GL_INT64_VEC2_NV
+  , pattern GL_INT64_VEC3_NV
+  , pattern GL_INT64_VEC4_NV
+  , pattern GL_INT8_NV
+  , pattern GL_INT8_VEC2_NV
+  , pattern GL_INT8_VEC3_NV
+  , pattern GL_INT8_VEC4_NV
+  , pattern GL_UNSIGNED_INT16_NV
+  , pattern GL_UNSIGNED_INT16_VEC2_NV
+  , pattern GL_UNSIGNED_INT16_VEC3_NV
+  , pattern GL_UNSIGNED_INT16_VEC4_NV
+  , pattern GL_UNSIGNED_INT64_NV
+  , pattern GL_UNSIGNED_INT64_VEC2_NV
+  , pattern GL_UNSIGNED_INT64_VEC3_NV
+  , pattern GL_UNSIGNED_INT64_VEC4_NV
+  , pattern GL_UNSIGNED_INT8_NV
+  , pattern GL_UNSIGNED_INT8_VEC2_NV
+  , pattern GL_UNSIGNED_INT8_VEC3_NV
+  , pattern GL_UNSIGNED_INT8_VEC4_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/gpu_shader_int64.txt GL_AMD_gpu_shader_int64> extension is available.
+
+gl_AMD_gpu_shader_int64 :: Bool
+gl_AMD_gpu_shader_int64 = member "GL_AMD_gpu_shader_int64" extensions
+{-# NOINLINE gl_AMD_gpu_shader_int64 #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/InterleavedElements.hs b/generated-src/Graphics/GL/Ext/AMD/InterleavedElements.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/InterleavedElements.hs
@@ -0,0 +1,48 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.InterleavedElements (
+  -- * Extension Support
+    gl_AMD_interleaved_elements
+
+  -- * GL_AMD_interleaved_elements
+  , glVertexAttribParameteriAMD
+  , pattern GL_ALPHA
+  , pattern GL_BLUE
+  , pattern GL_GREEN
+  , pattern GL_RED
+  , pattern GL_RG16UI
+  , pattern GL_RG8UI
+  , pattern GL_RGBA8UI
+  , pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD
+  , pattern GL_VERTEX_ID_SWIZZLE_AMD
+) 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/AMD/interleaved_elements.txt GL_AMD_interleaved_elements> extension is available.
+
+gl_AMD_interleaved_elements :: Bool
+gl_AMD_interleaved_elements = member "GL_AMD_interleaved_elements" extensions
+{-# NOINLINE gl_AMD_interleaved_elements #-}
+
+-- | Usage: @'glVertexAttribParameteriAMD' index pname param@
+
+
+glVertexAttribParameteriAMD :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glVertexAttribParameteriAMD = ffiuintenumintIOV glVertexAttribParameteriAMDFunPtr
+
+glVertexAttribParameteriAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glVertexAttribParameteriAMDFunPtr = unsafePerformIO (getProcAddress "glVertexAttribParameteriAMD")
+
+{-# NOINLINE glVertexAttribParameteriAMDFunPtr #-}
+
+pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4
+
+pattern GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5
diff --git a/generated-src/Graphics/GL/Ext/AMD/MultiDrawIndirect.hs b/generated-src/Graphics/GL/Ext/AMD/MultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/MultiDrawIndirect.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.MultiDrawIndirect (
+  -- * Extension Support
+    gl_AMD_multi_draw_indirect
+
+  -- * GL_AMD_multi_draw_indirect
+  , glMultiDrawArraysIndirectAMD
+  , glMultiDrawElementsIndirectAMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/multi_draw_indirect.txt GL_AMD_multi_draw_indirect> extension is available.
+
+gl_AMD_multi_draw_indirect :: Bool
+gl_AMD_multi_draw_indirect = member "GL_AMD_multi_draw_indirect" extensions
+{-# NOINLINE gl_AMD_multi_draw_indirect #-}
+
+-- | Usage: @'glMultiDrawArraysIndirectAMD' mode indirect primcount stride@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawArraysIndirect'.
+
+
+glMultiDrawArraysIndirectAMD :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawArraysIndirectAMD = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectAMDFunPtr
+
+glMultiDrawArraysIndirectAMDFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysIndirectAMDFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectAMD")
+
+{-# NOINLINE glMultiDrawArraysIndirectAMDFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectAMD' mode type indirect primcount stride@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsIndirect'.
+
+
+glMultiDrawElementsIndirectAMD :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawElementsIndirectAMD = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectAMDFunPtr
+
+glMultiDrawElementsIndirectAMDFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawElementsIndirectAMDFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectAMD")
+
+{-# NOINLINE glMultiDrawElementsIndirectAMDFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/NameGenDelete.hs b/generated-src/Graphics/GL/Ext/AMD/NameGenDelete.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/NameGenDelete.hs
@@ -0,0 +1,77 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.NameGenDelete (
+  -- * Extension Support
+    gl_AMD_name_gen_delete
+
+  -- * GL_AMD_name_gen_delete
+  , glDeleteNamesAMD
+  , glGenNamesAMD
+  , glIsNameAMD
+  , pattern GL_DATA_BUFFER_AMD
+  , pattern GL_PERFORMANCE_MONITOR_AMD
+  , pattern GL_QUERY_OBJECT_AMD
+  , pattern GL_SAMPLER_OBJECT_AMD
+  , pattern GL_VERTEX_ARRAY_OBJECT_AMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/name_gen_delete.txt GL_AMD_name_gen_delete> extension is available.
+
+gl_AMD_name_gen_delete :: Bool
+gl_AMD_name_gen_delete = member "GL_AMD_name_gen_delete" extensions
+{-# NOINLINE gl_AMD_name_gen_delete #-}
+
+-- | Usage: @'glDeleteNamesAMD' identifier num names@
+--
+-- The length of @names@ should be @num@.
+
+
+glDeleteNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
+glDeleteNamesAMD = ffienumuintPtruintIOV glDeleteNamesAMDFunPtr
+
+glDeleteNamesAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+glDeleteNamesAMDFunPtr = unsafePerformIO (getProcAddress "glDeleteNamesAMD")
+
+{-# NOINLINE glDeleteNamesAMDFunPtr #-}
+
+-- | Usage: @'glGenNamesAMD' identifier num names@
+--
+-- The length of @names@ should be @num@.
+
+
+glGenNamesAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
+glGenNamesAMD = ffienumuintPtruintIOV glGenNamesAMDFunPtr
+
+glGenNamesAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+glGenNamesAMDFunPtr = unsafePerformIO (getProcAddress "glGenNamesAMD")
+
+{-# NOINLINE glGenNamesAMDFunPtr #-}
+
+-- | Usage: @'glIsNameAMD' identifier name@
+
+
+glIsNameAMD :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsNameAMD = ffienumuintIOboolean glIsNameAMDFunPtr
+
+glIsNameAMDFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsNameAMDFunPtr = unsafePerformIO (getProcAddress "glIsNameAMD")
+
+{-# NOINLINE glIsNameAMDFunPtr #-}
+
+pattern GL_DATA_BUFFER_AMD = 0x9151
+
+pattern GL_PERFORMANCE_MONITOR_AMD = 0x9152
+
+pattern GL_QUERY_OBJECT_AMD = 0x9153
+
+pattern GL_SAMPLER_OBJECT_AMD = 0x9155
+
+pattern GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154
diff --git a/generated-src/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs b/generated-src/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.OcclusionQueryEvent (
+  -- * Extension Support
+    gl_AMD_occlusion_query_event
+
+  -- * GL_AMD_occlusion_query_event
+  , glQueryObjectParameteruiAMD
+  , pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD
+  , pattern GL_QUERY_ALL_EVENT_BITS_AMD
+  , pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD
+  , pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD
+  , pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD
+  , pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/occlusion_query_event.txt GL_AMD_occlusion_query_event> extension is available.
+
+gl_AMD_occlusion_query_event :: Bool
+gl_AMD_occlusion_query_event = member "GL_AMD_occlusion_query_event" extensions
+{-# NOINLINE gl_AMD_occlusion_query_event #-}
+
+-- | Usage: @'glQueryObjectParameteruiAMD' target id pname param@
+--
+-- The parameter @param@ is a @OcclusionQueryEventMaskAMD@, one of: 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD', 'Graphics.GL.Ext.AMD.OcclusionQueryEvent.GL_QUERY_ALL_EVENT_BITS_AMD'.
+
+
+glQueryObjectParameteruiAMD :: MonadIO m => GLenum -> GLuint -> GLenum -> GLuint -> m ()
+glQueryObjectParameteruiAMD = ffienumuintenumuintIOV glQueryObjectParameteruiAMDFunPtr
+
+glQueryObjectParameteruiAMDFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ())
+glQueryObjectParameteruiAMDFunPtr = unsafePerformIO (getProcAddress "glQueryObjectParameteruiAMD")
+
+{-# NOINLINE glQueryObjectParameteruiAMDFunPtr #-}
+
+pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F
+
+pattern GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF
+
+pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008
+
+pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002
+
+pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001
+
+pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004
diff --git a/generated-src/Graphics/GL/Ext/AMD/PerformanceMonitor.hs b/generated-src/Graphics/GL/Ext/AMD/PerformanceMonitor.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/PerformanceMonitor.hs
@@ -0,0 +1,207 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.PerformanceMonitor (
+  -- * Extension Support
+    gl_AMD_performance_monitor
+
+  -- * GL_AMD_performance_monitor
+  , glBeginPerfMonitorAMD
+  , glDeletePerfMonitorsAMD
+  , glEndPerfMonitorAMD
+  , glGenPerfMonitorsAMD
+  , glGetPerfMonitorCounterDataAMD
+  , glGetPerfMonitorCounterInfoAMD
+  , glGetPerfMonitorCounterStringAMD
+  , glGetPerfMonitorCountersAMD
+  , glGetPerfMonitorGroupStringAMD
+  , glGetPerfMonitorGroupsAMD
+  , glSelectPerfMonitorCountersAMD
+  , pattern GL_COUNTER_RANGE_AMD
+  , pattern GL_COUNTER_TYPE_AMD
+  , pattern GL_PERCENTAGE_AMD
+  , pattern GL_PERFMON_RESULT_AMD
+  , pattern GL_PERFMON_RESULT_AVAILABLE_AMD
+  , pattern GL_PERFMON_RESULT_SIZE_AMD
+  , pattern GL_UNSIGNED_INT64_AMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_performance_monitor.txt GL_AMD_performance_monitor> extension is available.
+
+gl_AMD_performance_monitor :: Bool
+gl_AMD_performance_monitor = member "GL_AMD_performance_monitor" extensions
+{-# NOINLINE gl_AMD_performance_monitor #-}
+
+-- | Usage: @'glBeginPerfMonitorAMD' monitor@
+
+
+glBeginPerfMonitorAMD :: MonadIO m => GLuint -> m ()
+glBeginPerfMonitorAMD = ffiuintIOV glBeginPerfMonitorAMDFunPtr
+
+glBeginPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
+glBeginPerfMonitorAMDFunPtr = unsafePerformIO (getProcAddress "glBeginPerfMonitorAMD")
+
+{-# NOINLINE glBeginPerfMonitorAMDFunPtr #-}
+
+-- | Usage: @'glDeletePerfMonitorsAMD' n monitors@
+--
+-- The length of @monitors@ should be @n@.
+
+
+glDeletePerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeletePerfMonitorsAMD = ffisizeiPtruintIOV glDeletePerfMonitorsAMDFunPtr
+
+glDeletePerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeletePerfMonitorsAMDFunPtr = unsafePerformIO (getProcAddress "glDeletePerfMonitorsAMD")
+
+{-# NOINLINE glDeletePerfMonitorsAMDFunPtr #-}
+
+-- | Usage: @'glEndPerfMonitorAMD' monitor@
+
+
+glEndPerfMonitorAMD :: MonadIO m => GLuint -> m ()
+glEndPerfMonitorAMD = ffiuintIOV glEndPerfMonitorAMDFunPtr
+
+glEndPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
+glEndPerfMonitorAMDFunPtr = unsafePerformIO (getProcAddress "glEndPerfMonitorAMD")
+
+{-# NOINLINE glEndPerfMonitorAMDFunPtr #-}
+
+-- | Usage: @'glGenPerfMonitorsAMD' n monitors@
+--
+-- The length of @monitors@ should be @n@.
+
+
+glGenPerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenPerfMonitorsAMD = ffisizeiPtruintIOV glGenPerfMonitorsAMDFunPtr
+
+glGenPerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenPerfMonitorsAMDFunPtr = unsafePerformIO (getProcAddress "glGenPerfMonitorsAMD")
+
+{-# NOINLINE glGenPerfMonitorsAMDFunPtr #-}
+
+-- | Usage: @'glGetPerfMonitorCounterDataAMD' monitor pname dataSize data bytesWritten@
+--
+-- The length of @data@ should be @dataSize@.
+--
+-- The length of @bytesWritten@ should be @1@.
+
+
+glGetPerfMonitorCounterDataAMD :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
+glGetPerfMonitorCounterDataAMD = ffiuintenumsizeiPtruintPtrintIOV glGetPerfMonitorCounterDataAMDFunPtr
+
+glGetPerfMonitorCounterDataAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ())
+glGetPerfMonitorCounterDataAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCounterDataAMD")
+
+{-# NOINLINE glGetPerfMonitorCounterDataAMDFunPtr #-}
+
+-- | Usage: @'glGetPerfMonitorCounterInfoAMD' group counter pname data@
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetPerfMonitorCounterInfoAMD :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr () -> m ()
+glGetPerfMonitorCounterInfoAMD = ffiuintuintenumPtrVIOV glGetPerfMonitorCounterInfoAMDFunPtr
+
+glGetPerfMonitorCounterInfoAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ())
+glGetPerfMonitorCounterInfoAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCounterInfoAMD")
+
+{-# NOINLINE glGetPerfMonitorCounterInfoAMDFunPtr #-}
+
+-- | Usage: @'glGetPerfMonitorCounterStringAMD' group counter bufSize length counterString@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @counterString@ should be @bufSize@.
+
+
+glGetPerfMonitorCounterStringAMD :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetPerfMonitorCounterStringAMD = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetPerfMonitorCounterStringAMDFunPtr
+
+glGetPerfMonitorCounterStringAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetPerfMonitorCounterStringAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCounterStringAMD")
+
+{-# NOINLINE glGetPerfMonitorCounterStringAMDFunPtr #-}
+
+-- | Usage: @'glGetPerfMonitorCountersAMD' group numCounters maxActiveCounters counterSize counters@
+--
+-- The length of @numCounters@ should be @1@.
+--
+-- The length of @maxActiveCounters@ should be @1@.
+--
+-- The length of @counters@ should be @counterSize@.
+
+
+glGetPerfMonitorCountersAMD :: MonadIO m => GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetPerfMonitorCountersAMD = ffiuintPtrintPtrintsizeiPtruintIOV glGetPerfMonitorCountersAMDFunPtr
+
+glGetPerfMonitorCountersAMDFunPtr :: FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetPerfMonitorCountersAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorCountersAMD")
+
+{-# NOINLINE glGetPerfMonitorCountersAMDFunPtr #-}
+
+-- | Usage: @'glGetPerfMonitorGroupStringAMD' group bufSize length groupString@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @groupString@ should be @bufSize@.
+
+
+glGetPerfMonitorGroupStringAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetPerfMonitorGroupStringAMD = ffiuintsizeiPtrsizeiPtrcharIOV glGetPerfMonitorGroupStringAMDFunPtr
+
+glGetPerfMonitorGroupStringAMDFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetPerfMonitorGroupStringAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorGroupStringAMD")
+
+{-# NOINLINE glGetPerfMonitorGroupStringAMDFunPtr #-}
+
+-- | Usage: @'glGetPerfMonitorGroupsAMD' numGroups groupsSize groups@
+--
+-- The length of @numGroups@ should be @1@.
+--
+-- The length of @groups@ should be @groupsSize@.
+
+
+glGetPerfMonitorGroupsAMD :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetPerfMonitorGroupsAMD = ffiPtrintsizeiPtruintIOV glGetPerfMonitorGroupsAMDFunPtr
+
+glGetPerfMonitorGroupsAMDFunPtr :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetPerfMonitorGroupsAMDFunPtr = unsafePerformIO (getProcAddress "glGetPerfMonitorGroupsAMD")
+
+{-# NOINLINE glGetPerfMonitorGroupsAMDFunPtr #-}
+
+-- | Usage: @'glSelectPerfMonitorCountersAMD' monitor enable group numCounters counterList@
+--
+-- The parameter @enable@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @counterList@ should be @numCounters@.
+
+
+glSelectPerfMonitorCountersAMD :: MonadIO m => GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
+glSelectPerfMonitorCountersAMD = ffiuintbooleanuintintPtruintIOV glSelectPerfMonitorCountersAMDFunPtr
+
+glSelectPerfMonitorCountersAMDFunPtr :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ())
+glSelectPerfMonitorCountersAMDFunPtr = unsafePerformIO (getProcAddress "glSelectPerfMonitorCountersAMD")
+
+{-# NOINLINE glSelectPerfMonitorCountersAMDFunPtr #-}
+
+pattern GL_COUNTER_RANGE_AMD = 0x8BC1
+
+pattern GL_COUNTER_TYPE_AMD = 0x8BC0
+
+pattern GL_PERCENTAGE_AMD = 0x8BC3
+
+pattern GL_PERFMON_RESULT_AMD = 0x8BC6
+
+pattern GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4
+
+pattern GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5
+
+pattern GL_UNSIGNED_INT64_AMD = 0x8BC2
diff --git a/generated-src/Graphics/GL/Ext/AMD/PinnedMemory.hs b/generated-src/Graphics/GL/Ext/AMD/PinnedMemory.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/PinnedMemory.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.PinnedMemory (
+  -- * Extension Support
+    gl_AMD_pinned_memory
+
+  -- * GL_AMD_pinned_memory
+  , pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/pinned_memory.txt GL_AMD_pinned_memory> extension is available.
+
+gl_AMD_pinned_memory :: Bool
+gl_AMD_pinned_memory = member "GL_AMD_pinned_memory" extensions
+{-# NOINLINE gl_AMD_pinned_memory #-}
+
+pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160
diff --git a/generated-src/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs b/generated-src/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.ProgramBinaryZ400 (
+  -- * Extension Support
+    gl_AMD_program_binary_Z400
+
+  -- * GL_AMD_program_binary_Z400
+  , pattern GL_Z400_BINARY_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/AMD/AMD_program_binary_Z400.txt GL_AMD_program_binary_Z400> extension is available.
+
+gl_AMD_program_binary_Z400 :: Bool
+gl_AMD_program_binary_Z400 = member "GL_AMD_program_binary_Z400" extensions
+{-# NOINLINE gl_AMD_program_binary_Z400 #-}
+
+pattern GL_Z400_BINARY_AMD = 0x8740
diff --git a/generated-src/Graphics/GL/Ext/AMD/QueryBufferObject.hs b/generated-src/Graphics/GL/Ext/AMD/QueryBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/QueryBufferObject.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.QueryBufferObject (
+  -- * Extension Support
+    gl_AMD_query_buffer_object
+
+  -- * GL_AMD_query_buffer_object
+  , pattern GL_QUERY_BUFFER_AMD
+  , pattern GL_QUERY_BUFFER_BINDING_AMD
+  , pattern GL_QUERY_RESULT_NO_WAIT_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/query_buffer_object.txt GL_AMD_query_buffer_object> extension is available.
+
+gl_AMD_query_buffer_object :: Bool
+gl_AMD_query_buffer_object = member "GL_AMD_query_buffer_object" extensions
+{-# NOINLINE gl_AMD_query_buffer_object #-}
+
+pattern GL_QUERY_BUFFER_AMD = 0x9192
+
+pattern GL_QUERY_BUFFER_BINDING_AMD = 0x9193
+
+pattern GL_QUERY_RESULT_NO_WAIT_AMD = 0x9194
diff --git a/generated-src/Graphics/GL/Ext/AMD/SamplePositions.hs b/generated-src/Graphics/GL/Ext/AMD/SamplePositions.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/SamplePositions.hs
@@ -0,0 +1,38 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.SamplePositions (
+  -- * Extension Support
+    gl_AMD_sample_positions
+
+  -- * GL_AMD_sample_positions
+  , glSetMultisamplefvAMD
+  , pattern GL_SUBSAMPLE_DISTANCE_AMD
+) 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/AMD/sample_positions.txt GL_AMD_sample_positions> extension is available.
+
+gl_AMD_sample_positions :: Bool
+gl_AMD_sample_positions = member "GL_AMD_sample_positions" extensions
+{-# NOINLINE gl_AMD_sample_positions #-}
+
+-- | Usage: @'glSetMultisamplefvAMD' pname index val@
+--
+-- The length of @val@ should be @2@.
+
+
+glSetMultisamplefvAMD :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glSetMultisamplefvAMD = ffienumuintPtrfloatIOV glSetMultisamplefvAMDFunPtr
+
+glSetMultisamplefvAMDFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glSetMultisamplefvAMDFunPtr = unsafePerformIO (getProcAddress "glSetMultisamplefvAMD")
+
+{-# NOINLINE glSetMultisamplefvAMDFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/SeamlessCubemapPerTexture.hs b/generated-src/Graphics/GL/Ext/AMD/SeamlessCubemapPerTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/SeamlessCubemapPerTexture.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.SeamlessCubemapPerTexture (
+  -- * Extension Support
+    gl_AMD_seamless_cubemap_per_texture
+
+  -- * GL_AMD_seamless_cubemap_per_texture
+  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/seamless_cubemap_per_texture.txt GL_AMD_seamless_cubemap_per_texture> extension is available.
+
+gl_AMD_seamless_cubemap_per_texture :: Bool
+gl_AMD_seamless_cubemap_per_texture = member "GL_AMD_seamless_cubemap_per_texture" extensions
+{-# NOINLINE gl_AMD_seamless_cubemap_per_texture #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/ShaderAtomicCounterOps.hs b/generated-src/Graphics/GL/Ext/AMD/ShaderAtomicCounterOps.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/ShaderAtomicCounterOps.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.ShaderAtomicCounterOps (
+  -- * Extension Support
+    gl_AMD_shader_atomic_counter_ops
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_atomic_counter_ops.txt GL_AMD_shader_atomic_counter_ops> extension is available.
+
+gl_AMD_shader_atomic_counter_ops :: Bool
+gl_AMD_shader_atomic_counter_ops = member "GL_AMD_shader_atomic_counter_ops" extensions
+{-# NOINLINE gl_AMD_shader_atomic_counter_ops #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/ShaderBallot.hs b/generated-src/Graphics/GL/Ext/AMD/ShaderBallot.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/ShaderBallot.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.ShaderBallot (
+  -- * Extension Support
+    gl_AMD_shader_ballot
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_ballot.txt GL_AMD_shader_ballot> extension is available.
+
+gl_AMD_shader_ballot :: Bool
+gl_AMD_shader_ballot = member "GL_AMD_shader_ballot" extensions
+{-# NOINLINE gl_AMD_shader_ballot #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/ShaderExplicitVertexParameter.hs b/generated-src/Graphics/GL/Ext/AMD/ShaderExplicitVertexParameter.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/ShaderExplicitVertexParameter.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.ShaderExplicitVertexParameter (
+  -- * Extension Support
+    gl_AMD_shader_explicit_vertex_parameter
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_explicit_vertex_parameter.txt GL_AMD_shader_explicit_vertex_parameter> extension is available.
+
+gl_AMD_shader_explicit_vertex_parameter :: Bool
+gl_AMD_shader_explicit_vertex_parameter = member "GL_AMD_shader_explicit_vertex_parameter" extensions
+{-# NOINLINE gl_AMD_shader_explicit_vertex_parameter #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/ShaderStencilExport.hs b/generated-src/Graphics/GL/Ext/AMD/ShaderStencilExport.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/ShaderStencilExport.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.ShaderStencilExport (
+  -- * Extension Support
+    gl_AMD_shader_stencil_export
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_stencil_export.txt GL_AMD_shader_stencil_export> extension is available.
+
+gl_AMD_shader_stencil_export :: Bool
+gl_AMD_shader_stencil_export = member "GL_AMD_shader_stencil_export" extensions
+{-# NOINLINE gl_AMD_shader_stencil_export #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/ShaderTrinaryMinmax.hs b/generated-src/Graphics/GL/Ext/AMD/ShaderTrinaryMinmax.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/ShaderTrinaryMinmax.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.ShaderTrinaryMinmax (
+  -- * Extension Support
+    gl_AMD_shader_trinary_minmax
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/shader_trinary_minmax.txt GL_AMD_shader_trinary_minmax> extension is available.
+
+gl_AMD_shader_trinary_minmax :: Bool
+gl_AMD_shader_trinary_minmax = member "GL_AMD_shader_trinary_minmax" extensions
+{-# NOINLINE gl_AMD_shader_trinary_minmax #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/SparseTexture.hs b/generated-src/Graphics/GL/Ext/AMD/SparseTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/SparseTexture.hs
@@ -0,0 +1,73 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.SparseTexture (
+  -- * Extension Support
+    gl_AMD_sparse_texture
+
+  -- * GL_AMD_sparse_texture
+  , glTexStorageSparseAMD
+  , glTextureStorageSparseAMD
+  , pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD
+  , pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS
+  , pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD
+  , pattern GL_MIN_LOD_WARNING_AMD
+  , pattern GL_MIN_SPARSE_LEVEL_AMD
+  , pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD
+  , pattern GL_VIRTUAL_PAGE_SIZE_X_AMD
+  , pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD
+  , pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/sparse_texture.txt GL_AMD_sparse_texture> extension is available.
+
+gl_AMD_sparse_texture :: Bool
+gl_AMD_sparse_texture = member "GL_AMD_sparse_texture" extensions
+{-# NOINLINE gl_AMD_sparse_texture #-}
+
+-- | Usage: @'glTexStorageSparseAMD' target internalFormat width height depth layers flags@
+
+
+glTexStorageSparseAMD :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
+glTexStorageSparseAMD = ffienumenumsizeisizeisizeisizeibitfieldIOV glTexStorageSparseAMDFunPtr
+
+glTexStorageSparseAMDFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
+glTexStorageSparseAMDFunPtr = unsafePerformIO (getProcAddress "glTexStorageSparseAMD")
+
+{-# NOINLINE glTexStorageSparseAMDFunPtr #-}
+
+-- | Usage: @'glTextureStorageSparseAMD' texture target internalFormat width height depth layers flags@
+
+
+glTextureStorageSparseAMD :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
+glTextureStorageSparseAMD = ffiuintenumenumsizeisizeisizeisizeibitfieldIOV glTextureStorageSparseAMDFunPtr
+
+glTextureStorageSparseAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
+glTextureStorageSparseAMDFunPtr = unsafePerformIO (getProcAddress "glTextureStorageSparseAMD")
+
+{-# NOINLINE glTextureStorageSparseAMDFunPtr #-}
+
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199
+
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A
+
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198
+
+pattern GL_MIN_LOD_WARNING_AMD = 0x919C
+
+pattern GL_MIN_SPARSE_LEVEL_AMD = 0x919B
+
+pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001
+
+pattern GL_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195
+
+pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197
diff --git a/generated-src/Graphics/GL/Ext/AMD/StencilOperationExtended.hs b/generated-src/Graphics/GL/Ext/AMD/StencilOperationExtended.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/StencilOperationExtended.hs
@@ -0,0 +1,48 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.StencilOperationExtended (
+  -- * Extension Support
+    gl_AMD_stencil_operation_extended
+
+  -- * GL_AMD_stencil_operation_extended
+  , glStencilOpValueAMD
+  , pattern GL_REPLACE_VALUE_AMD
+  , pattern GL_SET_AMD
+  , pattern GL_STENCIL_BACK_OP_VALUE_AMD
+  , pattern GL_STENCIL_OP_VALUE_AMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/stencil_operation_extended.txt GL_AMD_stencil_operation_extended> extension is available.
+
+gl_AMD_stencil_operation_extended :: Bool
+gl_AMD_stencil_operation_extended = member "GL_AMD_stencil_operation_extended" extensions
+{-# NOINLINE gl_AMD_stencil_operation_extended #-}
+
+-- | Usage: @'glStencilOpValueAMD' face value@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+
+
+glStencilOpValueAMD :: MonadIO m => GLenum -> GLuint -> m ()
+glStencilOpValueAMD = ffienumuintIOV glStencilOpValueAMDFunPtr
+
+glStencilOpValueAMDFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glStencilOpValueAMDFunPtr = unsafePerformIO (getProcAddress "glStencilOpValueAMD")
+
+{-# NOINLINE glStencilOpValueAMDFunPtr #-}
+
+pattern GL_REPLACE_VALUE_AMD = 0x874B
+
+pattern GL_SET_AMD = 0x874A
+
+pattern GL_STENCIL_BACK_OP_VALUE_AMD = 0x874D
+
+pattern GL_STENCIL_OP_VALUE_AMD = 0x874C
diff --git a/generated-src/Graphics/GL/Ext/AMD/TextureTexture4.hs b/generated-src/Graphics/GL/Ext/AMD/TextureTexture4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/TextureTexture4.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.TextureTexture4 (
+  -- * Extension Support
+    gl_AMD_texture_texture4
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/texture_texture4.txt GL_AMD_texture_texture4> extension is available.
+
+gl_AMD_texture_texture4 :: Bool
+gl_AMD_texture_texture4 = member "GL_AMD_texture_texture4" extensions
+{-# NOINLINE gl_AMD_texture_texture4 #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/TransformFeedback3LinesTriangles.hs b/generated-src/Graphics/GL/Ext/AMD/TransformFeedback3LinesTriangles.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/TransformFeedback3LinesTriangles.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.TransformFeedback3LinesTriangles (
+  -- * Extension Support
+    gl_AMD_transform_feedback3_lines_triangles
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback3_lines_triangles.txt GL_AMD_transform_feedback3_lines_triangles> extension is available.
+
+gl_AMD_transform_feedback3_lines_triangles :: Bool
+gl_AMD_transform_feedback3_lines_triangles = member "GL_AMD_transform_feedback3_lines_triangles" extensions
+{-# NOINLINE gl_AMD_transform_feedback3_lines_triangles #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/TransformFeedback4.hs b/generated-src/Graphics/GL/Ext/AMD/TransformFeedback4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/TransformFeedback4.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.TransformFeedback4 (
+  -- * Extension Support
+    gl_AMD_transform_feedback4
+
+  -- * GL_AMD_transform_feedback4
+  , pattern GL_STREAM_RASTERIZATION_AMD
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/transform_feedback4.txt GL_AMD_transform_feedback4> extension is available.
+
+gl_AMD_transform_feedback4 :: Bool
+gl_AMD_transform_feedback4 = member "GL_AMD_transform_feedback4" extensions
+{-# NOINLINE gl_AMD_transform_feedback4 #-}
+
+pattern GL_STREAM_RASTERIZATION_AMD = 0x91A0
diff --git a/generated-src/Graphics/GL/Ext/AMD/VertexShaderLayer.hs b/generated-src/Graphics/GL/Ext/AMD/VertexShaderLayer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/VertexShaderLayer.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.VertexShaderLayer (
+  -- * Extension Support
+    gl_AMD_vertex_shader_layer
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_layer.txt GL_AMD_vertex_shader_layer> extension is available.
+
+gl_AMD_vertex_shader_layer :: Bool
+gl_AMD_vertex_shader_layer = member "GL_AMD_vertex_shader_layer" extensions
+{-# NOINLINE gl_AMD_vertex_shader_layer #-}
diff --git a/generated-src/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs b/generated-src/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs
@@ -0,0 +1,67 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.VertexShaderTessellator (
+  -- * Extension Support
+    gl_AMD_vertex_shader_tessellator
+
+  -- * GL_AMD_vertex_shader_tessellator
+  , glTessellationFactorAMD
+  , glTessellationModeAMD
+  , pattern GL_CONTINUOUS_AMD
+  , pattern GL_DISCRETE_AMD
+  , pattern GL_INT_SAMPLER_BUFFER_AMD
+  , pattern GL_SAMPLER_BUFFER_AMD
+  , pattern GL_TESSELLATION_FACTOR_AMD
+  , pattern GL_TESSELLATION_MODE_AMD
+  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_tessellator.txt GL_AMD_vertex_shader_tessellator> extension is available.
+
+gl_AMD_vertex_shader_tessellator :: Bool
+gl_AMD_vertex_shader_tessellator = member "GL_AMD_vertex_shader_tessellator" extensions
+{-# NOINLINE gl_AMD_vertex_shader_tessellator #-}
+
+-- | Usage: @'glTessellationFactorAMD' factor@
+
+
+glTessellationFactorAMD :: MonadIO m => GLfloat -> m ()
+glTessellationFactorAMD = ffifloatIOV glTessellationFactorAMDFunPtr
+
+glTessellationFactorAMDFunPtr :: FunPtr (GLfloat -> IO ())
+glTessellationFactorAMDFunPtr = unsafePerformIO (getProcAddress "glTessellationFactorAMD")
+
+{-# NOINLINE glTessellationFactorAMDFunPtr #-}
+
+-- | Usage: @'glTessellationModeAMD' mode@
+
+
+glTessellationModeAMD :: MonadIO m => GLenum -> m ()
+glTessellationModeAMD = ffienumIOV glTessellationModeAMDFunPtr
+
+glTessellationModeAMDFunPtr :: FunPtr (GLenum -> IO ())
+glTessellationModeAMDFunPtr = unsafePerformIO (getProcAddress "glTessellationModeAMD")
+
+{-# NOINLINE glTessellationModeAMDFunPtr #-}
+
+pattern GL_CONTINUOUS_AMD = 0x9007
+
+pattern GL_DISCRETE_AMD = 0x9006
+
+pattern GL_INT_SAMPLER_BUFFER_AMD = 0x9002
+
+pattern GL_SAMPLER_BUFFER_AMD = 0x9001
+
+pattern GL_TESSELLATION_FACTOR_AMD = 0x9005
+
+pattern GL_TESSELLATION_MODE_AMD = 0x9004
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003
diff --git a/generated-src/Graphics/GL/Ext/AMD/VertexShaderViewportIndex.hs b/generated-src/Graphics/GL/Ext/AMD/VertexShaderViewportIndex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/AMD/VertexShaderViewportIndex.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.AMD.VertexShaderViewportIndex (
+  -- * Extension Support
+    gl_AMD_vertex_shader_viewport_index
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/AMD/vertex_shader_viewport_index.txt GL_AMD_vertex_shader_viewport_index> extension is available.
+
+gl_AMD_vertex_shader_viewport_index :: Bool
+gl_AMD_vertex_shader_viewport_index = member "GL_AMD_vertex_shader_viewport_index" extensions
+{-# NOINLINE gl_AMD_vertex_shader_viewport_index #-}
diff --git a/generated-src/Graphics/GL/Ext/ANDROID.hs b/generated-src/Graphics/GL/Ext/ANDROID.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANDROID.hs
@@ -0,0 +1,8 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANDROID (
+  -- * ANDROID Extensions
+    module Graphics.GL.Ext.ANDROID.ExtensionPackEs31a
+) where
+
+import Graphics.GL.Ext.ANDROID.ExtensionPackEs31a
diff --git a/generated-src/Graphics/GL/Ext/ANDROID/ExtensionPackEs31a.hs b/generated-src/Graphics/GL/Ext/ANDROID/ExtensionPackEs31a.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANDROID/ExtensionPackEs31a.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANDROID.ExtensionPackEs31a (
+  -- * Extension Support
+    gl_ANDROID_extension_pack_es31a
+
+  -- * GL_ANDROID_extension_pack_es31a
+  , module Graphics.GL.Ext.KHR.Debug
+  , module Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
+  , module Graphics.GL.Ext.KHR.BlendEquationAdvanced
+  , module Graphics.GL.Ext.OES.SampleShading
+  , module Graphics.GL.Ext.OES.SampleVariables
+  , module Graphics.GL.Ext.OES.ShaderImageAtomic
+  , module Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
+  , module Graphics.GL.Ext.OES.TextureStencil8
+  , module Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
+  , module Graphics.GL.Ext.EXT.CopyImage
+  , module Graphics.GL.Ext.EXT.DrawBuffersIndexed
+  , module Graphics.GL.Ext.EXT.GeometryShader
+  , module Graphics.GL.Ext.EXT.GpuShader5
+  , module Graphics.GL.Ext.EXT.PrimitiveBoundingBox
+  , module Graphics.GL.Ext.EXT.ShaderIoBlocks
+  , module Graphics.GL.Ext.EXT.TessellationShader
+  , module Graphics.GL.Ext.EXT.TextureBorderClamp
+  , module Graphics.GL.Ext.EXT.TextureBuffer
+  , module Graphics.GL.Ext.EXT.TextureCubeMapArray
+  , module Graphics.GL.Ext.EXT.TextureSRGBDecode
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+import Graphics.GL.Ext.KHR.Debug
+import Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
+import Graphics.GL.Ext.KHR.BlendEquationAdvanced
+import Graphics.GL.Ext.OES.SampleShading
+import Graphics.GL.Ext.OES.SampleVariables
+import Graphics.GL.Ext.OES.ShaderImageAtomic
+import Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
+import Graphics.GL.Ext.OES.TextureStencil8
+import Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
+import Graphics.GL.Ext.EXT.CopyImage
+import Graphics.GL.Ext.EXT.DrawBuffersIndexed
+import Graphics.GL.Ext.EXT.GeometryShader
+import Graphics.GL.Ext.EXT.GpuShader5
+import Graphics.GL.Ext.EXT.PrimitiveBoundingBox
+import Graphics.GL.Ext.EXT.ShaderIoBlocks
+import Graphics.GL.Ext.EXT.TessellationShader
+import Graphics.GL.Ext.EXT.TextureBorderClamp
+import Graphics.GL.Ext.EXT.TextureBuffer
+import Graphics.GL.Ext.EXT.TextureCubeMapArray
+import Graphics.GL.Ext.EXT.TextureSRGBDecode
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt GL_ANDROID_extension_pack_es31a> extension is available.
+
+gl_ANDROID_extension_pack_es31a :: Bool
+gl_ANDROID_extension_pack_es31a = member "GL_ANDROID_extension_pack_es31a" extensions
+{-# NOINLINE gl_ANDROID_extension_pack_es31a #-}
diff --git a/generated-src/Graphics/GL/Ext/ANGLE.hs b/generated-src/Graphics/GL/Ext/ANGLE.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE (
+  -- * ANGLE Extensions
+    module Graphics.GL.Ext.ANGLE.DepthTexture
+  , module Graphics.GL.Ext.ANGLE.FramebufferBlit
+  , module Graphics.GL.Ext.ANGLE.FramebufferMultisample
+  , module Graphics.GL.Ext.ANGLE.InstancedArrays
+  , module Graphics.GL.Ext.ANGLE.PackReverseRowOrder
+  , module Graphics.GL.Ext.ANGLE.ProgramBinary
+  , module Graphics.GL.Ext.ANGLE.TextureCompressionDxt3
+  , module Graphics.GL.Ext.ANGLE.TextureCompressionDxt5
+  , module Graphics.GL.Ext.ANGLE.TextureUsage
+  , module Graphics.GL.Ext.ANGLE.TranslatedShaderSource
+) where
+
+import Graphics.GL.Ext.ANGLE.DepthTexture
+import Graphics.GL.Ext.ANGLE.FramebufferBlit
+import Graphics.GL.Ext.ANGLE.FramebufferMultisample
+import Graphics.GL.Ext.ANGLE.InstancedArrays
+import Graphics.GL.Ext.ANGLE.PackReverseRowOrder
+import Graphics.GL.Ext.ANGLE.ProgramBinary
+import Graphics.GL.Ext.ANGLE.TextureCompressionDxt3
+import Graphics.GL.Ext.ANGLE.TextureCompressionDxt5
+import Graphics.GL.Ext.ANGLE.TextureUsage
+import Graphics.GL.Ext.ANGLE.TranslatedShaderSource
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/DepthTexture.hs b/generated-src/Graphics/GL/Ext/ANGLE/DepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/DepthTexture.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.DepthTexture (
+  -- * Extension Support
+    gl_ANGLE_depth_texture
+
+  -- * GL_ANGLE_depth_texture
+  , pattern GL_DEPTH24_STENCIL8_OES
+  , pattern GL_DEPTH_COMPONENT
+  , pattern GL_DEPTH_COMPONENT16
+  , pattern GL_DEPTH_COMPONENT32_OES
+  , pattern GL_DEPTH_STENCIL_OES
+  , pattern GL_UNSIGNED_INT
+  , pattern GL_UNSIGNED_INT_24_8_OES
+  , pattern GL_UNSIGNED_SHORT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_depth_texture.txt GL_ANGLE_depth_texture> extension is available.
+
+gl_ANGLE_depth_texture :: Bool
+gl_ANGLE_depth_texture = member "GL_ANGLE_depth_texture" extensions
+{-# NOINLINE gl_ANGLE_depth_texture #-}
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.FramebufferBlit (
+  -- * Extension Support
+    gl_ANGLE_framebuffer_blit
+
+  -- * GL_ANGLE_framebuffer_blit
+  , glBlitFramebufferANGLE
+  , pattern GL_DRAW_FRAMEBUFFER_ANGLE
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE
+  , pattern GL_READ_FRAMEBUFFER_ANGLE
+  , pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_blit.txt GL_ANGLE_framebuffer_blit> extension is available.
+
+gl_ANGLE_framebuffer_blit :: Bool
+gl_ANGLE_framebuffer_blit = member "GL_ANGLE_framebuffer_blit" extensions
+{-# NOINLINE gl_ANGLE_framebuffer_blit #-}
+
+-- | Usage: @'glBlitFramebufferANGLE' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+
+
+glBlitFramebufferANGLE :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitFramebufferANGLE = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferANGLEFunPtr
+
+glBlitFramebufferANGLEFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitFramebufferANGLEFunPtr = unsafePerformIO (getProcAddress "glBlitFramebufferANGLE")
+
+{-# NOINLINE glBlitFramebufferANGLEFunPtr #-}
+
+pattern GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6
+
+pattern GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8
+
+pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.FramebufferMultisample (
+  -- * Extension Support
+    gl_ANGLE_framebuffer_multisample
+
+  -- * GL_ANGLE_framebuffer_multisample
+  , glRenderbufferStorageMultisampleANGLE
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE
+  , pattern GL_MAX_SAMPLES_ANGLE
+  , pattern GL_RENDERBUFFER_SAMPLES_ANGLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_multisample.txt GL_ANGLE_framebuffer_multisample> extension is available.
+
+gl_ANGLE_framebuffer_multisample :: Bool
+gl_ANGLE_framebuffer_multisample = member "GL_ANGLE_framebuffer_multisample" extensions
+{-# NOINLINE gl_ANGLE_framebuffer_multisample #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleANGLE' target samples internalformat width height@
+
+
+glRenderbufferStorageMultisampleANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleANGLE = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleANGLEFunPtr
+
+glRenderbufferStorageMultisampleANGLEFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleANGLEFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleANGLE")
+
+{-# NOINLINE glRenderbufferStorageMultisampleANGLEFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56
+
+pattern GL_MAX_SAMPLES_ANGLE = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/ANGLE/InstancedArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/InstancedArrays.hs
@@ -0,0 +1,73 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.InstancedArrays (
+  -- * Extension Support
+    gl_ANGLE_instanced_arrays
+
+  -- * GL_ANGLE_instanced_arrays
+  , glDrawArraysInstancedANGLE
+  , glDrawElementsInstancedANGLE
+  , glVertexAttribDivisorANGLE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt GL_ANGLE_instanced_arrays> extension is available.
+
+gl_ANGLE_instanced_arrays :: Bool
+gl_ANGLE_instanced_arrays = member "GL_ANGLE_instanced_arrays" extensions
+{-# NOINLINE gl_ANGLE_instanced_arrays #-}
+
+-- | Usage: @'glDrawArraysInstancedANGLE' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
+
+
+glDrawArraysInstancedANGLE :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstancedANGLE = ffienumintsizeisizeiIOV glDrawArraysInstancedANGLEFunPtr
+
+glDrawArraysInstancedANGLEFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedANGLEFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedANGLE")
+
+{-# NOINLINE glDrawArraysInstancedANGLEFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedANGLE' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
+
+
+glDrawElementsInstancedANGLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstancedANGLE = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedANGLEFunPtr
+
+glDrawElementsInstancedANGLEFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedANGLEFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedANGLE")
+
+{-# NOINLINE glDrawElementsInstancedANGLEFunPtr #-}
+
+-- | Usage: @'glVertexAttribDivisorANGLE' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
+
+
+glVertexAttribDivisorANGLE :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribDivisorANGLE = ffiuintuintIOV glVertexAttribDivisorANGLEFunPtr
+
+glVertexAttribDivisorANGLEFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribDivisorANGLEFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorANGLE")
+
+{-# NOINLINE glVertexAttribDivisorANGLEFunPtr #-}
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs b/generated-src/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.PackReverseRowOrder (
+  -- * Extension Support
+    gl_ANGLE_pack_reverse_row_order
+
+  -- * GL_ANGLE_pack_reverse_row_order
+  , pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_pack_reverse_row_order.txt GL_ANGLE_pack_reverse_row_order> extension is available.
+
+gl_ANGLE_pack_reverse_row_order :: Bool
+gl_ANGLE_pack_reverse_row_order = member "GL_ANGLE_pack_reverse_row_order" extensions
+{-# NOINLINE gl_ANGLE_pack_reverse_row_order #-}
+
+pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/ProgramBinary.hs b/generated-src/Graphics/GL/Ext/ANGLE/ProgramBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/ProgramBinary.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.ProgramBinary (
+  -- * Extension Support
+    gl_ANGLE_program_binary
+
+  -- * GL_ANGLE_program_binary
+  , pattern GL_PROGRAM_BINARY_ANGLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_program_binary.txt GL_ANGLE_program_binary> extension is available.
+
+gl_ANGLE_program_binary :: Bool
+gl_ANGLE_program_binary = member "GL_ANGLE_program_binary" extensions
+{-# NOINLINE gl_ANGLE_program_binary #-}
+
+pattern GL_PROGRAM_BINARY_ANGLE = 0x93A6
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.TextureCompressionDxt3 (
+  -- * Extension Support
+    gl_ANGLE_texture_compression_dxt3
+
+  -- * GL_ANGLE_texture_compression_dxt3
+  , pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_compression_dxt3.txt GL_ANGLE_texture_compression_dxt3> extension is available.
+
+gl_ANGLE_texture_compression_dxt3 :: Bool
+gl_ANGLE_texture_compression_dxt3 = member "GL_ANGLE_texture_compression_dxt3" extensions
+{-# NOINLINE gl_ANGLE_texture_compression_dxt3 #-}
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.TextureCompressionDxt5 (
+  -- * Extension Support
+    gl_ANGLE_texture_compression_dxt5
+
+  -- * GL_ANGLE_texture_compression_dxt5
+  , pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_compression_dxt5.txt GL_ANGLE_texture_compression_dxt5> extension is available.
+
+gl_ANGLE_texture_compression_dxt5 :: Bool
+gl_ANGLE_texture_compression_dxt5 = member "GL_ANGLE_texture_compression_dxt5" extensions
+{-# NOINLINE gl_ANGLE_texture_compression_dxt5 #-}
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TextureUsage.hs b/generated-src/Graphics/GL/Ext/ANGLE/TextureUsage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TextureUsage.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.TextureUsage (
+  -- * Extension Support
+    gl_ANGLE_texture_usage
+
+  -- * GL_ANGLE_texture_usage
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE
+  , pattern GL_TEXTURE_USAGE_ANGLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_usage.txt GL_ANGLE_texture_usage> extension is available.
+
+gl_ANGLE_texture_usage :: Bool
+gl_ANGLE_texture_usage = member "GL_ANGLE_texture_usage" extensions
+{-# NOINLINE gl_ANGLE_texture_usage #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3
+
+pattern GL_TEXTURE_USAGE_ANGLE = 0x93A2
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs b/generated-src/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ANGLE.TranslatedShaderSource (
+  -- * Extension Support
+    gl_ANGLE_translated_shader_source
+
+  -- * GL_ANGLE_translated_shader_source
+  , glGetTranslatedShaderSourceANGLE
+  , pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_translated_shader_source.txt GL_ANGLE_translated_shader_source> extension is available.
+
+gl_ANGLE_translated_shader_source :: Bool
+gl_ANGLE_translated_shader_source = member "GL_ANGLE_translated_shader_source" extensions
+{-# NOINLINE gl_ANGLE_translated_shader_source #-}
+
+-- | Usage: @'glGetTranslatedShaderSourceANGLE' shader bufsize length source@
+--
+-- The length of @length@ should be @1@.
+
+
+glGetTranslatedShaderSourceANGLE :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetTranslatedShaderSourceANGLE = ffiuintsizeiPtrsizeiPtrcharIOV glGetTranslatedShaderSourceANGLEFunPtr
+
+glGetTranslatedShaderSourceANGLEFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetTranslatedShaderSourceANGLEFunPtr = unsafePerformIO (getProcAddress "glGetTranslatedShaderSourceANGLE")
+
+{-# NOINLINE glGetTranslatedShaderSourceANGLEFunPtr #-}
+
+pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0
diff --git a/generated-src/Graphics/GL/Ext/APPLE.hs b/generated-src/Graphics/GL/Ext/APPLE.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE.hs
@@ -0,0 +1,56 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE (
+  -- * APPLE Extensions
+    module Graphics.GL.Ext.APPLE.AuxDepthStencil
+  , module Graphics.GL.Ext.APPLE.ClientStorage
+  , module Graphics.GL.Ext.APPLE.ClipDistance
+  , module Graphics.GL.Ext.APPLE.ColorBufferPackedFloat
+  , module Graphics.GL.Ext.APPLE.CopyTextureLevels
+  , module Graphics.GL.Ext.APPLE.ElementArray
+  , module Graphics.GL.Ext.APPLE.Fence
+  , module Graphics.GL.Ext.APPLE.FloatPixels
+  , module Graphics.GL.Ext.APPLE.FlushBufferRange
+  , module Graphics.GL.Ext.APPLE.FramebufferMultisample
+  , module Graphics.GL.Ext.APPLE.ObjectPurgeable
+  , module Graphics.GL.Ext.APPLE.Rgb422
+  , module Graphics.GL.Ext.APPLE.RowBytes
+  , module Graphics.GL.Ext.APPLE.SpecularVector
+  , module Graphics.GL.Ext.APPLE.Sync
+  , module Graphics.GL.Ext.APPLE.Texture2DLimitedNpot
+  , module Graphics.GL.Ext.APPLE.TextureFormatBGRA8888
+  , module Graphics.GL.Ext.APPLE.TextureMaxLevel
+  , module Graphics.GL.Ext.APPLE.TexturePackedFloat
+  , module Graphics.GL.Ext.APPLE.TextureRange
+  , module Graphics.GL.Ext.APPLE.TransformHint
+  , module Graphics.GL.Ext.APPLE.VertexArrayObject
+  , module Graphics.GL.Ext.APPLE.VertexArrayRange
+  , module Graphics.GL.Ext.APPLE.VertexProgramEvaluators
+  , module Graphics.GL.Ext.APPLE.Ycbcr422
+) where
+
+import Graphics.GL.Ext.APPLE.AuxDepthStencil
+import Graphics.GL.Ext.APPLE.ClientStorage
+import Graphics.GL.Ext.APPLE.ClipDistance
+import Graphics.GL.Ext.APPLE.ColorBufferPackedFloat
+import Graphics.GL.Ext.APPLE.CopyTextureLevels
+import Graphics.GL.Ext.APPLE.ElementArray
+import Graphics.GL.Ext.APPLE.Fence
+import Graphics.GL.Ext.APPLE.FloatPixels
+import Graphics.GL.Ext.APPLE.FlushBufferRange
+import Graphics.GL.Ext.APPLE.FramebufferMultisample
+import Graphics.GL.Ext.APPLE.ObjectPurgeable
+import Graphics.GL.Ext.APPLE.Rgb422
+import Graphics.GL.Ext.APPLE.RowBytes
+import Graphics.GL.Ext.APPLE.SpecularVector
+import Graphics.GL.Ext.APPLE.Sync
+import Graphics.GL.Ext.APPLE.Texture2DLimitedNpot
+import Graphics.GL.Ext.APPLE.TextureFormatBGRA8888
+import Graphics.GL.Ext.APPLE.TextureMaxLevel
+import Graphics.GL.Ext.APPLE.TexturePackedFloat
+import Graphics.GL.Ext.APPLE.TextureRange
+import Graphics.GL.Ext.APPLE.TransformHint
+import Graphics.GL.Ext.APPLE.VertexArrayObject
+import Graphics.GL.Ext.APPLE.VertexArrayRange
+import Graphics.GL.Ext.APPLE.VertexProgramEvaluators
+import Graphics.GL.Ext.APPLE.Ycbcr422
diff --git a/generated-src/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs b/generated-src/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.AuxDepthStencil (
+  -- * Extension Support
+    gl_APPLE_aux_depth_stencil
+
+  -- * GL_APPLE_aux_depth_stencil
+  , pattern GL_AUX_DEPTH_STENCIL_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/aux_depth_stencil.txt GL_APPLE_aux_depth_stencil> extension is available.
+
+gl_APPLE_aux_depth_stencil :: Bool
+gl_APPLE_aux_depth_stencil = member "GL_APPLE_aux_depth_stencil" extensions
+{-# NOINLINE gl_APPLE_aux_depth_stencil #-}
+
+pattern GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ClientStorage.hs b/generated-src/Graphics/GL/Ext/APPLE/ClientStorage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/ClientStorage.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.ClientStorage (
+  -- * Extension Support
+    gl_APPLE_client_storage
+
+  -- * GL_APPLE_client_storage
+  , pattern GL_UNPACK_CLIENT_STORAGE_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/client_storage.txt GL_APPLE_client_storage> extension is available.
+
+gl_APPLE_client_storage :: Bool
+gl_APPLE_client_storage = member "GL_APPLE_client_storage" extensions
+{-# NOINLINE gl_APPLE_client_storage #-}
+
+pattern GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ClipDistance.hs b/generated-src/Graphics/GL/Ext/APPLE/ClipDistance.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/ClipDistance.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.ClipDistance (
+  -- * Extension Support
+    gl_APPLE_clip_distance
+
+  -- * GL_APPLE_clip_distance
+  , pattern GL_CLIP_DISTANCE0_APPLE
+  , pattern GL_CLIP_DISTANCE1_APPLE
+  , pattern GL_CLIP_DISTANCE2_APPLE
+  , pattern GL_CLIP_DISTANCE3_APPLE
+  , pattern GL_CLIP_DISTANCE4_APPLE
+  , pattern GL_CLIP_DISTANCE5_APPLE
+  , pattern GL_CLIP_DISTANCE6_APPLE
+  , pattern GL_CLIP_DISTANCE7_APPLE
+  , pattern GL_MAX_CLIP_DISTANCES_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_clip_distance.txt GL_APPLE_clip_distance> extension is available.
+
+gl_APPLE_clip_distance :: Bool
+gl_APPLE_clip_distance = member "GL_APPLE_clip_distance" extensions
+{-# NOINLINE gl_APPLE_clip_distance #-}
+
+pattern GL_CLIP_DISTANCE0_APPLE = 0x3000
+
+pattern GL_CLIP_DISTANCE1_APPLE = 0x3001
+
+pattern GL_CLIP_DISTANCE2_APPLE = 0x3002
+
+pattern GL_CLIP_DISTANCE3_APPLE = 0x3003
+
+pattern GL_CLIP_DISTANCE4_APPLE = 0x3004
+
+pattern GL_CLIP_DISTANCE5_APPLE = 0x3005
+
+pattern GL_CLIP_DISTANCE6_APPLE = 0x3006
+
+pattern GL_CLIP_DISTANCE7_APPLE = 0x3007
+
+pattern GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ColorBufferPackedFloat.hs b/generated-src/Graphics/GL/Ext/APPLE/ColorBufferPackedFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/ColorBufferPackedFloat.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.ColorBufferPackedFloat (
+  -- * Extension Support
+    gl_APPLE_color_buffer_packed_float
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_color_buffer_packed_float.txt GL_APPLE_color_buffer_packed_float> extension is available.
+
+gl_APPLE_color_buffer_packed_float :: Bool
+gl_APPLE_color_buffer_packed_float = member "GL_APPLE_color_buffer_packed_float" extensions
+{-# NOINLINE gl_APPLE_color_buffer_packed_float #-}
diff --git a/generated-src/Graphics/GL/Ext/APPLE/CopyTextureLevels.hs b/generated-src/Graphics/GL/Ext/APPLE/CopyTextureLevels.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/CopyTextureLevels.hs
@@ -0,0 +1,34 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.CopyTextureLevels (
+  -- * Extension Support
+    gl_APPLE_copy_texture_levels
+
+  -- * GL_APPLE_copy_texture_levels
+  , glCopyTextureLevelsAPPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_copy_texture_levels.txt GL_APPLE_copy_texture_levels> extension is available.
+
+gl_APPLE_copy_texture_levels :: Bool
+gl_APPLE_copy_texture_levels = member "GL_APPLE_copy_texture_levels" extensions
+{-# NOINLINE gl_APPLE_copy_texture_levels #-}
+
+-- | Usage: @'glCopyTextureLevelsAPPLE' destinationTexture sourceTexture sourceBaseLevel sourceLevelCount@
+
+
+glCopyTextureLevelsAPPLE :: MonadIO m => GLuint -> GLuint -> GLint -> GLsizei -> m ()
+glCopyTextureLevelsAPPLE = ffiuintuintintsizeiIOV glCopyTextureLevelsAPPLEFunPtr
+
+glCopyTextureLevelsAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ())
+glCopyTextureLevelsAPPLEFunPtr = unsafePerformIO (getProcAddress "glCopyTextureLevelsAPPLE")
+
+{-# NOINLINE glCopyTextureLevelsAPPLEFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ElementArray.hs b/generated-src/Graphics/GL/Ext/APPLE/ElementArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/ElementArray.hs
@@ -0,0 +1,111 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.ElementArray (
+  -- * Extension Support
+    gl_APPLE_element_array
+
+  -- * GL_APPLE_element_array
+  , glDrawElementArrayAPPLE
+  , glDrawRangeElementArrayAPPLE
+  , glElementPointerAPPLE
+  , glMultiDrawElementArrayAPPLE
+  , glMultiDrawRangeElementArrayAPPLE
+  , pattern GL_ELEMENT_ARRAY_APPLE
+  , pattern GL_ELEMENT_ARRAY_POINTER_APPLE
+  , pattern GL_ELEMENT_ARRAY_TYPE_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/element_array.txt GL_APPLE_element_array> extension is available.
+
+gl_APPLE_element_array :: Bool
+gl_APPLE_element_array = member "GL_APPLE_element_array" extensions
+{-# NOINLINE gl_APPLE_element_array #-}
+
+-- | Usage: @'glDrawElementArrayAPPLE' mode first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
+glDrawElementArrayAPPLE :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
+glDrawElementArrayAPPLE = ffienumintsizeiIOV glDrawElementArrayAPPLEFunPtr
+
+glDrawElementArrayAPPLEFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+glDrawElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glDrawElementArrayAPPLE")
+
+{-# NOINLINE glDrawElementArrayAPPLEFunPtr #-}
+
+-- | Usage: @'glDrawRangeElementArrayAPPLE' mode start end first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
+glDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
+glDrawRangeElementArrayAPPLE = ffienumuintuintintsizeiIOV glDrawRangeElementArrayAPPLEFunPtr
+
+glDrawRangeElementArrayAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ())
+glDrawRangeElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementArrayAPPLE")
+
+{-# NOINLINE glDrawRangeElementArrayAPPLEFunPtr #-}
+
+-- | Usage: @'glElementPointerAPPLE' type pointer@
+--
+-- The parameter @type@ is a @ElementPointerTypeATI@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type)@.
+
+
+glElementPointerAPPLE :: MonadIO m => GLenum -> Ptr () -> m ()
+glElementPointerAPPLE = ffienumPtrVIOV glElementPointerAPPLEFunPtr
+
+glElementPointerAPPLEFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glElementPointerAPPLEFunPtr = unsafePerformIO (getProcAddress "glElementPointerAPPLE")
+
+{-# NOINLINE glElementPointerAPPLEFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementArrayAPPLE' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @primcount@.
+--
+-- The length of @count@ should be @primcount@.
+
+
+glMultiDrawElementArrayAPPLE :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+glMultiDrawElementArrayAPPLE = ffienumPtrintPtrsizeisizeiIOV glMultiDrawElementArrayAPPLEFunPtr
+
+glMultiDrawElementArrayAPPLEFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+glMultiDrawElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementArrayAPPLE")
+
+{-# NOINLINE glMultiDrawElementArrayAPPLEFunPtr #-}
+
+-- | Usage: @'glMultiDrawRangeElementArrayAPPLE' mode start end first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @primcount@.
+--
+-- The length of @count@ should be @primcount@.
+
+
+glMultiDrawRangeElementArrayAPPLE :: MonadIO m => GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+glMultiDrawRangeElementArrayAPPLE = ffienumuintuintPtrintPtrsizeisizeiIOV glMultiDrawRangeElementArrayAPPLEFunPtr
+
+glMultiDrawRangeElementArrayAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+glMultiDrawRangeElementArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glMultiDrawRangeElementArrayAPPLE")
+
+{-# NOINLINE glMultiDrawRangeElementArrayAPPLEFunPtr #-}
+
+pattern GL_ELEMENT_ARRAY_APPLE = 0x8A0C
+
+pattern GL_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E
+
+pattern GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Fence.hs b/generated-src/Graphics/GL/Ext/APPLE/Fence.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/Fence.hs
@@ -0,0 +1,144 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.Fence (
+  -- * Extension Support
+    gl_APPLE_fence
+
+  -- * GL_APPLE_fence
+  , glDeleteFencesAPPLE
+  , glFinishFenceAPPLE
+  , glFinishObjectAPPLE
+  , glGenFencesAPPLE
+  , glIsFenceAPPLE
+  , glSetFenceAPPLE
+  , glTestFenceAPPLE
+  , glTestObjectAPPLE
+  , pattern GL_DRAW_PIXELS_APPLE
+  , pattern GL_FENCE_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/fence.txt GL_APPLE_fence> extension is available.
+
+gl_APPLE_fence :: Bool
+gl_APPLE_fence = member "GL_APPLE_fence" extensions
+{-# NOINLINE gl_APPLE_fence #-}
+
+-- | Usage: @'glDeleteFencesAPPLE' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
+glDeleteFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFencesAPPLE = ffisizeiPtruintIOV glDeleteFencesAPPLEFunPtr
+
+glDeleteFencesAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFencesAPPLEFunPtr = unsafePerformIO (getProcAddress "glDeleteFencesAPPLE")
+
+{-# NOINLINE glDeleteFencesAPPLEFunPtr #-}
+
+-- | Usage: @'glFinishFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
+glFinishFenceAPPLE :: MonadIO m => GLuint -> m ()
+glFinishFenceAPPLE = ffiuintIOV glFinishFenceAPPLEFunPtr
+
+glFinishFenceAPPLEFunPtr :: FunPtr (GLuint -> IO ())
+glFinishFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glFinishFenceAPPLE")
+
+{-# NOINLINE glFinishFenceAPPLEFunPtr #-}
+
+-- | Usage: @'glFinishObjectAPPLE' object name@
+--
+-- The parameter @object@ is a @ObjectTypeAPPLE@.
+
+
+glFinishObjectAPPLE :: MonadIO m => GLenum -> GLint -> m ()
+glFinishObjectAPPLE = ffienumintIOV glFinishObjectAPPLEFunPtr
+
+glFinishObjectAPPLEFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glFinishObjectAPPLEFunPtr = unsafePerformIO (getProcAddress "glFinishObjectAPPLE")
+
+{-# NOINLINE glFinishObjectAPPLEFunPtr #-}
+
+-- | Usage: @'glGenFencesAPPLE' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
+glGenFencesAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFencesAPPLE = ffisizeiPtruintIOV glGenFencesAPPLEFunPtr
+
+glGenFencesAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFencesAPPLEFunPtr = unsafePerformIO (getProcAddress "glGenFencesAPPLE")
+
+{-# NOINLINE glGenFencesAPPLEFunPtr #-}
+
+-- | Usage: @'glIsFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
+glIsFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
+glIsFenceAPPLE = ffiuintIOboolean glIsFenceAPPLEFunPtr
+
+glIsFenceAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsFenceAPPLE")
+
+{-# NOINLINE glIsFenceAPPLEFunPtr #-}
+
+-- | Usage: @'glSetFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
+glSetFenceAPPLE :: MonadIO m => GLuint -> m ()
+glSetFenceAPPLE = ffiuintIOV glSetFenceAPPLEFunPtr
+
+glSetFenceAPPLEFunPtr :: FunPtr (GLuint -> IO ())
+glSetFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glSetFenceAPPLE")
+
+{-# NOINLINE glSetFenceAPPLEFunPtr #-}
+
+-- | Usage: @'glTestFenceAPPLE' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
+glTestFenceAPPLE :: MonadIO m => GLuint -> m GLboolean
+glTestFenceAPPLE = ffiuintIOboolean glTestFenceAPPLEFunPtr
+
+glTestFenceAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glTestFenceAPPLEFunPtr = unsafePerformIO (getProcAddress "glTestFenceAPPLE")
+
+{-# NOINLINE glTestFenceAPPLEFunPtr #-}
+
+-- | Usage: @'glTestObjectAPPLE' object name@
+--
+-- The parameter @object@ is a @ObjectTypeAPPLE@.
+
+
+glTestObjectAPPLE :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glTestObjectAPPLE = ffienumuintIOboolean glTestObjectAPPLEFunPtr
+
+glTestObjectAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glTestObjectAPPLEFunPtr = unsafePerformIO (getProcAddress "glTestObjectAPPLE")
+
+{-# NOINLINE glTestObjectAPPLEFunPtr #-}
+
+pattern GL_DRAW_PIXELS_APPLE = 0x8A0A
+
+pattern GL_FENCE_APPLE = 0x8A0B
diff --git a/generated-src/Graphics/GL/Ext/APPLE/FloatPixels.hs b/generated-src/Graphics/GL/Ext/APPLE/FloatPixels.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/FloatPixels.hs
@@ -0,0 +1,59 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.FloatPixels (
+  -- * Extension Support
+    gl_APPLE_float_pixels
+
+  -- * GL_APPLE_float_pixels
+  , pattern GL_ALPHA_FLOAT16_APPLE
+  , pattern GL_ALPHA_FLOAT32_APPLE
+  , pattern GL_COLOR_FLOAT_APPLE
+  , pattern GL_HALF_APPLE
+  , pattern GL_INTENSITY_FLOAT16_APPLE
+  , pattern GL_INTENSITY_FLOAT32_APPLE
+  , pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE
+  , pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE
+  , pattern GL_LUMINANCE_FLOAT16_APPLE
+  , pattern GL_LUMINANCE_FLOAT32_APPLE
+  , pattern GL_RGBA_FLOAT16_APPLE
+  , pattern GL_RGBA_FLOAT32_APPLE
+  , pattern GL_RGB_FLOAT16_APPLE
+  , pattern GL_RGB_FLOAT32_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/float_pixels.txt GL_APPLE_float_pixels> extension is available.
+
+gl_APPLE_float_pixels :: Bool
+gl_APPLE_float_pixels = member "GL_APPLE_float_pixels" extensions
+{-# NOINLINE gl_APPLE_float_pixels #-}
+
+pattern GL_ALPHA_FLOAT16_APPLE = 0x881C
+
+pattern GL_ALPHA_FLOAT32_APPLE = 0x8816
+
+pattern GL_COLOR_FLOAT_APPLE = 0x8A0F
+
+pattern GL_HALF_APPLE = 0x140B
+
+pattern GL_INTENSITY_FLOAT16_APPLE = 0x881D
+
+pattern GL_INTENSITY_FLOAT32_APPLE = 0x8817
+
+pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F
+
+pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819
+
+pattern GL_LUMINANCE_FLOAT16_APPLE = 0x881E
+
+pattern GL_LUMINANCE_FLOAT32_APPLE = 0x8818
+
+pattern GL_RGBA_FLOAT16_APPLE = 0x881A
+
+pattern GL_RGBA_FLOAT32_APPLE = 0x8814
+
+pattern GL_RGB_FLOAT16_APPLE = 0x881B
+
+pattern GL_RGB_FLOAT32_APPLE = 0x8815
diff --git a/generated-src/Graphics/GL/Ext/APPLE/FlushBufferRange.hs b/generated-src/Graphics/GL/Ext/APPLE/FlushBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/FlushBufferRange.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.FlushBufferRange (
+  -- * Extension Support
+    gl_APPLE_flush_buffer_range
+
+  -- * GL_APPLE_flush_buffer_range
+  , glBufferParameteriAPPLE
+  , glFlushMappedBufferRangeAPPLE
+  , pattern GL_BUFFER_FLUSHING_UNMAP_APPLE
+  , pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/flush_buffer_range.txt GL_APPLE_flush_buffer_range> extension is available.
+
+gl_APPLE_flush_buffer_range :: Bool
+gl_APPLE_flush_buffer_range = member "GL_APPLE_flush_buffer_range" extensions
+{-# NOINLINE gl_APPLE_flush_buffer_range #-}
+
+-- | Usage: @'glBufferParameteriAPPLE' target pname param@
+
+
+glBufferParameteriAPPLE :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glBufferParameteriAPPLE = ffienumenumintIOV glBufferParameteriAPPLEFunPtr
+
+glBufferParameteriAPPLEFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glBufferParameteriAPPLEFunPtr = unsafePerformIO (getProcAddress "glBufferParameteriAPPLE")
+
+{-# NOINLINE glBufferParameteriAPPLEFunPtr #-}
+
+-- | Usage: @'glFlushMappedBufferRangeAPPLE' target offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFlushMappedBufferRange'.
+
+
+glFlushMappedBufferRangeAPPLE :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedBufferRangeAPPLE = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeAPPLEFunPtr
+
+glFlushMappedBufferRangeAPPLEFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedBufferRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRangeAPPLE")
+
+{-# NOINLINE glFlushMappedBufferRangeAPPLEFunPtr #-}
+
+pattern GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13
+
+pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12
diff --git a/generated-src/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs b/generated-src/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs
@@ -0,0 +1,67 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.FramebufferMultisample (
+  -- * Extension Support
+    gl_APPLE_framebuffer_multisample
+
+  -- * GL_APPLE_framebuffer_multisample
+  , glRenderbufferStorageMultisampleAPPLE
+  , glResolveMultisampleFramebufferAPPLE
+  , pattern GL_DRAW_FRAMEBUFFER_APPLE
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE
+  , pattern GL_MAX_SAMPLES_APPLE
+  , pattern GL_READ_FRAMEBUFFER_APPLE
+  , pattern GL_READ_FRAMEBUFFER_BINDING_APPLE
+  , pattern GL_RENDERBUFFER_SAMPLES_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_framebuffer_multisample.txt GL_APPLE_framebuffer_multisample> extension is available.
+
+gl_APPLE_framebuffer_multisample :: Bool
+gl_APPLE_framebuffer_multisample = member "GL_APPLE_framebuffer_multisample" extensions
+{-# NOINLINE gl_APPLE_framebuffer_multisample #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleAPPLE' target samples internalformat width height@
+
+
+glRenderbufferStorageMultisampleAPPLE :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleAPPLE = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleAPPLEFunPtr
+
+glRenderbufferStorageMultisampleAPPLEFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleAPPLEFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleAPPLE")
+
+{-# NOINLINE glRenderbufferStorageMultisampleAPPLEFunPtr #-}
+
+-- | Usage: @'glResolveMultisampleFramebufferAPPLE'@
+
+
+glResolveMultisampleFramebufferAPPLE :: MonadIO m => m ()
+glResolveMultisampleFramebufferAPPLE = ffiIOV glResolveMultisampleFramebufferAPPLEFunPtr
+
+glResolveMultisampleFramebufferAPPLEFunPtr :: FunPtr (IO ())
+glResolveMultisampleFramebufferAPPLEFunPtr = unsafePerformIO (getProcAddress "glResolveMultisampleFramebufferAPPLE")
+
+{-# NOINLINE glResolveMultisampleFramebufferAPPLEFunPtr #-}
+
+pattern GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56
+
+pattern GL_MAX_SAMPLES_APPLE = 0x8D57
+
+pattern GL_READ_FRAMEBUFFER_APPLE = 0x8CA8
+
+pattern GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA
+
+pattern GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs b/generated-src/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs
@@ -0,0 +1,78 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.ObjectPurgeable (
+  -- * Extension Support
+    gl_APPLE_object_purgeable
+
+  -- * GL_APPLE_object_purgeable
+  , glGetObjectParameterivAPPLE
+  , glObjectPurgeableAPPLE
+  , glObjectUnpurgeableAPPLE
+  , pattern GL_BUFFER_OBJECT_APPLE
+  , pattern GL_PURGEABLE_APPLE
+  , pattern GL_RELEASED_APPLE
+  , pattern GL_RETAINED_APPLE
+  , pattern GL_UNDEFINED_APPLE
+  , pattern GL_VOLATILE_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/object_purgeable.txt GL_APPLE_object_purgeable> extension is available.
+
+gl_APPLE_object_purgeable :: Bool
+gl_APPLE_object_purgeable = member "GL_APPLE_object_purgeable" extensions
+{-# NOINLINE gl_APPLE_object_purgeable #-}
+
+-- | Usage: @'glGetObjectParameterivAPPLE' objectType name pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetObjectParameterivAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetObjectParameterivAPPLE = ffienumuintenumPtrintIOV glGetObjectParameterivAPPLEFunPtr
+
+glGetObjectParameterivAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetObjectParameterivAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterivAPPLE")
+
+{-# NOINLINE glGetObjectParameterivAPPLEFunPtr #-}
+
+-- | Usage: @'glObjectPurgeableAPPLE' objectType name option@
+
+
+glObjectPurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
+glObjectPurgeableAPPLE = ffienumuintenumIOenum glObjectPurgeableAPPLEFunPtr
+
+glObjectPurgeableAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum)
+glObjectPurgeableAPPLEFunPtr = unsafePerformIO (getProcAddress "glObjectPurgeableAPPLE")
+
+{-# NOINLINE glObjectPurgeableAPPLEFunPtr #-}
+
+-- | Usage: @'glObjectUnpurgeableAPPLE' objectType name option@
+
+
+glObjectUnpurgeableAPPLE :: MonadIO m => GLenum -> GLuint -> GLenum -> m GLenum
+glObjectUnpurgeableAPPLE = ffienumuintenumIOenum glObjectUnpurgeableAPPLEFunPtr
+
+glObjectUnpurgeableAPPLEFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum)
+glObjectUnpurgeableAPPLEFunPtr = unsafePerformIO (getProcAddress "glObjectUnpurgeableAPPLE")
+
+{-# NOINLINE glObjectUnpurgeableAPPLEFunPtr #-}
+
+pattern GL_BUFFER_OBJECT_APPLE = 0x85B3
+
+pattern GL_PURGEABLE_APPLE = 0x8A1D
+
+pattern GL_RELEASED_APPLE = 0x8A19
+
+pattern GL_RETAINED_APPLE = 0x8A1B
+
+pattern GL_UNDEFINED_APPLE = 0x8A1C
+
+pattern GL_VOLATILE_APPLE = 0x8A1A
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Rgb422.hs b/generated-src/Graphics/GL/Ext/APPLE/Rgb422.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/Rgb422.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.Rgb422 (
+  -- * Extension Support
+    gl_APPLE_rgb_422
+
+  -- * GL_APPLE_rgb_422
+  , pattern GL_RGB_422_APPLE
+  , pattern GL_RGB_RAW_422_APPLE
+  , pattern GL_UNSIGNED_SHORT_8_8_APPLE
+  , pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_rgb_422.txt GL_APPLE_rgb_422> extension is available.
+
+gl_APPLE_rgb_422 :: Bool
+gl_APPLE_rgb_422 = member "GL_APPLE_rgb_422" extensions
+{-# NOINLINE gl_APPLE_rgb_422 #-}
+
+pattern GL_RGB_422_APPLE = 0x8A1F
+
+pattern GL_RGB_RAW_422_APPLE = 0x8A51
diff --git a/generated-src/Graphics/GL/Ext/APPLE/RowBytes.hs b/generated-src/Graphics/GL/Ext/APPLE/RowBytes.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/RowBytes.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.RowBytes (
+  -- * Extension Support
+    gl_APPLE_row_bytes
+
+  -- * GL_APPLE_row_bytes
+  , pattern GL_PACK_ROW_BYTES_APPLE
+  , pattern GL_UNPACK_ROW_BYTES_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/row_bytes.txt GL_APPLE_row_bytes> extension is available.
+
+gl_APPLE_row_bytes :: Bool
+gl_APPLE_row_bytes = member "GL_APPLE_row_bytes" extensions
+{-# NOINLINE gl_APPLE_row_bytes #-}
+
+pattern GL_PACK_ROW_BYTES_APPLE = 0x8A15
+
+pattern GL_UNPACK_ROW_BYTES_APPLE = 0x8A16
diff --git a/generated-src/Graphics/GL/Ext/APPLE/SpecularVector.hs b/generated-src/Graphics/GL/Ext/APPLE/SpecularVector.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/SpecularVector.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.SpecularVector (
+  -- * Extension Support
+    gl_APPLE_specular_vector
+
+  -- * GL_APPLE_specular_vector
+  , pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/specular_vector.txt GL_APPLE_specular_vector> extension is available.
+
+gl_APPLE_specular_vector :: Bool
+gl_APPLE_specular_vector = member "GL_APPLE_specular_vector" extensions
+{-# NOINLINE gl_APPLE_specular_vector #-}
+
+pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Sync.hs b/generated-src/Graphics/GL/Ext/APPLE/Sync.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/Sync.hs
@@ -0,0 +1,170 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.Sync (
+  -- * Extension Support
+    gl_APPLE_sync
+
+  -- * GL_APPLE_sync
+  , glClientWaitSyncAPPLE
+  , glDeleteSyncAPPLE
+  , glFenceSyncAPPLE
+  , glGetInteger64vAPPLE
+  , glGetSyncivAPPLE
+  , glIsSyncAPPLE
+  , glWaitSyncAPPLE
+  , pattern GL_ALREADY_SIGNALED_APPLE
+  , pattern GL_CONDITION_SATISFIED_APPLE
+  , pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE
+  , pattern GL_OBJECT_TYPE_APPLE
+  , pattern GL_SIGNALED_APPLE
+  , pattern GL_SYNC_CONDITION_APPLE
+  , pattern GL_SYNC_FENCE_APPLE
+  , pattern GL_SYNC_FLAGS_APPLE
+  , pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE
+  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE
+  , pattern GL_SYNC_OBJECT_APPLE
+  , pattern GL_SYNC_STATUS_APPLE
+  , pattern GL_TIMEOUT_EXPIRED_APPLE
+  , pattern GL_TIMEOUT_IGNORED_APPLE
+  , pattern GL_UNSIGNALED_APPLE
+  , pattern GL_WAIT_FAILED_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt GL_APPLE_sync> extension is available.
+
+gl_APPLE_sync :: Bool
+gl_APPLE_sync = member "GL_APPLE_sync" extensions
+{-# NOINLINE gl_APPLE_sync #-}
+
+-- | Usage: @'glClientWaitSyncAPPLE' sync flags timeout@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glClientWaitSync'.
+
+
+glClientWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
+glClientWaitSyncAPPLE = ffisyncbitfielduint64IOenum glClientWaitSyncAPPLEFunPtr
+
+glClientWaitSyncAPPLEFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+glClientWaitSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glClientWaitSyncAPPLE")
+
+{-# NOINLINE glClientWaitSyncAPPLEFunPtr #-}
+
+-- | Usage: @'glDeleteSyncAPPLE' sync@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteSync'.
+
+
+glDeleteSyncAPPLE :: MonadIO m => GLsync -> m ()
+glDeleteSyncAPPLE = ffisyncIOV glDeleteSyncAPPLEFunPtr
+
+glDeleteSyncAPPLEFunPtr :: FunPtr (GLsync -> IO ())
+glDeleteSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glDeleteSyncAPPLE")
+
+{-# NOINLINE glDeleteSyncAPPLEFunPtr #-}
+
+-- | Usage: @'glFenceSyncAPPLE' condition flags@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFenceSync'.
+
+
+glFenceSyncAPPLE :: MonadIO m => GLenum -> GLbitfield -> m GLsync
+glFenceSyncAPPLE = ffienumbitfieldIOsync glFenceSyncAPPLEFunPtr
+
+glFenceSyncAPPLEFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+glFenceSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glFenceSyncAPPLE")
+
+{-# NOINLINE glFenceSyncAPPLEFunPtr #-}
+
+-- | Usage: @'glGetInteger64vAPPLE' pname params@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetInteger64v'.
+
+
+glGetInteger64vAPPLE :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
+glGetInteger64vAPPLE = ffienumPtrint64IOV glGetInteger64vAPPLEFunPtr
+
+glGetInteger64vAPPLEFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+glGetInteger64vAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetInteger64vAPPLE")
+
+{-# NOINLINE glGetInteger64vAPPLEFunPtr #-}
+
+-- | Usage: @'glGetSyncivAPPLE' sync pname bufSize length values@
+--
+-- The length of @values@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSynciv'.
+
+
+glGetSyncivAPPLE :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetSyncivAPPLE = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivAPPLEFunPtr
+
+glGetSyncivAPPLEFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetSyncivAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetSyncivAPPLE")
+
+{-# NOINLINE glGetSyncivAPPLEFunPtr #-}
+
+-- | Usage: @'glIsSyncAPPLE' sync@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsSync'.
+
+
+glIsSyncAPPLE :: MonadIO m => GLsync -> m GLboolean
+glIsSyncAPPLE = ffisyncIOboolean glIsSyncAPPLEFunPtr
+
+glIsSyncAPPLEFunPtr :: FunPtr (GLsync -> IO GLboolean)
+glIsSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsSyncAPPLE")
+
+{-# NOINLINE glIsSyncAPPLEFunPtr #-}
+
+-- | Usage: @'glWaitSyncAPPLE' sync flags timeout@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWaitSync'.
+
+
+glWaitSyncAPPLE :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
+glWaitSyncAPPLE = ffisyncbitfielduint64IOV glWaitSyncAPPLEFunPtr
+
+glWaitSyncAPPLEFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+glWaitSyncAPPLEFunPtr = unsafePerformIO (getProcAddress "glWaitSyncAPPLE")
+
+{-# NOINLINE glWaitSyncAPPLEFunPtr #-}
+
+pattern GL_ALREADY_SIGNALED_APPLE = 0x911A
+
+pattern GL_CONDITION_SATISFIED_APPLE = 0x911C
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111
+
+pattern GL_OBJECT_TYPE_APPLE = 0x9112
+
+pattern GL_SIGNALED_APPLE = 0x9119
+
+pattern GL_SYNC_CONDITION_APPLE = 0x9113
+
+pattern GL_SYNC_FENCE_APPLE = 0x9116
+
+pattern GL_SYNC_FLAGS_APPLE = 0x9115
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117
+
+pattern GL_SYNC_OBJECT_APPLE = 0x8A53
+
+pattern GL_SYNC_STATUS_APPLE = 0x9114
+
+pattern GL_TIMEOUT_EXPIRED_APPLE = 0x911B
+
+pattern GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF
+
+pattern GL_UNSIGNALED_APPLE = 0x9118
+
+pattern GL_WAIT_FAILED_APPLE = 0x911D
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Texture2DLimitedNpot.hs b/generated-src/Graphics/GL/Ext/APPLE/Texture2DLimitedNpot.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/Texture2DLimitedNpot.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.Texture2DLimitedNpot (
+  -- * Extension Support
+    gl_APPLE_texture_2D_limited_npot
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_2D_limited_npot.txt GL_APPLE_texture_2D_limited_npot> extension is available.
+
+gl_APPLE_texture_2D_limited_npot :: Bool
+gl_APPLE_texture_2D_limited_npot = member "GL_APPLE_texture_2D_limited_npot" extensions
+{-# NOINLINE gl_APPLE_texture_2D_limited_npot #-}
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TextureFormatBGRA8888.hs b/generated-src/Graphics/GL/Ext/APPLE/TextureFormatBGRA8888.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/TextureFormatBGRA8888.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.TextureFormatBGRA8888 (
+  -- * Extension Support
+    gl_APPLE_texture_format_BGRA8888
+
+  -- * GL_APPLE_texture_format_BGRA8888
+  , pattern GL_BGRA8_EXT
+  , pattern GL_BGRA_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_format_BGRA8888.txt GL_APPLE_texture_format_BGRA8888> extension is available.
+
+gl_APPLE_texture_format_BGRA8888 :: Bool
+gl_APPLE_texture_format_BGRA8888 = member "GL_APPLE_texture_format_BGRA8888" extensions
+{-# NOINLINE gl_APPLE_texture_format_BGRA8888 #-}
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs b/generated-src/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.TextureMaxLevel (
+  -- * Extension Support
+    gl_APPLE_texture_max_level
+
+  -- * GL_APPLE_texture_max_level
+  , pattern GL_TEXTURE_MAX_LEVEL_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_max_level.txt GL_APPLE_texture_max_level> extension is available.
+
+gl_APPLE_texture_max_level :: Bool
+gl_APPLE_texture_max_level = member "GL_APPLE_texture_max_level" extensions
+{-# NOINLINE gl_APPLE_texture_max_level #-}
+
+pattern GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs b/generated-src/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.TexturePackedFloat (
+  -- * Extension Support
+    gl_APPLE_texture_packed_float
+
+  -- * GL_APPLE_texture_packed_float
+  , pattern GL_R11F_G11F_B10F_APPLE
+  , pattern GL_RGB9_E5_APPLE
+  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE
+  , pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_texture_packed_float.txt GL_APPLE_texture_packed_float> extension is available.
+
+gl_APPLE_texture_packed_float :: Bool
+gl_APPLE_texture_packed_float = member "GL_APPLE_texture_packed_float" extensions
+{-# NOINLINE gl_APPLE_texture_packed_float #-}
+
+pattern GL_R11F_G11F_B10F_APPLE = 0x8C3A
+
+pattern GL_RGB9_E5_APPLE = 0x8C3D
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TextureRange.hs b/generated-src/Graphics/GL/Ext/APPLE/TextureRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/TextureRange.hs
@@ -0,0 +1,65 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.TextureRange (
+  -- * Extension Support
+    gl_APPLE_texture_range
+
+  -- * GL_APPLE_texture_range
+  , glGetTexParameterPointervAPPLE
+  , glTextureRangeAPPLE
+  , pattern GL_STORAGE_CACHED_APPLE
+  , pattern GL_STORAGE_PRIVATE_APPLE
+  , pattern GL_STORAGE_SHARED_APPLE
+  , pattern GL_TEXTURE_RANGE_LENGTH_APPLE
+  , pattern GL_TEXTURE_RANGE_POINTER_APPLE
+  , pattern GL_TEXTURE_STORAGE_HINT_APPLE
+) 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/APPLE/texture_range.txt GL_APPLE_texture_range> extension is available.
+
+gl_APPLE_texture_range :: Bool
+gl_APPLE_texture_range = member "GL_APPLE_texture_range" extensions
+{-# NOINLINE gl_APPLE_texture_range #-}
+
+-- | Usage: @'glGetTexParameterPointervAPPLE' target pname params@
+--
+-- The length of @params@ should be @1@.
+
+
+glGetTexParameterPointervAPPLE :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetTexParameterPointervAPPLE = ffienumenumPtrPtrVIOV glGetTexParameterPointervAPPLEFunPtr
+
+glGetTexParameterPointervAPPLEFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetTexParameterPointervAPPLEFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterPointervAPPLE")
+
+{-# NOINLINE glGetTexParameterPointervAPPLEFunPtr #-}
+
+-- | Usage: @'glTextureRangeAPPLE' target length pointer@
+--
+-- The length of @pointer@ should be @length@.
+
+
+glTextureRangeAPPLE :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glTextureRangeAPPLE = ffienumsizeiPtrVIOV glTextureRangeAPPLEFunPtr
+
+glTextureRangeAPPLEFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glTextureRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glTextureRangeAPPLE")
+
+{-# NOINLINE glTextureRangeAPPLEFunPtr #-}
+
+pattern GL_STORAGE_PRIVATE_APPLE = 0x85BD
+
+pattern GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7
+
+pattern GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8
+
+pattern GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TransformHint.hs b/generated-src/Graphics/GL/Ext/APPLE/TransformHint.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/TransformHint.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.TransformHint (
+  -- * Extension Support
+    gl_APPLE_transform_hint
+
+  -- * GL_APPLE_transform_hint
+  , pattern GL_TRANSFORM_HINT_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/transform_hint.txt GL_APPLE_transform_hint> extension is available.
+
+gl_APPLE_transform_hint :: Bool
+gl_APPLE_transform_hint = member "GL_APPLE_transform_hint" extensions
+{-# NOINLINE gl_APPLE_transform_hint #-}
+
+pattern GL_TRANSFORM_HINT_APPLE = 0x85B1
diff --git a/generated-src/Graphics/GL/Ext/APPLE/VertexArrayObject.hs b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayObject.hs
@@ -0,0 +1,83 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.VertexArrayObject (
+  -- * Extension Support
+    gl_APPLE_vertex_array_object
+
+  -- * GL_APPLE_vertex_array_object
+  , glBindVertexArrayAPPLE
+  , glDeleteVertexArraysAPPLE
+  , glGenVertexArraysAPPLE
+  , glIsVertexArrayAPPLE
+  , pattern GL_VERTEX_ARRAY_BINDING_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_array_object.txt GL_APPLE_vertex_array_object> extension is available.
+
+gl_APPLE_vertex_array_object :: Bool
+gl_APPLE_vertex_array_object = member "GL_APPLE_vertex_array_object" extensions
+{-# NOINLINE gl_APPLE_vertex_array_object #-}
+
+-- | Usage: @'glBindVertexArrayAPPLE' array@
+
+
+glBindVertexArrayAPPLE :: MonadIO m => GLuint -> m ()
+glBindVertexArrayAPPLE = ffiuintIOV glBindVertexArrayAPPLEFunPtr
+
+glBindVertexArrayAPPLEFunPtr :: FunPtr (GLuint -> IO ())
+glBindVertexArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glBindVertexArrayAPPLE")
+
+{-# NOINLINE glBindVertexArrayAPPLEFunPtr #-}
+
+-- | Usage: @'glDeleteVertexArraysAPPLE' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteVertexArrays'.
+
+
+glDeleteVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteVertexArraysAPPLE = ffisizeiPtruintIOV glDeleteVertexArraysAPPLEFunPtr
+
+glDeleteVertexArraysAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteVertexArraysAPPLEFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArraysAPPLE")
+
+{-# NOINLINE glDeleteVertexArraysAPPLEFunPtr #-}
+
+-- | Usage: @'glGenVertexArraysAPPLE' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenVertexArrays'.
+
+
+glGenVertexArraysAPPLE :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenVertexArraysAPPLE = ffisizeiPtruintIOV glGenVertexArraysAPPLEFunPtr
+
+glGenVertexArraysAPPLEFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenVertexArraysAPPLEFunPtr = unsafePerformIO (getProcAddress "glGenVertexArraysAPPLE")
+
+{-# NOINLINE glGenVertexArraysAPPLEFunPtr #-}
+
+-- | Usage: @'glIsVertexArrayAPPLE' array@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsVertexArray'.
+
+
+glIsVertexArrayAPPLE :: MonadIO m => GLuint -> m GLboolean
+glIsVertexArrayAPPLE = ffiuintIOboolean glIsVertexArrayAPPLEFunPtr
+
+glIsVertexArrayAPPLEFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsVertexArrayAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsVertexArrayAPPLE")
+
+{-# NOINLINE glIsVertexArrayAPPLEFunPtr #-}
+
+pattern GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5
diff --git a/generated-src/Graphics/GL/Ext/APPLE/VertexArrayRange.hs b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayRange.hs
@@ -0,0 +1,82 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.VertexArrayRange (
+  -- * Extension Support
+    gl_APPLE_vertex_array_range
+
+  -- * GL_APPLE_vertex_array_range
+  , glFlushVertexArrayRangeAPPLE
+  , glVertexArrayParameteriAPPLE
+  , glVertexArrayRangeAPPLE
+  , pattern GL_STORAGE_CACHED_APPLE
+  , pattern GL_STORAGE_CLIENT_APPLE
+  , pattern GL_STORAGE_SHARED_APPLE
+  , pattern GL_VERTEX_ARRAY_RANGE_APPLE
+  , pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE
+  , pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE
+  , pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE
+) 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/APPLE/vertex_array_range.txt GL_APPLE_vertex_array_range> extension is available.
+
+gl_APPLE_vertex_array_range :: Bool
+gl_APPLE_vertex_array_range = member "GL_APPLE_vertex_array_range" extensions
+{-# NOINLINE gl_APPLE_vertex_array_range #-}
+
+-- | Usage: @'glFlushVertexArrayRangeAPPLE' length pointer@
+--
+-- The length of @pointer@ should be @length@.
+
+
+glFlushVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()
+glFlushVertexArrayRangeAPPLE = ffisizeiPtrVIOV glFlushVertexArrayRangeAPPLEFunPtr
+
+glFlushVertexArrayRangeAPPLEFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
+glFlushVertexArrayRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glFlushVertexArrayRangeAPPLE")
+
+{-# NOINLINE glFlushVertexArrayRangeAPPLEFunPtr #-}
+
+-- | Usage: @'glVertexArrayParameteriAPPLE' pname param@
+--
+-- The parameter @pname@ is a @VertexArrayPNameAPPLE@.
+
+
+glVertexArrayParameteriAPPLE :: MonadIO m => GLenum -> GLint -> m ()
+glVertexArrayParameteriAPPLE = ffienumintIOV glVertexArrayParameteriAPPLEFunPtr
+
+glVertexArrayParameteriAPPLEFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glVertexArrayParameteriAPPLEFunPtr = unsafePerformIO (getProcAddress "glVertexArrayParameteriAPPLE")
+
+{-# NOINLINE glVertexArrayParameteriAPPLEFunPtr #-}
+
+-- | Usage: @'glVertexArrayRangeAPPLE' length pointer@
+--
+-- The length of @pointer@ should be @length@.
+
+
+glVertexArrayRangeAPPLE :: MonadIO m => GLsizei -> Ptr () -> m ()
+glVertexArrayRangeAPPLE = ffisizeiPtrVIOV glVertexArrayRangeAPPLEFunPtr
+
+glVertexArrayRangeAPPLEFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
+glVertexArrayRangeAPPLEFunPtr = unsafePerformIO (getProcAddress "glVertexArrayRangeAPPLE")
+
+{-# NOINLINE glVertexArrayRangeAPPLEFunPtr #-}
+
+pattern GL_STORAGE_CLIENT_APPLE = 0x85B4
+
+pattern GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D
+
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E
+
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521
+
+pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F
diff --git a/generated-src/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs b/generated-src/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs
@@ -0,0 +1,188 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.VertexProgramEvaluators (
+  -- * Extension Support
+    gl_APPLE_vertex_program_evaluators
+
+  -- * GL_APPLE_vertex_program_evaluators
+  , glDisableVertexAttribAPPLE
+  , glEnableVertexAttribAPPLE
+  , glIsVertexAttribEnabledAPPLE
+  , glMapVertexAttrib1dAPPLE
+  , glMapVertexAttrib1fAPPLE
+  , glMapVertexAttrib2dAPPLE
+  , glMapVertexAttrib2fAPPLE
+  , pattern GL_VERTEX_ATTRIB_MAP1_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP2_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE
+  , pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/vertex_program_evaluators.txt GL_APPLE_vertex_program_evaluators> extension is available.
+
+gl_APPLE_vertex_program_evaluators :: Bool
+gl_APPLE_vertex_program_evaluators = member "GL_APPLE_vertex_program_evaluators" extensions
+{-# NOINLINE gl_APPLE_vertex_program_evaluators #-}
+
+-- | Usage: @'glDisableVertexAttribAPPLE' index pname@
+
+
+glDisableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
+glDisableVertexAttribAPPLE = ffiuintenumIOV glDisableVertexAttribAPPLEFunPtr
+
+glDisableVertexAttribAPPLEFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glDisableVertexAttribAPPLEFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribAPPLE")
+
+{-# NOINLINE glDisableVertexAttribAPPLEFunPtr #-}
+
+-- | Usage: @'glEnableVertexAttribAPPLE' index pname@
+
+
+glEnableVertexAttribAPPLE :: MonadIO m => GLuint -> GLenum -> m ()
+glEnableVertexAttribAPPLE = ffiuintenumIOV glEnableVertexAttribAPPLEFunPtr
+
+glEnableVertexAttribAPPLEFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glEnableVertexAttribAPPLEFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribAPPLE")
+
+{-# NOINLINE glEnableVertexAttribAPPLEFunPtr #-}
+
+-- | Usage: @'glIsVertexAttribEnabledAPPLE' index pname@
+
+
+glIsVertexAttribEnabledAPPLE :: MonadIO m => GLuint -> GLenum -> m GLboolean
+glIsVertexAttribEnabledAPPLE = ffiuintenumIOboolean glIsVertexAttribEnabledAPPLEFunPtr
+
+glIsVertexAttribEnabledAPPLEFunPtr :: FunPtr (GLuint -> GLenum -> IO GLboolean)
+glIsVertexAttribEnabledAPPLEFunPtr = unsafePerformIO (getProcAddress "glIsVertexAttribEnabledAPPLE")
+
+{-# NOINLINE glIsVertexAttribEnabledAPPLEFunPtr #-}
+
+-- | Usage: @'glMapVertexAttrib1dAPPLE' index size u1 u2 stride order points@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(size,stride,order)@.
+
+
+glMapVertexAttrib1dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMapVertexAttrib1dAPPLE = ffiuintuintdoubledoubleintintPtrdoubleIOV glMapVertexAttrib1dAPPLEFunPtr
+
+glMapVertexAttrib1dAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMapVertexAttrib1dAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib1dAPPLE")
+
+{-# NOINLINE glMapVertexAttrib1dAPPLEFunPtr #-}
+
+-- | Usage: @'glMapVertexAttrib1fAPPLE' index size u1 u2 stride order points@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(size,stride,order)@.
+
+
+glMapVertexAttrib1fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMapVertexAttrib1fAPPLE = ffiuintuintfloatfloatintintPtrfloatIOV glMapVertexAttrib1fAPPLEFunPtr
+
+glMapVertexAttrib1fAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMapVertexAttrib1fAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib1fAPPLE")
+
+{-# NOINLINE glMapVertexAttrib1fAPPLEFunPtr #-}
+
+-- | Usage: @'glMapVertexAttrib2dAPPLE' index size u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(size,ustride,uorder,vstride,vorder)@.
+
+
+glMapVertexAttrib2dAPPLE :: MonadIO m => GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMapVertexAttrib2dAPPLE = ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMapVertexAttrib2dAPPLEFunPtr
+
+glMapVertexAttrib2dAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMapVertexAttrib2dAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib2dAPPLE")
+
+{-# NOINLINE glMapVertexAttrib2dAPPLEFunPtr #-}
+
+-- | Usage: @'glMapVertexAttrib2fAPPLE' index size u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(size,ustride,uorder,vstride,vorder)@.
+
+
+glMapVertexAttrib2fAPPLE :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMapVertexAttrib2fAPPLE = ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV glMapVertexAttrib2fAPPLEFunPtr
+
+glMapVertexAttrib2fAPPLEFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMapVertexAttrib2fAPPLEFunPtr = unsafePerformIO (getProcAddress "glMapVertexAttrib2fAPPLE")
+
+{-# NOINLINE glMapVertexAttrib2fAPPLEFunPtr #-}
+
+pattern GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00
+
+pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03
+
+pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05
+
+pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04
+
+pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02
+
+pattern GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01
+
+pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07
+
+pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09
+
+pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08
+
+pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Ycbcr422.hs b/generated-src/Graphics/GL/Ext/APPLE/Ycbcr422.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/APPLE/Ycbcr422.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.APPLE.Ycbcr422 (
+  -- * Extension Support
+    gl_APPLE_ycbcr_422
+
+  -- * GL_APPLE_ycbcr_422
+  , pattern GL_UNSIGNED_SHORT_8_8_APPLE
+  , pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE
+  , pattern GL_YCBCR_422_APPLE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/APPLE/ycbcr_422.txt GL_APPLE_ycbcr_422> extension is available.
+
+gl_APPLE_ycbcr_422 :: Bool
+gl_APPLE_ycbcr_422 = member "GL_APPLE_ycbcr_422" extensions
+{-# NOINLINE gl_APPLE_ycbcr_422 #-}
+
+pattern GL_YCBCR_422_APPLE = 0x85B9
diff --git a/generated-src/Graphics/GL/Ext/ARB.hs b/generated-src/Graphics/GL/Ext/ARB.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB.hs
@@ -0,0 +1,340 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB (
+  -- * ARB Extensions
+    module Graphics.GL.Ext.ARB.ArraysOfArrays
+  , module Graphics.GL.Ext.ARB.BaseInstance
+  , module Graphics.GL.Ext.ARB.BindlessTexture
+  , module Graphics.GL.Ext.ARB.BlendFuncExtended
+  , module Graphics.GL.Ext.ARB.BufferStorage
+  , module Graphics.GL.Ext.ARB.ClEvent
+  , module Graphics.GL.Ext.ARB.ClearBufferObject
+  , module Graphics.GL.Ext.ARB.ClearTexture
+  , module Graphics.GL.Ext.ARB.ClipControl
+  , module Graphics.GL.Ext.ARB.ColorBufferFloat
+  , module Graphics.GL.Ext.ARB.Compatibility
+  , module Graphics.GL.Ext.ARB.CompressedTexturePixelStorage
+  , module Graphics.GL.Ext.ARB.ComputeShader
+  , module Graphics.GL.Ext.ARB.ComputeVariableGroupSize
+  , module Graphics.GL.Ext.ARB.ConditionalRenderInverted
+  , module Graphics.GL.Ext.ARB.ConservativeDepth
+  , module Graphics.GL.Ext.ARB.CopyBuffer
+  , module Graphics.GL.Ext.ARB.CopyImage
+  , module Graphics.GL.Ext.ARB.CullDistance
+  , module Graphics.GL.Ext.ARB.DebugOutput
+  , module Graphics.GL.Ext.ARB.DepthBufferFloat
+  , module Graphics.GL.Ext.ARB.DepthClamp
+  , module Graphics.GL.Ext.ARB.DepthTexture
+  , module Graphics.GL.Ext.ARB.DerivativeControl
+  , module Graphics.GL.Ext.ARB.DirectStateAccess
+  , module Graphics.GL.Ext.ARB.DrawBuffers
+  , module Graphics.GL.Ext.ARB.DrawBuffersBlend
+  , module Graphics.GL.Ext.ARB.DrawElementsBaseVertex
+  , module Graphics.GL.Ext.ARB.DrawIndirect
+  , module Graphics.GL.Ext.ARB.DrawInstanced
+  , module Graphics.GL.Ext.ARB.ES2Compatibility
+  , module Graphics.GL.Ext.ARB.ES31Compatibility
+  , module Graphics.GL.Ext.ARB.ES32Compatibility
+  , module Graphics.GL.Ext.ARB.ES3Compatibility
+  , module Graphics.GL.Ext.ARB.EnhancedLayouts
+  , module Graphics.GL.Ext.ARB.ExplicitAttribLocation
+  , module Graphics.GL.Ext.ARB.ExplicitUniformLocation
+  , module Graphics.GL.Ext.ARB.FragmentCoordConventions
+  , module Graphics.GL.Ext.ARB.FragmentLayerViewport
+  , module Graphics.GL.Ext.ARB.FragmentProgram
+  , module Graphics.GL.Ext.ARB.FragmentProgramShadow
+  , module Graphics.GL.Ext.ARB.FragmentShader
+  , module Graphics.GL.Ext.ARB.FragmentShaderInterlock
+  , module Graphics.GL.Ext.ARB.FramebufferNoAttachments
+  , module Graphics.GL.Ext.ARB.FramebufferObject
+  , module Graphics.GL.Ext.ARB.FramebufferSRGB
+  , module Graphics.GL.Ext.ARB.GeometryShader4
+  , module Graphics.GL.Ext.ARB.GetProgramBinary
+  , module Graphics.GL.Ext.ARB.GetTextureSubImage
+  , module Graphics.GL.Ext.ARB.GpuShader5
+  , module Graphics.GL.Ext.ARB.GpuShaderFp64
+  , module Graphics.GL.Ext.ARB.GpuShaderInt64
+  , module Graphics.GL.Ext.ARB.HalfFloatPixel
+  , module Graphics.GL.Ext.ARB.HalfFloatVertex
+  , module Graphics.GL.Ext.ARB.Imaging
+  , module Graphics.GL.Ext.ARB.IndirectParameters
+  , module Graphics.GL.Ext.ARB.InstancedArrays
+  , module Graphics.GL.Ext.ARB.InternalformatQuery
+  , module Graphics.GL.Ext.ARB.InternalformatQuery2
+  , module Graphics.GL.Ext.ARB.InvalidateSubdata
+  , module Graphics.GL.Ext.ARB.MapBufferAlignment
+  , module Graphics.GL.Ext.ARB.MapBufferRange
+  , module Graphics.GL.Ext.ARB.MatrixPalette
+  , module Graphics.GL.Ext.ARB.MultiBind
+  , module Graphics.GL.Ext.ARB.MultiDrawIndirect
+  , module Graphics.GL.Ext.ARB.Multisample
+  , module Graphics.GL.Ext.ARB.Multitexture
+  , module Graphics.GL.Ext.ARB.OcclusionQuery
+  , module Graphics.GL.Ext.ARB.OcclusionQuery2
+  , module Graphics.GL.Ext.ARB.ParallelShaderCompile
+  , module Graphics.GL.Ext.ARB.PipelineStatisticsQuery
+  , module Graphics.GL.Ext.ARB.PixelBufferObject
+  , module Graphics.GL.Ext.ARB.PointParameters
+  , module Graphics.GL.Ext.ARB.PointSprite
+  , module Graphics.GL.Ext.ARB.PostDepthCoverage
+  , module Graphics.GL.Ext.ARB.ProgramInterfaceQuery
+  , module Graphics.GL.Ext.ARB.ProvokingVertex
+  , module Graphics.GL.Ext.ARB.QueryBufferObject
+  , module Graphics.GL.Ext.ARB.RobustBufferAccessBehavior
+  , module Graphics.GL.Ext.ARB.Robustness
+  , module Graphics.GL.Ext.ARB.RobustnessIsolation
+  , module Graphics.GL.Ext.ARB.SampleLocations
+  , module Graphics.GL.Ext.ARB.SampleShading
+  , module Graphics.GL.Ext.ARB.SamplerObjects
+  , module Graphics.GL.Ext.ARB.SeamlessCubeMap
+  , module Graphics.GL.Ext.ARB.SeamlessCubemapPerTexture
+  , module Graphics.GL.Ext.ARB.SeparateShaderObjects
+  , module Graphics.GL.Ext.ARB.ShaderAtomicCounterOps
+  , module Graphics.GL.Ext.ARB.ShaderAtomicCounters
+  , module Graphics.GL.Ext.ARB.ShaderBallot
+  , module Graphics.GL.Ext.ARB.ShaderBitEncoding
+  , module Graphics.GL.Ext.ARB.ShaderClock
+  , module Graphics.GL.Ext.ARB.ShaderDrawParameters
+  , module Graphics.GL.Ext.ARB.ShaderGroupVote
+  , module Graphics.GL.Ext.ARB.ShaderImageLoadStore
+  , module Graphics.GL.Ext.ARB.ShaderImageSize
+  , module Graphics.GL.Ext.ARB.ShaderObjects
+  , module Graphics.GL.Ext.ARB.ShaderPrecision
+  , module Graphics.GL.Ext.ARB.ShaderStencilExport
+  , module Graphics.GL.Ext.ARB.ShaderStorageBufferObject
+  , module Graphics.GL.Ext.ARB.ShaderSubroutine
+  , module Graphics.GL.Ext.ARB.ShaderTextureImageSamples
+  , module Graphics.GL.Ext.ARB.ShaderTextureLod
+  , module Graphics.GL.Ext.ARB.ShaderViewportLayerArray
+  , module Graphics.GL.Ext.ARB.ShadingLanguage100
+  , module Graphics.GL.Ext.ARB.ShadingLanguage420pack
+  , module Graphics.GL.Ext.ARB.ShadingLanguageInclude
+  , module Graphics.GL.Ext.ARB.ShadingLanguagePacking
+  , module Graphics.GL.Ext.ARB.Shadow
+  , module Graphics.GL.Ext.ARB.ShadowAmbient
+  , module Graphics.GL.Ext.ARB.SparseBuffer
+  , module Graphics.GL.Ext.ARB.SparseTexture
+  , module Graphics.GL.Ext.ARB.SparseTexture2
+  , module Graphics.GL.Ext.ARB.SparseTextureClamp
+  , module Graphics.GL.Ext.ARB.StencilTexturing
+  , module Graphics.GL.Ext.ARB.Sync
+  , module Graphics.GL.Ext.ARB.TessellationShader
+  , module Graphics.GL.Ext.ARB.TextureBarrier
+  , module Graphics.GL.Ext.ARB.TextureBorderClamp
+  , module Graphics.GL.Ext.ARB.TextureBufferObject
+  , module Graphics.GL.Ext.ARB.TextureBufferObjectRgb32
+  , module Graphics.GL.Ext.ARB.TextureBufferRange
+  , module Graphics.GL.Ext.ARB.TextureCompression
+  , module Graphics.GL.Ext.ARB.TextureCompressionBptc
+  , module Graphics.GL.Ext.ARB.TextureCompressionRgtc
+  , module Graphics.GL.Ext.ARB.TextureCubeMap
+  , module Graphics.GL.Ext.ARB.TextureCubeMapArray
+  , module Graphics.GL.Ext.ARB.TextureEnvAdd
+  , module Graphics.GL.Ext.ARB.TextureEnvCombine
+  , module Graphics.GL.Ext.ARB.TextureEnvCrossbar
+  , module Graphics.GL.Ext.ARB.TextureEnvDot3
+  , module Graphics.GL.Ext.ARB.TextureFilterMinmax
+  , module Graphics.GL.Ext.ARB.TextureFloat
+  , module Graphics.GL.Ext.ARB.TextureGather
+  , module Graphics.GL.Ext.ARB.TextureMirrorClampToEdge
+  , module Graphics.GL.Ext.ARB.TextureMirroredRepeat
+  , module Graphics.GL.Ext.ARB.TextureMultisample
+  , module Graphics.GL.Ext.ARB.TextureNonPowerOfTwo
+  , module Graphics.GL.Ext.ARB.TextureQueryLevels
+  , module Graphics.GL.Ext.ARB.TextureQueryLod
+  , module Graphics.GL.Ext.ARB.TextureRectangle
+  , module Graphics.GL.Ext.ARB.TextureRg
+  , module Graphics.GL.Ext.ARB.TextureRgb10A2ui
+  , module Graphics.GL.Ext.ARB.TextureStencil8
+  , module Graphics.GL.Ext.ARB.TextureStorage
+  , module Graphics.GL.Ext.ARB.TextureStorageMultisample
+  , module Graphics.GL.Ext.ARB.TextureSwizzle
+  , module Graphics.GL.Ext.ARB.TextureView
+  , module Graphics.GL.Ext.ARB.TimerQuery
+  , module Graphics.GL.Ext.ARB.TransformFeedback2
+  , module Graphics.GL.Ext.ARB.TransformFeedback3
+  , module Graphics.GL.Ext.ARB.TransformFeedbackInstanced
+  , module Graphics.GL.Ext.ARB.TransformFeedbackOverflowQuery
+  , module Graphics.GL.Ext.ARB.TransposeMatrix
+  , module Graphics.GL.Ext.ARB.UniformBufferObject
+  , module Graphics.GL.Ext.ARB.VertexArrayBgra
+  , module Graphics.GL.Ext.ARB.VertexArrayObject
+  , module Graphics.GL.Ext.ARB.VertexAttrib64bit
+  , module Graphics.GL.Ext.ARB.VertexAttribBinding
+  , module Graphics.GL.Ext.ARB.VertexBlend
+  , module Graphics.GL.Ext.ARB.VertexBufferObject
+  , module Graphics.GL.Ext.ARB.VertexProgram
+  , module Graphics.GL.Ext.ARB.VertexShader
+  , module Graphics.GL.Ext.ARB.VertexType10f11f11fRev
+  , module Graphics.GL.Ext.ARB.VertexType2101010Rev
+  , module Graphics.GL.Ext.ARB.ViewportArray
+  , module Graphics.GL.Ext.ARB.WindowPos
+) where
+
+import Graphics.GL.Ext.ARB.ArraysOfArrays
+import Graphics.GL.Ext.ARB.BaseInstance
+import Graphics.GL.Ext.ARB.BindlessTexture
+import Graphics.GL.Ext.ARB.BlendFuncExtended
+import Graphics.GL.Ext.ARB.BufferStorage
+import Graphics.GL.Ext.ARB.ClEvent
+import Graphics.GL.Ext.ARB.ClearBufferObject
+import Graphics.GL.Ext.ARB.ClearTexture
+import Graphics.GL.Ext.ARB.ClipControl
+import Graphics.GL.Ext.ARB.ColorBufferFloat
+import Graphics.GL.Ext.ARB.Compatibility
+import Graphics.GL.Ext.ARB.CompressedTexturePixelStorage
+import Graphics.GL.Ext.ARB.ComputeShader
+import Graphics.GL.Ext.ARB.ComputeVariableGroupSize
+import Graphics.GL.Ext.ARB.ConditionalRenderInverted
+import Graphics.GL.Ext.ARB.ConservativeDepth
+import Graphics.GL.Ext.ARB.CopyBuffer
+import Graphics.GL.Ext.ARB.CopyImage
+import Graphics.GL.Ext.ARB.CullDistance
+import Graphics.GL.Ext.ARB.DebugOutput
+import Graphics.GL.Ext.ARB.DepthBufferFloat
+import Graphics.GL.Ext.ARB.DepthClamp
+import Graphics.GL.Ext.ARB.DepthTexture
+import Graphics.GL.Ext.ARB.DerivativeControl
+import Graphics.GL.Ext.ARB.DirectStateAccess
+import Graphics.GL.Ext.ARB.DrawBuffers
+import Graphics.GL.Ext.ARB.DrawBuffersBlend
+import Graphics.GL.Ext.ARB.DrawElementsBaseVertex
+import Graphics.GL.Ext.ARB.DrawIndirect
+import Graphics.GL.Ext.ARB.DrawInstanced
+import Graphics.GL.Ext.ARB.ES2Compatibility
+import Graphics.GL.Ext.ARB.ES31Compatibility
+import Graphics.GL.Ext.ARB.ES32Compatibility
+import Graphics.GL.Ext.ARB.ES3Compatibility
+import Graphics.GL.Ext.ARB.EnhancedLayouts
+import Graphics.GL.Ext.ARB.ExplicitAttribLocation
+import Graphics.GL.Ext.ARB.ExplicitUniformLocation
+import Graphics.GL.Ext.ARB.FragmentCoordConventions
+import Graphics.GL.Ext.ARB.FragmentLayerViewport
+import Graphics.GL.Ext.ARB.FragmentProgram
+import Graphics.GL.Ext.ARB.FragmentProgramShadow
+import Graphics.GL.Ext.ARB.FragmentShader
+import Graphics.GL.Ext.ARB.FragmentShaderInterlock
+import Graphics.GL.Ext.ARB.FramebufferNoAttachments
+import Graphics.GL.Ext.ARB.FramebufferObject
+import Graphics.GL.Ext.ARB.FramebufferSRGB
+import Graphics.GL.Ext.ARB.GeometryShader4
+import Graphics.GL.Ext.ARB.GetProgramBinary
+import Graphics.GL.Ext.ARB.GetTextureSubImage
+import Graphics.GL.Ext.ARB.GpuShader5
+import Graphics.GL.Ext.ARB.GpuShaderFp64
+import Graphics.GL.Ext.ARB.GpuShaderInt64
+import Graphics.GL.Ext.ARB.HalfFloatPixel
+import Graphics.GL.Ext.ARB.HalfFloatVertex
+import Graphics.GL.Ext.ARB.Imaging
+import Graphics.GL.Ext.ARB.IndirectParameters
+import Graphics.GL.Ext.ARB.InstancedArrays
+import Graphics.GL.Ext.ARB.InternalformatQuery
+import Graphics.GL.Ext.ARB.InternalformatQuery2
+import Graphics.GL.Ext.ARB.InvalidateSubdata
+import Graphics.GL.Ext.ARB.MapBufferAlignment
+import Graphics.GL.Ext.ARB.MapBufferRange
+import Graphics.GL.Ext.ARB.MatrixPalette
+import Graphics.GL.Ext.ARB.MultiBind
+import Graphics.GL.Ext.ARB.MultiDrawIndirect
+import Graphics.GL.Ext.ARB.Multisample
+import Graphics.GL.Ext.ARB.Multitexture
+import Graphics.GL.Ext.ARB.OcclusionQuery
+import Graphics.GL.Ext.ARB.OcclusionQuery2
+import Graphics.GL.Ext.ARB.ParallelShaderCompile
+import Graphics.GL.Ext.ARB.PipelineStatisticsQuery
+import Graphics.GL.Ext.ARB.PixelBufferObject
+import Graphics.GL.Ext.ARB.PointParameters
+import Graphics.GL.Ext.ARB.PointSprite
+import Graphics.GL.Ext.ARB.PostDepthCoverage
+import Graphics.GL.Ext.ARB.ProgramInterfaceQuery
+import Graphics.GL.Ext.ARB.ProvokingVertex
+import Graphics.GL.Ext.ARB.QueryBufferObject
+import Graphics.GL.Ext.ARB.RobustBufferAccessBehavior
+import Graphics.GL.Ext.ARB.Robustness
+import Graphics.GL.Ext.ARB.RobustnessIsolation
+import Graphics.GL.Ext.ARB.SampleLocations
+import Graphics.GL.Ext.ARB.SampleShading
+import Graphics.GL.Ext.ARB.SamplerObjects
+import Graphics.GL.Ext.ARB.SeamlessCubeMap
+import Graphics.GL.Ext.ARB.SeamlessCubemapPerTexture
+import Graphics.GL.Ext.ARB.SeparateShaderObjects
+import Graphics.GL.Ext.ARB.ShaderAtomicCounterOps
+import Graphics.GL.Ext.ARB.ShaderAtomicCounters
+import Graphics.GL.Ext.ARB.ShaderBallot
+import Graphics.GL.Ext.ARB.ShaderBitEncoding
+import Graphics.GL.Ext.ARB.ShaderClock
+import Graphics.GL.Ext.ARB.ShaderDrawParameters
+import Graphics.GL.Ext.ARB.ShaderGroupVote
+import Graphics.GL.Ext.ARB.ShaderImageLoadStore
+import Graphics.GL.Ext.ARB.ShaderImageSize
+import Graphics.GL.Ext.ARB.ShaderObjects
+import Graphics.GL.Ext.ARB.ShaderPrecision
+import Graphics.GL.Ext.ARB.ShaderStencilExport
+import Graphics.GL.Ext.ARB.ShaderStorageBufferObject
+import Graphics.GL.Ext.ARB.ShaderSubroutine
+import Graphics.GL.Ext.ARB.ShaderTextureImageSamples
+import Graphics.GL.Ext.ARB.ShaderTextureLod
+import Graphics.GL.Ext.ARB.ShaderViewportLayerArray
+import Graphics.GL.Ext.ARB.ShadingLanguage100
+import Graphics.GL.Ext.ARB.ShadingLanguage420pack
+import Graphics.GL.Ext.ARB.ShadingLanguageInclude
+import Graphics.GL.Ext.ARB.ShadingLanguagePacking
+import Graphics.GL.Ext.ARB.Shadow
+import Graphics.GL.Ext.ARB.ShadowAmbient
+import Graphics.GL.Ext.ARB.SparseBuffer
+import Graphics.GL.Ext.ARB.SparseTexture
+import Graphics.GL.Ext.ARB.SparseTexture2
+import Graphics.GL.Ext.ARB.SparseTextureClamp
+import Graphics.GL.Ext.ARB.StencilTexturing
+import Graphics.GL.Ext.ARB.Sync
+import Graphics.GL.Ext.ARB.TessellationShader
+import Graphics.GL.Ext.ARB.TextureBarrier
+import Graphics.GL.Ext.ARB.TextureBorderClamp
+import Graphics.GL.Ext.ARB.TextureBufferObject
+import Graphics.GL.Ext.ARB.TextureBufferObjectRgb32
+import Graphics.GL.Ext.ARB.TextureBufferRange
+import Graphics.GL.Ext.ARB.TextureCompression
+import Graphics.GL.Ext.ARB.TextureCompressionBptc
+import Graphics.GL.Ext.ARB.TextureCompressionRgtc
+import Graphics.GL.Ext.ARB.TextureCubeMap
+import Graphics.GL.Ext.ARB.TextureCubeMapArray
+import Graphics.GL.Ext.ARB.TextureEnvAdd
+import Graphics.GL.Ext.ARB.TextureEnvCombine
+import Graphics.GL.Ext.ARB.TextureEnvCrossbar
+import Graphics.GL.Ext.ARB.TextureEnvDot3
+import Graphics.GL.Ext.ARB.TextureFilterMinmax
+import Graphics.GL.Ext.ARB.TextureFloat
+import Graphics.GL.Ext.ARB.TextureGather
+import Graphics.GL.Ext.ARB.TextureMirrorClampToEdge
+import Graphics.GL.Ext.ARB.TextureMirroredRepeat
+import Graphics.GL.Ext.ARB.TextureMultisample
+import Graphics.GL.Ext.ARB.TextureNonPowerOfTwo
+import Graphics.GL.Ext.ARB.TextureQueryLevels
+import Graphics.GL.Ext.ARB.TextureQueryLod
+import Graphics.GL.Ext.ARB.TextureRectangle
+import Graphics.GL.Ext.ARB.TextureRg
+import Graphics.GL.Ext.ARB.TextureRgb10A2ui
+import Graphics.GL.Ext.ARB.TextureStencil8
+import Graphics.GL.Ext.ARB.TextureStorage
+import Graphics.GL.Ext.ARB.TextureStorageMultisample
+import Graphics.GL.Ext.ARB.TextureSwizzle
+import Graphics.GL.Ext.ARB.TextureView
+import Graphics.GL.Ext.ARB.TimerQuery
+import Graphics.GL.Ext.ARB.TransformFeedback2
+import Graphics.GL.Ext.ARB.TransformFeedback3
+import Graphics.GL.Ext.ARB.TransformFeedbackInstanced
+import Graphics.GL.Ext.ARB.TransformFeedbackOverflowQuery
+import Graphics.GL.Ext.ARB.TransposeMatrix
+import Graphics.GL.Ext.ARB.UniformBufferObject
+import Graphics.GL.Ext.ARB.VertexArrayBgra
+import Graphics.GL.Ext.ARB.VertexArrayObject
+import Graphics.GL.Ext.ARB.VertexAttrib64bit
+import Graphics.GL.Ext.ARB.VertexAttribBinding
+import Graphics.GL.Ext.ARB.VertexBlend
+import Graphics.GL.Ext.ARB.VertexBufferObject
+import Graphics.GL.Ext.ARB.VertexProgram
+import Graphics.GL.Ext.ARB.VertexShader
+import Graphics.GL.Ext.ARB.VertexType10f11f11fRev
+import Graphics.GL.Ext.ARB.VertexType2101010Rev
+import Graphics.GL.Ext.ARB.ViewportArray
+import Graphics.GL.Ext.ARB.WindowPos
diff --git a/generated-src/Graphics/GL/Ext/ARB/ArraysOfArrays.hs b/generated-src/Graphics/GL/Ext/ARB/ArraysOfArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ArraysOfArrays.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ArraysOfArrays (
+  -- * Extension Support
+    gl_ARB_arrays_of_arrays
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/arrays_of_arrays.txt GL_ARB_arrays_of_arrays> extension is available.
+
+gl_ARB_arrays_of_arrays :: Bool
+gl_ARB_arrays_of_arrays = member "GL_ARB_arrays_of_arrays" extensions
+{-# NOINLINE gl_ARB_arrays_of_arrays #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/BaseInstance.hs b/generated-src/Graphics/GL/Ext/ARB/BaseInstance.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/BaseInstance.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.BaseInstance (
+  -- * Extension Support
+    gl_ARB_base_instance
+
+  -- * GL_ARB_base_instance
+  , glDrawArraysInstancedBaseInstance
+  , glDrawElementsInstancedBaseInstance
+  , glDrawElementsInstancedBaseVertexBaseInstance
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/base_instance.txt GL_ARB_base_instance> extension is available.
+
+gl_ARB_base_instance :: Bool
+gl_ARB_base_instance = member "GL_ARB_base_instance" extensions
+{-# NOINLINE gl_ARB_base_instance #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/BindlessTexture.hs b/generated-src/Graphics/GL/Ext/ARB/BindlessTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/BindlessTexture.hs
@@ -0,0 +1,220 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.BindlessTexture (
+  -- * Extension Support
+    gl_ARB_bindless_texture
+
+  -- * GL_ARB_bindless_texture
+  , glGetImageHandleARB
+  , glGetTextureHandleARB
+  , glGetTextureSamplerHandleARB
+  , glGetVertexAttribLui64vARB
+  , glIsImageHandleResidentARB
+  , glIsTextureHandleResidentARB
+  , glMakeImageHandleNonResidentARB
+  , glMakeImageHandleResidentARB
+  , glMakeTextureHandleNonResidentARB
+  , glMakeTextureHandleResidentARB
+  , glProgramUniformHandleui64ARB
+  , glProgramUniformHandleui64vARB
+  , glUniformHandleui64ARB
+  , glUniformHandleui64vARB
+  , glVertexAttribL1ui64ARB
+  , glVertexAttribL1ui64vARB
+  , pattern GL_UNSIGNED_INT64_ARB
+) 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/ARB/bindless_texture.txt GL_ARB_bindless_texture> extension is available.
+
+gl_ARB_bindless_texture :: Bool
+gl_ARB_bindless_texture = member "GL_ARB_bindless_texture" extensions
+{-# NOINLINE gl_ARB_bindless_texture #-}
+
+-- | Usage: @'glGetImageHandleARB' texture level layered layer format@
+
+
+glGetImageHandleARB :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
+glGetImageHandleARB = ffiuintintbooleanintenumIOuint64 glGetImageHandleARBFunPtr
+
+glGetImageHandleARBFunPtr :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64)
+glGetImageHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetImageHandleARB")
+
+{-# NOINLINE glGetImageHandleARBFunPtr #-}
+
+-- | Usage: @'glGetTextureHandleARB' texture@
+
+
+glGetTextureHandleARB :: MonadIO m => GLuint -> m GLuint64
+glGetTextureHandleARB = ffiuintIOuint64 glGetTextureHandleARBFunPtr
+
+glGetTextureHandleARBFunPtr :: FunPtr (GLuint -> IO GLuint64)
+glGetTextureHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetTextureHandleARB")
+
+{-# NOINLINE glGetTextureHandleARBFunPtr #-}
+
+-- | Usage: @'glGetTextureSamplerHandleARB' texture sampler@
+
+
+glGetTextureSamplerHandleARB :: MonadIO m => GLuint -> GLuint -> m GLuint64
+glGetTextureSamplerHandleARB = ffiuintuintIOuint64 glGetTextureSamplerHandleARBFunPtr
+
+glGetTextureSamplerHandleARBFunPtr :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+glGetTextureSamplerHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetTextureSamplerHandleARB")
+
+{-# NOINLINE glGetTextureSamplerHandleARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribLui64vARB' index pname params@
+
+
+glGetVertexAttribLui64vARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
+glGetVertexAttribLui64vARB = ffiuintenumPtruint64EXTIOV glGetVertexAttribLui64vARBFunPtr
+
+glGetVertexAttribLui64vARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+glGetVertexAttribLui64vARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLui64vARB")
+
+{-# NOINLINE glGetVertexAttribLui64vARBFunPtr #-}
+
+-- | Usage: @'glIsImageHandleResidentARB' handle@
+
+
+glIsImageHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
+glIsImageHandleResidentARB = ffiuint64IOboolean glIsImageHandleResidentARBFunPtr
+
+glIsImageHandleResidentARBFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
+glIsImageHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glIsImageHandleResidentARB")
+
+{-# NOINLINE glIsImageHandleResidentARBFunPtr #-}
+
+-- | Usage: @'glIsTextureHandleResidentARB' handle@
+
+
+glIsTextureHandleResidentARB :: MonadIO m => GLuint64 -> m GLboolean
+glIsTextureHandleResidentARB = ffiuint64IOboolean glIsTextureHandleResidentARBFunPtr
+
+glIsTextureHandleResidentARBFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
+glIsTextureHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glIsTextureHandleResidentARB")
+
+{-# NOINLINE glIsTextureHandleResidentARBFunPtr #-}
+
+-- | Usage: @'glMakeImageHandleNonResidentARB' handle@
+
+
+glMakeImageHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
+glMakeImageHandleNonResidentARB = ffiuint64IOV glMakeImageHandleNonResidentARBFunPtr
+
+glMakeImageHandleNonResidentARBFunPtr :: FunPtr (GLuint64 -> IO ())
+glMakeImageHandleNonResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleNonResidentARB")
+
+{-# NOINLINE glMakeImageHandleNonResidentARBFunPtr #-}
+
+-- | Usage: @'glMakeImageHandleResidentARB' handle access@
+
+
+glMakeImageHandleResidentARB :: MonadIO m => GLuint64 -> GLenum -> m ()
+glMakeImageHandleResidentARB = ffiuint64enumIOV glMakeImageHandleResidentARBFunPtr
+
+glMakeImageHandleResidentARBFunPtr :: FunPtr (GLuint64 -> GLenum -> IO ())
+glMakeImageHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleResidentARB")
+
+{-# NOINLINE glMakeImageHandleResidentARBFunPtr #-}
+
+-- | Usage: @'glMakeTextureHandleNonResidentARB' handle@
+
+
+glMakeTextureHandleNonResidentARB :: MonadIO m => GLuint64 -> m ()
+glMakeTextureHandleNonResidentARB = ffiuint64IOV glMakeTextureHandleNonResidentARBFunPtr
+
+glMakeTextureHandleNonResidentARBFunPtr :: FunPtr (GLuint64 -> IO ())
+glMakeTextureHandleNonResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleNonResidentARB")
+
+{-# NOINLINE glMakeTextureHandleNonResidentARBFunPtr #-}
+
+-- | Usage: @'glMakeTextureHandleResidentARB' handle@
+
+
+glMakeTextureHandleResidentARB :: MonadIO m => GLuint64 -> m ()
+glMakeTextureHandleResidentARB = ffiuint64IOV glMakeTextureHandleResidentARBFunPtr
+
+glMakeTextureHandleResidentARBFunPtr :: FunPtr (GLuint64 -> IO ())
+glMakeTextureHandleResidentARBFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleResidentARB")
+
+{-# NOINLINE glMakeTextureHandleResidentARBFunPtr #-}
+
+-- | Usage: @'glProgramUniformHandleui64ARB' program location value@
+
+
+glProgramUniformHandleui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
+glProgramUniformHandleui64ARB = ffiuintintuint64IOV glProgramUniformHandleui64ARBFunPtr
+
+glProgramUniformHandleui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+glProgramUniformHandleui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64ARB")
+
+{-# NOINLINE glProgramUniformHandleui64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniformHandleui64vARB' program location count values@
+--
+-- The length of @values@ should be @count@.
+
+
+glProgramUniformHandleui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glProgramUniformHandleui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vARBFunPtr
+
+glProgramUniformHandleui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glProgramUniformHandleui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64vARB")
+
+{-# NOINLINE glProgramUniformHandleui64vARBFunPtr #-}
+
+-- | Usage: @'glUniformHandleui64ARB' location value@
+
+
+glUniformHandleui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
+glUniformHandleui64ARB = ffiintuint64IOV glUniformHandleui64ARBFunPtr
+
+glUniformHandleui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
+glUniformHandleui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64ARB")
+
+{-# NOINLINE glUniformHandleui64ARBFunPtr #-}
+
+-- | Usage: @'glUniformHandleui64vARB' location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glUniformHandleui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glUniformHandleui64vARB = ffiintsizeiPtruint64IOV glUniformHandleui64vARBFunPtr
+
+glUniformHandleui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glUniformHandleui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64vARB")
+
+{-# NOINLINE glUniformHandleui64vARBFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1ui64ARB' index x@
+
+
+glVertexAttribL1ui64ARB :: MonadIO m => GLuint -> GLuint64EXT -> m ()
+glVertexAttribL1ui64ARB = ffiuintuint64EXTIOV glVertexAttribL1ui64ARBFunPtr
+
+glVertexAttribL1ui64ARBFunPtr :: FunPtr (GLuint -> GLuint64EXT -> IO ())
+glVertexAttribL1ui64ARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64ARB")
+
+{-# NOINLINE glVertexAttribL1ui64ARBFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1ui64vARB' index v@
+
+
+glVertexAttribL1ui64vARB :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
+glVertexAttribL1ui64vARB = ffiuintPtruint64EXTIOV glVertexAttribL1ui64vARBFunPtr
+
+glVertexAttribL1ui64vARBFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+glVertexAttribL1ui64vARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64vARB")
+
+{-# NOINLINE glVertexAttribL1ui64vARBFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/BlendFuncExtended.hs b/generated-src/Graphics/GL/Ext/ARB/BlendFuncExtended.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/BlendFuncExtended.hs
@@ -0,0 +1,25 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.BlendFuncExtended (
+  -- * Extension Support
+    gl_ARB_blend_func_extended
+
+  -- * GL_ARB_blend_func_extended
+  , glBindFragDataLocationIndexed
+  , glGetFragDataIndex
+  , pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
+  , pattern GL_ONE_MINUS_SRC1_ALPHA
+  , pattern GL_ONE_MINUS_SRC1_COLOR
+  , pattern GL_SRC1_ALPHA
+  , pattern GL_SRC1_COLOR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/blend_func_extended.txt GL_ARB_blend_func_extended> extension is available.
+
+gl_ARB_blend_func_extended :: Bool
+gl_ARB_blend_func_extended = member "GL_ARB_blend_func_extended" extensions
+{-# NOINLINE gl_ARB_blend_func_extended #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/BufferStorage.hs b/generated-src/Graphics/GL/Ext/ARB/BufferStorage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/BufferStorage.hs
@@ -0,0 +1,28 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.BufferStorage (
+  -- * Extension Support
+    gl_ARB_buffer_storage
+
+  -- * GL_ARB_buffer_storage
+  , glBufferStorage
+  , pattern GL_BUFFER_IMMUTABLE_STORAGE
+  , pattern GL_BUFFER_STORAGE_FLAGS
+  , pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT
+  , pattern GL_CLIENT_STORAGE_BIT
+  , pattern GL_DYNAMIC_STORAGE_BIT
+  , pattern GL_MAP_COHERENT_BIT
+  , pattern GL_MAP_PERSISTENT_BIT
+  , pattern GL_MAP_READ_BIT
+  , pattern GL_MAP_WRITE_BIT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/buffer_storage.txt GL_ARB_buffer_storage> extension is available.
+
+gl_ARB_buffer_storage :: Bool
+gl_ARB_buffer_storage = member "GL_ARB_buffer_storage" extensions
+{-# NOINLINE gl_ARB_buffer_storage #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ClEvent.hs b/generated-src/Graphics/GL/Ext/ARB/ClEvent.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ClEvent.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ClEvent (
+  -- * Extension Support
+    gl_ARB_cl_event
+
+  -- * GL_ARB_cl_event
+  , glCreateSyncFromCLeventARB
+  , pattern GL_SYNC_CL_EVENT_ARB
+  , pattern GL_SYNC_CL_EVENT_COMPLETE_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cl_event.txt GL_ARB_cl_event> extension is available.
+
+gl_ARB_cl_event :: Bool
+gl_ARB_cl_event = member "GL_ARB_cl_event" extensions
+{-# NOINLINE gl_ARB_cl_event #-}
+
+-- | Usage: @'glCreateSyncFromCLeventARB' context event flags@
+--
+-- The parameter @context@ is a @cl_context@.
+--
+-- The parameter @event@ is a @cl_event@.
+
+
+glCreateSyncFromCLeventARB :: MonadIO m => Ptr () -> Ptr () -> GLbitfield -> m GLsync
+glCreateSyncFromCLeventARB = ffiPtrVPtrVbitfieldIOsync glCreateSyncFromCLeventARBFunPtr
+
+glCreateSyncFromCLeventARBFunPtr :: FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync)
+glCreateSyncFromCLeventARBFunPtr = unsafePerformIO (getProcAddress "glCreateSyncFromCLeventARB")
+
+{-# NOINLINE glCreateSyncFromCLeventARBFunPtr #-}
+
+pattern GL_SYNC_CL_EVENT_ARB = 0x8240
+
+pattern GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241
diff --git a/generated-src/Graphics/GL/Ext/ARB/ClearBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/ClearBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ClearBufferObject.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ClearBufferObject (
+  -- * Extension Support
+    gl_ARB_clear_buffer_object
+
+  -- * GL_ARB_clear_buffer_object
+  , glClearBufferData
+  , glClearBufferSubData
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_buffer_object.txt GL_ARB_clear_buffer_object> extension is available.
+
+gl_ARB_clear_buffer_object :: Bool
+gl_ARB_clear_buffer_object = member "GL_ARB_clear_buffer_object" extensions
+{-# NOINLINE gl_ARB_clear_buffer_object #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ClearTexture.hs b/generated-src/Graphics/GL/Ext/ARB/ClearTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ClearTexture.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ClearTexture (
+  -- * Extension Support
+    gl_ARB_clear_texture
+
+  -- * GL_ARB_clear_texture
+  , glClearTexImage
+  , glClearTexSubImage
+  , pattern GL_CLEAR_TEXTURE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clear_texture.txt GL_ARB_clear_texture> extension is available.
+
+gl_ARB_clear_texture :: Bool
+gl_ARB_clear_texture = member "GL_ARB_clear_texture" extensions
+{-# NOINLINE gl_ARB_clear_texture #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ClipControl.hs b/generated-src/Graphics/GL/Ext/ARB/ClipControl.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ClipControl.hs
@@ -0,0 +1,25 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ClipControl (
+  -- * Extension Support
+    gl_ARB_clip_control
+
+  -- * GL_ARB_clip_control
+  , glClipControl
+  , pattern GL_CLIP_DEPTH_MODE
+  , pattern GL_CLIP_ORIGIN
+  , pattern GL_LOWER_LEFT
+  , pattern GL_NEGATIVE_ONE_TO_ONE
+  , pattern GL_UPPER_LEFT
+  , pattern GL_ZERO_TO_ONE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/clip_control.txt GL_ARB_clip_control> extension is available.
+
+gl_ARB_clip_control :: Bool
+gl_ARB_clip_control = member "GL_ARB_clip_control" extensions
+{-# NOINLINE gl_ARB_clip_control #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ColorBufferFloat.hs b/generated-src/Graphics/GL/Ext/ARB/ColorBufferFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ColorBufferFloat.hs
@@ -0,0 +1,55 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ColorBufferFloat (
+  -- * Extension Support
+    gl_ARB_color_buffer_float
+
+  -- * GL_ARB_color_buffer_float
+  , glClampColorARB
+  , pattern GL_CLAMP_FRAGMENT_COLOR_ARB
+  , pattern GL_CLAMP_READ_COLOR_ARB
+  , pattern GL_CLAMP_VERTEX_COLOR_ARB
+  , pattern GL_FIXED_ONLY_ARB
+  , pattern GL_RGBA_FLOAT_MODE_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/color_buffer_float.txt GL_ARB_color_buffer_float> extension is available.
+
+gl_ARB_color_buffer_float :: Bool
+gl_ARB_color_buffer_float = member "GL_ARB_color_buffer_float" extensions
+{-# NOINLINE gl_ARB_color_buffer_float #-}
+
+-- | Usage: @'glClampColorARB' target clamp@
+--
+-- The parameter @target@ is a @ClampColorTargetARB@.
+--
+-- The parameter @clamp@ is a @ClampColorModeARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glClampColor'.
+
+
+glClampColorARB :: MonadIO m => GLenum -> GLenum -> m ()
+glClampColorARB = ffienumenumIOV glClampColorARBFunPtr
+
+glClampColorARBFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClampColorARBFunPtr = unsafePerformIO (getProcAddress "glClampColorARB")
+
+{-# NOINLINE glClampColorARBFunPtr #-}
+
+pattern GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B
+
+pattern GL_CLAMP_READ_COLOR_ARB = 0x891C
+
+pattern GL_CLAMP_VERTEX_COLOR_ARB = 0x891A
+
+pattern GL_FIXED_ONLY_ARB = 0x891D
+
+pattern GL_RGBA_FLOAT_MODE_ARB = 0x8820
diff --git a/generated-src/Graphics/GL/Ext/ARB/Compatibility.hs b/generated-src/Graphics/GL/Ext/ARB/Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/Compatibility.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.Compatibility (
+  -- * Extension Support
+    gl_ARB_compatibility
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compatibility.txt GL_ARB_compatibility> extension is available.
+
+gl_ARB_compatibility :: Bool
+gl_ARB_compatibility = member "GL_ARB_compatibility" extensions
+{-# NOINLINE gl_ARB_compatibility #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/CompressedTexturePixelStorage.hs b/generated-src/Graphics/GL/Ext/ARB/CompressedTexturePixelStorage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/CompressedTexturePixelStorage.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.CompressedTexturePixelStorage (
+  -- * Extension Support
+    gl_ARB_compressed_texture_pixel_storage
+
+  -- * GL_ARB_compressed_texture_pixel_storage
+  , pattern GL_PACK_COMPRESSED_BLOCK_DEPTH
+  , pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT
+  , pattern GL_PACK_COMPRESSED_BLOCK_SIZE
+  , pattern GL_PACK_COMPRESSED_BLOCK_WIDTH
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE
+  , pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compressed_texture_pixel_storage.txt GL_ARB_compressed_texture_pixel_storage> extension is available.
+
+gl_ARB_compressed_texture_pixel_storage :: Bool
+gl_ARB_compressed_texture_pixel_storage = member "GL_ARB_compressed_texture_pixel_storage" extensions
+{-# NOINLINE gl_ARB_compressed_texture_pixel_storage #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ComputeShader.hs b/generated-src/Graphics/GL/Ext/ARB/ComputeShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ComputeShader.hs
@@ -0,0 +1,38 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ComputeShader (
+  -- * Extension Support
+    gl_ARB_compute_shader
+
+  -- * GL_ARB_compute_shader
+  , glDispatchCompute
+  , glDispatchComputeIndirect
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER
+  , pattern GL_COMPUTE_SHADER
+  , pattern GL_COMPUTE_SHADER_BIT
+  , pattern GL_COMPUTE_WORK_GROUP_SIZE
+  , pattern GL_DISPATCH_INDIRECT_BUFFER
+  , pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING
+  , pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS
+  , pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS
+  , pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
+  , pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS
+  , pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS
+  , pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_shader.txt GL_ARB_compute_shader> extension is available.
+
+gl_ARB_compute_shader :: Bool
+gl_ARB_compute_shader = member "GL_ARB_compute_shader" extensions
+{-# NOINLINE gl_ARB_compute_shader #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs b/generated-src/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ComputeVariableGroupSize (
+  -- * Extension Support
+    gl_ARB_compute_variable_group_size
+
+  -- * GL_ARB_compute_variable_group_size
+  , glDispatchComputeGroupSizeARB
+  , pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB
+  , pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB
+  , pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB
+  , pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/compute_variable_group_size.txt GL_ARB_compute_variable_group_size> extension is available.
+
+gl_ARB_compute_variable_group_size :: Bool
+gl_ARB_compute_variable_group_size = member "GL_ARB_compute_variable_group_size" extensions
+{-# NOINLINE gl_ARB_compute_variable_group_size #-}
+
+-- | Usage: @'glDispatchComputeGroupSizeARB' num_groups_x num_groups_y num_groups_z group_size_x group_size_y group_size_z@
+
+
+glDispatchComputeGroupSizeARB :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glDispatchComputeGroupSizeARB = ffiuintuintuintuintuintuintIOV glDispatchComputeGroupSizeARBFunPtr
+
+glDispatchComputeGroupSizeARBFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glDispatchComputeGroupSizeARBFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeGroupSizeARB")
+
+{-# NOINLINE glDispatchComputeGroupSizeARBFunPtr #-}
+
+pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB
+
+pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF
+
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344
+
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345
diff --git a/generated-src/Graphics/GL/Ext/ARB/ConditionalRenderInverted.hs b/generated-src/Graphics/GL/Ext/ARB/ConditionalRenderInverted.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ConditionalRenderInverted.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ConditionalRenderInverted (
+  -- * Extension Support
+    gl_ARB_conditional_render_inverted
+
+  -- * GL_ARB_conditional_render_inverted
+  , pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED
+  , pattern GL_QUERY_BY_REGION_WAIT_INVERTED
+  , pattern GL_QUERY_NO_WAIT_INVERTED
+  , pattern GL_QUERY_WAIT_INVERTED
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conditional_render_inverted.txt GL_ARB_conditional_render_inverted> extension is available.
+
+gl_ARB_conditional_render_inverted :: Bool
+gl_ARB_conditional_render_inverted = member "GL_ARB_conditional_render_inverted" extensions
+{-# NOINLINE gl_ARB_conditional_render_inverted #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ConservativeDepth.hs b/generated-src/Graphics/GL/Ext/ARB/ConservativeDepth.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ConservativeDepth.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ConservativeDepth (
+  -- * Extension Support
+    gl_ARB_conservative_depth
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/conservative_depth.txt GL_ARB_conservative_depth> extension is available.
+
+gl_ARB_conservative_depth :: Bool
+gl_ARB_conservative_depth = member "GL_ARB_conservative_depth" extensions
+{-# NOINLINE gl_ARB_conservative_depth #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/CopyBuffer.hs b/generated-src/Graphics/GL/Ext/ARB/CopyBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/CopyBuffer.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.CopyBuffer (
+  -- * Extension Support
+    gl_ARB_copy_buffer
+
+  -- * GL_ARB_copy_buffer
+  , glCopyBufferSubData
+  , pattern GL_COPY_READ_BUFFER
+  , pattern GL_COPY_WRITE_BUFFER
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_buffer.txt GL_ARB_copy_buffer> extension is available.
+
+gl_ARB_copy_buffer :: Bool
+gl_ARB_copy_buffer = member "GL_ARB_copy_buffer" extensions
+{-# NOINLINE gl_ARB_copy_buffer #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/CopyImage.hs b/generated-src/Graphics/GL/Ext/ARB/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/CopyImage.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.CopyImage (
+  -- * Extension Support
+    gl_ARB_copy_image
+
+  -- * GL_ARB_copy_image
+  , glCopyImageSubData
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/copy_image.txt GL_ARB_copy_image> extension is available.
+
+gl_ARB_copy_image :: Bool
+gl_ARB_copy_image = member "GL_ARB_copy_image" extensions
+{-# NOINLINE gl_ARB_copy_image #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/CullDistance.hs b/generated-src/Graphics/GL/Ext/ARB/CullDistance.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/CullDistance.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.CullDistance (
+  -- * Extension Support
+    gl_ARB_cull_distance
+
+  -- * GL_ARB_cull_distance
+  , pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES
+  , pattern GL_MAX_CULL_DISTANCES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/cull_distance.txt GL_ARB_cull_distance> extension is available.
+
+gl_ARB_cull_distance :: Bool
+gl_ARB_cull_distance = member "GL_ARB_cull_distance" extensions
+{-# NOINLINE gl_ARB_cull_distance #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DebugOutput.hs b/generated-src/Graphics/GL/Ext/ARB/DebugOutput.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DebugOutput.hs
@@ -0,0 +1,164 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DebugOutput (
+  -- * Extension Support
+    gl_ARB_debug_output
+
+  -- * GL_ARB_debug_output
+  , glDebugMessageCallbackARB
+  , glDebugMessageControlARB
+  , glDebugMessageInsertARB
+  , glGetDebugMessageLogARB
+  , pattern GL_DEBUG_CALLBACK_FUNCTION_ARB
+  , pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB
+  , pattern GL_DEBUG_LOGGED_MESSAGES_ARB
+  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB
+  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB
+  , pattern GL_DEBUG_SEVERITY_HIGH_ARB
+  , pattern GL_DEBUG_SEVERITY_LOW_ARB
+  , pattern GL_DEBUG_SEVERITY_MEDIUM_ARB
+  , pattern GL_DEBUG_SOURCE_API_ARB
+  , pattern GL_DEBUG_SOURCE_APPLICATION_ARB
+  , pattern GL_DEBUG_SOURCE_OTHER_ARB
+  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB
+  , pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB
+  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB
+  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB
+  , pattern GL_DEBUG_TYPE_ERROR_ARB
+  , pattern GL_DEBUG_TYPE_OTHER_ARB
+  , pattern GL_DEBUG_TYPE_PERFORMANCE_ARB
+  , pattern GL_DEBUG_TYPE_PORTABILITY_ARB
+  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB
+  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB
+  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/debug_output.txt GL_ARB_debug_output> extension is available.
+
+gl_ARB_debug_output :: Bool
+gl_ARB_debug_output = member "GL_ARB_debug_output" extensions
+{-# NOINLINE gl_ARB_debug_output #-}
+
+-- | Usage: @'glDebugMessageCallbackARB' callback userParam@
+--
+-- The length of @userParam@ should be @COMPSIZE(callback)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageCallback'.
+
+
+glDebugMessageCallbackARB :: MonadIO m => GLDEBUGPROCARB -> Ptr () -> m ()
+glDebugMessageCallbackARB = ffiDEBUGPROCARBPtrVIOV glDebugMessageCallbackARBFunPtr
+
+glDebugMessageCallbackARBFunPtr :: FunPtr (GLDEBUGPROCARB -> Ptr () -> IO ())
+glDebugMessageCallbackARBFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallbackARB")
+
+{-# NOINLINE glDebugMessageCallbackARBFunPtr #-}
+
+-- | Usage: @'glDebugMessageControlARB' source type severity count ids enabled@
+--
+-- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @ids@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageControl'.
+
+
+glDebugMessageControlARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+glDebugMessageControlARB = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlARBFunPtr
+
+glDebugMessageControlARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+glDebugMessageControlARBFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControlARB")
+
+{-# NOINLINE glDebugMessageControlARBFunPtr #-}
+
+-- | Usage: @'glDebugMessageInsertARB' source type id severity length buf@
+--
+-- The length of @buf@ should be @length@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageInsert'.
+
+
+glDebugMessageInsertARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
+glDebugMessageInsertARB = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertARBFunPtr
+
+glDebugMessageInsertARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+glDebugMessageInsertARBFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertARB")
+
+{-# NOINLINE glDebugMessageInsertARBFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLogARB' count bufSize sources types ids severities lengths messageLog@
+--
+-- The length of @sources@ should be @count@.
+--
+-- The length of @types@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @messageLog@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDebugMessageLog'.
+
+
+glGetDebugMessageLogARB :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+glGetDebugMessageLogARB = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogARBFunPtr
+
+glGetDebugMessageLogARBFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+glGetDebugMessageLogARBFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLogARB")
+
+{-# NOINLINE glGetDebugMessageLogARBFunPtr #-}
+
+pattern GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245
+
+pattern GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242
+
+pattern GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146
+
+pattern GL_DEBUG_SEVERITY_LOW_ARB = 0x9148
+
+pattern GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147
+
+pattern GL_DEBUG_SOURCE_API_ARB = 0x8246
+
+pattern GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A
+
+pattern GL_DEBUG_SOURCE_OTHER_ARB = 0x824B
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D
+
+pattern GL_DEBUG_TYPE_ERROR_ARB = 0x824C
+
+pattern GL_DEBUG_TYPE_OTHER_ARB = 0x8251
+
+pattern GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250
+
+pattern GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143
diff --git a/generated-src/Graphics/GL/Ext/ARB/DepthBufferFloat.hs b/generated-src/Graphics/GL/Ext/ARB/DepthBufferFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DepthBufferFloat.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DepthBufferFloat (
+  -- * Extension Support
+    gl_ARB_depth_buffer_float
+
+  -- * GL_ARB_depth_buffer_float
+  , pattern GL_DEPTH32F_STENCIL8
+  , pattern GL_DEPTH_COMPONENT32F
+  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_buffer_float.txt GL_ARB_depth_buffer_float> extension is available.
+
+gl_ARB_depth_buffer_float :: Bool
+gl_ARB_depth_buffer_float = member "GL_ARB_depth_buffer_float" extensions
+{-# NOINLINE gl_ARB_depth_buffer_float #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DepthClamp.hs b/generated-src/Graphics/GL/Ext/ARB/DepthClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DepthClamp.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DepthClamp (
+  -- * Extension Support
+    gl_ARB_depth_clamp
+
+  -- * GL_ARB_depth_clamp
+  , pattern GL_DEPTH_CLAMP
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_clamp.txt GL_ARB_depth_clamp> extension is available.
+
+gl_ARB_depth_clamp :: Bool
+gl_ARB_depth_clamp = member "GL_ARB_depth_clamp" extensions
+{-# NOINLINE gl_ARB_depth_clamp #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DepthTexture.hs b/generated-src/Graphics/GL/Ext/ARB/DepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DepthTexture.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DepthTexture (
+  -- * Extension Support
+    gl_ARB_depth_texture
+
+  -- * GL_ARB_depth_texture
+  , pattern GL_DEPTH_COMPONENT16_ARB
+  , pattern GL_DEPTH_COMPONENT24_ARB
+  , pattern GL_DEPTH_COMPONENT32_ARB
+  , pattern GL_DEPTH_TEXTURE_MODE_ARB
+  , pattern GL_TEXTURE_DEPTH_SIZE_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/depth_texture.txt GL_ARB_depth_texture> extension is available.
+
+gl_ARB_depth_texture :: Bool
+gl_ARB_depth_texture = member "GL_ARB_depth_texture" extensions
+{-# NOINLINE gl_ARB_depth_texture #-}
+
+pattern GL_DEPTH_COMPONENT16_ARB = 0x81A5
+
+pattern GL_DEPTH_COMPONENT24_ARB = 0x81A6
+
+pattern GL_DEPTH_COMPONENT32_ARB = 0x81A7
+
+pattern GL_DEPTH_TEXTURE_MODE_ARB = 0x884B
+
+pattern GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A
diff --git a/generated-src/Graphics/GL/Ext/ARB/DerivativeControl.hs b/generated-src/Graphics/GL/Ext/ARB/DerivativeControl.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DerivativeControl.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DerivativeControl (
+  -- * Extension Support
+    gl_ARB_derivative_control
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/derivative_control.txt GL_ARB_derivative_control> extension is available.
+
+gl_ARB_derivative_control :: Bool
+gl_ARB_derivative_control = member "GL_ARB_derivative_control" extensions
+{-# NOINLINE gl_ARB_derivative_control #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DirectStateAccess.hs b/generated-src/Graphics/GL/Ext/ARB/DirectStateAccess.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DirectStateAccess.hs
@@ -0,0 +1,128 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DirectStateAccess (
+  -- * Extension Support
+    gl_ARB_direct_state_access
+
+  -- * GL_ARB_direct_state_access
+  , glBindTextureUnit
+  , glBlitNamedFramebuffer
+  , glCheckNamedFramebufferStatus
+  , glClearNamedBufferData
+  , glClearNamedBufferSubData
+  , glClearNamedFramebufferfi
+  , glClearNamedFramebufferfv
+  , glClearNamedFramebufferiv
+  , glClearNamedFramebufferuiv
+  , glCompressedTextureSubImage1D
+  , glCompressedTextureSubImage2D
+  , glCompressedTextureSubImage3D
+  , glCopyNamedBufferSubData
+  , glCopyTextureSubImage1D
+  , glCopyTextureSubImage2D
+  , glCopyTextureSubImage3D
+  , glCreateBuffers
+  , glCreateFramebuffers
+  , glCreateProgramPipelines
+  , glCreateQueries
+  , glCreateRenderbuffers
+  , glCreateSamplers
+  , glCreateTextures
+  , glCreateTransformFeedbacks
+  , glCreateVertexArrays
+  , glDisableVertexArrayAttrib
+  , glEnableVertexArrayAttrib
+  , glFlushMappedNamedBufferRange
+  , glGenerateTextureMipmap
+  , glGetCompressedTextureImage
+  , glGetNamedBufferParameteri64v
+  , glGetNamedBufferParameteriv
+  , glGetNamedBufferPointerv
+  , glGetNamedBufferSubData
+  , glGetNamedFramebufferAttachmentParameteriv
+  , glGetNamedFramebufferParameteriv
+  , glGetNamedRenderbufferParameteriv
+  , glGetQueryBufferObjecti64v
+  , glGetQueryBufferObjectiv
+  , glGetQueryBufferObjectui64v
+  , glGetQueryBufferObjectuiv
+  , glGetTextureImage
+  , glGetTextureLevelParameterfv
+  , glGetTextureLevelParameteriv
+  , glGetTextureParameterIiv
+  , glGetTextureParameterIuiv
+  , glGetTextureParameterfv
+  , glGetTextureParameteriv
+  , glGetTransformFeedbacki64_v
+  , glGetTransformFeedbacki_v
+  , glGetTransformFeedbackiv
+  , glGetVertexArrayIndexed64iv
+  , glGetVertexArrayIndexediv
+  , glGetVertexArrayiv
+  , glInvalidateNamedFramebufferData
+  , glInvalidateNamedFramebufferSubData
+  , glMapNamedBuffer
+  , glMapNamedBufferRange
+  , glNamedBufferData
+  , glNamedBufferStorage
+  , glNamedBufferSubData
+  , glNamedFramebufferDrawBuffer
+  , glNamedFramebufferDrawBuffers
+  , glNamedFramebufferParameteri
+  , glNamedFramebufferReadBuffer
+  , glNamedFramebufferRenderbuffer
+  , glNamedFramebufferTexture
+  , glNamedFramebufferTextureLayer
+  , glNamedRenderbufferStorage
+  , glNamedRenderbufferStorageMultisample
+  , glTextureBuffer
+  , glTextureBufferRange
+  , glTextureParameterIiv
+  , glTextureParameterIuiv
+  , glTextureParameterf
+  , glTextureParameterfv
+  , glTextureParameteri
+  , glTextureParameteriv
+  , glTextureStorage1D
+  , glTextureStorage2D
+  , glTextureStorage2DMultisample
+  , glTextureStorage3D
+  , glTextureStorage3DMultisample
+  , glTextureSubImage1D
+  , glTextureSubImage2D
+  , glTextureSubImage3D
+  , glTransformFeedbackBufferBase
+  , glTransformFeedbackBufferRange
+  , glUnmapNamedBuffer
+  , glVertexArrayAttribBinding
+  , glVertexArrayAttribFormat
+  , glVertexArrayAttribIFormat
+  , glVertexArrayAttribLFormat
+  , glVertexArrayBindingDivisor
+  , glVertexArrayElementBuffer
+  , glVertexArrayVertexBuffer
+  , glVertexArrayVertexBuffers
+  , pattern GL_QUERY_TARGET
+  , pattern GL_TEXTURE_BINDING_1D
+  , pattern GL_TEXTURE_BINDING_1D_ARRAY
+  , pattern GL_TEXTURE_BINDING_2D
+  , pattern GL_TEXTURE_BINDING_2D_ARRAY
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_BINDING_3D
+  , pattern GL_TEXTURE_BINDING_BUFFER
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
+  , pattern GL_TEXTURE_BINDING_RECTANGLE
+  , pattern GL_TEXTURE_TARGET
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/direct_state_access.txt GL_ARB_direct_state_access> extension is available.
+
+gl_ARB_direct_state_access :: Bool
+gl_ARB_direct_state_access = member "GL_ARB_direct_state_access" extensions
+{-# NOINLINE gl_ARB_direct_state_access #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/ARB/DrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DrawBuffers.hs
@@ -0,0 +1,91 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DrawBuffers (
+  -- * Extension Support
+    gl_ARB_draw_buffers
+
+  -- * GL_ARB_draw_buffers
+  , glDrawBuffersARB
+  , pattern GL_DRAW_BUFFER0_ARB
+  , pattern GL_DRAW_BUFFER10_ARB
+  , pattern GL_DRAW_BUFFER11_ARB
+  , pattern GL_DRAW_BUFFER12_ARB
+  , pattern GL_DRAW_BUFFER13_ARB
+  , pattern GL_DRAW_BUFFER14_ARB
+  , pattern GL_DRAW_BUFFER15_ARB
+  , pattern GL_DRAW_BUFFER1_ARB
+  , pattern GL_DRAW_BUFFER2_ARB
+  , pattern GL_DRAW_BUFFER3_ARB
+  , pattern GL_DRAW_BUFFER4_ARB
+  , pattern GL_DRAW_BUFFER5_ARB
+  , pattern GL_DRAW_BUFFER6_ARB
+  , pattern GL_DRAW_BUFFER7_ARB
+  , pattern GL_DRAW_BUFFER8_ARB
+  , pattern GL_DRAW_BUFFER9_ARB
+  , pattern GL_MAX_DRAW_BUFFERS_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers.txt GL_ARB_draw_buffers> extension is available.
+
+gl_ARB_draw_buffers :: Bool
+gl_ARB_draw_buffers = member "GL_ARB_draw_buffers" extensions
+{-# NOINLINE gl_ARB_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersARB' n bufs@
+--
+-- The parameter @bufs@ is a @DrawBufferModeATI@.
+--
+-- The length of @bufs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawBuffers'.
+
+
+glDrawBuffersARB :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffersARB = ffisizeiPtrenumIOV glDrawBuffersARBFunPtr
+
+glDrawBuffersARBFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersARBFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersARB")
+
+{-# NOINLINE glDrawBuffersARBFunPtr #-}
+
+pattern GL_DRAW_BUFFER0_ARB = 0x8825
+
+pattern GL_DRAW_BUFFER10_ARB = 0x882F
+
+pattern GL_DRAW_BUFFER11_ARB = 0x8830
+
+pattern GL_DRAW_BUFFER12_ARB = 0x8831
+
+pattern GL_DRAW_BUFFER13_ARB = 0x8832
+
+pattern GL_DRAW_BUFFER14_ARB = 0x8833
+
+pattern GL_DRAW_BUFFER15_ARB = 0x8834
+
+pattern GL_DRAW_BUFFER1_ARB = 0x8826
+
+pattern GL_DRAW_BUFFER2_ARB = 0x8827
+
+pattern GL_DRAW_BUFFER3_ARB = 0x8828
+
+pattern GL_DRAW_BUFFER4_ARB = 0x8829
+
+pattern GL_DRAW_BUFFER5_ARB = 0x882A
+
+pattern GL_DRAW_BUFFER6_ARB = 0x882B
+
+pattern GL_DRAW_BUFFER7_ARB = 0x882C
+
+pattern GL_DRAW_BUFFER8_ARB = 0x882D
+
+pattern GL_DRAW_BUFFER9_ARB = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_ARB = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/ARB/DrawBuffersBlend.hs b/generated-src/Graphics/GL/Ext/ARB/DrawBuffersBlend.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DrawBuffersBlend.hs
@@ -0,0 +1,78 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DrawBuffersBlend (
+  -- * Extension Support
+    gl_ARB_draw_buffers_blend
+
+  -- * GL_ARB_draw_buffers_blend
+  , glBlendEquationSeparateiARB
+  , glBlendEquationiARB
+  , glBlendFuncSeparateiARB
+  , glBlendFunciARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_buffers_blend.txt GL_ARB_draw_buffers_blend> extension is available.
+
+gl_ARB_draw_buffers_blend :: Bool
+gl_ARB_draw_buffers_blend = member "GL_ARB_draw_buffers_blend" extensions
+{-# NOINLINE gl_ARB_draw_buffers_blend #-}
+
+-- | Usage: @'glBlendEquationSeparateiARB' buf modeRGB modeAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
+
+
+glBlendEquationSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendEquationSeparateiARB = ffiuintenumenumIOV glBlendEquationSeparateiARBFunPtr
+
+glBlendEquationSeparateiARBFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendEquationSeparateiARBFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateiARB")
+
+{-# NOINLINE glBlendEquationSeparateiARBFunPtr #-}
+
+-- | Usage: @'glBlendEquationiARB' buf mode@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
+
+
+glBlendEquationiARB :: MonadIO m => GLuint -> GLenum -> m ()
+glBlendEquationiARB = ffiuintenumIOV glBlendEquationiARBFunPtr
+
+glBlendEquationiARBFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBlendEquationiARBFunPtr = unsafePerformIO (getProcAddress "glBlendEquationiARB")
+
+{-# NOINLINE glBlendEquationiARBFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparateiARB' buf srcRGB dstRGB srcAlpha dstAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
+
+
+glBlendFuncSeparateiARB :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparateiARB = ffiuintenumenumenumenumIOV glBlendFuncSeparateiARBFunPtr
+
+glBlendFuncSeparateiARBFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateiARBFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateiARB")
+
+{-# NOINLINE glBlendFuncSeparateiARBFunPtr #-}
+
+-- | Usage: @'glBlendFunciARB' buf src dst@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
+
+
+glBlendFunciARB :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendFunciARB = ffiuintenumenumIOV glBlendFunciARBFunPtr
+
+glBlendFunciARBFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendFunciARBFunPtr = unsafePerformIO (getProcAddress "glBlendFunciARB")
+
+{-# NOINLINE glBlendFunciARBFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DrawElementsBaseVertex.hs b/generated-src/Graphics/GL/Ext/ARB/DrawElementsBaseVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DrawElementsBaseVertex.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DrawElementsBaseVertex (
+  -- * Extension Support
+    gl_ARB_draw_elements_base_vertex
+
+  -- * GL_ARB_draw_elements_base_vertex
+  , glDrawElementsBaseVertex
+  , glDrawElementsInstancedBaseVertex
+  , glDrawRangeElementsBaseVertex
+  , glMultiDrawElementsBaseVertex
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_elements_base_vertex.txt GL_ARB_draw_elements_base_vertex> extension is available.
+
+gl_ARB_draw_elements_base_vertex :: Bool
+gl_ARB_draw_elements_base_vertex = member "GL_ARB_draw_elements_base_vertex" extensions
+{-# NOINLINE gl_ARB_draw_elements_base_vertex #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DrawIndirect.hs b/generated-src/Graphics/GL/Ext/ARB/DrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DrawIndirect.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DrawIndirect (
+  -- * Extension Support
+    gl_ARB_draw_indirect
+
+  -- * GL_ARB_draw_indirect
+  , glDrawArraysIndirect
+  , glDrawElementsIndirect
+  , pattern GL_DRAW_INDIRECT_BUFFER
+  , pattern GL_DRAW_INDIRECT_BUFFER_BINDING
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_indirect.txt GL_ARB_draw_indirect> extension is available.
+
+gl_ARB_draw_indirect :: Bool
+gl_ARB_draw_indirect = member "GL_ARB_draw_indirect" extensions
+{-# NOINLINE gl_ARB_draw_indirect #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/DrawInstanced.hs b/generated-src/Graphics/GL/Ext/ARB/DrawInstanced.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/DrawInstanced.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.DrawInstanced (
+  -- * Extension Support
+    gl_ARB_draw_instanced
+
+  -- * GL_ARB_draw_instanced
+  , glDrawArraysInstancedARB
+  , glDrawElementsInstancedARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/draw_instanced.txt GL_ARB_draw_instanced> extension is available.
+
+gl_ARB_draw_instanced :: Bool
+gl_ARB_draw_instanced = member "GL_ARB_draw_instanced" extensions
+{-# NOINLINE gl_ARB_draw_instanced #-}
+
+-- | Usage: @'glDrawArraysInstancedARB' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
+
+
+glDrawArraysInstancedARB :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstancedARB = ffienumintsizeisizeiIOV glDrawArraysInstancedARBFunPtr
+
+glDrawArraysInstancedARBFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedARBFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedARB")
+
+{-# NOINLINE glDrawArraysInstancedARBFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedARB' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
+
+
+glDrawElementsInstancedARB :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstancedARB = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedARBFunPtr
+
+glDrawElementsInstancedARBFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedARBFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedARB")
+
+{-# NOINLINE glDrawElementsInstancedARBFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ES2Compatibility.hs b/generated-src/Graphics/GL/Ext/ARB/ES2Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ES2Compatibility.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ES2Compatibility (
+  -- * Extension Support
+    gl_ARB_ES2_compatibility
+
+  -- * GL_ARB_ES2_compatibility
+  , glClearDepthf
+  , glDepthRangef
+  , glGetShaderPrecisionFormat
+  , glReleaseShaderCompiler
+  , glShaderBinary
+  , pattern GL_FIXED
+  , pattern GL_HIGH_FLOAT
+  , pattern GL_HIGH_INT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
+  , pattern GL_LOW_FLOAT
+  , pattern GL_LOW_INT
+  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
+  , pattern GL_MAX_VARYING_VECTORS
+  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
+  , pattern GL_MEDIUM_FLOAT
+  , pattern GL_MEDIUM_INT
+  , pattern GL_NUM_SHADER_BINARY_FORMATS
+  , pattern GL_RGB565
+  , pattern GL_SHADER_BINARY_FORMATS
+  , pattern GL_SHADER_COMPILER
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES2_compatibility.txt GL_ARB_ES2_compatibility> extension is available.
+
+gl_ARB_ES2_compatibility :: Bool
+gl_ARB_ES2_compatibility = member "GL_ARB_ES2_compatibility" extensions
+{-# NOINLINE gl_ARB_ES2_compatibility #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ES31Compatibility.hs b/generated-src/Graphics/GL/Ext/ARB/ES31Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ES31Compatibility.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ES31Compatibility (
+  -- * Extension Support
+    gl_ARB_ES3_1_compatibility
+
+  -- * GL_ARB_ES3_1_compatibility
+  , glMemoryBarrierByRegion
+  , pattern GL_BACK
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_1_compatibility.txt GL_ARB_ES3_1_compatibility> extension is available.
+
+gl_ARB_ES3_1_compatibility :: Bool
+gl_ARB_ES3_1_compatibility = member "GL_ARB_ES3_1_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_1_compatibility #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ES32Compatibility.hs b/generated-src/Graphics/GL/Ext/ARB/ES32Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ES32Compatibility.hs
@@ -0,0 +1,45 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ES32Compatibility (
+  -- * Extension Support
+    gl_ARB_ES3_2_compatibility
+
+  -- * GL_ARB_ES3_2_compatibility
+  , glPrimitiveBoundingBoxARB
+  , pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB
+  , pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB
+  , pattern GL_PRIMITIVE_BOUNDING_BOX_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_2_compatibility.txt GL_ARB_ES3_2_compatibility> extension is available.
+
+gl_ARB_ES3_2_compatibility :: Bool
+gl_ARB_ES3_2_compatibility = member "GL_ARB_ES3_2_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_2_compatibility #-}
+
+-- | Usage: @'glPrimitiveBoundingBoxARB' minX minY minZ minW maxX maxY maxZ maxW@
+--
+-- This command is an alias for 'Graphics.GL.Embedded32.glPrimitiveBoundingBox'.
+
+
+glPrimitiveBoundingBoxARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glPrimitiveBoundingBoxARB = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxARBFunPtr
+
+glPrimitiveBoundingBoxARBFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glPrimitiveBoundingBoxARBFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBoxARB")
+
+{-# NOINLINE glPrimitiveBoundingBoxARBFunPtr #-}
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB = 0x9382
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB = 0x9381
+
+pattern GL_PRIMITIVE_BOUNDING_BOX_ARB = 0x92BE
diff --git a/generated-src/Graphics/GL/Ext/ARB/ES3Compatibility.hs b/generated-src/Graphics/GL/Ext/ARB/ES3Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ES3Compatibility.hs
@@ -0,0 +1,31 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ES3Compatibility (
+  -- * Extension Support
+    gl_ARB_ES3_compatibility
+
+  -- * GL_ARB_ES3_compatibility
+  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE
+  , pattern GL_COMPRESSED_R11_EAC
+  , pattern GL_COMPRESSED_RG11_EAC
+  , pattern GL_COMPRESSED_RGB8_ETC2
+  , pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
+  , pattern GL_COMPRESSED_RGBA8_ETC2_EAC
+  , pattern GL_COMPRESSED_SIGNED_R11_EAC
+  , pattern GL_COMPRESSED_SIGNED_RG11_EAC
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
+  , pattern GL_COMPRESSED_SRGB8_ETC2
+  , pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
+  , pattern GL_MAX_ELEMENT_INDEX
+  , pattern GL_PRIMITIVE_RESTART_FIXED_INDEX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/ES3_compatibility.txt GL_ARB_ES3_compatibility> extension is available.
+
+gl_ARB_ES3_compatibility :: Bool
+gl_ARB_ES3_compatibility = member "GL_ARB_ES3_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_compatibility #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/EnhancedLayouts.hs b/generated-src/Graphics/GL/Ext/ARB/EnhancedLayouts.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/EnhancedLayouts.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.EnhancedLayouts (
+  -- * Extension Support
+    gl_ARB_enhanced_layouts
+
+  -- * GL_ARB_enhanced_layouts
+  , pattern GL_LOCATION_COMPONENT
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/enhanced_layouts.txt GL_ARB_enhanced_layouts> extension is available.
+
+gl_ARB_enhanced_layouts :: Bool
+gl_ARB_enhanced_layouts = member "GL_ARB_enhanced_layouts" extensions
+{-# NOINLINE gl_ARB_enhanced_layouts #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ExplicitAttribLocation.hs b/generated-src/Graphics/GL/Ext/ARB/ExplicitAttribLocation.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ExplicitAttribLocation.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ExplicitAttribLocation (
+  -- * Extension Support
+    gl_ARB_explicit_attrib_location
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_attrib_location.txt GL_ARB_explicit_attrib_location> extension is available.
+
+gl_ARB_explicit_attrib_location :: Bool
+gl_ARB_explicit_attrib_location = member "GL_ARB_explicit_attrib_location" extensions
+{-# NOINLINE gl_ARB_explicit_attrib_location #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ExplicitUniformLocation.hs b/generated-src/Graphics/GL/Ext/ARB/ExplicitUniformLocation.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ExplicitUniformLocation.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ExplicitUniformLocation (
+  -- * Extension Support
+    gl_ARB_explicit_uniform_location
+
+  -- * GL_ARB_explicit_uniform_location
+  , pattern GL_MAX_UNIFORM_LOCATIONS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/explicit_uniform_location.txt GL_ARB_explicit_uniform_location> extension is available.
+
+gl_ARB_explicit_uniform_location :: Bool
+gl_ARB_explicit_uniform_location = member "GL_ARB_explicit_uniform_location" extensions
+{-# NOINLINE gl_ARB_explicit_uniform_location #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentCoordConventions.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentCoordConventions.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentCoordConventions.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FragmentCoordConventions (
+  -- * Extension Support
+    gl_ARB_fragment_coord_conventions
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_coord_conventions.txt GL_ARB_fragment_coord_conventions> extension is available.
+
+gl_ARB_fragment_coord_conventions :: Bool
+gl_ARB_fragment_coord_conventions = member "GL_ARB_fragment_coord_conventions" extensions
+{-# NOINLINE gl_ARB_fragment_coord_conventions #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentLayerViewport.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentLayerViewport.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentLayerViewport.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FragmentLayerViewport (
+  -- * Extension Support
+    gl_ARB_fragment_layer_viewport
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_layer_viewport.txt GL_ARB_fragment_layer_viewport> extension is available.
+
+gl_ARB_fragment_layer_viewport :: Bool
+gl_ARB_fragment_layer_viewport = member "GL_ARB_fragment_layer_viewport" extensions
+{-# NOINLINE gl_ARB_fragment_layer_viewport #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentProgram.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentProgram.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentProgram.hs
@@ -0,0 +1,141 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FragmentProgram (
+  -- * Extension Support
+    gl_ARB_fragment_program
+
+  -- * GL_ARB_fragment_program
+  , glBindProgramARB
+  , glDeleteProgramsARB
+  , glGenProgramsARB
+  , glGetProgramEnvParameterdvARB
+  , glGetProgramEnvParameterfvARB
+  , glGetProgramLocalParameterdvARB
+  , glGetProgramLocalParameterfvARB
+  , glGetProgramStringARB
+  , glGetProgramivARB
+  , glIsProgramARB
+  , glProgramEnvParameter4dARB
+  , glProgramEnvParameter4dvARB
+  , glProgramEnvParameter4fARB
+  , glProgramEnvParameter4fvARB
+  , glProgramLocalParameter4dARB
+  , glProgramLocalParameter4dvARB
+  , glProgramLocalParameter4fARB
+  , glProgramLocalParameter4fvARB
+  , glProgramStringARB
+  , pattern GL_CURRENT_MATRIX_ARB
+  , pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB
+  , pattern GL_FRAGMENT_PROGRAM_ARB
+  , pattern GL_MATRIX0_ARB
+  , pattern GL_MATRIX10_ARB
+  , pattern GL_MATRIX11_ARB
+  , pattern GL_MATRIX12_ARB
+  , pattern GL_MATRIX13_ARB
+  , pattern GL_MATRIX14_ARB
+  , pattern GL_MATRIX15_ARB
+  , pattern GL_MATRIX16_ARB
+  , pattern GL_MATRIX17_ARB
+  , pattern GL_MATRIX18_ARB
+  , pattern GL_MATRIX19_ARB
+  , pattern GL_MATRIX1_ARB
+  , pattern GL_MATRIX20_ARB
+  , pattern GL_MATRIX21_ARB
+  , pattern GL_MATRIX22_ARB
+  , pattern GL_MATRIX23_ARB
+  , pattern GL_MATRIX24_ARB
+  , pattern GL_MATRIX25_ARB
+  , pattern GL_MATRIX26_ARB
+  , pattern GL_MATRIX27_ARB
+  , pattern GL_MATRIX28_ARB
+  , pattern GL_MATRIX29_ARB
+  , pattern GL_MATRIX2_ARB
+  , pattern GL_MATRIX30_ARB
+  , pattern GL_MATRIX31_ARB
+  , pattern GL_MATRIX3_ARB
+  , pattern GL_MATRIX4_ARB
+  , pattern GL_MATRIX5_ARB
+  , pattern GL_MATRIX6_ARB
+  , pattern GL_MATRIX7_ARB
+  , pattern GL_MATRIX8_ARB
+  , pattern GL_MATRIX9_ARB
+  , pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB
+  , pattern GL_MAX_PROGRAM_ATTRIBS_ARB
+  , pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB
+  , pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_MATRICES_ARB
+  , pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
+  , pattern GL_MAX_PROGRAM_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_TEMPORARIES_ARB
+  , pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB
+  , pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB
+  , pattern GL_MAX_TEXTURE_COORDS_ARB
+  , pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB
+  , pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_ATTRIBS_ARB
+  , pattern GL_PROGRAM_BINDING_ARB
+  , pattern GL_PROGRAM_ERROR_POSITION_ARB
+  , pattern GL_PROGRAM_ERROR_STRING_ARB
+  , pattern GL_PROGRAM_FORMAT_ARB
+  , pattern GL_PROGRAM_FORMAT_ASCII_ARB
+  , pattern GL_PROGRAM_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_LENGTH_ARB
+  , pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB
+  , pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB
+  , pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB
+  , pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB
+  , pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_PARAMETERS_ARB
+  , pattern GL_PROGRAM_STRING_ARB
+  , pattern GL_PROGRAM_TEMPORARIES_ARB
+  , pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB
+  , pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
+  , pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program.txt GL_ARB_fragment_program> extension is available.
+
+gl_ARB_fragment_program :: Bool
+gl_ARB_fragment_program = member "GL_ARB_fragment_program" extensions
+{-# NOINLINE gl_ARB_fragment_program #-}
+
+pattern GL_FRAGMENT_PROGRAM_ARB = 0x8804
+
+pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B
+
+pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E
+
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810
+
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F
+
+pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D
+
+pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C
+
+pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805
+
+pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808
+
+pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A
+
+pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809
+
+pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807
+
+pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentProgramShadow.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentProgramShadow.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentProgramShadow.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FragmentProgramShadow (
+  -- * Extension Support
+    gl_ARB_fragment_program_shadow
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_program_shadow.txt GL_ARB_fragment_program_shadow> extension is available.
+
+gl_ARB_fragment_program_shadow :: Bool
+gl_ARB_fragment_program_shadow = member "GL_ARB_fragment_program_shadow" extensions
+{-# NOINLINE gl_ARB_fragment_program_shadow #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentShader.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentShader.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FragmentShader (
+  -- * Extension Support
+    gl_ARB_fragment_shader
+
+  -- * GL_ARB_fragment_shader
+  , pattern GL_FRAGMENT_SHADER_ARB
+  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB
+  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_shader.txt GL_ARB_fragment_shader> extension is available.
+
+gl_ARB_fragment_shader :: Bool
+gl_ARB_fragment_shader = member "GL_ARB_fragment_shader" extensions
+{-# NOINLINE gl_ARB_fragment_shader #-}
+
+pattern GL_FRAGMENT_SHADER_ARB = 0x8B30
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentShaderInterlock.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentShaderInterlock.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentShaderInterlock.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FragmentShaderInterlock (
+  -- * Extension Support
+    gl_ARB_fragment_shader_interlock
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/fragment_shader_interlock.txt GL_ARB_fragment_shader_interlock> extension is available.
+
+gl_ARB_fragment_shader_interlock :: Bool
+gl_ARB_fragment_shader_interlock = member "GL_ARB_fragment_shader_interlock" extensions
+{-# NOINLINE gl_ARB_fragment_shader_interlock #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/FramebufferNoAttachments.hs b/generated-src/Graphics/GL/Ext/ARB/FramebufferNoAttachments.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FramebufferNoAttachments.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FramebufferNoAttachments (
+  -- * Extension Support
+    gl_ARB_framebuffer_no_attachments
+
+  -- * GL_ARB_framebuffer_no_attachments
+  , glFramebufferParameteri
+  , glGetFramebufferParameteriv
+  , pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
+  , pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT
+  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS
+  , pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES
+  , pattern GL_FRAMEBUFFER_DEFAULT_WIDTH
+  , pattern GL_MAX_FRAMEBUFFER_HEIGHT
+  , pattern GL_MAX_FRAMEBUFFER_LAYERS
+  , pattern GL_MAX_FRAMEBUFFER_SAMPLES
+  , pattern GL_MAX_FRAMEBUFFER_WIDTH
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_no_attachments.txt GL_ARB_framebuffer_no_attachments> extension is available.
+
+gl_ARB_framebuffer_no_attachments :: Bool
+gl_ARB_framebuffer_no_attachments = member "GL_ARB_framebuffer_no_attachments" extensions
+{-# NOINLINE gl_ARB_framebuffer_no_attachments #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/FramebufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/FramebufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FramebufferObject.hs
@@ -0,0 +1,111 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FramebufferObject (
+  -- * Extension Support
+    gl_ARB_framebuffer_object
+
+  -- * GL_ARB_framebuffer_object
+  , glBindFramebuffer
+  , glBindRenderbuffer
+  , glBlitFramebuffer
+  , glCheckFramebufferStatus
+  , glDeleteFramebuffers
+  , glDeleteRenderbuffers
+  , glFramebufferRenderbuffer
+  , glFramebufferTexture1D
+  , glFramebufferTexture2D
+  , glFramebufferTexture3D
+  , glFramebufferTextureLayer
+  , glGenFramebuffers
+  , glGenRenderbuffers
+  , glGenerateMipmap
+  , glGetFramebufferAttachmentParameteriv
+  , glGetRenderbufferParameteriv
+  , glIsFramebuffer
+  , glIsRenderbuffer
+  , glRenderbufferStorage
+  , glRenderbufferStorageMultisample
+  , pattern GL_COLOR_ATTACHMENT0
+  , pattern GL_COLOR_ATTACHMENT1
+  , pattern GL_COLOR_ATTACHMENT10
+  , pattern GL_COLOR_ATTACHMENT11
+  , pattern GL_COLOR_ATTACHMENT12
+  , pattern GL_COLOR_ATTACHMENT13
+  , pattern GL_COLOR_ATTACHMENT14
+  , pattern GL_COLOR_ATTACHMENT15
+  , pattern GL_COLOR_ATTACHMENT2
+  , pattern GL_COLOR_ATTACHMENT3
+  , pattern GL_COLOR_ATTACHMENT4
+  , pattern GL_COLOR_ATTACHMENT5
+  , pattern GL_COLOR_ATTACHMENT6
+  , pattern GL_COLOR_ATTACHMENT7
+  , pattern GL_COLOR_ATTACHMENT8
+  , pattern GL_COLOR_ATTACHMENT9
+  , pattern GL_DEPTH24_STENCIL8
+  , pattern GL_DEPTH_ATTACHMENT
+  , pattern GL_DEPTH_STENCIL
+  , pattern GL_DEPTH_STENCIL_ATTACHMENT
+  , pattern GL_DRAW_FRAMEBUFFER
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING
+  , pattern GL_FRAMEBUFFER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
+  , pattern GL_FRAMEBUFFER_BINDING
+  , pattern GL_FRAMEBUFFER_COMPLETE
+  , pattern GL_FRAMEBUFFER_DEFAULT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
+  , pattern GL_FRAMEBUFFER_UNDEFINED
+  , pattern GL_FRAMEBUFFER_UNSUPPORTED
+  , pattern GL_INDEX
+  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
+  , pattern GL_MAX_COLOR_ATTACHMENTS
+  , pattern GL_MAX_RENDERBUFFER_SIZE
+  , pattern GL_MAX_SAMPLES
+  , pattern GL_READ_FRAMEBUFFER
+  , pattern GL_READ_FRAMEBUFFER_BINDING
+  , pattern GL_RENDERBUFFER
+  , pattern GL_RENDERBUFFER_ALPHA_SIZE
+  , pattern GL_RENDERBUFFER_BINDING
+  , pattern GL_RENDERBUFFER_BLUE_SIZE
+  , pattern GL_RENDERBUFFER_DEPTH_SIZE
+  , pattern GL_RENDERBUFFER_GREEN_SIZE
+  , pattern GL_RENDERBUFFER_HEIGHT
+  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
+  , pattern GL_RENDERBUFFER_RED_SIZE
+  , pattern GL_RENDERBUFFER_SAMPLES
+  , pattern GL_RENDERBUFFER_STENCIL_SIZE
+  , pattern GL_RENDERBUFFER_WIDTH
+  , pattern GL_STENCIL_ATTACHMENT
+  , pattern GL_STENCIL_INDEX1
+  , pattern GL_STENCIL_INDEX16
+  , pattern GL_STENCIL_INDEX4
+  , pattern GL_STENCIL_INDEX8
+  , pattern GL_TEXTURE_STENCIL_SIZE
+  , pattern GL_UNSIGNED_INT_24_8
+  , pattern GL_UNSIGNED_NORMALIZED
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_object.txt GL_ARB_framebuffer_object> extension is available.
+
+gl_ARB_framebuffer_object :: Bool
+gl_ARB_framebuffer_object = member "GL_ARB_framebuffer_object" extensions
+{-# NOINLINE gl_ARB_framebuffer_object #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/FramebufferSRGB.hs b/generated-src/Graphics/GL/Ext/ARB/FramebufferSRGB.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/FramebufferSRGB.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.FramebufferSRGB (
+  -- * Extension Support
+    gl_ARB_framebuffer_sRGB
+
+  -- * GL_ARB_framebuffer_sRGB
+  , pattern GL_FRAMEBUFFER_SRGB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/framebuffer_sRGB.txt GL_ARB_framebuffer_sRGB> extension is available.
+
+gl_ARB_framebuffer_sRGB :: Bool
+gl_ARB_framebuffer_sRGB = member "GL_ARB_framebuffer_sRGB" extensions
+{-# NOINLINE gl_ARB_framebuffer_sRGB #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/GeometryShader4.hs b/generated-src/Graphics/GL/Ext/ARB/GeometryShader4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/GeometryShader4.hs
@@ -0,0 +1,163 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.GeometryShader4 (
+  -- * Extension Support
+    gl_ARB_geometry_shader4
+
+  -- * GL_ARB_geometry_shader4
+  , glFramebufferTextureARB
+  , glFramebufferTextureFaceARB
+  , glFramebufferTextureLayerARB
+  , glProgramParameteriARB
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB
+  , pattern GL_GEOMETRY_INPUT_TYPE_ARB
+  , pattern GL_GEOMETRY_OUTPUT_TYPE_ARB
+  , pattern GL_GEOMETRY_SHADER_ARB
+  , pattern GL_GEOMETRY_VERTICES_OUT_ARB
+  , pattern GL_LINES_ADJACENCY_ARB
+  , pattern GL_LINE_STRIP_ADJACENCY_ARB
+  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB
+  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB
+  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB
+  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB
+  , pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB
+  , pattern GL_MAX_VARYING_COMPONENTS
+  , pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB
+  , pattern GL_PROGRAM_POINT_SIZE_ARB
+  , pattern GL_TRIANGLES_ADJACENCY_ARB
+  , pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB
+) 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/ARB/geometry_shader4.txt GL_ARB_geometry_shader4> extension is available.
+
+gl_ARB_geometry_shader4 :: Bool
+gl_ARB_geometry_shader4 = member "GL_ARB_geometry_shader4" extensions
+{-# NOINLINE gl_ARB_geometry_shader4 #-}
+
+-- | Usage: @'glFramebufferTextureARB' target attachment texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
+
+
+glFramebufferTextureARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTextureARB = ffienumenumuintintIOV glFramebufferTextureARBFunPtr
+
+glFramebufferTextureARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureARB")
+
+{-# NOINLINE glFramebufferTextureARBFunPtr #-}
+
+-- | Usage: @'glFramebufferTextureFaceARB' target attachment texture level face@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glFramebufferTextureFaceARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
+glFramebufferTextureFaceARB = ffienumenumuintintenumIOV glFramebufferTextureFaceARBFunPtr
+
+glFramebufferTextureFaceARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+glFramebufferTextureFaceARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureFaceARB")
+
+{-# NOINLINE glFramebufferTextureFaceARBFunPtr #-}
+
+-- | Usage: @'glFramebufferTextureLayerARB' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTextureLayer'.
+
+
+glFramebufferTextureLayerARB :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayerARB = ffienumenumuintintintIOV glFramebufferTextureLayerARBFunPtr
+
+glFramebufferTextureLayerARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerARB")
+
+{-# NOINLINE glFramebufferTextureLayerARBFunPtr #-}
+
+-- | Usage: @'glProgramParameteriARB' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramParameteri'.
+
+
+glProgramParameteriARB :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteriARB = ffiuintenumintIOV glProgramParameteriARBFunPtr
+
+glProgramParameteriARBFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriARBFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriARB")
+
+{-# NOINLINE glProgramParameteriARBFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8
+
+pattern GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC
+
+pattern GL_GEOMETRY_SHADER_ARB = 0x8DD9
+
+pattern GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA
+
+pattern GL_LINES_ADJACENCY_ARB = 0x000A
+
+pattern GL_LINE_STRIP_ADJACENCY_ARB = 0x000B
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF
+
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD
+
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE
+
+pattern GL_PROGRAM_POINT_SIZE_ARB = 0x8642
+
+pattern GL_TRIANGLES_ADJACENCY_ARB = 0x000C
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D
diff --git a/generated-src/Graphics/GL/Ext/ARB/GetProgramBinary.hs b/generated-src/Graphics/GL/Ext/ARB/GetProgramBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/GetProgramBinary.hs
@@ -0,0 +1,25 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.GetProgramBinary (
+  -- * Extension Support
+    gl_ARB_get_program_binary
+
+  -- * GL_ARB_get_program_binary
+  , glGetProgramBinary
+  , glProgramBinary
+  , glProgramParameteri
+  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
+  , pattern GL_PROGRAM_BINARY_FORMATS
+  , pattern GL_PROGRAM_BINARY_LENGTH
+  , pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_program_binary.txt GL_ARB_get_program_binary> extension is available.
+
+gl_ARB_get_program_binary :: Bool
+gl_ARB_get_program_binary = member "GL_ARB_get_program_binary" extensions
+{-# NOINLINE gl_ARB_get_program_binary #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/GetTextureSubImage.hs b/generated-src/Graphics/GL/Ext/ARB/GetTextureSubImage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/GetTextureSubImage.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.GetTextureSubImage (
+  -- * Extension Support
+    gl_ARB_get_texture_sub_image
+
+  -- * GL_ARB_get_texture_sub_image
+  , glGetCompressedTextureSubImage
+  , glGetTextureSubImage
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/get_texture_sub_image.txt GL_ARB_get_texture_sub_image> extension is available.
+
+gl_ARB_get_texture_sub_image :: Bool
+gl_ARB_get_texture_sub_image = member "GL_ARB_get_texture_sub_image" extensions
+{-# NOINLINE gl_ARB_get_texture_sub_image #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/GpuShader5.hs b/generated-src/Graphics/GL/Ext/ARB/GpuShader5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/GpuShader5.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.GpuShader5 (
+  -- * Extension Support
+    gl_ARB_gpu_shader5
+
+  -- * GL_ARB_gpu_shader5
+  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS
+  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
+  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET
+  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS
+  , pattern GL_MAX_VERTEX_STREAMS
+  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader5.txt GL_ARB_gpu_shader5> extension is available.
+
+gl_ARB_gpu_shader5 :: Bool
+gl_ARB_gpu_shader5 = member "GL_ARB_gpu_shader5" extensions
+{-# NOINLINE gl_ARB_gpu_shader5 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/GpuShaderFp64.hs b/generated-src/Graphics/GL/Ext/ARB/GpuShaderFp64.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/GpuShaderFp64.hs
@@ -0,0 +1,49 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.GpuShaderFp64 (
+  -- * Extension Support
+    gl_ARB_gpu_shader_fp64
+
+  -- * GL_ARB_gpu_shader_fp64
+  , glGetUniformdv
+  , glUniform1d
+  , glUniform1dv
+  , glUniform2d
+  , glUniform2dv
+  , glUniform3d
+  , glUniform3dv
+  , glUniform4d
+  , glUniform4dv
+  , glUniformMatrix2dv
+  , glUniformMatrix2x3dv
+  , glUniformMatrix2x4dv
+  , glUniformMatrix3dv
+  , glUniformMatrix3x2dv
+  , glUniformMatrix3x4dv
+  , glUniformMatrix4dv
+  , glUniformMatrix4x2dv
+  , glUniformMatrix4x3dv
+  , pattern GL_DOUBLE
+  , pattern GL_DOUBLE_MAT2
+  , pattern GL_DOUBLE_MAT2x3
+  , pattern GL_DOUBLE_MAT2x4
+  , pattern GL_DOUBLE_MAT3
+  , pattern GL_DOUBLE_MAT3x2
+  , pattern GL_DOUBLE_MAT3x4
+  , pattern GL_DOUBLE_MAT4
+  , pattern GL_DOUBLE_MAT4x2
+  , pattern GL_DOUBLE_MAT4x3
+  , pattern GL_DOUBLE_VEC2
+  , pattern GL_DOUBLE_VEC3
+  , pattern GL_DOUBLE_VEC4
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/gpu_shader_fp64.txt GL_ARB_gpu_shader_fp64> extension is available.
+
+gl_ARB_gpu_shader_fp64 :: Bool
+gl_ARB_gpu_shader_fp64 = member "GL_ARB_gpu_shader_fp64" extensions
+{-# NOINLINE gl_ARB_gpu_shader_fp64 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/GpuShaderInt64.hs b/generated-src/Graphics/GL/Ext/ARB/GpuShaderInt64.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/GpuShaderInt64.hs
@@ -0,0 +1,513 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.GpuShaderInt64 (
+  -- * Extension Support
+    gl_ARB_gpu_shader_int64
+
+  -- * GL_ARB_gpu_shader_int64
+  , glGetUniformi64vARB
+  , glGetUniformui64vARB
+  , glGetnUniformi64vARB
+  , glGetnUniformui64vARB
+  , glProgramUniform1i64ARB
+  , glProgramUniform1i64vARB
+  , glProgramUniform1ui64ARB
+  , glProgramUniform1ui64vARB
+  , glProgramUniform2i64ARB
+  , glProgramUniform2i64vARB
+  , glProgramUniform2ui64ARB
+  , glProgramUniform2ui64vARB
+  , glProgramUniform3i64ARB
+  , glProgramUniform3i64vARB
+  , glProgramUniform3ui64ARB
+  , glProgramUniform3ui64vARB
+  , glProgramUniform4i64ARB
+  , glProgramUniform4i64vARB
+  , glProgramUniform4ui64ARB
+  , glProgramUniform4ui64vARB
+  , glUniform1i64ARB
+  , glUniform1i64vARB
+  , glUniform1ui64ARB
+  , glUniform1ui64vARB
+  , glUniform2i64ARB
+  , glUniform2i64vARB
+  , glUniform2ui64ARB
+  , glUniform2ui64vARB
+  , glUniform3i64ARB
+  , glUniform3i64vARB
+  , glUniform3ui64ARB
+  , glUniform3ui64vARB
+  , glUniform4i64ARB
+  , glUniform4i64vARB
+  , glUniform4ui64ARB
+  , glUniform4ui64vARB
+  , pattern GL_INT64_ARB
+  , pattern GL_INT64_VEC2_ARB
+  , pattern GL_INT64_VEC3_ARB
+  , pattern GL_INT64_VEC4_ARB
+  , pattern GL_UNSIGNED_INT64_ARB
+  , pattern GL_UNSIGNED_INT64_VEC2_ARB
+  , pattern GL_UNSIGNED_INT64_VEC3_ARB
+  , pattern GL_UNSIGNED_INT64_VEC4_ARB
+) 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/ARB/gpu_shader_int64.txt GL_ARB_gpu_shader_int64> extension is available.
+
+gl_ARB_gpu_shader_int64 :: Bool
+gl_ARB_gpu_shader_int64 = member "GL_ARB_gpu_shader_int64" extensions
+{-# NOINLINE gl_ARB_gpu_shader_int64 #-}
+
+-- | Usage: @'glGetUniformi64vARB' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformi64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLint64 -> m ()
+glGetUniformi64vARB = ffiuintintPtrint64IOV glGetUniformi64vARBFunPtr
+
+glGetUniformi64vARBFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ())
+glGetUniformi64vARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vARB")
+
+{-# NOINLINE glGetUniformi64vARBFunPtr #-}
+
+-- | Usage: @'glGetUniformui64vARB' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformui64vARB :: MonadIO m => GLuint -> GLint -> Ptr GLuint64 -> m ()
+glGetUniformui64vARB = ffiuintintPtruint64IOV glGetUniformui64vARBFunPtr
+
+glGetUniformui64vARBFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ())
+glGetUniformui64vARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vARB")
+
+{-# NOINLINE glGetUniformui64vARBFunPtr #-}
+
+-- | Usage: @'glGetnUniformi64vARB' program location bufSize params@
+
+
+glGetnUniformi64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
+glGetnUniformi64vARB = ffiuintintsizeiPtrint64IOV glGetnUniformi64vARBFunPtr
+
+glGetnUniformi64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glGetnUniformi64vARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformi64vARB")
+
+{-# NOINLINE glGetnUniformi64vARBFunPtr #-}
+
+-- | Usage: @'glGetnUniformui64vARB' program location bufSize params@
+
+
+glGetnUniformui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glGetnUniformui64vARB = ffiuintintsizeiPtruint64IOV glGetnUniformui64vARBFunPtr
+
+glGetnUniformui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glGetnUniformui64vARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformui64vARB")
+
+{-# NOINLINE glGetnUniformui64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64ARB' program location x@
+
+
+glProgramUniform1i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> m ()
+glProgramUniform1i64ARB = ffiuintintint64IOV glProgramUniform1i64ARBFunPtr
+
+glProgramUniform1i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> IO ())
+glProgramUniform1i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64ARB")
+
+{-# NOINLINE glProgramUniform1i64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64vARB' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
+glProgramUniform1i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform1i64vARBFunPtr
+
+glProgramUniform1i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glProgramUniform1i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vARB")
+
+{-# NOINLINE glProgramUniform1i64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64ARB' program location x@
+
+
+glProgramUniform1ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
+glProgramUniform1ui64ARB = ffiuintintuint64IOV glProgramUniform1ui64ARBFunPtr
+
+glProgramUniform1ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+glProgramUniform1ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64ARB")
+
+{-# NOINLINE glProgramUniform1ui64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64vARB' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glProgramUniform1ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform1ui64vARBFunPtr
+
+glProgramUniform1ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glProgramUniform1ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vARB")
+
+{-# NOINLINE glProgramUniform1ui64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64ARB' program location x y@
+
+
+glProgramUniform2i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> m ()
+glProgramUniform2i64ARB = ffiuintintint64int64IOV glProgramUniform2i64ARBFunPtr
+
+glProgramUniform2i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ())
+glProgramUniform2i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64ARB")
+
+{-# NOINLINE glProgramUniform2i64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64vARB' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
+glProgramUniform2i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform2i64vARBFunPtr
+
+glProgramUniform2i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glProgramUniform2i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vARB")
+
+{-# NOINLINE glProgramUniform2i64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64ARB' program location x y@
+
+
+glProgramUniform2ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()
+glProgramUniform2ui64ARB = ffiuintintuint64uint64IOV glProgramUniform2ui64ARBFunPtr
+
+glProgramUniform2ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ())
+glProgramUniform2ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64ARB")
+
+{-# NOINLINE glProgramUniform2ui64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64vARB' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glProgramUniform2ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform2ui64vARBFunPtr
+
+glProgramUniform2ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glProgramUniform2ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vARB")
+
+{-# NOINLINE glProgramUniform2ui64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64ARB' program location x y z@
+
+
+glProgramUniform3i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
+glProgramUniform3i64ARB = ffiuintintint64int64int64IOV glProgramUniform3i64ARBFunPtr
+
+glProgramUniform3i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
+glProgramUniform3i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64ARB")
+
+{-# NOINLINE glProgramUniform3i64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64vARB' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
+glProgramUniform3i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform3i64vARBFunPtr
+
+glProgramUniform3i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glProgramUniform3i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vARB")
+
+{-# NOINLINE glProgramUniform3i64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64ARB' program location x y z@
+
+
+glProgramUniform3ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+glProgramUniform3ui64ARB = ffiuintintuint64uint64uint64IOV glProgramUniform3ui64ARBFunPtr
+
+glProgramUniform3ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+glProgramUniform3ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64ARB")
+
+{-# NOINLINE glProgramUniform3ui64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64vARB' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glProgramUniform3ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform3ui64vARBFunPtr
+
+glProgramUniform3ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glProgramUniform3ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vARB")
+
+{-# NOINLINE glProgramUniform3ui64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64ARB' program location x y z w@
+
+
+glProgramUniform4i64ARB :: MonadIO m => GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
+glProgramUniform4i64ARB = ffiuintintint64int64int64int64IOV glProgramUniform4i64ARBFunPtr
+
+glProgramUniform4i64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
+glProgramUniform4i64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64ARB")
+
+{-# NOINLINE glProgramUniform4i64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64vARB' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4i64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
+glProgramUniform4i64vARB = ffiuintintsizeiPtrint64IOV glProgramUniform4i64vARBFunPtr
+
+glProgramUniform4i64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glProgramUniform4i64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vARB")
+
+{-# NOINLINE glProgramUniform4i64vARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64ARB' program location x y z w@
+
+
+glProgramUniform4ui64ARB :: MonadIO m => GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+glProgramUniform4ui64ARB = ffiuintintuint64uint64uint64uint64IOV glProgramUniform4ui64ARBFunPtr
+
+glProgramUniform4ui64ARBFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+glProgramUniform4ui64ARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64ARB")
+
+{-# NOINLINE glProgramUniform4ui64ARBFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64vARB' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4ui64vARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glProgramUniform4ui64vARB = ffiuintintsizeiPtruint64IOV glProgramUniform4ui64vARBFunPtr
+
+glProgramUniform4ui64vARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glProgramUniform4ui64vARBFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vARB")
+
+{-# NOINLINE glProgramUniform4ui64vARBFunPtr #-}
+
+-- | Usage: @'glUniform1i64ARB' location x@
+
+
+glUniform1i64ARB :: MonadIO m => GLint -> GLint64 -> m ()
+glUniform1i64ARB = ffiintint64IOV glUniform1i64ARBFunPtr
+
+glUniform1i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> IO ())
+glUniform1i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform1i64ARB")
+
+{-# NOINLINE glUniform1i64ARBFunPtr #-}
+
+-- | Usage: @'glUniform1i64vARB' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
+glUniform1i64vARB = ffiintsizeiPtrint64IOV glUniform1i64vARBFunPtr
+
+glUniform1i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glUniform1i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vARB")
+
+{-# NOINLINE glUniform1i64vARBFunPtr #-}
+
+-- | Usage: @'glUniform1ui64ARB' location x@
+
+
+glUniform1ui64ARB :: MonadIO m => GLint -> GLuint64 -> m ()
+glUniform1ui64ARB = ffiintuint64IOV glUniform1ui64ARBFunPtr
+
+glUniform1ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
+glUniform1ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64ARB")
+
+{-# NOINLINE glUniform1ui64ARBFunPtr #-}
+
+-- | Usage: @'glUniform1ui64vARB' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glUniform1ui64vARB = ffiintsizeiPtruint64IOV glUniform1ui64vARBFunPtr
+
+glUniform1ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glUniform1ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vARB")
+
+{-# NOINLINE glUniform1ui64vARBFunPtr #-}
+
+-- | Usage: @'glUniform2i64ARB' location x y@
+
+
+glUniform2i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> m ()
+glUniform2i64ARB = ffiintint64int64IOV glUniform2i64ARBFunPtr
+
+glUniform2i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> GLint64 -> IO ())
+glUniform2i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform2i64ARB")
+
+{-# NOINLINE glUniform2i64ARBFunPtr #-}
+
+-- | Usage: @'glUniform2i64vARB' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
+glUniform2i64vARB = ffiintsizeiPtrint64IOV glUniform2i64vARBFunPtr
+
+glUniform2i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glUniform2i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vARB")
+
+{-# NOINLINE glUniform2i64vARBFunPtr #-}
+
+-- | Usage: @'glUniform2ui64ARB' location x y@
+
+
+glUniform2ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> m ()
+glUniform2ui64ARB = ffiintuint64uint64IOV glUniform2ui64ARBFunPtr
+
+glUniform2ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ())
+glUniform2ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64ARB")
+
+{-# NOINLINE glUniform2ui64ARBFunPtr #-}
+
+-- | Usage: @'glUniform2ui64vARB' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glUniform2ui64vARB = ffiintsizeiPtruint64IOV glUniform2ui64vARBFunPtr
+
+glUniform2ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glUniform2ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vARB")
+
+{-# NOINLINE glUniform2ui64vARBFunPtr #-}
+
+-- | Usage: @'glUniform3i64ARB' location x y z@
+
+
+glUniform3i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
+glUniform3i64ARB = ffiintint64int64int64IOV glUniform3i64ARBFunPtr
+
+glUniform3i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
+glUniform3i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform3i64ARB")
+
+{-# NOINLINE glUniform3i64ARBFunPtr #-}
+
+-- | Usage: @'glUniform3i64vARB' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
+glUniform3i64vARB = ffiintsizeiPtrint64IOV glUniform3i64vARBFunPtr
+
+glUniform3i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glUniform3i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vARB")
+
+{-# NOINLINE glUniform3i64vARBFunPtr #-}
+
+-- | Usage: @'glUniform3ui64ARB' location x y z@
+
+
+glUniform3ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+glUniform3ui64ARB = ffiintuint64uint64uint64IOV glUniform3ui64ARBFunPtr
+
+glUniform3ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+glUniform3ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64ARB")
+
+{-# NOINLINE glUniform3ui64ARBFunPtr #-}
+
+-- | Usage: @'glUniform3ui64vARB' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glUniform3ui64vARB = ffiintsizeiPtruint64IOV glUniform3ui64vARBFunPtr
+
+glUniform3ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glUniform3ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vARB")
+
+{-# NOINLINE glUniform3ui64vARBFunPtr #-}
+
+-- | Usage: @'glUniform4i64ARB' location x y z w@
+
+
+glUniform4i64ARB :: MonadIO m => GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
+glUniform4i64ARB = ffiintint64int64int64int64IOV glUniform4i64ARBFunPtr
+
+glUniform4i64ARBFunPtr :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
+glUniform4i64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform4i64ARB")
+
+{-# NOINLINE glUniform4i64ARBFunPtr #-}
+
+-- | Usage: @'glUniform4i64vARB' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4i64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint64 -> m ()
+glUniform4i64vARB = ffiintsizeiPtrint64IOV glUniform4i64vARBFunPtr
+
+glUniform4i64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+glUniform4i64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vARB")
+
+{-# NOINLINE glUniform4i64vARBFunPtr #-}
+
+-- | Usage: @'glUniform4ui64ARB' location x y z w@
+
+
+glUniform4ui64ARB :: MonadIO m => GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+glUniform4ui64ARB = ffiintuint64uint64uint64uint64IOV glUniform4ui64ARBFunPtr
+
+glUniform4ui64ARBFunPtr :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+glUniform4ui64ARBFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64ARB")
+
+{-# NOINLINE glUniform4ui64ARBFunPtr #-}
+
+-- | Usage: @'glUniform4ui64vARB' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4ui64vARB :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glUniform4ui64vARB = ffiintsizeiPtruint64IOV glUniform4ui64vARBFunPtr
+
+glUniform4ui64vARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glUniform4ui64vARBFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vARB")
+
+{-# NOINLINE glUniform4ui64vARBFunPtr #-}
+
+pattern GL_INT64_ARB = 0x140E
+
+pattern GL_INT64_VEC2_ARB = 0x8FE9
+
+pattern GL_INT64_VEC3_ARB = 0x8FEA
+
+pattern GL_INT64_VEC4_ARB = 0x8FEB
+
+pattern GL_UNSIGNED_INT64_VEC2_ARB = 0x8FF5
+
+pattern GL_UNSIGNED_INT64_VEC3_ARB = 0x8FF6
+
+pattern GL_UNSIGNED_INT64_VEC4_ARB = 0x8FF7
diff --git a/generated-src/Graphics/GL/Ext/ARB/HalfFloatPixel.hs b/generated-src/Graphics/GL/Ext/ARB/HalfFloatPixel.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/HalfFloatPixel.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.HalfFloatPixel (
+  -- * Extension Support
+    gl_ARB_half_float_pixel
+
+  -- * GL_ARB_half_float_pixel
+  , pattern GL_HALF_FLOAT_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_pixel.txt GL_ARB_half_float_pixel> extension is available.
+
+gl_ARB_half_float_pixel :: Bool
+gl_ARB_half_float_pixel = member "GL_ARB_half_float_pixel" extensions
+{-# NOINLINE gl_ARB_half_float_pixel #-}
+
+pattern GL_HALF_FLOAT_ARB = 0x140B
diff --git a/generated-src/Graphics/GL/Ext/ARB/HalfFloatVertex.hs b/generated-src/Graphics/GL/Ext/ARB/HalfFloatVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/HalfFloatVertex.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.HalfFloatVertex (
+  -- * Extension Support
+    gl_ARB_half_float_vertex
+
+  -- * GL_ARB_half_float_vertex
+  , pattern GL_HALF_FLOAT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/half_float_vertex.txt GL_ARB_half_float_vertex> extension is available.
+
+gl_ARB_half_float_vertex :: Bool
+gl_ARB_half_float_vertex = member "GL_ARB_half_float_vertex" extensions
+{-# NOINLINE gl_ARB_half_float_vertex #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/Imaging.hs b/generated-src/Graphics/GL/Ext/ARB/Imaging.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/Imaging.hs
@@ -0,0 +1,848 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.Imaging (
+  -- * Extension Support
+    gl_ARB_imaging
+
+  -- * GL_ARB_imaging
+  , glBlendColor
+  , glBlendEquation
+  , glColorSubTable
+  , glColorTable
+  , glColorTableParameterfv
+  , glColorTableParameteriv
+  , glConvolutionFilter1D
+  , glConvolutionFilter2D
+  , glConvolutionParameterf
+  , glConvolutionParameterfv
+  , glConvolutionParameteri
+  , glConvolutionParameteriv
+  , glCopyColorSubTable
+  , glCopyColorTable
+  , glCopyConvolutionFilter1D
+  , glCopyConvolutionFilter2D
+  , glGetColorTable
+  , glGetColorTableParameterfv
+  , glGetColorTableParameteriv
+  , glGetConvolutionFilter
+  , glGetConvolutionParameterfv
+  , glGetConvolutionParameteriv
+  , glGetHistogram
+  , glGetHistogramParameterfv
+  , glGetHistogramParameteriv
+  , glGetMinmax
+  , glGetMinmaxParameterfv
+  , glGetMinmaxParameteriv
+  , glGetSeparableFilter
+  , glHistogram
+  , glMinmax
+  , glResetHistogram
+  , glResetMinmax
+  , glSeparableFilter2D
+  , pattern GL_BLEND_COLOR
+  , pattern GL_BLEND_EQUATION
+  , pattern GL_COLOR_MATRIX
+  , pattern GL_COLOR_MATRIX_STACK_DEPTH
+  , pattern GL_COLOR_TABLE
+  , pattern GL_COLOR_TABLE_ALPHA_SIZE
+  , pattern GL_COLOR_TABLE_BIAS
+  , pattern GL_COLOR_TABLE_BLUE_SIZE
+  , pattern GL_COLOR_TABLE_FORMAT
+  , pattern GL_COLOR_TABLE_GREEN_SIZE
+  , pattern GL_COLOR_TABLE_INTENSITY_SIZE
+  , pattern GL_COLOR_TABLE_LUMINANCE_SIZE
+  , pattern GL_COLOR_TABLE_RED_SIZE
+  , pattern GL_COLOR_TABLE_SCALE
+  , pattern GL_COLOR_TABLE_WIDTH
+  , pattern GL_CONSTANT_ALPHA
+  , pattern GL_CONSTANT_BORDER
+  , pattern GL_CONSTANT_COLOR
+  , pattern GL_CONVOLUTION_1D
+  , pattern GL_CONVOLUTION_2D
+  , pattern GL_CONVOLUTION_BORDER_COLOR
+  , pattern GL_CONVOLUTION_BORDER_MODE
+  , pattern GL_CONVOLUTION_FILTER_BIAS
+  , pattern GL_CONVOLUTION_FILTER_SCALE
+  , pattern GL_CONVOLUTION_FORMAT
+  , pattern GL_CONVOLUTION_HEIGHT
+  , pattern GL_CONVOLUTION_WIDTH
+  , pattern GL_FUNC_ADD
+  , pattern GL_FUNC_REVERSE_SUBTRACT
+  , pattern GL_FUNC_SUBTRACT
+  , pattern GL_HISTOGRAM
+  , pattern GL_HISTOGRAM_ALPHA_SIZE
+  , pattern GL_HISTOGRAM_BLUE_SIZE
+  , pattern GL_HISTOGRAM_FORMAT
+  , pattern GL_HISTOGRAM_GREEN_SIZE
+  , pattern GL_HISTOGRAM_LUMINANCE_SIZE
+  , pattern GL_HISTOGRAM_RED_SIZE
+  , pattern GL_HISTOGRAM_SINK
+  , pattern GL_HISTOGRAM_WIDTH
+  , pattern GL_MAX
+  , pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH
+  , pattern GL_MAX_CONVOLUTION_HEIGHT
+  , pattern GL_MAX_CONVOLUTION_WIDTH
+  , pattern GL_MIN
+  , pattern GL_MINMAX
+  , pattern GL_MINMAX_FORMAT
+  , pattern GL_MINMAX_SINK
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR
+  , pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS
+  , pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE
+  , pattern GL_POST_COLOR_MATRIX_BLUE_BIAS
+  , pattern GL_POST_COLOR_MATRIX_BLUE_SCALE
+  , pattern GL_POST_COLOR_MATRIX_COLOR_TABLE
+  , pattern GL_POST_COLOR_MATRIX_GREEN_BIAS
+  , pattern GL_POST_COLOR_MATRIX_GREEN_SCALE
+  , pattern GL_POST_COLOR_MATRIX_RED_BIAS
+  , pattern GL_POST_COLOR_MATRIX_RED_SCALE
+  , pattern GL_POST_CONVOLUTION_ALPHA_BIAS
+  , pattern GL_POST_CONVOLUTION_ALPHA_SCALE
+  , pattern GL_POST_CONVOLUTION_BLUE_BIAS
+  , pattern GL_POST_CONVOLUTION_BLUE_SCALE
+  , pattern GL_POST_CONVOLUTION_COLOR_TABLE
+  , pattern GL_POST_CONVOLUTION_GREEN_BIAS
+  , pattern GL_POST_CONVOLUTION_GREEN_SCALE
+  , pattern GL_POST_CONVOLUTION_RED_BIAS
+  , pattern GL_POST_CONVOLUTION_RED_SCALE
+  , pattern GL_PROXY_COLOR_TABLE
+  , pattern GL_PROXY_HISTOGRAM
+  , pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE
+  , pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE
+  , pattern GL_REDUCE
+  , pattern GL_REPLICATE_BORDER
+  , pattern GL_SEPARABLE_2D
+  , pattern GL_TABLE_TOO_LARGE
+) 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 GL_ARB_imaging extension is available.
+
+gl_ARB_imaging :: Bool
+gl_ARB_imaging = member "GL_ARB_imaging" extensions
+{-# NOINLINE gl_ARB_imaging #-}
+
+-- | Usage: @'glColorSubTable' target start count format type data@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type,count)@.
+
+
+glColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glColorSubTable = ffienumsizeisizeienumenumPtrVIOV glColorSubTableFunPtr
+
+glColorSubTableFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glColorSubTableFunPtr = unsafePerformIO (getProcAddress "glColorSubTable")
+
+{-# NOINLINE glColorSubTableFunPtr #-}
+
+-- | Usage: @'glColorTable' target internalformat width format type table@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(format,type,width)@.
+
+
+glColorTable :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glColorTable = ffienumenumsizeienumenumPtrVIOV glColorTableFunPtr
+
+glColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glColorTableFunPtr = unsafePerformIO (getProcAddress "glColorTable")
+
+{-# NOINLINE glColorTableFunPtr #-}
+
+-- | Usage: @'glColorTableParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @ColorTableParameterPName@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glColorTableParameterfv = ffienumenumPtrfloatIOV glColorTableParameterfvFunPtr
+
+glColorTableParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glColorTableParameterfvFunPtr = unsafePerformIO (getProcAddress "glColorTableParameterfv")
+
+{-# NOINLINE glColorTableParameterfvFunPtr #-}
+
+-- | Usage: @'glColorTableParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @ColorTableParameterPName@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glColorTableParameteriv = ffienumenumPtrintIOV glColorTableParameterivFunPtr
+
+glColorTableParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glColorTableParameterivFunPtr = unsafePerformIO (getProcAddress "glColorTableParameteriv")
+
+{-# NOINLINE glColorTableParameterivFunPtr #-}
+
+-- | Usage: @'glConvolutionFilter1D' target internalformat width format type image@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width)@.
+
+
+glConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glConvolutionFilter1D = ffienumenumsizeienumenumPtrVIOV glConvolutionFilter1DFunPtr
+
+glConvolutionFilter1DFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glConvolutionFilter1DFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter1D")
+
+{-# NOINLINE glConvolutionFilter1DFunPtr #-}
+
+-- | Usage: @'glConvolutionFilter2D' target internalformat width height format type image@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glConvolutionFilter2D = ffienumenumsizeisizeienumenumPtrVIOV glConvolutionFilter2DFunPtr
+
+glConvolutionFilter2DFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glConvolutionFilter2DFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter2D")
+
+{-# NOINLINE glConvolutionFilter2DFunPtr #-}
+
+-- | Usage: @'glConvolutionParameterf' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+
+
+glConvolutionParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glConvolutionParameterf = ffienumenumfloatIOV glConvolutionParameterfFunPtr
+
+glConvolutionParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glConvolutionParameterfFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterf")
+
+{-# NOINLINE glConvolutionParameterfFunPtr #-}
+
+-- | Usage: @'glConvolutionParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glConvolutionParameterfv = ffienumenumPtrfloatIOV glConvolutionParameterfvFunPtr
+
+glConvolutionParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glConvolutionParameterfvFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterfv")
+
+{-# NOINLINE glConvolutionParameterfvFunPtr #-}
+
+-- | Usage: @'glConvolutionParameteri' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+
+
+glConvolutionParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glConvolutionParameteri = ffienumenumintIOV glConvolutionParameteriFunPtr
+
+glConvolutionParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glConvolutionParameteriFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameteri")
+
+{-# NOINLINE glConvolutionParameteriFunPtr #-}
+
+-- | Usage: @'glConvolutionParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @ConvolutionParameter@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glConvolutionParameteriv = ffienumenumPtrintIOV glConvolutionParameterivFunPtr
+
+glConvolutionParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glConvolutionParameterivFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameteriv")
+
+{-# NOINLINE glConvolutionParameterivFunPtr #-}
+
+-- | Usage: @'glCopyColorSubTable' target start x y width@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyColorSubTable :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
+glCopyColorSubTable = ffienumsizeiintintsizeiIOV glCopyColorSubTableFunPtr
+
+glCopyColorSubTableFunPtr :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
+glCopyColorSubTableFunPtr = unsafePerformIO (getProcAddress "glCopyColorSubTable")
+
+{-# NOINLINE glCopyColorSubTableFunPtr #-}
+
+-- | Usage: @'glCopyColorTable' target internalformat x y width@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyColorTable :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
+glCopyColorTable = ffienumenumintintsizeiIOV glCopyColorTableFunPtr
+
+glCopyColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+glCopyColorTableFunPtr = unsafePerformIO (getProcAddress "glCopyColorTable")
+
+{-# NOINLINE glCopyColorTableFunPtr #-}
+
+-- | Usage: @'glCopyConvolutionFilter1D' target internalformat x y width@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyConvolutionFilter1D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
+glCopyConvolutionFilter1D = ffienumenumintintsizeiIOV glCopyConvolutionFilter1DFunPtr
+
+glCopyConvolutionFilter1DFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+glCopyConvolutionFilter1DFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter1D")
+
+{-# NOINLINE glCopyConvolutionFilter1DFunPtr #-}
+
+-- | Usage: @'glCopyConvolutionFilter2D' target internalformat x y width height@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyConvolutionFilter2D :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyConvolutionFilter2D = ffienumenumintintsizeisizeiIOV glCopyConvolutionFilter2DFunPtr
+
+glCopyConvolutionFilter2DFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyConvolutionFilter2DFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter2D")
+
+{-# NOINLINE glCopyConvolutionFilter2DFunPtr #-}
+
+-- | Usage: @'glGetColorTable' target format type table@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glGetColorTable = ffienumenumenumPtrVIOV glGetColorTableFunPtr
+
+glGetColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetColorTableFunPtr = unsafePerformIO (getProcAddress "glGetColorTable")
+
+{-# NOINLINE glGetColorTableFunPtr #-}
+
+-- | Usage: @'glGetColorTableParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetColorTableParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetColorTableParameterfv = ffienumenumPtrfloatIOV glGetColorTableParameterfvFunPtr
+
+glGetColorTableParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetColorTableParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfv")
+
+{-# NOINLINE glGetColorTableParameterfvFunPtr #-}
+
+-- | Usage: @'glGetColorTableParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetColorTableParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetColorTableParameteriv = ffienumenumPtrintIOV glGetColorTableParameterivFunPtr
+
+glGetColorTableParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetColorTableParameterivFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameteriv")
+
+{-# NOINLINE glGetColorTableParameterivFunPtr #-}
+
+-- | Usage: @'glGetConvolutionFilter' target format type image@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glGetConvolutionFilter = ffienumenumenumPtrVIOV glGetConvolutionFilterFunPtr
+
+glGetConvolutionFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetConvolutionFilterFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionFilter")
+
+{-# NOINLINE glGetConvolutionFilterFunPtr #-}
+
+-- | Usage: @'glGetConvolutionParameterfv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @GetConvolutionParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetConvolutionParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetConvolutionParameterfv = ffienumenumPtrfloatIOV glGetConvolutionParameterfvFunPtr
+
+glGetConvolutionParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetConvolutionParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterfv")
+
+{-# NOINLINE glGetConvolutionParameterfvFunPtr #-}
+
+-- | Usage: @'glGetConvolutionParameteriv' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTarget@.
+--
+-- The parameter @pname@ is a @GetConvolutionParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetConvolutionParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetConvolutionParameteriv = ffienumenumPtrintIOV glGetConvolutionParameterivFunPtr
+
+glGetConvolutionParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetConvolutionParameterivFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameteriv")
+
+{-# NOINLINE glGetConvolutionParameterivFunPtr #-}
+
+-- | Usage: @'glGetHistogram' target reset format type values@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
+glGetHistogram = ffienumbooleanenumenumPtrVIOV glGetHistogramFunPtr
+
+glGetHistogramFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetHistogramFunPtr = unsafePerformIO (getProcAddress "glGetHistogram")
+
+{-# NOINLINE glGetHistogramFunPtr #-}
+
+-- | Usage: @'glGetHistogramParameterfv' target pname params@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetHistogramParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetHistogramParameterfv = ffienumenumPtrfloatIOV glGetHistogramParameterfvFunPtr
+
+glGetHistogramParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetHistogramParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterfv")
+
+{-# NOINLINE glGetHistogramParameterfvFunPtr #-}
+
+-- | Usage: @'glGetHistogramParameteriv' target pname params@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetHistogramParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetHistogramParameteriv = ffienumenumPtrintIOV glGetHistogramParameterivFunPtr
+
+glGetHistogramParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetHistogramParameterivFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameteriv")
+
+{-# NOINLINE glGetHistogramParameterivFunPtr #-}
+
+-- | Usage: @'glGetMinmax' target reset format type values@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
+glGetMinmax = ffienumbooleanenumenumPtrVIOV glGetMinmaxFunPtr
+
+glGetMinmaxFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetMinmaxFunPtr = unsafePerformIO (getProcAddress "glGetMinmax")
+
+{-# NOINLINE glGetMinmaxFunPtr #-}
+
+-- | Usage: @'glGetMinmaxParameterfv' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMinmaxParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMinmaxParameterfv = ffienumenumPtrfloatIOV glGetMinmaxParameterfvFunPtr
+
+glGetMinmaxParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMinmaxParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameterfv")
+
+{-# NOINLINE glGetMinmaxParameterfvFunPtr #-}
+
+-- | Usage: @'glGetMinmaxParameteriv' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMinmaxParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMinmaxParameteriv = ffienumenumPtrintIOV glGetMinmaxParameterivFunPtr
+
+glGetMinmaxParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMinmaxParameterivFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameteriv")
+
+{-# NOINLINE glGetMinmaxParameterivFunPtr #-}
+
+-- | Usage: @'glGetSeparableFilter' target format type row column span@
+--
+-- The parameter @target@ is a @SeparableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @span@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
+glGetSeparableFilter = ffienumenumenumPtrVPtrVPtrVIOV glGetSeparableFilterFunPtr
+
+glGetSeparableFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ())
+glGetSeparableFilterFunPtr = unsafePerformIO (getProcAddress "glGetSeparableFilter")
+
+{-# NOINLINE glGetSeparableFilterFunPtr #-}
+
+-- | Usage: @'glHistogram' target width internalformat sink@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glHistogram :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
+glHistogram = ffienumsizeienumbooleanIOV glHistogramFunPtr
+
+glHistogramFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
+glHistogramFunPtr = unsafePerformIO (getProcAddress "glHistogram")
+
+{-# NOINLINE glHistogramFunPtr #-}
+
+-- | Usage: @'glMinmax' target internalformat sink@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glMinmax :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()
+glMinmax = ffienumenumbooleanIOV glMinmaxFunPtr
+
+glMinmaxFunPtr :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ())
+glMinmaxFunPtr = unsafePerformIO (getProcAddress "glMinmax")
+
+{-# NOINLINE glMinmaxFunPtr #-}
+
+-- | Usage: @'glResetHistogram' target@
+--
+-- The parameter @target@ is a @HistogramTarget@.
+
+
+glResetHistogram :: MonadIO m => GLenum -> m ()
+glResetHistogram = ffienumIOV glResetHistogramFunPtr
+
+glResetHistogramFunPtr :: FunPtr (GLenum -> IO ())
+glResetHistogramFunPtr = unsafePerformIO (getProcAddress "glResetHistogram")
+
+{-# NOINLINE glResetHistogramFunPtr #-}
+
+-- | Usage: @'glResetMinmax' target@
+--
+-- The parameter @target@ is a @MinmaxTarget@.
+
+
+glResetMinmax :: MonadIO m => GLenum -> m ()
+glResetMinmax = ffienumIOV glResetMinmaxFunPtr
+
+glResetMinmaxFunPtr :: FunPtr (GLenum -> IO ())
+glResetMinmaxFunPtr = unsafePerformIO (getProcAddress "glResetMinmax")
+
+{-# NOINLINE glResetMinmaxFunPtr #-}
+
+-- | Usage: @'glSeparableFilter2D' target internalformat width height format type row column@
+--
+-- The parameter @target@ is a @SeparableTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type,width)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type,height)@.
+
+
+glSeparableFilter2D :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
+glSeparableFilter2D = ffienumenumsizeisizeienumenumPtrVPtrVIOV glSeparableFilter2DFunPtr
+
+glSeparableFilter2DFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ())
+glSeparableFilter2DFunPtr = unsafePerformIO (getProcAddress "glSeparableFilter2D")
+
+{-# NOINLINE glSeparableFilter2DFunPtr #-}
+
+pattern GL_COLOR_MATRIX = 0x80B1
+
+pattern GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2
+
+pattern GL_COLOR_TABLE = 0x80D0
+
+pattern GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD
+
+pattern GL_COLOR_TABLE_BIAS = 0x80D7
+
+pattern GL_COLOR_TABLE_BLUE_SIZE = 0x80DC
+
+pattern GL_COLOR_TABLE_FORMAT = 0x80D8
+
+pattern GL_COLOR_TABLE_GREEN_SIZE = 0x80DB
+
+pattern GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF
+
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE
+
+pattern GL_COLOR_TABLE_RED_SIZE = 0x80DA
+
+pattern GL_COLOR_TABLE_SCALE = 0x80D6
+
+pattern GL_COLOR_TABLE_WIDTH = 0x80D9
+
+pattern GL_CONSTANT_BORDER = 0x8151
+
+pattern GL_CONVOLUTION_1D = 0x8010
+
+pattern GL_CONVOLUTION_2D = 0x8011
+
+pattern GL_CONVOLUTION_BORDER_COLOR = 0x8154
+
+pattern GL_CONVOLUTION_BORDER_MODE = 0x8013
+
+pattern GL_CONVOLUTION_FILTER_BIAS = 0x8015
+
+pattern GL_CONVOLUTION_FILTER_SCALE = 0x8014
+
+pattern GL_CONVOLUTION_FORMAT = 0x8017
+
+pattern GL_CONVOLUTION_HEIGHT = 0x8019
+
+pattern GL_CONVOLUTION_WIDTH = 0x8018
+
+pattern GL_HISTOGRAM = 0x8024
+
+pattern GL_HISTOGRAM_ALPHA_SIZE = 0x802B
+
+pattern GL_HISTOGRAM_BLUE_SIZE = 0x802A
+
+pattern GL_HISTOGRAM_FORMAT = 0x8027
+
+pattern GL_HISTOGRAM_GREEN_SIZE = 0x8029
+
+pattern GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C
+
+pattern GL_HISTOGRAM_RED_SIZE = 0x8028
+
+pattern GL_HISTOGRAM_SINK = 0x802D
+
+pattern GL_HISTOGRAM_WIDTH = 0x8026
+
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3
+
+pattern GL_MAX_CONVOLUTION_HEIGHT = 0x801B
+
+pattern GL_MAX_CONVOLUTION_WIDTH = 0x801A
+
+pattern GL_MINMAX = 0x802E
+
+pattern GL_MINMAX_FORMAT = 0x802F
+
+pattern GL_MINMAX_SINK = 0x8030
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7
+
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA
+
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6
+
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2
+
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9
+
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5
+
+pattern GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8
+
+pattern GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4
+
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023
+
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F
+
+pattern GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022
+
+pattern GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E
+
+pattern GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1
+
+pattern GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021
+
+pattern GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D
+
+pattern GL_POST_CONVOLUTION_RED_BIAS = 0x8020
+
+pattern GL_POST_CONVOLUTION_RED_SCALE = 0x801C
+
+pattern GL_PROXY_COLOR_TABLE = 0x80D3
+
+pattern GL_PROXY_HISTOGRAM = 0x8025
+
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5
+
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4
+
+pattern GL_REDUCE = 0x8016
+
+pattern GL_REPLICATE_BORDER = 0x8153
+
+pattern GL_SEPARABLE_2D = 0x8012
+
+pattern GL_TABLE_TOO_LARGE = 0x8031
diff --git a/generated-src/Graphics/GL/Ext/ARB/IndirectParameters.hs b/generated-src/Graphics/GL/Ext/ARB/IndirectParameters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/IndirectParameters.hs
@@ -0,0 +1,52 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.IndirectParameters (
+  -- * Extension Support
+    gl_ARB_indirect_parameters
+
+  -- * GL_ARB_indirect_parameters
+  , glMultiDrawArraysIndirectCountARB
+  , glMultiDrawElementsIndirectCountARB
+  , pattern GL_PARAMETER_BUFFER_ARB
+  , pattern GL_PARAMETER_BUFFER_BINDING_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/indirect_parameters.txt GL_ARB_indirect_parameters> extension is available.
+
+gl_ARB_indirect_parameters :: Bool
+gl_ARB_indirect_parameters = member "GL_ARB_indirect_parameters" extensions
+{-# NOINLINE gl_ARB_indirect_parameters #-}
+
+-- | Usage: @'glMultiDrawArraysIndirectCountARB' mode indirect drawcount maxdrawcount stride@
+
+
+glMultiDrawArraysIndirectCountARB :: MonadIO m => GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
+glMultiDrawArraysIndirectCountARB = ffienumintptrintptrsizeisizeiIOV glMultiDrawArraysIndirectCountARBFunPtr
+
+glMultiDrawArraysIndirectCountARBFunPtr :: FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysIndirectCountARBFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectCountARB")
+
+{-# NOINLINE glMultiDrawArraysIndirectCountARBFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectCountARB' mode type indirect drawcount maxdrawcount stride@
+
+
+glMultiDrawElementsIndirectCountARB :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
+glMultiDrawElementsIndirectCountARB = ffienumenumintptrintptrsizeisizeiIOV glMultiDrawElementsIndirectCountARBFunPtr
+
+glMultiDrawElementsIndirectCountARBFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ())
+glMultiDrawElementsIndirectCountARBFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectCountARB")
+
+{-# NOINLINE glMultiDrawElementsIndirectCountARBFunPtr #-}
+
+pattern GL_PARAMETER_BUFFER_ARB = 0x80EE
+
+pattern GL_PARAMETER_BUFFER_BINDING_ARB = 0x80EF
diff --git a/generated-src/Graphics/GL/Ext/ARB/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/ARB/InstancedArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/InstancedArrays.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.InstancedArrays (
+  -- * Extension Support
+    gl_ARB_instanced_arrays
+
+  -- * GL_ARB_instanced_arrays
+  , glVertexAttribDivisorARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/instanced_arrays.txt GL_ARB_instanced_arrays> extension is available.
+
+gl_ARB_instanced_arrays :: Bool
+gl_ARB_instanced_arrays = member "GL_ARB_instanced_arrays" extensions
+{-# NOINLINE gl_ARB_instanced_arrays #-}
+
+-- | Usage: @'glVertexAttribDivisorARB' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
+
+
+glVertexAttribDivisorARB :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribDivisorARB = ffiuintuintIOV glVertexAttribDivisorARBFunPtr
+
+glVertexAttribDivisorARBFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribDivisorARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorARB")
+
+{-# NOINLINE glVertexAttribDivisorARBFunPtr #-}
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery.hs b/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.InternalformatQuery (
+  -- * Extension Support
+    gl_ARB_internalformat_query
+
+  -- * GL_ARB_internalformat_query
+  , glGetInternalformativ
+  , pattern GL_NUM_SAMPLE_COUNTS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query.txt GL_ARB_internalformat_query> extension is available.
+
+gl_ARB_internalformat_query :: Bool
+gl_ARB_internalformat_query = member "GL_ARB_internalformat_query" extensions
+{-# NOINLINE gl_ARB_internalformat_query #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery2.hs b/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery2.hs
@@ -0,0 +1,136 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.InternalformatQuery2 (
+  -- * Extension Support
+    gl_ARB_internalformat_query2
+
+  -- * GL_ARB_internalformat_query2
+  , glGetInternalformati64v
+  , pattern GL_AUTO_GENERATE_MIPMAP
+  , pattern GL_CAVEAT_SUPPORT
+  , pattern GL_CLEAR_BUFFER
+  , pattern GL_COLOR_COMPONENTS
+  , pattern GL_COLOR_ENCODING
+  , pattern GL_COLOR_RENDERABLE
+  , pattern GL_COMPUTE_TEXTURE
+  , pattern GL_DEPTH_COMPONENTS
+  , pattern GL_DEPTH_RENDERABLE
+  , pattern GL_FILTER
+  , pattern GL_FRAGMENT_TEXTURE
+  , pattern GL_FRAMEBUFFER_BLEND
+  , pattern GL_FRAMEBUFFER_RENDERABLE
+  , pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED
+  , pattern GL_FULL_SUPPORT
+  , pattern GL_GEOMETRY_TEXTURE
+  , pattern GL_GET_TEXTURE_IMAGE_FORMAT
+  , pattern GL_GET_TEXTURE_IMAGE_TYPE
+  , pattern GL_IMAGE_CLASS_10_10_10_2
+  , pattern GL_IMAGE_CLASS_11_11_10
+  , pattern GL_IMAGE_CLASS_1_X_16
+  , pattern GL_IMAGE_CLASS_1_X_32
+  , pattern GL_IMAGE_CLASS_1_X_8
+  , pattern GL_IMAGE_CLASS_2_X_16
+  , pattern GL_IMAGE_CLASS_2_X_32
+  , pattern GL_IMAGE_CLASS_2_X_8
+  , pattern GL_IMAGE_CLASS_4_X_16
+  , pattern GL_IMAGE_CLASS_4_X_32
+  , pattern GL_IMAGE_CLASS_4_X_8
+  , pattern GL_IMAGE_COMPATIBILITY_CLASS
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
+  , pattern GL_IMAGE_PIXEL_FORMAT
+  , pattern GL_IMAGE_PIXEL_TYPE
+  , pattern GL_IMAGE_TEXEL_SIZE
+  , pattern GL_INTERNALFORMAT_ALPHA_SIZE
+  , pattern GL_INTERNALFORMAT_ALPHA_TYPE
+  , pattern GL_INTERNALFORMAT_BLUE_SIZE
+  , pattern GL_INTERNALFORMAT_BLUE_TYPE
+  , pattern GL_INTERNALFORMAT_DEPTH_SIZE
+  , pattern GL_INTERNALFORMAT_DEPTH_TYPE
+  , pattern GL_INTERNALFORMAT_GREEN_SIZE
+  , pattern GL_INTERNALFORMAT_GREEN_TYPE
+  , pattern GL_INTERNALFORMAT_PREFERRED
+  , pattern GL_INTERNALFORMAT_RED_SIZE
+  , pattern GL_INTERNALFORMAT_RED_TYPE
+  , pattern GL_INTERNALFORMAT_SHARED_SIZE
+  , pattern GL_INTERNALFORMAT_STENCIL_SIZE
+  , pattern GL_INTERNALFORMAT_STENCIL_TYPE
+  , pattern GL_INTERNALFORMAT_SUPPORTED
+  , pattern GL_MANUAL_GENERATE_MIPMAP
+  , pattern GL_MAX_COMBINED_DIMENSIONS
+  , pattern GL_MAX_DEPTH
+  , pattern GL_MAX_HEIGHT
+  , pattern GL_MAX_LAYERS
+  , pattern GL_MAX_WIDTH
+  , pattern GL_MIPMAP
+  , pattern GL_NUM_SAMPLE_COUNTS
+  , pattern GL_READ_PIXELS
+  , pattern GL_READ_PIXELS_FORMAT
+  , pattern GL_READ_PIXELS_TYPE
+  , pattern GL_RENDERBUFFER
+  , pattern GL_SAMPLES
+  , pattern GL_SHADER_IMAGE_ATOMIC
+  , pattern GL_SHADER_IMAGE_LOAD
+  , pattern GL_SHADER_IMAGE_STORE
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST
+  , pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE
+  , pattern GL_SRGB_DECODE_ARB
+  , pattern GL_SRGB_READ
+  , pattern GL_SRGB_WRITE
+  , pattern GL_STENCIL_COMPONENTS
+  , pattern GL_STENCIL_RENDERABLE
+  , pattern GL_TESS_CONTROL_TEXTURE
+  , pattern GL_TESS_EVALUATION_TEXTURE
+  , pattern GL_TEXTURE_1D
+  , pattern GL_TEXTURE_1D_ARRAY
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_2D_ARRAY
+  , pattern GL_TEXTURE_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_3D
+  , pattern GL_TEXTURE_BUFFER
+  , pattern GL_TEXTURE_COMPRESSED
+  , pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT
+  , pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE
+  , pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH
+  , pattern GL_TEXTURE_CUBE_MAP
+  , pattern GL_TEXTURE_CUBE_MAP_ARRAY
+  , pattern GL_TEXTURE_GATHER
+  , pattern GL_TEXTURE_GATHER_SHADOW
+  , pattern GL_TEXTURE_IMAGE_FORMAT
+  , pattern GL_TEXTURE_IMAGE_TYPE
+  , pattern GL_TEXTURE_RECTANGLE
+  , pattern GL_TEXTURE_SHADOW
+  , pattern GL_TEXTURE_VIEW
+  , pattern GL_VERTEX_TEXTURE
+  , pattern GL_VIEW_CLASS_128_BITS
+  , pattern GL_VIEW_CLASS_16_BITS
+  , pattern GL_VIEW_CLASS_24_BITS
+  , pattern GL_VIEW_CLASS_32_BITS
+  , pattern GL_VIEW_CLASS_48_BITS
+  , pattern GL_VIEW_CLASS_64_BITS
+  , pattern GL_VIEW_CLASS_8_BITS
+  , pattern GL_VIEW_CLASS_96_BITS
+  , pattern GL_VIEW_CLASS_BPTC_FLOAT
+  , pattern GL_VIEW_CLASS_BPTC_UNORM
+  , pattern GL_VIEW_CLASS_RGTC1_RED
+  , pattern GL_VIEW_CLASS_RGTC2_RG
+  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGB
+  , pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA
+  , pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA
+  , pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA
+  , pattern GL_VIEW_COMPATIBILITY_CLASS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/internalformat_query2.txt GL_ARB_internalformat_query2> extension is available.
+
+gl_ARB_internalformat_query2 :: Bool
+gl_ARB_internalformat_query2 = member "GL_ARB_internalformat_query2" extensions
+{-# NOINLINE gl_ARB_internalformat_query2 #-}
+
+pattern GL_SRGB_DECODE_ARB = 0x8299
diff --git a/generated-src/Graphics/GL/Ext/ARB/InvalidateSubdata.hs b/generated-src/Graphics/GL/Ext/ARB/InvalidateSubdata.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/InvalidateSubdata.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.InvalidateSubdata (
+  -- * Extension Support
+    gl_ARB_invalidate_subdata
+
+  -- * GL_ARB_invalidate_subdata
+  , glInvalidateBufferData
+  , glInvalidateBufferSubData
+  , glInvalidateFramebuffer
+  , glInvalidateSubFramebuffer
+  , glInvalidateTexImage
+  , glInvalidateTexSubImage
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/invalidate_subdata.txt GL_ARB_invalidate_subdata> extension is available.
+
+gl_ARB_invalidate_subdata :: Bool
+gl_ARB_invalidate_subdata = member "GL_ARB_invalidate_subdata" extensions
+{-# NOINLINE gl_ARB_invalidate_subdata #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/MapBufferAlignment.hs b/generated-src/Graphics/GL/Ext/ARB/MapBufferAlignment.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/MapBufferAlignment.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.MapBufferAlignment (
+  -- * Extension Support
+    gl_ARB_map_buffer_alignment
+
+  -- * GL_ARB_map_buffer_alignment
+  , pattern GL_MIN_MAP_BUFFER_ALIGNMENT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_alignment.txt GL_ARB_map_buffer_alignment> extension is available.
+
+gl_ARB_map_buffer_alignment :: Bool
+gl_ARB_map_buffer_alignment = member "GL_ARB_map_buffer_alignment" extensions
+{-# NOINLINE gl_ARB_map_buffer_alignment #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/MapBufferRange.hs b/generated-src/Graphics/GL/Ext/ARB/MapBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/MapBufferRange.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.MapBufferRange (
+  -- * Extension Support
+    gl_ARB_map_buffer_range
+
+  -- * GL_ARB_map_buffer_range
+  , glFlushMappedBufferRange
+  , glMapBufferRange
+  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
+  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
+  , pattern GL_MAP_INVALIDATE_RANGE_BIT
+  , pattern GL_MAP_READ_BIT
+  , pattern GL_MAP_UNSYNCHRONIZED_BIT
+  , pattern GL_MAP_WRITE_BIT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/map_buffer_range.txt GL_ARB_map_buffer_range> extension is available.
+
+gl_ARB_map_buffer_range :: Bool
+gl_ARB_map_buffer_range = member "GL_ARB_map_buffer_range" extensions
+{-# NOINLINE gl_ARB_map_buffer_range #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/MatrixPalette.hs b/generated-src/Graphics/GL/Ext/ARB/MatrixPalette.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/MatrixPalette.hs
@@ -0,0 +1,122 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.MatrixPalette (
+  -- * Extension Support
+    gl_ARB_matrix_palette
+
+  -- * GL_ARB_matrix_palette
+  , glCurrentPaletteMatrixARB
+  , glMatrixIndexPointerARB
+  , glMatrixIndexubvARB
+  , glMatrixIndexuivARB
+  , glMatrixIndexusvARB
+  , pattern GL_CURRENT_MATRIX_INDEX_ARB
+  , pattern GL_CURRENT_PALETTE_MATRIX_ARB
+  , pattern GL_MATRIX_INDEX_ARRAY_ARB
+  , pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB
+  , pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB
+  , pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB
+  , pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB
+  , pattern GL_MATRIX_PALETTE_ARB
+  , pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB
+  , pattern GL_MAX_PALETTE_MATRICES_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/matrix_palette.txt GL_ARB_matrix_palette> extension is available.
+
+gl_ARB_matrix_palette :: Bool
+gl_ARB_matrix_palette = member "GL_ARB_matrix_palette" extensions
+{-# NOINLINE gl_ARB_matrix_palette #-}
+
+-- | Usage: @'glCurrentPaletteMatrixARB' index@
+
+
+glCurrentPaletteMatrixARB :: MonadIO m => GLint -> m ()
+glCurrentPaletteMatrixARB = ffiintIOV glCurrentPaletteMatrixARBFunPtr
+
+glCurrentPaletteMatrixARBFunPtr :: FunPtr (GLint -> IO ())
+glCurrentPaletteMatrixARBFunPtr = unsafePerformIO (getProcAddress "glCurrentPaletteMatrixARB")
+
+{-# NOINLINE glCurrentPaletteMatrixARBFunPtr #-}
+
+-- | Usage: @'glMatrixIndexPointerARB' size type stride pointer@
+--
+-- The parameter @type@ is a @MatrixIndexPointerTypeARB@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glMatrixIndexPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glMatrixIndexPointerARB = ffiintenumsizeiPtrVIOV glMatrixIndexPointerARBFunPtr
+
+glMatrixIndexPointerARBFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glMatrixIndexPointerARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexPointerARB")
+
+{-# NOINLINE glMatrixIndexPointerARBFunPtr #-}
+
+-- | Usage: @'glMatrixIndexubvARB' size indices@
+--
+-- The length of @indices@ should be @size@.
+
+
+glMatrixIndexubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
+glMatrixIndexubvARB = ffiintPtrubyteIOV glMatrixIndexubvARBFunPtr
+
+glMatrixIndexubvARBFunPtr :: FunPtr (GLint -> Ptr GLubyte -> IO ())
+glMatrixIndexubvARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexubvARB")
+
+{-# NOINLINE glMatrixIndexubvARBFunPtr #-}
+
+-- | Usage: @'glMatrixIndexuivARB' size indices@
+--
+-- The length of @indices@ should be @size@.
+
+
+glMatrixIndexuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
+glMatrixIndexuivARB = ffiintPtruintIOV glMatrixIndexuivARBFunPtr
+
+glMatrixIndexuivARBFunPtr :: FunPtr (GLint -> Ptr GLuint -> IO ())
+glMatrixIndexuivARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexuivARB")
+
+{-# NOINLINE glMatrixIndexuivARBFunPtr #-}
+
+-- | Usage: @'glMatrixIndexusvARB' size indices@
+--
+-- The length of @indices@ should be @size@.
+
+
+glMatrixIndexusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
+glMatrixIndexusvARB = ffiintPtrushortIOV glMatrixIndexusvARBFunPtr
+
+glMatrixIndexusvARBFunPtr :: FunPtr (GLint -> Ptr GLushort -> IO ())
+glMatrixIndexusvARBFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexusvARB")
+
+{-# NOINLINE glMatrixIndexusvARBFunPtr #-}
+
+pattern GL_CURRENT_MATRIX_INDEX_ARB = 0x8845
+
+pattern GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843
+
+pattern GL_MATRIX_INDEX_ARRAY_ARB = 0x8844
+
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849
+
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846
+
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848
+
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847
+
+pattern GL_MATRIX_PALETTE_ARB = 0x8840
+
+pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841
+
+pattern GL_MAX_PALETTE_MATRICES_ARB = 0x8842
diff --git a/generated-src/Graphics/GL/Ext/ARB/MultiBind.hs b/generated-src/Graphics/GL/Ext/ARB/MultiBind.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/MultiBind.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.MultiBind (
+  -- * Extension Support
+    gl_ARB_multi_bind
+
+  -- * GL_ARB_multi_bind
+  , glBindBuffersBase
+  , glBindBuffersRange
+  , glBindImageTextures
+  , glBindSamplers
+  , glBindTextures
+  , glBindVertexBuffers
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_bind.txt GL_ARB_multi_bind> extension is available.
+
+gl_ARB_multi_bind :: Bool
+gl_ARB_multi_bind = member "GL_ARB_multi_bind" extensions
+{-# NOINLINE gl_ARB_multi_bind #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/MultiDrawIndirect.hs b/generated-src/Graphics/GL/Ext/ARB/MultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/MultiDrawIndirect.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.MultiDrawIndirect (
+  -- * Extension Support
+    gl_ARB_multi_draw_indirect
+
+  -- * GL_ARB_multi_draw_indirect
+  , glMultiDrawArraysIndirect
+  , glMultiDrawElementsIndirect
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/multi_draw_indirect.txt GL_ARB_multi_draw_indirect> extension is available.
+
+gl_ARB_multi_draw_indirect :: Bool
+gl_ARB_multi_draw_indirect = member "GL_ARB_multi_draw_indirect" extensions
+{-# NOINLINE gl_ARB_multi_draw_indirect #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/Multisample.hs b/generated-src/Graphics/GL/Ext/ARB/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/Multisample.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.Multisample (
+  -- * Extension Support
+    gl_ARB_multisample
+
+  -- * GL_ARB_multisample
+  , glSampleCoverageARB
+  , pattern GL_MULTISAMPLE_ARB
+  , pattern GL_MULTISAMPLE_BIT_ARB
+  , pattern GL_SAMPLES_ARB
+  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB
+  , pattern GL_SAMPLE_ALPHA_TO_ONE_ARB
+  , pattern GL_SAMPLE_BUFFERS_ARB
+  , pattern GL_SAMPLE_COVERAGE_ARB
+  , pattern GL_SAMPLE_COVERAGE_INVERT_ARB
+  , pattern GL_SAMPLE_COVERAGE_VALUE_ARB
+) 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/ARB/multisample.txt GL_ARB_multisample> extension is available.
+
+gl_ARB_multisample :: Bool
+gl_ARB_multisample = member "GL_ARB_multisample" extensions
+{-# NOINLINE gl_ARB_multisample #-}
+
+-- | Usage: @'glSampleCoverageARB' value invert@
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSampleCoverage'.
+
+
+glSampleCoverageARB :: MonadIO m => GLfloat -> GLboolean -> m ()
+glSampleCoverageARB = ffifloatbooleanIOV glSampleCoverageARBFunPtr
+
+glSampleCoverageARBFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
+glSampleCoverageARBFunPtr = unsafePerformIO (getProcAddress "glSampleCoverageARB")
+
+{-# NOINLINE glSampleCoverageARBFunPtr #-}
+
+pattern GL_MULTISAMPLE_ARB = 0x809D
+
+pattern GL_MULTISAMPLE_BIT_ARB = 0x20000000
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F
+
+pattern GL_SAMPLE_BUFFERS_ARB = 0x80A8
+
+pattern GL_SAMPLE_COVERAGE_ARB = 0x80A0
+
+pattern GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB
+
+pattern GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA
diff --git a/generated-src/Graphics/GL/Ext/ARB/Multitexture.hs b/generated-src/Graphics/GL/Ext/ARB/Multitexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/Multitexture.hs
@@ -0,0 +1,844 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.Multitexture (
+  -- * Extension Support
+    gl_ARB_multitexture
+
+  -- * GL_ARB_multitexture
+  , glActiveTextureARB
+  , glClientActiveTextureARB
+  , glMultiTexCoord1dARB
+  , glMultiTexCoord1dvARB
+  , glMultiTexCoord1fARB
+  , glMultiTexCoord1fvARB
+  , glMultiTexCoord1iARB
+  , glMultiTexCoord1ivARB
+  , glMultiTexCoord1sARB
+  , glMultiTexCoord1svARB
+  , glMultiTexCoord2dARB
+  , glMultiTexCoord2dvARB
+  , glMultiTexCoord2fARB
+  , glMultiTexCoord2fvARB
+  , glMultiTexCoord2iARB
+  , glMultiTexCoord2ivARB
+  , glMultiTexCoord2sARB
+  , glMultiTexCoord2svARB
+  , glMultiTexCoord3dARB
+  , glMultiTexCoord3dvARB
+  , glMultiTexCoord3fARB
+  , glMultiTexCoord3fvARB
+  , glMultiTexCoord3iARB
+  , glMultiTexCoord3ivARB
+  , glMultiTexCoord3sARB
+  , glMultiTexCoord3svARB
+  , glMultiTexCoord4dARB
+  , glMultiTexCoord4dvARB
+  , glMultiTexCoord4fARB
+  , glMultiTexCoord4fvARB
+  , glMultiTexCoord4iARB
+  , glMultiTexCoord4ivARB
+  , glMultiTexCoord4sARB
+  , glMultiTexCoord4svARB
+  , pattern GL_ACTIVE_TEXTURE_ARB
+  , pattern GL_CLIENT_ACTIVE_TEXTURE_ARB
+  , pattern GL_MAX_TEXTURE_UNITS_ARB
+  , pattern GL_TEXTURE0_ARB
+  , pattern GL_TEXTURE10_ARB
+  , pattern GL_TEXTURE11_ARB
+  , pattern GL_TEXTURE12_ARB
+  , pattern GL_TEXTURE13_ARB
+  , pattern GL_TEXTURE14_ARB
+  , pattern GL_TEXTURE15_ARB
+  , pattern GL_TEXTURE16_ARB
+  , pattern GL_TEXTURE17_ARB
+  , pattern GL_TEXTURE18_ARB
+  , pattern GL_TEXTURE19_ARB
+  , pattern GL_TEXTURE1_ARB
+  , pattern GL_TEXTURE20_ARB
+  , pattern GL_TEXTURE21_ARB
+  , pattern GL_TEXTURE22_ARB
+  , pattern GL_TEXTURE23_ARB
+  , pattern GL_TEXTURE24_ARB
+  , pattern GL_TEXTURE25_ARB
+  , pattern GL_TEXTURE26_ARB
+  , pattern GL_TEXTURE27_ARB
+  , pattern GL_TEXTURE28_ARB
+  , pattern GL_TEXTURE29_ARB
+  , pattern GL_TEXTURE2_ARB
+  , pattern GL_TEXTURE30_ARB
+  , pattern GL_TEXTURE31_ARB
+  , pattern GL_TEXTURE3_ARB
+  , pattern GL_TEXTURE4_ARB
+  , pattern GL_TEXTURE5_ARB
+  , pattern GL_TEXTURE6_ARB
+  , pattern GL_TEXTURE7_ARB
+  , pattern GL_TEXTURE8_ARB
+  , pattern GL_TEXTURE9_ARB
+) 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/ARB/multitexture.txt GL_ARB_multitexture> extension is available.
+
+gl_ARB_multitexture :: Bool
+gl_ARB_multitexture = member "GL_ARB_multitexture" extensions
+{-# NOINLINE gl_ARB_multitexture #-}
+
+-- | Usage: @'glActiveTextureARB' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glActiveTexture'.
+
+
+glActiveTextureARB :: MonadIO m => GLenum -> m ()
+glActiveTextureARB = ffienumIOV glActiveTextureARBFunPtr
+
+glActiveTextureARBFunPtr :: FunPtr (GLenum -> IO ())
+glActiveTextureARBFunPtr = unsafePerformIO (getProcAddress "glActiveTextureARB")
+
+{-# NOINLINE glActiveTextureARBFunPtr #-}
+
+-- | Usage: @'glClientActiveTextureARB' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glClientActiveTexture'.
+
+
+glClientActiveTextureARB :: MonadIO m => GLenum -> m ()
+glClientActiveTextureARB = ffienumIOV glClientActiveTextureARBFunPtr
+
+glClientActiveTextureARBFunPtr :: FunPtr (GLenum -> IO ())
+glClientActiveTextureARBFunPtr = unsafePerformIO (getProcAddress "glClientActiveTextureARB")
+
+{-# NOINLINE glClientActiveTextureARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1dARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1dv'.
+
+
+glMultiTexCoord1dARB :: MonadIO m => GLenum -> GLdouble -> m ()
+glMultiTexCoord1dARB = ffienumdoubleIOV glMultiTexCoord1dARBFunPtr
+
+glMultiTexCoord1dARBFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
+glMultiTexCoord1dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dARB")
+
+{-# NOINLINE glMultiTexCoord1dARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1dv'.
+
+
+glMultiTexCoord1dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord1dvARB = ffienumPtrdoubleIOV glMultiTexCoord1dvARBFunPtr
+
+glMultiTexCoord1dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord1dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dvARB")
+
+{-# NOINLINE glMultiTexCoord1dvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1fARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1fv'.
+
+
+glMultiTexCoord1fARB :: MonadIO m => GLenum -> GLfloat -> m ()
+glMultiTexCoord1fARB = ffienumfloatIOV glMultiTexCoord1fARBFunPtr
+
+glMultiTexCoord1fARBFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glMultiTexCoord1fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fARB")
+
+{-# NOINLINE glMultiTexCoord1fARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1fv'.
+
+
+glMultiTexCoord1fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord1fvARB = ffienumPtrfloatIOV glMultiTexCoord1fvARBFunPtr
+
+glMultiTexCoord1fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord1fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fvARB")
+
+{-# NOINLINE glMultiTexCoord1fvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1iARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1iv'.
+
+
+glMultiTexCoord1iARB :: MonadIO m => GLenum -> GLint -> m ()
+glMultiTexCoord1iARB = ffienumintIOV glMultiTexCoord1iARBFunPtr
+
+glMultiTexCoord1iARBFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glMultiTexCoord1iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1iARB")
+
+{-# NOINLINE glMultiTexCoord1iARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1iv'.
+
+
+glMultiTexCoord1ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord1ivARB = ffienumPtrintIOV glMultiTexCoord1ivARBFunPtr
+
+glMultiTexCoord1ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord1ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1ivARB")
+
+{-# NOINLINE glMultiTexCoord1ivARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1sARB' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1sv'.
+
+
+glMultiTexCoord1sARB :: MonadIO m => GLenum -> GLshort -> m ()
+glMultiTexCoord1sARB = ffienumshortIOV glMultiTexCoord1sARBFunPtr
+
+glMultiTexCoord1sARBFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
+glMultiTexCoord1sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1sARB")
+
+{-# NOINLINE glMultiTexCoord1sARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord1sv'.
+
+
+glMultiTexCoord1svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord1svARB = ffienumPtrshortIOV glMultiTexCoord1svARBFunPtr
+
+glMultiTexCoord1svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord1svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1svARB")
+
+{-# NOINLINE glMultiTexCoord1svARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2dARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2dv'.
+
+
+glMultiTexCoord2dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord2dARB = ffienumdoubledoubleIOV glMultiTexCoord2dARBFunPtr
+
+glMultiTexCoord2dARBFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord2dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dARB")
+
+{-# NOINLINE glMultiTexCoord2dARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2dv'.
+
+
+glMultiTexCoord2dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord2dvARB = ffienumPtrdoubleIOV glMultiTexCoord2dvARBFunPtr
+
+glMultiTexCoord2dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord2dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dvARB")
+
+{-# NOINLINE glMultiTexCoord2dvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2fARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2fv'.
+
+
+glMultiTexCoord2fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord2fARB = ffienumfloatfloatIOV glMultiTexCoord2fARBFunPtr
+
+glMultiTexCoord2fARBFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord2fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fARB")
+
+{-# NOINLINE glMultiTexCoord2fARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2fv'.
+
+
+glMultiTexCoord2fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord2fvARB = ffienumPtrfloatIOV glMultiTexCoord2fvARBFunPtr
+
+glMultiTexCoord2fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord2fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fvARB")
+
+{-# NOINLINE glMultiTexCoord2fvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2iARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2iv'.
+
+
+glMultiTexCoord2iARB :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glMultiTexCoord2iARB = ffienumintintIOV glMultiTexCoord2iARBFunPtr
+
+glMultiTexCoord2iARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glMultiTexCoord2iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2iARB")
+
+{-# NOINLINE glMultiTexCoord2iARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2iv'.
+
+
+glMultiTexCoord2ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord2ivARB = ffienumPtrintIOV glMultiTexCoord2ivARBFunPtr
+
+glMultiTexCoord2ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord2ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2ivARB")
+
+{-# NOINLINE glMultiTexCoord2ivARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2sARB' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2sv'.
+
+
+glMultiTexCoord2sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
+glMultiTexCoord2sARB = ffienumshortshortIOV glMultiTexCoord2sARBFunPtr
+
+glMultiTexCoord2sARBFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+glMultiTexCoord2sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2sARB")
+
+{-# NOINLINE glMultiTexCoord2sARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord2sv'.
+
+
+glMultiTexCoord2svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord2svARB = ffienumPtrshortIOV glMultiTexCoord2svARBFunPtr
+
+glMultiTexCoord2svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord2svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2svARB")
+
+{-# NOINLINE glMultiTexCoord2svARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3dARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3dv'.
+
+
+glMultiTexCoord3dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord3dARB = ffienumdoubledoubledoubleIOV glMultiTexCoord3dARBFunPtr
+
+glMultiTexCoord3dARBFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord3dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dARB")
+
+{-# NOINLINE glMultiTexCoord3dARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3dv'.
+
+
+glMultiTexCoord3dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord3dvARB = ffienumPtrdoubleIOV glMultiTexCoord3dvARBFunPtr
+
+glMultiTexCoord3dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord3dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dvARB")
+
+{-# NOINLINE glMultiTexCoord3dvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3fARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3fv'.
+
+
+glMultiTexCoord3fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord3fARB = ffienumfloatfloatfloatIOV glMultiTexCoord3fARBFunPtr
+
+glMultiTexCoord3fARBFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord3fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fARB")
+
+{-# NOINLINE glMultiTexCoord3fARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3fv'.
+
+
+glMultiTexCoord3fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord3fvARB = ffienumPtrfloatIOV glMultiTexCoord3fvARBFunPtr
+
+glMultiTexCoord3fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord3fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fvARB")
+
+{-# NOINLINE glMultiTexCoord3fvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3iARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3iv'.
+
+
+glMultiTexCoord3iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord3iARB = ffienumintintintIOV glMultiTexCoord3iARBFunPtr
+
+glMultiTexCoord3iARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord3iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3iARB")
+
+{-# NOINLINE glMultiTexCoord3iARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3iv'.
+
+
+glMultiTexCoord3ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord3ivARB = ffienumPtrintIOV glMultiTexCoord3ivARBFunPtr
+
+glMultiTexCoord3ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord3ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3ivARB")
+
+{-# NOINLINE glMultiTexCoord3ivARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3sARB' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3sv'.
+
+
+glMultiTexCoord3sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord3sARB = ffienumshortshortshortIOV glMultiTexCoord3sARBFunPtr
+
+glMultiTexCoord3sARBFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord3sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3sARB")
+
+{-# NOINLINE glMultiTexCoord3sARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord3sv'.
+
+
+glMultiTexCoord3svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord3svARB = ffienumPtrshortIOV glMultiTexCoord3svARBFunPtr
+
+glMultiTexCoord3svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord3svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3svARB")
+
+{-# NOINLINE glMultiTexCoord3svARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4dARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The parameter @q@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4dv'.
+
+
+glMultiTexCoord4dARB :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord4dARB = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dARBFunPtr
+
+glMultiTexCoord4dARBFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord4dARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dARB")
+
+{-# NOINLINE glMultiTexCoord4dARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4dvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4dv'.
+
+
+glMultiTexCoord4dvARB :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord4dvARB = ffienumPtrdoubleIOV glMultiTexCoord4dvARBFunPtr
+
+glMultiTexCoord4dvARBFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord4dvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dvARB")
+
+{-# NOINLINE glMultiTexCoord4dvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4fARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The parameter @q@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4fv'.
+
+
+glMultiTexCoord4fARB :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord4fARB = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fARBFunPtr
+
+glMultiTexCoord4fARBFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord4fARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fARB")
+
+{-# NOINLINE glMultiTexCoord4fARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4fvARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4fv'.
+
+
+glMultiTexCoord4fvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord4fvARB = ffienumPtrfloatIOV glMultiTexCoord4fvARBFunPtr
+
+glMultiTexCoord4fvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord4fvARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fvARB")
+
+{-# NOINLINE glMultiTexCoord4fvARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4iARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The parameter @q@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4iv'.
+
+
+glMultiTexCoord4iARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord4iARB = ffienumintintintintIOV glMultiTexCoord4iARBFunPtr
+
+glMultiTexCoord4iARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord4iARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4iARB")
+
+{-# NOINLINE glMultiTexCoord4iARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4ivARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4iv'.
+
+
+glMultiTexCoord4ivARB :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord4ivARB = ffienumPtrintIOV glMultiTexCoord4ivARBFunPtr
+
+glMultiTexCoord4ivARBFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord4ivARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4ivARB")
+
+{-# NOINLINE glMultiTexCoord4ivARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4sARB' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The parameter @q@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4sv'.
+
+
+glMultiTexCoord4sARB :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord4sARB = ffienumshortshortshortshortIOV glMultiTexCoord4sARBFunPtr
+
+glMultiTexCoord4sARBFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord4sARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sARB")
+
+{-# NOINLINE glMultiTexCoord4sARBFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4svARB' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiTexCoord4sv'.
+
+
+glMultiTexCoord4svARB :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord4svARB = ffienumPtrshortIOV glMultiTexCoord4svARBFunPtr
+
+glMultiTexCoord4svARBFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord4svARBFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4svARB")
+
+{-# NOINLINE glMultiTexCoord4svARBFunPtr #-}
+
+pattern GL_ACTIVE_TEXTURE_ARB = 0x84E0
+
+pattern GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1
+
+pattern GL_MAX_TEXTURE_UNITS_ARB = 0x84E2
+
+pattern GL_TEXTURE10_ARB = 0x84CA
+
+pattern GL_TEXTURE11_ARB = 0x84CB
+
+pattern GL_TEXTURE12_ARB = 0x84CC
+
+pattern GL_TEXTURE13_ARB = 0x84CD
+
+pattern GL_TEXTURE14_ARB = 0x84CE
+
+pattern GL_TEXTURE15_ARB = 0x84CF
+
+pattern GL_TEXTURE16_ARB = 0x84D0
+
+pattern GL_TEXTURE17_ARB = 0x84D1
+
+pattern GL_TEXTURE18_ARB = 0x84D2
+
+pattern GL_TEXTURE19_ARB = 0x84D3
+
+pattern GL_TEXTURE20_ARB = 0x84D4
+
+pattern GL_TEXTURE21_ARB = 0x84D5
+
+pattern GL_TEXTURE22_ARB = 0x84D6
+
+pattern GL_TEXTURE23_ARB = 0x84D7
+
+pattern GL_TEXTURE24_ARB = 0x84D8
+
+pattern GL_TEXTURE25_ARB = 0x84D9
+
+pattern GL_TEXTURE26_ARB = 0x84DA
+
+pattern GL_TEXTURE27_ARB = 0x84DB
+
+pattern GL_TEXTURE28_ARB = 0x84DC
+
+pattern GL_TEXTURE29_ARB = 0x84DD
+
+pattern GL_TEXTURE2_ARB = 0x84C2
+
+pattern GL_TEXTURE30_ARB = 0x84DE
+
+pattern GL_TEXTURE31_ARB = 0x84DF
+
+pattern GL_TEXTURE3_ARB = 0x84C3
+
+pattern GL_TEXTURE4_ARB = 0x84C4
+
+pattern GL_TEXTURE5_ARB = 0x84C5
+
+pattern GL_TEXTURE6_ARB = 0x84C6
+
+pattern GL_TEXTURE7_ARB = 0x84C7
+
+pattern GL_TEXTURE8_ARB = 0x84C8
+
+pattern GL_TEXTURE9_ARB = 0x84C9
diff --git a/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery.hs b/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery.hs
@@ -0,0 +1,159 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.OcclusionQuery (
+  -- * Extension Support
+    gl_ARB_occlusion_query
+
+  -- * GL_ARB_occlusion_query
+  , glBeginQueryARB
+  , glDeleteQueriesARB
+  , glEndQueryARB
+  , glGenQueriesARB
+  , glGetQueryObjectivARB
+  , glGetQueryObjectuivARB
+  , glGetQueryivARB
+  , glIsQueryARB
+  , pattern GL_CURRENT_QUERY_ARB
+  , pattern GL_QUERY_COUNTER_BITS_ARB
+  , pattern GL_QUERY_RESULT_ARB
+  , pattern GL_QUERY_RESULT_AVAILABLE_ARB
+  , pattern GL_SAMPLES_PASSED_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query.txt GL_ARB_occlusion_query> extension is available.
+
+gl_ARB_occlusion_query :: Bool
+gl_ARB_occlusion_query = member "GL_ARB_occlusion_query" extensions
+{-# NOINLINE gl_ARB_occlusion_query #-}
+
+-- | Usage: @'glBeginQueryARB' target id@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginQuery'.
+
+
+glBeginQueryARB :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQueryARB = ffienumuintIOV glBeginQueryARBFunPtr
+
+glBeginQueryARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryARBFunPtr = unsafePerformIO (getProcAddress "glBeginQueryARB")
+
+{-# NOINLINE glBeginQueryARBFunPtr #-}
+
+-- | Usage: @'glDeleteQueriesARB' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteQueries'.
+
+
+glDeleteQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueriesARB = ffisizeiPtruintIOV glDeleteQueriesARBFunPtr
+
+glDeleteQueriesARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesARBFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesARB")
+
+{-# NOINLINE glDeleteQueriesARBFunPtr #-}
+
+-- | Usage: @'glEndQueryARB' target@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEndQuery'.
+
+
+glEndQueryARB :: MonadIO m => GLenum -> m ()
+glEndQueryARB = ffienumIOV glEndQueryARBFunPtr
+
+glEndQueryARBFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryARBFunPtr = unsafePerformIO (getProcAddress "glEndQueryARB")
+
+{-# NOINLINE glEndQueryARBFunPtr #-}
+
+-- | Usage: @'glGenQueriesARB' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenQueries'.
+
+
+glGenQueriesARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueriesARB = ffisizeiPtruintIOV glGenQueriesARBFunPtr
+
+glGenQueriesARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesARBFunPtr = unsafePerformIO (getProcAddress "glGenQueriesARB")
+
+{-# NOINLINE glGenQueriesARBFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectivARB' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectiv'.
+
+
+glGetQueryObjectivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryObjectivARB = ffiuintenumPtrintIOV glGetQueryObjectivARBFunPtr
+
+glGetQueryObjectivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryObjectivARBFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectivARB")
+
+{-# NOINLINE glGetQueryObjectivARBFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectuivARB' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectuiv'.
+
+
+glGetQueryObjectuivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuivARB = ffiuintenumPtruintIOV glGetQueryObjectuivARBFunPtr
+
+glGetQueryObjectuivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivARBFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivARB")
+
+{-# NOINLINE glGetQueryObjectuivARBFunPtr #-}
+
+-- | Usage: @'glGetQueryivARB' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryiv'.
+
+
+glGetQueryivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryivARB = ffienumenumPtrintIOV glGetQueryivARBFunPtr
+
+glGetQueryivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivARBFunPtr = unsafePerformIO (getProcAddress "glGetQueryivARB")
+
+{-# NOINLINE glGetQueryivARBFunPtr #-}
+
+-- | Usage: @'glIsQueryARB' id@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsQuery'.
+
+
+glIsQueryARB :: MonadIO m => GLuint -> m GLboolean
+glIsQueryARB = ffiuintIOboolean glIsQueryARBFunPtr
+
+glIsQueryARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryARBFunPtr = unsafePerformIO (getProcAddress "glIsQueryARB")
+
+{-# NOINLINE glIsQueryARBFunPtr #-}
+
+pattern GL_CURRENT_QUERY_ARB = 0x8865
+
+pattern GL_QUERY_COUNTER_BITS_ARB = 0x8864
+
+pattern GL_QUERY_RESULT_ARB = 0x8866
+
+pattern GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867
+
+pattern GL_SAMPLES_PASSED_ARB = 0x8914
diff --git a/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery2.hs b/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery2.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.OcclusionQuery2 (
+  -- * Extension Support
+    gl_ARB_occlusion_query2
+
+  -- * GL_ARB_occlusion_query2
+  , pattern GL_ANY_SAMPLES_PASSED
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/occlusion_query2.txt GL_ARB_occlusion_query2> extension is available.
+
+gl_ARB_occlusion_query2 :: Bool
+gl_ARB_occlusion_query2 = member "GL_ARB_occlusion_query2" extensions
+{-# NOINLINE gl_ARB_occlusion_query2 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs b/generated-src/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ParallelShaderCompile (
+  -- * Extension Support
+    gl_ARB_parallel_shader_compile
+
+  -- * GL_ARB_parallel_shader_compile
+  , glMaxShaderCompilerThreadsARB
+  , pattern GL_COMPLETION_STATUS_ARB
+  , pattern GL_MAX_SHADER_COMPILER_THREADS_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/parallel_shader_compile.txt GL_ARB_parallel_shader_compile> extension is available.
+
+gl_ARB_parallel_shader_compile :: Bool
+gl_ARB_parallel_shader_compile = member "GL_ARB_parallel_shader_compile" extensions
+{-# NOINLINE gl_ARB_parallel_shader_compile #-}
+
+-- | Usage: @'glMaxShaderCompilerThreadsARB' count@
+
+
+glMaxShaderCompilerThreadsARB :: MonadIO m => GLuint -> m ()
+glMaxShaderCompilerThreadsARB = ffiuintIOV glMaxShaderCompilerThreadsARBFunPtr
+
+glMaxShaderCompilerThreadsARBFunPtr :: FunPtr (GLuint -> IO ())
+glMaxShaderCompilerThreadsARBFunPtr = unsafePerformIO (getProcAddress "glMaxShaderCompilerThreadsARB")
+
+{-# NOINLINE glMaxShaderCompilerThreadsARBFunPtr #-}
+
+pattern GL_COMPLETION_STATUS_ARB = 0x91B1
+
+pattern GL_MAX_SHADER_COMPILER_THREADS_ARB = 0x91B0
diff --git a/generated-src/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs b/generated-src/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs
@@ -0,0 +1,49 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.PipelineStatisticsQuery (
+  -- * Extension Support
+    gl_ARB_pipeline_statistics_query
+
+  -- * GL_ARB_pipeline_statistics_query
+  , pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB
+  , pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB
+  , pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB
+  , pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB
+  , pattern GL_GEOMETRY_SHADER_INVOCATIONS
+  , pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB
+  , pattern GL_PRIMITIVES_SUBMITTED_ARB
+  , pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB
+  , pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB
+  , pattern GL_VERTEX_SHADER_INVOCATIONS_ARB
+  , pattern GL_VERTICES_SUBMITTED_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pipeline_statistics_query.txt GL_ARB_pipeline_statistics_query> extension is available.
+
+gl_ARB_pipeline_statistics_query :: Bool
+gl_ARB_pipeline_statistics_query = member "GL_ARB_pipeline_statistics_query" extensions
+{-# NOINLINE gl_ARB_pipeline_statistics_query #-}
+
+pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6
+
+pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7
+
+pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5
+
+pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4
+
+pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3
+
+pattern GL_PRIMITIVES_SUBMITTED_ARB = 0x82EF
+
+pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1
+
+pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2
+
+pattern GL_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0
+
+pattern GL_VERTICES_SUBMITTED_ARB = 0x82EE
diff --git a/generated-src/Graphics/GL/Ext/ARB/PixelBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/PixelBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/PixelBufferObject.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.PixelBufferObject (
+  -- * Extension Support
+    gl_ARB_pixel_buffer_object
+
+  -- * GL_ARB_pixel_buffer_object
+  , pattern GL_PIXEL_PACK_BUFFER_ARB
+  , pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB
+  , pattern GL_PIXEL_UNPACK_BUFFER_ARB
+  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/pixel_buffer_object.txt GL_ARB_pixel_buffer_object> extension is available.
+
+gl_ARB_pixel_buffer_object :: Bool
+gl_ARB_pixel_buffer_object = member "GL_ARB_pixel_buffer_object" extensions
+{-# NOINLINE gl_ARB_pixel_buffer_object #-}
+
+pattern GL_PIXEL_PACK_BUFFER_ARB = 0x88EB
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED
+
+pattern GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF
diff --git a/generated-src/Graphics/GL/Ext/ARB/PointParameters.hs b/generated-src/Graphics/GL/Ext/ARB/PointParameters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/PointParameters.hs
@@ -0,0 +1,72 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.PointParameters (
+  -- * Extension Support
+    gl_ARB_point_parameters
+
+  -- * GL_ARB_point_parameters
+  , glPointParameterfARB
+  , glPointParameterfvARB
+  , pattern GL_POINT_DISTANCE_ATTENUATION_ARB
+  , pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB
+  , pattern GL_POINT_SIZE_MAX_ARB
+  , pattern GL_POINT_SIZE_MIN_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_parameters.txt GL_ARB_point_parameters> extension is available.
+
+gl_ARB_point_parameters :: Bool
+gl_ARB_point_parameters = member "GL_ARB_point_parameters" extensions
+{-# NOINLINE gl_ARB_point_parameters #-}
+
+-- | Usage: @'glPointParameterfARB' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterf'.
+
+
+glPointParameterfARB :: MonadIO m => GLenum -> GLfloat -> m ()
+glPointParameterfARB = ffienumfloatIOV glPointParameterfARBFunPtr
+
+glPointParameterfARBFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPointParameterfARBFunPtr = unsafePerformIO (getProcAddress "glPointParameterfARB")
+
+{-# NOINLINE glPointParameterfARBFunPtr #-}
+
+-- | Usage: @'glPointParameterfvARB' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterfv'.
+
+
+glPointParameterfvARB :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPointParameterfvARB = ffienumPtrfloatIOV glPointParameterfvARBFunPtr
+
+glPointParameterfvARBFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPointParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glPointParameterfvARB")
+
+{-# NOINLINE glPointParameterfvARBFunPtr #-}
+
+pattern GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128
+
+pattern GL_POINT_SIZE_MAX_ARB = 0x8127
+
+pattern GL_POINT_SIZE_MIN_ARB = 0x8126
diff --git a/generated-src/Graphics/GL/Ext/ARB/PointSprite.hs b/generated-src/Graphics/GL/Ext/ARB/PointSprite.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/PointSprite.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.PointSprite (
+  -- * Extension Support
+    gl_ARB_point_sprite
+
+  -- * GL_ARB_point_sprite
+  , pattern GL_COORD_REPLACE_ARB
+  , pattern GL_POINT_SPRITE_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/point_sprite.txt GL_ARB_point_sprite> extension is available.
+
+gl_ARB_point_sprite :: Bool
+gl_ARB_point_sprite = member "GL_ARB_point_sprite" extensions
+{-# NOINLINE gl_ARB_point_sprite #-}
+
+pattern GL_COORD_REPLACE_ARB = 0x8862
+
+pattern GL_POINT_SPRITE_ARB = 0x8861
diff --git a/generated-src/Graphics/GL/Ext/ARB/PostDepthCoverage.hs b/generated-src/Graphics/GL/Ext/ARB/PostDepthCoverage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/PostDepthCoverage.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.PostDepthCoverage (
+  -- * Extension Support
+    gl_ARB_post_depth_coverage
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/post_depth_coverage.txt GL_ARB_post_depth_coverage> extension is available.
+
+gl_ARB_post_depth_coverage :: Bool
+gl_ARB_post_depth_coverage = member "GL_ARB_post_depth_coverage" extensions
+{-# NOINLINE gl_ARB_post_depth_coverage #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ProgramInterfaceQuery.hs b/generated-src/Graphics/GL/Ext/ARB/ProgramInterfaceQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ProgramInterfaceQuery.hs
@@ -0,0 +1,74 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ProgramInterfaceQuery (
+  -- * Extension Support
+    gl_ARB_program_interface_query
+
+  -- * GL_ARB_program_interface_query
+  , glGetProgramInterfaceiv
+  , glGetProgramResourceIndex
+  , glGetProgramResourceLocation
+  , glGetProgramResourceLocationIndex
+  , glGetProgramResourceName
+  , glGetProgramResourceiv
+  , pattern GL_ACTIVE_RESOURCES
+  , pattern GL_ACTIVE_VARIABLES
+  , pattern GL_ARRAY_SIZE
+  , pattern GL_ARRAY_STRIDE
+  , pattern GL_ATOMIC_COUNTER_BUFFER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_INDEX
+  , pattern GL_BLOCK_INDEX
+  , pattern GL_BUFFER_BINDING
+  , pattern GL_BUFFER_DATA_SIZE
+  , pattern GL_BUFFER_VARIABLE
+  , pattern GL_COMPATIBLE_SUBROUTINES
+  , pattern GL_COMPUTE_SUBROUTINE
+  , pattern GL_COMPUTE_SUBROUTINE_UNIFORM
+  , pattern GL_FRAGMENT_SUBROUTINE
+  , pattern GL_FRAGMENT_SUBROUTINE_UNIFORM
+  , pattern GL_GEOMETRY_SUBROUTINE
+  , pattern GL_GEOMETRY_SUBROUTINE_UNIFORM
+  , pattern GL_IS_PER_PATCH
+  , pattern GL_IS_ROW_MAJOR
+  , pattern GL_LOCATION
+  , pattern GL_LOCATION_INDEX
+  , pattern GL_MATRIX_STRIDE
+  , pattern GL_MAX_NAME_LENGTH
+  , pattern GL_MAX_NUM_ACTIVE_VARIABLES
+  , pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES
+  , pattern GL_NAME_LENGTH
+  , pattern GL_NUM_ACTIVE_VARIABLES
+  , pattern GL_NUM_COMPATIBLE_SUBROUTINES
+  , pattern GL_OFFSET
+  , pattern GL_PROGRAM_INPUT
+  , pattern GL_PROGRAM_OUTPUT
+  , pattern GL_REFERENCED_BY_COMPUTE_SHADER
+  , pattern GL_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER
+  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER
+  , pattern GL_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_SHADER_STORAGE_BLOCK
+  , pattern GL_TESS_CONTROL_SUBROUTINE
+  , pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM
+  , pattern GL_TESS_EVALUATION_SUBROUTINE
+  , pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM
+  , pattern GL_TOP_LEVEL_ARRAY_SIZE
+  , pattern GL_TOP_LEVEL_ARRAY_STRIDE
+  , pattern GL_TRANSFORM_FEEDBACK_VARYING
+  , pattern GL_TYPE
+  , pattern GL_UNIFORM
+  , pattern GL_UNIFORM_BLOCK
+  , pattern GL_VERTEX_SUBROUTINE
+  , pattern GL_VERTEX_SUBROUTINE_UNIFORM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/program_interface_query.txt GL_ARB_program_interface_query> extension is available.
+
+gl_ARB_program_interface_query :: Bool
+gl_ARB_program_interface_query = member "GL_ARB_program_interface_query" extensions
+{-# NOINLINE gl_ARB_program_interface_query #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ProvokingVertex.hs b/generated-src/Graphics/GL/Ext/ARB/ProvokingVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ProvokingVertex.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ProvokingVertex (
+  -- * Extension Support
+    gl_ARB_provoking_vertex
+
+  -- * GL_ARB_provoking_vertex
+  , glProvokingVertex
+  , pattern GL_FIRST_VERTEX_CONVENTION
+  , pattern GL_LAST_VERTEX_CONVENTION
+  , pattern GL_PROVOKING_VERTEX
+  , pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/provoking_vertex.txt GL_ARB_provoking_vertex> extension is available.
+
+gl_ARB_provoking_vertex :: Bool
+gl_ARB_provoking_vertex = member "GL_ARB_provoking_vertex" extensions
+{-# NOINLINE gl_ARB_provoking_vertex #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/QueryBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/QueryBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/QueryBufferObject.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.QueryBufferObject (
+  -- * Extension Support
+    gl_ARB_query_buffer_object
+
+  -- * GL_ARB_query_buffer_object
+  , pattern GL_QUERY_BUFFER
+  , pattern GL_QUERY_BUFFER_BARRIER_BIT
+  , pattern GL_QUERY_BUFFER_BINDING
+  , pattern GL_QUERY_RESULT_NO_WAIT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/query_buffer_object.txt GL_ARB_query_buffer_object> extension is available.
+
+gl_ARB_query_buffer_object :: Bool
+gl_ARB_query_buffer_object = member "GL_ARB_query_buffer_object" extensions
+{-# NOINLINE gl_ARB_query_buffer_object #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/RobustBufferAccessBehavior.hs b/generated-src/Graphics/GL/Ext/ARB/RobustBufferAccessBehavior.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/RobustBufferAccessBehavior.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.RobustBufferAccessBehavior (
+  -- * Extension Support
+    gl_ARB_robust_buffer_access_behavior
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robust_buffer_access_behavior.txt GL_ARB_robust_buffer_access_behavior> extension is available.
+
+gl_ARB_robust_buffer_access_behavior :: Bool
+gl_ARB_robust_buffer_access_behavior = member "GL_ARB_robust_buffer_access_behavior" extensions
+{-# NOINLINE gl_ARB_robust_buffer_access_behavior #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/Robustness.hs b/generated-src/Graphics/GL/Ext/ARB/Robustness.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/Robustness.hs
@@ -0,0 +1,333 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.Robustness (
+  -- * Extension Support
+    gl_ARB_robustness
+
+  -- * GL_ARB_robustness
+  , glGetGraphicsResetStatusARB
+  , glGetnColorTableARB
+  , glGetnCompressedTexImageARB
+  , glGetnConvolutionFilterARB
+  , glGetnHistogramARB
+  , glGetnMapdvARB
+  , glGetnMapfvARB
+  , glGetnMapivARB
+  , glGetnMinmaxARB
+  , glGetnPixelMapfvARB
+  , glGetnPixelMapuivARB
+  , glGetnPixelMapusvARB
+  , glGetnPolygonStippleARB
+  , glGetnSeparableFilterARB
+  , glGetnTexImageARB
+  , glGetnUniformdvARB
+  , glGetnUniformfvARB
+  , glGetnUniformivARB
+  , glGetnUniformuivARB
+  , glReadnPixelsARB
+  , pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB
+  , pattern GL_GUILTY_CONTEXT_RESET_ARB
+  , pattern GL_INNOCENT_CONTEXT_RESET_ARB
+  , pattern GL_LOSE_CONTEXT_ON_RESET_ARB
+  , pattern GL_NO_ERROR
+  , pattern GL_NO_RESET_NOTIFICATION_ARB
+  , pattern GL_RESET_NOTIFICATION_STRATEGY_ARB
+  , pattern GL_UNKNOWN_CONTEXT_RESET_ARB
+) 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/ARB/robustness.txt GL_ARB_robustness> extension is available.
+
+gl_ARB_robustness :: Bool
+gl_ARB_robustness = member "GL_ARB_robustness" extensions
+{-# NOINLINE gl_ARB_robustness #-}
+
+-- | Usage: @'glGetGraphicsResetStatusARB'@
+
+
+glGetGraphicsResetStatusARB :: MonadIO m => m GLenum
+glGetGraphicsResetStatusARB = ffiIOenum glGetGraphicsResetStatusARBFunPtr
+
+glGetGraphicsResetStatusARBFunPtr :: FunPtr (IO GLenum)
+glGetGraphicsResetStatusARBFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusARB")
+
+{-# NOINLINE glGetGraphicsResetStatusARBFunPtr #-}
+
+-- | Usage: @'glGetnColorTableARB' target format type bufSize table@
+--
+-- The length of @table@ should be @bufSize@.
+
+
+glGetnColorTableARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnColorTableARB = ffienumenumenumsizeiPtrVIOV glGetnColorTableARBFunPtr
+
+glGetnColorTableARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnColorTableARBFunPtr = unsafePerformIO (getProcAddress "glGetnColorTableARB")
+
+{-# NOINLINE glGetnColorTableARBFunPtr #-}
+
+-- | Usage: @'glGetnCompressedTexImageARB' target lod bufSize img@
+--
+-- The length of @img@ should be @bufSize@.
+
+
+glGetnCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> GLsizei -> Ptr () -> m ()
+glGetnCompressedTexImageARB = ffienumintsizeiPtrVIOV glGetnCompressedTexImageARBFunPtr
+
+glGetnCompressedTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ())
+glGetnCompressedTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetnCompressedTexImageARB")
+
+{-# NOINLINE glGetnCompressedTexImageARBFunPtr #-}
+
+-- | Usage: @'glGetnConvolutionFilterARB' target format type bufSize image@
+--
+-- The length of @image@ should be @bufSize@.
+
+
+glGetnConvolutionFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnConvolutionFilterARB = ffienumenumenumsizeiPtrVIOV glGetnConvolutionFilterARBFunPtr
+
+glGetnConvolutionFilterARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnConvolutionFilterARBFunPtr = unsafePerformIO (getProcAddress "glGetnConvolutionFilterARB")
+
+{-# NOINLINE glGetnConvolutionFilterARBFunPtr #-}
+
+-- | Usage: @'glGetnHistogramARB' target reset format type bufSize values@
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetnHistogramARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnHistogramARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnHistogramARBFunPtr
+
+glGetnHistogramARBFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnHistogramARBFunPtr = unsafePerformIO (getProcAddress "glGetnHistogramARB")
+
+{-# NOINLINE glGetnHistogramARBFunPtr #-}
+
+-- | Usage: @'glGetnMapdvARB' target query bufSize v@
+--
+-- The length of @v@ should be @bufSize@.
+
+
+glGetnMapdvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
+glGetnMapdvARB = ffienumenumsizeiPtrdoubleIOV glGetnMapdvARBFunPtr
+
+glGetnMapdvARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
+glGetnMapdvARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapdvARB")
+
+{-# NOINLINE glGetnMapdvARBFunPtr #-}
+
+-- | Usage: @'glGetnMapfvARB' target query bufSize v@
+--
+-- The length of @v@ should be @bufSize@.
+
+
+glGetnMapfvARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glGetnMapfvARB = ffienumenumsizeiPtrfloatIOV glGetnMapfvARBFunPtr
+
+glGetnMapfvARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnMapfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapfvARB")
+
+{-# NOINLINE glGetnMapfvARBFunPtr #-}
+
+-- | Usage: @'glGetnMapivARB' target query bufSize v@
+--
+-- The length of @v@ should be @bufSize@.
+
+
+glGetnMapivARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+glGetnMapivARB = ffienumenumsizeiPtrintIOV glGetnMapivARBFunPtr
+
+glGetnMapivARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+glGetnMapivARBFunPtr = unsafePerformIO (getProcAddress "glGetnMapivARB")
+
+{-# NOINLINE glGetnMapivARBFunPtr #-}
+
+-- | Usage: @'glGetnMinmaxARB' target reset format type bufSize values@
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetnMinmaxARB :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnMinmaxARB = ffienumbooleanenumenumsizeiPtrVIOV glGetnMinmaxARBFunPtr
+
+glGetnMinmaxARBFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnMinmaxARBFunPtr = unsafePerformIO (getProcAddress "glGetnMinmaxARB")
+
+{-# NOINLINE glGetnMinmaxARBFunPtr #-}
+
+-- | Usage: @'glGetnPixelMapfvARB' map bufSize values@
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetnPixelMapfvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glGetnPixelMapfvARB = ffienumsizeiPtrfloatIOV glGetnPixelMapfvARBFunPtr
+
+glGetnPixelMapfvARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnPixelMapfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapfvARB")
+
+{-# NOINLINE glGetnPixelMapfvARBFunPtr #-}
+
+-- | Usage: @'glGetnPixelMapuivARB' map bufSize values@
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetnPixelMapuivARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glGetnPixelMapuivARB = ffienumsizeiPtruintIOV glGetnPixelMapuivARBFunPtr
+
+glGetnPixelMapuivARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glGetnPixelMapuivARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapuivARB")
+
+{-# NOINLINE glGetnPixelMapuivARBFunPtr #-}
+
+-- | Usage: @'glGetnPixelMapusvARB' map bufSize values@
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetnPixelMapusvARB :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
+glGetnPixelMapusvARB = ffienumsizeiPtrushortIOV glGetnPixelMapusvARBFunPtr
+
+glGetnPixelMapusvARBFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+glGetnPixelMapusvARBFunPtr = unsafePerformIO (getProcAddress "glGetnPixelMapusvARB")
+
+{-# NOINLINE glGetnPixelMapusvARBFunPtr #-}
+
+-- | Usage: @'glGetnPolygonStippleARB' bufSize pattern@
+--
+-- The length of @pattern@ should be @bufSize@.
+
+
+glGetnPolygonStippleARB :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
+glGetnPolygonStippleARB = ffisizeiPtrubyteIOV glGetnPolygonStippleARBFunPtr
+
+glGetnPolygonStippleARBFunPtr :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
+glGetnPolygonStippleARBFunPtr = unsafePerformIO (getProcAddress "glGetnPolygonStippleARB")
+
+{-# NOINLINE glGetnPolygonStippleARBFunPtr #-}
+
+-- | Usage: @'glGetnSeparableFilterARB' target format type rowBufSize row columnBufSize column span@
+--
+-- The length of @row@ should be @rowBufSize@.
+--
+-- The length of @column@ should be @columnBufSize@.
+--
+-- The length of @span@ should be @0@.
+
+
+glGetnSeparableFilterARB :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
+glGetnSeparableFilterARB = ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV glGetnSeparableFilterARBFunPtr
+
+glGetnSeparableFilterARBFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ())
+glGetnSeparableFilterARBFunPtr = unsafePerformIO (getProcAddress "glGetnSeparableFilterARB")
+
+{-# NOINLINE glGetnSeparableFilterARBFunPtr #-}
+
+-- | Usage: @'glGetnTexImageARB' target level format type bufSize img@
+--
+-- The length of @img@ should be @bufSize@.
+
+
+glGetnTexImageARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetnTexImageARB = ffienumintenumenumsizeiPtrVIOV glGetnTexImageARBFunPtr
+
+glGetnTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetnTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetnTexImageARB")
+
+{-# NOINLINE glGetnTexImageARBFunPtr #-}
+
+-- | Usage: @'glGetnUniformdvARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetnUniformdvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glGetnUniformdvARB = ffiuintintsizeiPtrdoubleIOV glGetnUniformdvARBFunPtr
+
+glGetnUniformdvARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glGetnUniformdvARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformdvARB")
+
+{-# NOINLINE glGetnUniformdvARBFunPtr #-}
+
+-- | Usage: @'glGetnUniformfvARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetnUniformfvARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glGetnUniformfvARB = ffiuintintsizeiPtrfloatIOV glGetnUniformfvARBFunPtr
+
+glGetnUniformfvARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnUniformfvARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfvARB")
+
+{-# NOINLINE glGetnUniformfvARBFunPtr #-}
+
+-- | Usage: @'glGetnUniformivARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetnUniformivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glGetnUniformivARB = ffiuintintsizeiPtrintIOV glGetnUniformivARBFunPtr
+
+glGetnUniformivARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glGetnUniformivARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivARB")
+
+{-# NOINLINE glGetnUniformivARBFunPtr #-}
+
+-- | Usage: @'glGetnUniformuivARB' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetnUniformuivARB :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetnUniformuivARB = ffiuintintsizeiPtruintIOV glGetnUniformuivARBFunPtr
+
+glGetnUniformuivARBFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetnUniformuivARBFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivARB")
+
+{-# NOINLINE glGetnUniformuivARBFunPtr #-}
+
+-- | Usage: @'glReadnPixelsARB' x y width height format type bufSize data@
+--
+-- The length of @data@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glReadnPixels'.
+
+
+glReadnPixelsARB :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glReadnPixelsARB = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsARBFunPtr
+
+glReadnPixelsARBFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glReadnPixelsARBFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsARB")
+
+{-# NOINLINE glReadnPixelsARBFunPtr #-}
+
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004
+
+pattern GL_GUILTY_CONTEXT_RESET_ARB = 0x8253
+
+pattern GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254
+
+pattern GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252
+
+pattern GL_NO_RESET_NOTIFICATION_ARB = 0x8261
+
+pattern GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255
diff --git a/generated-src/Graphics/GL/Ext/ARB/RobustnessIsolation.hs b/generated-src/Graphics/GL/Ext/ARB/RobustnessIsolation.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/RobustnessIsolation.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.RobustnessIsolation (
+  -- * Extension Support
+    gl_ARB_robustness_isolation
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/robustness_isolation.txt GL_ARB_robustness_isolation> extension is available.
+
+gl_ARB_robustness_isolation :: Bool
+gl_ARB_robustness_isolation = member "GL_ARB_robustness_isolation" extensions
+{-# NOINLINE gl_ARB_robustness_isolation #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/SampleLocations.hs b/generated-src/Graphics/GL/Ext/ARB/SampleLocations.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SampleLocations.hs
@@ -0,0 +1,82 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SampleLocations (
+  -- * Extension Support
+    gl_ARB_sample_locations
+
+  -- * GL_ARB_sample_locations
+  , glEvaluateDepthValuesARB
+  , glFramebufferSampleLocationsfvARB
+  , glNamedFramebufferSampleLocationsfvARB
+  , pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB
+  , pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB
+  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB
+  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB
+  , pattern GL_SAMPLE_LOCATION_ARB
+  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB
+  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB
+  , pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sample_locations.txt GL_ARB_sample_locations> extension is available.
+
+gl_ARB_sample_locations :: Bool
+gl_ARB_sample_locations = member "GL_ARB_sample_locations" extensions
+{-# NOINLINE gl_ARB_sample_locations #-}
+
+-- | Usage: @'glEvaluateDepthValuesARB'@
+
+
+glEvaluateDepthValuesARB :: MonadIO m => m ()
+glEvaluateDepthValuesARB = ffiIOV glEvaluateDepthValuesARBFunPtr
+
+glEvaluateDepthValuesARBFunPtr :: FunPtr (IO ())
+glEvaluateDepthValuesARBFunPtr = unsafePerformIO (getProcAddress "glEvaluateDepthValuesARB")
+
+{-# NOINLINE glEvaluateDepthValuesARBFunPtr #-}
+
+-- | Usage: @'glFramebufferSampleLocationsfvARB' target start count v@
+
+
+glFramebufferSampleLocationsfvARB :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glFramebufferSampleLocationsfvARB = ffienumuintsizeiPtrfloatIOV glFramebufferSampleLocationsfvARBFunPtr
+
+glFramebufferSampleLocationsfvARBFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glFramebufferSampleLocationsfvARBFunPtr = unsafePerformIO (getProcAddress "glFramebufferSampleLocationsfvARB")
+
+{-# NOINLINE glFramebufferSampleLocationsfvARBFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferSampleLocationsfvARB' framebuffer start count v@
+
+
+glNamedFramebufferSampleLocationsfvARB :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glNamedFramebufferSampleLocationsfvARB = ffiuintuintsizeiPtrfloatIOV glNamedFramebufferSampleLocationsfvARBFunPtr
+
+glNamedFramebufferSampleLocationsfvARBFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glNamedFramebufferSampleLocationsfvARBFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferSampleLocationsfvARB")
+
+{-# NOINLINE glNamedFramebufferSampleLocationsfvARBFunPtr #-}
+
+pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB = 0x9342
+
+pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB = 0x9343
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB = 0x9341
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB = 0x9340
+
+pattern GL_SAMPLE_LOCATION_ARB = 0x8E50
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB = 0x933F
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB = 0x933E
+
+pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB = 0x933D
diff --git a/generated-src/Graphics/GL/Ext/ARB/SampleShading.hs b/generated-src/Graphics/GL/Ext/ARB/SampleShading.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SampleShading.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SampleShading (
+  -- * Extension Support
+    gl_ARB_sample_shading
+
+  -- * GL_ARB_sample_shading
+  , glMinSampleShadingARB
+  , pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB
+  , pattern GL_SAMPLE_SHADING_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sample_shading.txt GL_ARB_sample_shading> extension is available.
+
+gl_ARB_sample_shading :: Bool
+gl_ARB_sample_shading = member "GL_ARB_sample_shading" extensions
+{-# NOINLINE gl_ARB_sample_shading #-}
+
+-- | Usage: @'glMinSampleShadingARB' value@
+--
+-- The parameter @value@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMinSampleShading'.
+
+
+glMinSampleShadingARB :: MonadIO m => GLfloat -> m ()
+glMinSampleShadingARB = ffifloatIOV glMinSampleShadingARBFunPtr
+
+glMinSampleShadingARBFunPtr :: FunPtr (GLfloat -> IO ())
+glMinSampleShadingARBFunPtr = unsafePerformIO (getProcAddress "glMinSampleShadingARB")
+
+{-# NOINLINE glMinSampleShadingARBFunPtr #-}
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37
+
+pattern GL_SAMPLE_SHADING_ARB = 0x8C36
diff --git a/generated-src/Graphics/GL/Ext/ARB/SamplerObjects.hs b/generated-src/Graphics/GL/Ext/ARB/SamplerObjects.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SamplerObjects.hs
@@ -0,0 +1,33 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SamplerObjects (
+  -- * Extension Support
+    gl_ARB_sampler_objects
+
+  -- * GL_ARB_sampler_objects
+  , glBindSampler
+  , glDeleteSamplers
+  , glGenSamplers
+  , glGetSamplerParameterIiv
+  , glGetSamplerParameterIuiv
+  , glGetSamplerParameterfv
+  , glGetSamplerParameteriv
+  , glIsSampler
+  , glSamplerParameterIiv
+  , glSamplerParameterIuiv
+  , glSamplerParameterf
+  , glSamplerParameterfv
+  , glSamplerParameteri
+  , glSamplerParameteriv
+  , pattern GL_SAMPLER_BINDING
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sampler_objects.txt GL_ARB_sampler_objects> extension is available.
+
+gl_ARB_sampler_objects :: Bool
+gl_ARB_sampler_objects = member "GL_ARB_sampler_objects" extensions
+{-# NOINLINE gl_ARB_sampler_objects #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/SeamlessCubeMap.hs b/generated-src/Graphics/GL/Ext/ARB/SeamlessCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SeamlessCubeMap.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SeamlessCubeMap (
+  -- * Extension Support
+    gl_ARB_seamless_cube_map
+
+  -- * GL_ARB_seamless_cube_map
+  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cube_map.txt GL_ARB_seamless_cube_map> extension is available.
+
+gl_ARB_seamless_cube_map :: Bool
+gl_ARB_seamless_cube_map = member "GL_ARB_seamless_cube_map" extensions
+{-# NOINLINE gl_ARB_seamless_cube_map #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/SeamlessCubemapPerTexture.hs b/generated-src/Graphics/GL/Ext/ARB/SeamlessCubemapPerTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SeamlessCubemapPerTexture.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SeamlessCubemapPerTexture (
+  -- * Extension Support
+    gl_ARB_seamless_cubemap_per_texture
+
+  -- * GL_ARB_seamless_cubemap_per_texture
+  , pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/seamless_cubemap_per_texture.txt GL_ARB_seamless_cubemap_per_texture> extension is available.
+
+gl_ARB_seamless_cubemap_per_texture :: Bool
+gl_ARB_seamless_cubemap_per_texture = member "GL_ARB_seamless_cubemap_per_texture" extensions
+{-# NOINLINE gl_ARB_seamless_cubemap_per_texture #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/SeparateShaderObjects.hs b/generated-src/Graphics/GL/Ext/ARB/SeparateShaderObjects.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SeparateShaderObjects.hs
@@ -0,0 +1,87 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SeparateShaderObjects (
+  -- * Extension Support
+    gl_ARB_separate_shader_objects
+
+  -- * GL_ARB_separate_shader_objects
+  , glActiveShaderProgram
+  , glBindProgramPipeline
+  , glCreateShaderProgramv
+  , glDeleteProgramPipelines
+  , glGenProgramPipelines
+  , glGetProgramPipelineInfoLog
+  , glGetProgramPipelineiv
+  , glIsProgramPipeline
+  , glProgramUniform1d
+  , glProgramUniform1dv
+  , glProgramUniform1f
+  , glProgramUniform1fv
+  , glProgramUniform1i
+  , glProgramUniform1iv
+  , glProgramUniform1ui
+  , glProgramUniform1uiv
+  , glProgramUniform2d
+  , glProgramUniform2dv
+  , glProgramUniform2f
+  , glProgramUniform2fv
+  , glProgramUniform2i
+  , glProgramUniform2iv
+  , glProgramUniform2ui
+  , glProgramUniform2uiv
+  , glProgramUniform3d
+  , glProgramUniform3dv
+  , glProgramUniform3f
+  , glProgramUniform3fv
+  , glProgramUniform3i
+  , glProgramUniform3iv
+  , glProgramUniform3ui
+  , glProgramUniform3uiv
+  , glProgramUniform4d
+  , glProgramUniform4dv
+  , glProgramUniform4f
+  , glProgramUniform4fv
+  , glProgramUniform4i
+  , glProgramUniform4iv
+  , glProgramUniform4ui
+  , glProgramUniform4uiv
+  , glProgramUniformMatrix2dv
+  , glProgramUniformMatrix2fv
+  , glProgramUniformMatrix2x3dv
+  , glProgramUniformMatrix2x3fv
+  , glProgramUniformMatrix2x4dv
+  , glProgramUniformMatrix2x4fv
+  , glProgramUniformMatrix3dv
+  , glProgramUniformMatrix3fv
+  , glProgramUniformMatrix3x2dv
+  , glProgramUniformMatrix3x2fv
+  , glProgramUniformMatrix3x4dv
+  , glProgramUniformMatrix3x4fv
+  , glProgramUniformMatrix4dv
+  , glProgramUniformMatrix4fv
+  , glProgramUniformMatrix4x2dv
+  , glProgramUniformMatrix4x2fv
+  , glProgramUniformMatrix4x3dv
+  , glProgramUniformMatrix4x3fv
+  , glUseProgramStages
+  , glValidateProgramPipeline
+  , pattern GL_ACTIVE_PROGRAM
+  , pattern GL_ALL_SHADER_BITS
+  , pattern GL_FRAGMENT_SHADER_BIT
+  , pattern GL_GEOMETRY_SHADER_BIT
+  , pattern GL_PROGRAM_PIPELINE_BINDING
+  , pattern GL_PROGRAM_SEPARABLE
+  , pattern GL_TESS_CONTROL_SHADER_BIT
+  , pattern GL_TESS_EVALUATION_SHADER_BIT
+  , pattern GL_VERTEX_SHADER_BIT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/separate_shader_objects.txt GL_ARB_separate_shader_objects> extension is available.
+
+gl_ARB_separate_shader_objects :: Bool
+gl_ARB_separate_shader_objects = member "GL_ARB_separate_shader_objects" extensions
+{-# NOINLINE gl_ARB_separate_shader_objects #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderAtomicCounterOps.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderAtomicCounterOps.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderAtomicCounterOps.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderAtomicCounterOps (
+  -- * Extension Support
+    gl_ARB_shader_atomic_counter_ops
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_atomic_counter_ops.txt GL_ARB_shader_atomic_counter_ops> extension is available.
+
+gl_ARB_shader_atomic_counter_ops :: Bool
+gl_ARB_shader_atomic_counter_ops = member "GL_ARB_shader_atomic_counter_ops" extensions
+{-# NOINLINE gl_ARB_shader_atomic_counter_ops #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderAtomicCounters.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderAtomicCounters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderAtomicCounters.hs
@@ -0,0 +1,48 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderAtomicCounters (
+  -- * Extension Support
+    gl_ARB_shader_atomic_counters
+
+  -- * GL_ARB_shader_atomic_counters
+  , glGetActiveAtomicCounterBufferiv
+  , pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_ATOMIC_COUNTER_BUFFER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS
+  , pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES
+  , pattern GL_ATOMIC_COUNTER_BUFFER_BINDING
+  , pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_ATOMIC_COUNTER_BUFFER_SIZE
+  , pattern GL_ATOMIC_COUNTER_BUFFER_START
+  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
+  , pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE
+  , pattern GL_MAX_COMBINED_ATOMIC_COUNTERS
+  , pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS
+  , pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_MAX_VERTEX_ATOMIC_COUNTERS
+  , pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS
+  , pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX
+  , pattern GL_UNSIGNED_INT_ATOMIC_COUNTER
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_atomic_counters.txt GL_ARB_shader_atomic_counters> extension is available.
+
+gl_ARB_shader_atomic_counters :: Bool
+gl_ARB_shader_atomic_counters = member "GL_ARB_shader_atomic_counters" extensions
+{-# NOINLINE gl_ARB_shader_atomic_counters #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderBallot.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderBallot.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderBallot.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderBallot (
+  -- * Extension Support
+    gl_ARB_shader_ballot
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_ballot.txt GL_ARB_shader_ballot> extension is available.
+
+gl_ARB_shader_ballot :: Bool
+gl_ARB_shader_ballot = member "GL_ARB_shader_ballot" extensions
+{-# NOINLINE gl_ARB_shader_ballot #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderBitEncoding.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderBitEncoding.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderBitEncoding.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderBitEncoding (
+  -- * Extension Support
+    gl_ARB_shader_bit_encoding
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_bit_encoding.txt GL_ARB_shader_bit_encoding> extension is available.
+
+gl_ARB_shader_bit_encoding :: Bool
+gl_ARB_shader_bit_encoding = member "GL_ARB_shader_bit_encoding" extensions
+{-# NOINLINE gl_ARB_shader_bit_encoding #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderClock.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderClock.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderClock.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderClock (
+  -- * Extension Support
+    gl_ARB_shader_clock
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_clock.txt GL_ARB_shader_clock> extension is available.
+
+gl_ARB_shader_clock :: Bool
+gl_ARB_shader_clock = member "GL_ARB_shader_clock" extensions
+{-# NOINLINE gl_ARB_shader_clock #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderDrawParameters.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderDrawParameters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderDrawParameters.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderDrawParameters (
+  -- * Extension Support
+    gl_ARB_shader_draw_parameters
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_draw_parameters.txt GL_ARB_shader_draw_parameters> extension is available.
+
+gl_ARB_shader_draw_parameters :: Bool
+gl_ARB_shader_draw_parameters = member "GL_ARB_shader_draw_parameters" extensions
+{-# NOINLINE gl_ARB_shader_draw_parameters #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderGroupVote.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderGroupVote.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderGroupVote.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderGroupVote (
+  -- * Extension Support
+    gl_ARB_shader_group_vote
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_group_vote.txt GL_ARB_shader_group_vote> extension is available.
+
+gl_ARB_shader_group_vote :: Bool
+gl_ARB_shader_group_vote = member "GL_ARB_shader_group_vote" extensions
+{-# NOINLINE gl_ARB_shader_group_vote #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderImageLoadStore.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderImageLoadStore.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderImageLoadStore.hs
@@ -0,0 +1,84 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderImageLoadStore (
+  -- * Extension Support
+    gl_ARB_shader_image_load_store
+
+  -- * GL_ARB_shader_image_load_store
+  , glBindImageTexture
+  , glMemoryBarrier
+  , pattern GL_ALL_BARRIER_BITS
+  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT
+  , pattern GL_BUFFER_UPDATE_BARRIER_BIT
+  , pattern GL_COMMAND_BARRIER_BIT
+  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT
+  , pattern GL_FRAMEBUFFER_BARRIER_BIT
+  , pattern GL_IMAGE_1D
+  , pattern GL_IMAGE_1D_ARRAY
+  , pattern GL_IMAGE_2D
+  , pattern GL_IMAGE_2D_ARRAY
+  , pattern GL_IMAGE_2D_MULTISAMPLE
+  , pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_IMAGE_2D_RECT
+  , pattern GL_IMAGE_3D
+  , pattern GL_IMAGE_BINDING_ACCESS
+  , pattern GL_IMAGE_BINDING_FORMAT
+  , pattern GL_IMAGE_BINDING_LAYER
+  , pattern GL_IMAGE_BINDING_LAYERED
+  , pattern GL_IMAGE_BINDING_LEVEL
+  , pattern GL_IMAGE_BINDING_NAME
+  , pattern GL_IMAGE_BUFFER
+  , pattern GL_IMAGE_CUBE
+  , pattern GL_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
+  , pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE
+  , pattern GL_INT_IMAGE_1D
+  , pattern GL_INT_IMAGE_1D_ARRAY
+  , pattern GL_INT_IMAGE_2D
+  , pattern GL_INT_IMAGE_2D_ARRAY
+  , pattern GL_INT_IMAGE_2D_MULTISAMPLE
+  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_INT_IMAGE_2D_RECT
+  , pattern GL_INT_IMAGE_3D
+  , pattern GL_INT_IMAGE_BUFFER
+  , pattern GL_INT_IMAGE_CUBE
+  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_MAX_COMBINED_IMAGE_UNIFORMS
+  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
+  , pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS
+  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS
+  , pattern GL_MAX_IMAGE_SAMPLES
+  , pattern GL_MAX_IMAGE_UNITS
+  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS
+  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS
+  , pattern GL_MAX_VERTEX_IMAGE_UNIFORMS
+  , pattern GL_PIXEL_BUFFER_BARRIER_BIT
+  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
+  , pattern GL_TEXTURE_FETCH_BARRIER_BIT
+  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT
+  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT
+  , pattern GL_UNIFORM_BARRIER_BIT
+  , pattern GL_UNSIGNED_INT_IMAGE_1D
+  , pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY
+  , pattern GL_UNSIGNED_INT_IMAGE_2D
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_RECT
+  , pattern GL_UNSIGNED_INT_IMAGE_3D
+  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_load_store.txt GL_ARB_shader_image_load_store> extension is available.
+
+gl_ARB_shader_image_load_store :: Bool
+gl_ARB_shader_image_load_store = member "GL_ARB_shader_image_load_store" extensions
+{-# NOINLINE gl_ARB_shader_image_load_store #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderImageSize.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderImageSize.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderImageSize.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderImageSize (
+  -- * Extension Support
+    gl_ARB_shader_image_size
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_image_size.txt GL_ARB_shader_image_size> extension is available.
+
+gl_ARB_shader_image_size :: Bool
+gl_ARB_shader_image_size = member "GL_ARB_shader_image_size" extensions
+{-# NOINLINE gl_ARB_shader_image_size #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderObjects.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderObjects.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderObjects.hs
@@ -0,0 +1,747 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderObjects (
+  -- * Extension Support
+    gl_ARB_shader_objects
+
+  -- * GL_ARB_shader_objects
+  , glAttachObjectARB
+  , glCompileShaderARB
+  , glCreateProgramObjectARB
+  , glCreateShaderObjectARB
+  , glDeleteObjectARB
+  , glDetachObjectARB
+  , glGetActiveUniformARB
+  , glGetAttachedObjectsARB
+  , glGetHandleARB
+  , glGetInfoLogARB
+  , glGetObjectParameterfvARB
+  , glGetObjectParameterivARB
+  , glGetShaderSourceARB
+  , glGetUniformLocationARB
+  , glGetUniformfvARB
+  , glGetUniformivARB
+  , glLinkProgramARB
+  , glShaderSourceARB
+  , glUniform1fARB
+  , glUniform1fvARB
+  , glUniform1iARB
+  , glUniform1ivARB
+  , glUniform2fARB
+  , glUniform2fvARB
+  , glUniform2iARB
+  , glUniform2ivARB
+  , glUniform3fARB
+  , glUniform3fvARB
+  , glUniform3iARB
+  , glUniform3ivARB
+  , glUniform4fARB
+  , glUniform4fvARB
+  , glUniform4iARB
+  , glUniform4ivARB
+  , glUniformMatrix2fvARB
+  , glUniformMatrix3fvARB
+  , glUniformMatrix4fvARB
+  , glUseProgramObjectARB
+  , glValidateProgramARB
+  , pattern GL_BOOL_ARB
+  , pattern GL_BOOL_VEC2_ARB
+  , pattern GL_BOOL_VEC3_ARB
+  , pattern GL_BOOL_VEC4_ARB
+  , pattern GL_FLOAT_MAT2_ARB
+  , pattern GL_FLOAT_MAT3_ARB
+  , pattern GL_FLOAT_MAT4_ARB
+  , pattern GL_FLOAT_VEC2_ARB
+  , pattern GL_FLOAT_VEC3_ARB
+  , pattern GL_FLOAT_VEC4_ARB
+  , pattern GL_INT_VEC2_ARB
+  , pattern GL_INT_VEC3_ARB
+  , pattern GL_INT_VEC4_ARB
+  , pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB
+  , pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB
+  , pattern GL_OBJECT_ATTACHED_OBJECTS_ARB
+  , pattern GL_OBJECT_COMPILE_STATUS_ARB
+  , pattern GL_OBJECT_DELETE_STATUS_ARB
+  , pattern GL_OBJECT_INFO_LOG_LENGTH_ARB
+  , pattern GL_OBJECT_LINK_STATUS_ARB
+  , pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB
+  , pattern GL_OBJECT_SUBTYPE_ARB
+  , pattern GL_OBJECT_TYPE_ARB
+  , pattern GL_OBJECT_VALIDATE_STATUS_ARB
+  , pattern GL_PROGRAM_OBJECT_ARB
+  , pattern GL_SAMPLER_1D_ARB
+  , pattern GL_SAMPLER_1D_SHADOW_ARB
+  , pattern GL_SAMPLER_2D_ARB
+  , pattern GL_SAMPLER_2D_RECT_ARB
+  , pattern GL_SAMPLER_2D_RECT_SHADOW_ARB
+  , pattern GL_SAMPLER_2D_SHADOW_ARB
+  , pattern GL_SAMPLER_3D_ARB
+  , pattern GL_SAMPLER_CUBE_ARB
+  , pattern GL_SHADER_OBJECT_ARB
+) 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/ARB/shader_objects.txt GL_ARB_shader_objects> extension is available.
+
+gl_ARB_shader_objects :: Bool
+gl_ARB_shader_objects = member "GL_ARB_shader_objects" extensions
+{-# NOINLINE gl_ARB_shader_objects #-}
+
+-- | Usage: @'glAttachObjectARB' containerObj obj@
+--
+-- The parameter @containerObj@ is a @handleARB@.
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glAttachShader'.
+
+
+glAttachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
+glAttachObjectARB = ffihandleARBhandleARBIOV glAttachObjectARBFunPtr
+
+glAttachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
+glAttachObjectARBFunPtr = unsafePerformIO (getProcAddress "glAttachObjectARB")
+
+{-# NOINLINE glAttachObjectARBFunPtr #-}
+
+-- | Usage: @'glCompileShaderARB' shaderObj@
+--
+-- The parameter @shaderObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompileShader'.
+
+
+glCompileShaderARB :: MonadIO m => GLhandleARB -> m ()
+glCompileShaderARB = ffihandleARBIOV glCompileShaderARBFunPtr
+
+glCompileShaderARBFunPtr :: FunPtr (GLhandleARB -> IO ())
+glCompileShaderARBFunPtr = unsafePerformIO (getProcAddress "glCompileShaderARB")
+
+{-# NOINLINE glCompileShaderARBFunPtr #-}
+
+-- | Usage: @'glCreateProgramObjectARB'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCreateProgram'.
+
+
+glCreateProgramObjectARB :: MonadIO m => m GLhandleARB
+glCreateProgramObjectARB = ffiIOhandleARB glCreateProgramObjectARBFunPtr
+
+glCreateProgramObjectARBFunPtr :: FunPtr (IO GLhandleARB)
+glCreateProgramObjectARBFunPtr = unsafePerformIO (getProcAddress "glCreateProgramObjectARB")
+
+{-# NOINLINE glCreateProgramObjectARBFunPtr #-}
+
+-- | Usage: @'glCreateShaderObjectARB' shaderType@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCreateShader'.
+
+
+glCreateShaderObjectARB :: MonadIO m => GLenum -> m GLhandleARB
+glCreateShaderObjectARB = ffienumIOhandleARB glCreateShaderObjectARBFunPtr
+
+glCreateShaderObjectARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB)
+glCreateShaderObjectARBFunPtr = unsafePerformIO (getProcAddress "glCreateShaderObjectARB")
+
+{-# NOINLINE glCreateShaderObjectARBFunPtr #-}
+
+-- | Usage: @'glDeleteObjectARB' obj@
+--
+-- The parameter @obj@ is a @handleARB@.
+
+
+glDeleteObjectARB :: MonadIO m => GLhandleARB -> m ()
+glDeleteObjectARB = ffihandleARBIOV glDeleteObjectARBFunPtr
+
+glDeleteObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
+glDeleteObjectARBFunPtr = unsafePerformIO (getProcAddress "glDeleteObjectARB")
+
+{-# NOINLINE glDeleteObjectARBFunPtr #-}
+
+-- | Usage: @'glDetachObjectARB' containerObj attachedObj@
+--
+-- The parameter @containerObj@ is a @handleARB@.
+--
+-- The parameter @attachedObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDetachShader'.
+
+
+glDetachObjectARB :: MonadIO m => GLhandleARB -> GLhandleARB -> m ()
+glDetachObjectARB = ffihandleARBhandleARBIOV glDetachObjectARBFunPtr
+
+glDetachObjectARBFunPtr :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
+glDetachObjectARBFunPtr = unsafePerformIO (getProcAddress "glDetachObjectARB")
+
+{-# NOINLINE glDetachObjectARBFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformARB' programObj index maxLength length size type name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @maxLength@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetActiveUniform'.
+
+
+glGetActiveUniformARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
+glGetActiveUniformARB = ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV glGetActiveUniformARBFunPtr
+
+glGetActiveUniformARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
+glGetActiveUniformARBFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformARB")
+
+{-# NOINLINE glGetActiveUniformARBFunPtr #-}
+
+-- | Usage: @'glGetAttachedObjectsARB' containerObj maxCount count obj@
+--
+-- The parameter @containerObj@ is a @handleARB@.
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @count@ should be @1@.
+--
+-- The length of @obj@ should be @maxCount@.
+
+
+glGetAttachedObjectsARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
+glGetAttachedObjectsARB = ffihandleARBsizeiPtrsizeiPtrhandleARBIOV glGetAttachedObjectsARBFunPtr
+
+glGetAttachedObjectsARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
+glGetAttachedObjectsARBFunPtr = unsafePerformIO (getProcAddress "glGetAttachedObjectsARB")
+
+{-# NOINLINE glGetAttachedObjectsARBFunPtr #-}
+
+-- | Usage: @'glGetHandleARB' pname@
+
+
+glGetHandleARB :: MonadIO m => GLenum -> m GLhandleARB
+glGetHandleARB = ffienumIOhandleARB glGetHandleARBFunPtr
+
+glGetHandleARBFunPtr :: FunPtr (GLenum -> IO GLhandleARB)
+glGetHandleARBFunPtr = unsafePerformIO (getProcAddress "glGetHandleARB")
+
+{-# NOINLINE glGetHandleARBFunPtr #-}
+
+-- | Usage: @'glGetInfoLogARB' obj maxLength length infoLog@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @maxLength@.
+
+
+glGetInfoLogARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
+glGetInfoLogARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetInfoLogARBFunPtr
+
+glGetInfoLogARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
+glGetInfoLogARBFunPtr = unsafePerformIO (getProcAddress "glGetInfoLogARB")
+
+{-# NOINLINE glGetInfoLogARBFunPtr #-}
+
+-- | Usage: @'glGetObjectParameterfvARB' obj pname params@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetObjectParameterfvARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
+glGetObjectParameterfvARB = ffihandleARBenumPtrfloatIOV glGetObjectParameterfvARBFunPtr
+
+glGetObjectParameterfvARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ())
+glGetObjectParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterfvARB")
+
+{-# NOINLINE glGetObjectParameterfvARBFunPtr #-}
+
+-- | Usage: @'glGetObjectParameterivARB' obj pname params@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetObjectParameterivARB :: MonadIO m => GLhandleARB -> GLenum -> Ptr GLint -> m ()
+glGetObjectParameterivARB = ffihandleARBenumPtrintIOV glGetObjectParameterivARBFunPtr
+
+glGetObjectParameterivARBFunPtr :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ())
+glGetObjectParameterivARBFunPtr = unsafePerformIO (getProcAddress "glGetObjectParameterivARB")
+
+{-# NOINLINE glGetObjectParameterivARBFunPtr #-}
+
+-- | Usage: @'glGetShaderSourceARB' obj maxLength length source@
+--
+-- The parameter @obj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @source@ should be @maxLength@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetShaderSource'.
+
+
+glGetShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
+glGetShaderSourceARB = ffihandleARBsizeiPtrsizeiPtrcharARBIOV glGetShaderSourceARBFunPtr
+
+glGetShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
+glGetShaderSourceARBFunPtr = unsafePerformIO (getProcAddress "glGetShaderSourceARB")
+
+{-# NOINLINE glGetShaderSourceARBFunPtr #-}
+
+-- | Usage: @'glGetUniformLocationARB' programObj name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformLocation'.
+
+
+glGetUniformLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
+glGetUniformLocationARB = ffihandleARBPtrcharARBIOint glGetUniformLocationARBFunPtr
+
+glGetUniformLocationARBFunPtr :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
+glGetUniformLocationARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocationARB")
+
+{-# NOINLINE glGetUniformLocationARBFunPtr #-}
+
+-- | Usage: @'glGetUniformfvARB' programObj location params@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(programObj,location)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformfv'.
+
+
+glGetUniformfvARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLfloat -> m ()
+glGetUniformfvARB = ffihandleARBintPtrfloatIOV glGetUniformfvARBFunPtr
+
+glGetUniformfvARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ())
+glGetUniformfvARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformfvARB")
+
+{-# NOINLINE glGetUniformfvARBFunPtr #-}
+
+-- | Usage: @'glGetUniformivARB' programObj location params@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @params@ should be @COMPSIZE(programObj,location)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformiv'.
+
+
+glGetUniformivARB :: MonadIO m => GLhandleARB -> GLint -> Ptr GLint -> m ()
+glGetUniformivARB = ffihandleARBintPtrintIOV glGetUniformivARBFunPtr
+
+glGetUniformivARBFunPtr :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ())
+glGetUniformivARBFunPtr = unsafePerformIO (getProcAddress "glGetUniformivARB")
+
+{-# NOINLINE glGetUniformivARBFunPtr #-}
+
+-- | Usage: @'glLinkProgramARB' programObj@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glLinkProgram'.
+
+
+glLinkProgramARB :: MonadIO m => GLhandleARB -> m ()
+glLinkProgramARB = ffihandleARBIOV glLinkProgramARBFunPtr
+
+glLinkProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
+glLinkProgramARBFunPtr = unsafePerformIO (getProcAddress "glLinkProgramARB")
+
+{-# NOINLINE glLinkProgramARBFunPtr #-}
+
+-- | Usage: @'glShaderSourceARB' shaderObj count string length@
+--
+-- The parameter @shaderObj@ is a @handleARB@.
+--
+-- The length of @string@ should be @count@.
+--
+-- The length of @length@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glShaderSource'.
+
+
+glShaderSourceARB :: MonadIO m => GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
+glShaderSourceARB = ffihandleARBsizeiPtrPtrcharARBPtrintIOV glShaderSourceARBFunPtr
+
+glShaderSourceARBFunPtr :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ())
+glShaderSourceARBFunPtr = unsafePerformIO (getProcAddress "glShaderSourceARB")
+
+{-# NOINLINE glShaderSourceARBFunPtr #-}
+
+-- | Usage: @'glUniform1fARB' location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1f'.
+
+
+glUniform1fARB :: MonadIO m => GLint -> GLfloat -> m ()
+glUniform1fARB = ffiintfloatIOV glUniform1fARBFunPtr
+
+glUniform1fARBFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
+glUniform1fARBFunPtr = unsafePerformIO (getProcAddress "glUniform1fARB")
+
+{-# NOINLINE glUniform1fARBFunPtr #-}
+
+-- | Usage: @'glUniform1fvARB' location count value@
+--
+-- The length of @value@ should be @count*1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1fv'.
+
+
+glUniform1fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform1fvARB = ffiintsizeiPtrfloatIOV glUniform1fvARBFunPtr
+
+glUniform1fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform1fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform1fvARB")
+
+{-# NOINLINE glUniform1fvARBFunPtr #-}
+
+-- | Usage: @'glUniform1iARB' location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1i'.
+
+
+glUniform1iARB :: MonadIO m => GLint -> GLint -> m ()
+glUniform1iARB = ffiintintIOV glUniform1iARBFunPtr
+
+glUniform1iARBFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glUniform1iARBFunPtr = unsafePerformIO (getProcAddress "glUniform1iARB")
+
+{-# NOINLINE glUniform1iARBFunPtr #-}
+
+-- | Usage: @'glUniform1ivARB' location count value@
+--
+-- The length of @value@ should be @count*1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1iv'.
+
+
+glUniform1ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform1ivARB = ffiintsizeiPtrintIOV glUniform1ivARBFunPtr
+
+glUniform1ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform1ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform1ivARB")
+
+{-# NOINLINE glUniform1ivARBFunPtr #-}
+
+-- | Usage: @'glUniform2fARB' location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2f'.
+
+
+glUniform2fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glUniform2fARB = ffiintfloatfloatIOV glUniform2fARBFunPtr
+
+glUniform2fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glUniform2fARBFunPtr = unsafePerformIO (getProcAddress "glUniform2fARB")
+
+{-# NOINLINE glUniform2fARBFunPtr #-}
+
+-- | Usage: @'glUniform2fvARB' location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2fv'.
+
+
+glUniform2fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform2fvARB = ffiintsizeiPtrfloatIOV glUniform2fvARBFunPtr
+
+glUniform2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform2fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform2fvARB")
+
+{-# NOINLINE glUniform2fvARBFunPtr #-}
+
+-- | Usage: @'glUniform2iARB' location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2i'.
+
+
+glUniform2iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glUniform2iARB = ffiintintintIOV glUniform2iARBFunPtr
+
+glUniform2iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glUniform2iARBFunPtr = unsafePerformIO (getProcAddress "glUniform2iARB")
+
+{-# NOINLINE glUniform2iARBFunPtr #-}
+
+-- | Usage: @'glUniform2ivARB' location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2iv'.
+
+
+glUniform2ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform2ivARB = ffiintsizeiPtrintIOV glUniform2ivARBFunPtr
+
+glUniform2ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform2ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform2ivARB")
+
+{-# NOINLINE glUniform2ivARBFunPtr #-}
+
+-- | Usage: @'glUniform3fARB' location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3f'.
+
+
+glUniform3fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform3fARB = ffiintfloatfloatfloatIOV glUniform3fARBFunPtr
+
+glUniform3fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform3fARBFunPtr = unsafePerformIO (getProcAddress "glUniform3fARB")
+
+{-# NOINLINE glUniform3fARBFunPtr #-}
+
+-- | Usage: @'glUniform3fvARB' location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3fv'.
+
+
+glUniform3fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform3fvARB = ffiintsizeiPtrfloatIOV glUniform3fvARBFunPtr
+
+glUniform3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform3fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform3fvARB")
+
+{-# NOINLINE glUniform3fvARBFunPtr #-}
+
+-- | Usage: @'glUniform3iARB' location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3i'.
+
+
+glUniform3iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glUniform3iARB = ffiintintintintIOV glUniform3iARBFunPtr
+
+glUniform3iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform3iARBFunPtr = unsafePerformIO (getProcAddress "glUniform3iARB")
+
+{-# NOINLINE glUniform3iARBFunPtr #-}
+
+-- | Usage: @'glUniform3ivARB' location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3iv'.
+
+
+glUniform3ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform3ivARB = ffiintsizeiPtrintIOV glUniform3ivARBFunPtr
+
+glUniform3ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform3ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform3ivARB")
+
+{-# NOINLINE glUniform3ivARBFunPtr #-}
+
+-- | Usage: @'glUniform4fARB' location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4f'.
+
+
+glUniform4fARB :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform4fARB = ffiintfloatfloatfloatfloatIOV glUniform4fARBFunPtr
+
+glUniform4fARBFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform4fARBFunPtr = unsafePerformIO (getProcAddress "glUniform4fARB")
+
+{-# NOINLINE glUniform4fARBFunPtr #-}
+
+-- | Usage: @'glUniform4fvARB' location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4fv'.
+
+
+glUniform4fvARB :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform4fvARB = ffiintsizeiPtrfloatIOV glUniform4fvARBFunPtr
+
+glUniform4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform4fvARBFunPtr = unsafePerformIO (getProcAddress "glUniform4fvARB")
+
+{-# NOINLINE glUniform4fvARBFunPtr #-}
+
+-- | Usage: @'glUniform4iARB' location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4i'.
+
+
+glUniform4iARB :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glUniform4iARB = ffiintintintintintIOV glUniform4iARBFunPtr
+
+glUniform4iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform4iARBFunPtr = unsafePerformIO (getProcAddress "glUniform4iARB")
+
+{-# NOINLINE glUniform4iARBFunPtr #-}
+
+-- | Usage: @'glUniform4ivARB' location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4iv'.
+
+
+glUniform4ivARB :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform4ivARB = ffiintsizeiPtrintIOV glUniform4ivARBFunPtr
+
+glUniform4ivARBFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform4ivARBFunPtr = unsafePerformIO (getProcAddress "glUniform4ivARB")
+
+{-# NOINLINE glUniform4ivARBFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2fvARB' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix2fv'.
+
+
+glUniformMatrix2fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvARBFunPtr
+
+glUniformMatrix2fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fvARB")
+
+{-# NOINLINE glUniformMatrix2fvARBFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3fvARB' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix3fv'.
+
+
+glUniformMatrix3fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvARBFunPtr
+
+glUniformMatrix3fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fvARB")
+
+{-# NOINLINE glUniformMatrix3fvARBFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4fvARB' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix4fv'.
+
+
+glUniformMatrix4fvARB :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4fvARB = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvARBFunPtr
+
+glUniformMatrix4fvARBFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4fvARBFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fvARB")
+
+{-# NOINLINE glUniformMatrix4fvARBFunPtr #-}
+
+-- | Usage: @'glUseProgramObjectARB' programObj@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUseProgram'.
+
+
+glUseProgramObjectARB :: MonadIO m => GLhandleARB -> m ()
+glUseProgramObjectARB = ffihandleARBIOV glUseProgramObjectARBFunPtr
+
+glUseProgramObjectARBFunPtr :: FunPtr (GLhandleARB -> IO ())
+glUseProgramObjectARBFunPtr = unsafePerformIO (getProcAddress "glUseProgramObjectARB")
+
+{-# NOINLINE glUseProgramObjectARBFunPtr #-}
+
+-- | Usage: @'glValidateProgramARB' programObj@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glValidateProgram'.
+
+
+glValidateProgramARB :: MonadIO m => GLhandleARB -> m ()
+glValidateProgramARB = ffihandleARBIOV glValidateProgramARBFunPtr
+
+glValidateProgramARBFunPtr :: FunPtr (GLhandleARB -> IO ())
+glValidateProgramARBFunPtr = unsafePerformIO (getProcAddress "glValidateProgramARB")
+
+{-# NOINLINE glValidateProgramARBFunPtr #-}
+
+pattern GL_BOOL_ARB = 0x8B56
+
+pattern GL_BOOL_VEC2_ARB = 0x8B57
+
+pattern GL_BOOL_VEC3_ARB = 0x8B58
+
+pattern GL_BOOL_VEC4_ARB = 0x8B59
+
+pattern GL_INT_VEC2_ARB = 0x8B53
+
+pattern GL_INT_VEC3_ARB = 0x8B54
+
+pattern GL_INT_VEC4_ARB = 0x8B55
+
+pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86
+
+pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87
+
+pattern GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85
+
+pattern GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81
+
+pattern GL_OBJECT_DELETE_STATUS_ARB = 0x8B80
+
+pattern GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84
+
+pattern GL_OBJECT_LINK_STATUS_ARB = 0x8B82
+
+pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88
+
+pattern GL_OBJECT_SUBTYPE_ARB = 0x8B4F
+
+pattern GL_OBJECT_TYPE_ARB = 0x8B4E
+
+pattern GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83
+
+pattern GL_PROGRAM_OBJECT_ARB = 0x8B40
+
+pattern GL_SAMPLER_1D_ARB = 0x8B5D
+
+pattern GL_SAMPLER_1D_SHADOW_ARB = 0x8B61
+
+pattern GL_SAMPLER_2D_ARB = 0x8B5E
+
+pattern GL_SAMPLER_2D_RECT_ARB = 0x8B63
+
+pattern GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64
+
+pattern GL_SAMPLER_2D_SHADOW_ARB = 0x8B62
+
+pattern GL_SAMPLER_3D_ARB = 0x8B5F
+
+pattern GL_SAMPLER_CUBE_ARB = 0x8B60
+
+pattern GL_SHADER_OBJECT_ARB = 0x8B48
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderPrecision.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderPrecision.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderPrecision.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderPrecision (
+  -- * Extension Support
+    gl_ARB_shader_precision
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_precision.txt GL_ARB_shader_precision> extension is available.
+
+gl_ARB_shader_precision :: Bool
+gl_ARB_shader_precision = member "GL_ARB_shader_precision" extensions
+{-# NOINLINE gl_ARB_shader_precision #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderStencilExport.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderStencilExport.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderStencilExport.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderStencilExport (
+  -- * Extension Support
+    gl_ARB_shader_stencil_export
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_stencil_export.txt GL_ARB_shader_stencil_export> extension is available.
+
+gl_ARB_shader_stencil_export :: Bool
+gl_ARB_shader_stencil_export = member "GL_ARB_shader_stencil_export" extensions
+{-# NOINLINE gl_ARB_shader_stencil_export #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderStorageBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderStorageBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderStorageBufferObject.hs
@@ -0,0 +1,36 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderStorageBufferObject (
+  -- * Extension Support
+    gl_ARB_shader_storage_buffer_object
+
+  -- * GL_ARB_shader_storage_buffer_object
+  , glShaderStorageBlockBinding
+  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS
+  , pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES
+  , pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE
+  , pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS
+  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS
+  , pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS
+  , pattern GL_SHADER_STORAGE_BARRIER_BIT
+  , pattern GL_SHADER_STORAGE_BUFFER
+  , pattern GL_SHADER_STORAGE_BUFFER_BINDING
+  , pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_SHADER_STORAGE_BUFFER_SIZE
+  , pattern GL_SHADER_STORAGE_BUFFER_START
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_storage_buffer_object.txt GL_ARB_shader_storage_buffer_object> extension is available.
+
+gl_ARB_shader_storage_buffer_object :: Bool
+gl_ARB_shader_storage_buffer_object = member "GL_ARB_shader_storage_buffer_object" extensions
+{-# NOINLINE gl_ARB_shader_storage_buffer_object #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderSubroutine.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderSubroutine.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderSubroutine.hs
@@ -0,0 +1,37 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderSubroutine (
+  -- * Extension Support
+    gl_ARB_shader_subroutine
+
+  -- * GL_ARB_shader_subroutine
+  , glGetActiveSubroutineName
+  , glGetActiveSubroutineUniformName
+  , glGetActiveSubroutineUniformiv
+  , glGetProgramStageiv
+  , glGetSubroutineIndex
+  , glGetSubroutineUniformLocation
+  , glGetUniformSubroutineuiv
+  , glUniformSubroutinesuiv
+  , pattern GL_ACTIVE_SUBROUTINES
+  , pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH
+  , pattern GL_ACTIVE_SUBROUTINE_UNIFORMS
+  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS
+  , pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH
+  , pattern GL_COMPATIBLE_SUBROUTINES
+  , pattern GL_MAX_SUBROUTINES
+  , pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS
+  , pattern GL_NUM_COMPATIBLE_SUBROUTINES
+  , pattern GL_UNIFORM_NAME_LENGTH
+  , pattern GL_UNIFORM_SIZE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_subroutine.txt GL_ARB_shader_subroutine> extension is available.
+
+gl_ARB_shader_subroutine :: Bool
+gl_ARB_shader_subroutine = member "GL_ARB_shader_subroutine" extensions
+{-# NOINLINE gl_ARB_shader_subroutine #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderTextureImageSamples.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderTextureImageSamples.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderTextureImageSamples.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderTextureImageSamples (
+  -- * Extension Support
+    gl_ARB_shader_texture_image_samples
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_image_samples.txt GL_ARB_shader_texture_image_samples> extension is available.
+
+gl_ARB_shader_texture_image_samples :: Bool
+gl_ARB_shader_texture_image_samples = member "GL_ARB_shader_texture_image_samples" extensions
+{-# NOINLINE gl_ARB_shader_texture_image_samples #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderTextureLod.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderTextureLod.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderTextureLod.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderTextureLod (
+  -- * Extension Support
+    gl_ARB_shader_texture_lod
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_texture_lod.txt GL_ARB_shader_texture_lod> extension is available.
+
+gl_ARB_shader_texture_lod :: Bool
+gl_ARB_shader_texture_lod = member "GL_ARB_shader_texture_lod" extensions
+{-# NOINLINE gl_ARB_shader_texture_lod #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderViewportLayerArray.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderViewportLayerArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderViewportLayerArray.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShaderViewportLayerArray (
+  -- * Extension Support
+    gl_ARB_shader_viewport_layer_array
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shader_viewport_layer_array.txt GL_ARB_shader_viewport_layer_array> extension is available.
+
+gl_ARB_shader_viewport_layer_array :: Bool
+gl_ARB_shader_viewport_layer_array = member "GL_ARB_shader_viewport_layer_array" extensions
+{-# NOINLINE gl_ARB_shader_viewport_layer_array #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage100.hs b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage100.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage100.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShadingLanguage100 (
+  -- * Extension Support
+    gl_ARB_shading_language_100
+
+  -- * GL_ARB_shading_language_100
+  , pattern GL_SHADING_LANGUAGE_VERSION_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_100.txt GL_ARB_shading_language_100> extension is available.
+
+gl_ARB_shading_language_100 :: Bool
+gl_ARB_shading_language_100 = member "GL_ARB_shading_language_100" extensions
+{-# NOINLINE gl_ARB_shading_language_100 #-}
+
+pattern GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage420pack.hs b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage420pack.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage420pack.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShadingLanguage420pack (
+  -- * Extension Support
+    gl_ARB_shading_language_420pack
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_420pack.txt GL_ARB_shading_language_420pack> extension is available.
+
+gl_ARB_shading_language_420pack :: Bool
+gl_ARB_shading_language_420pack = member "GL_ARB_shading_language_420pack" extensions
+{-# NOINLINE gl_ARB_shading_language_420pack #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs
@@ -0,0 +1,125 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShadingLanguageInclude (
+  -- * Extension Support
+    gl_ARB_shading_language_include
+
+  -- * GL_ARB_shading_language_include
+  , glCompileShaderIncludeARB
+  , glDeleteNamedStringARB
+  , glGetNamedStringARB
+  , glGetNamedStringivARB
+  , glIsNamedStringARB
+  , glNamedStringARB
+  , pattern GL_NAMED_STRING_LENGTH_ARB
+  , pattern GL_NAMED_STRING_TYPE_ARB
+  , pattern GL_SHADER_INCLUDE_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_include.txt GL_ARB_shading_language_include> extension is available.
+
+gl_ARB_shading_language_include :: Bool
+gl_ARB_shading_language_include = member "GL_ARB_shading_language_include" extensions
+{-# NOINLINE gl_ARB_shading_language_include #-}
+
+-- | Usage: @'glCompileShaderIncludeARB' shader count path length@
+--
+-- The length of @path@ should be @count@.
+--
+-- The length of @length@ should be @count@.
+
+
+glCompileShaderIncludeARB :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
+glCompileShaderIncludeARB = ffiuintsizeiPtrPtrcharPtrintIOV glCompileShaderIncludeARBFunPtr
+
+glCompileShaderIncludeARBFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
+glCompileShaderIncludeARBFunPtr = unsafePerformIO (getProcAddress "glCompileShaderIncludeARB")
+
+{-# NOINLINE glCompileShaderIncludeARBFunPtr #-}
+
+-- | Usage: @'glDeleteNamedStringARB' namelen name@
+--
+-- The length of @name@ should be @namelen@.
+
+
+glDeleteNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m ()
+glDeleteNamedStringARB = ffiintPtrcharIOV glDeleteNamedStringARBFunPtr
+
+glDeleteNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> IO ())
+glDeleteNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glDeleteNamedStringARB")
+
+{-# NOINLINE glDeleteNamedStringARBFunPtr #-}
+
+-- | Usage: @'glGetNamedStringARB' namelen name bufSize stringlen string@
+--
+-- The length of @name@ should be @namelen@.
+--
+-- The length of @stringlen@ should be @1@.
+--
+-- The length of @string@ should be @bufSize@.
+
+
+glGetNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
+glGetNamedStringARB = ffiintPtrcharsizeiPtrintPtrcharIOV glGetNamedStringARBFunPtr
+
+glGetNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ())
+glGetNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glGetNamedStringARB")
+
+{-# NOINLINE glGetNamedStringARBFunPtr #-}
+
+-- | Usage: @'glGetNamedStringivARB' namelen name pname params@
+--
+-- The length of @name@ should be @namelen@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedStringivARB :: MonadIO m => GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
+glGetNamedStringivARB = ffiintPtrcharenumPtrintIOV glGetNamedStringivARBFunPtr
+
+glGetNamedStringivARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ())
+glGetNamedStringivARBFunPtr = unsafePerformIO (getProcAddress "glGetNamedStringivARB")
+
+{-# NOINLINE glGetNamedStringivARBFunPtr #-}
+
+-- | Usage: @'glIsNamedStringARB' namelen name@
+--
+-- The length of @name@ should be @namelen@.
+
+
+glIsNamedStringARB :: MonadIO m => GLint -> Ptr GLchar -> m GLboolean
+glIsNamedStringARB = ffiintPtrcharIOboolean glIsNamedStringARBFunPtr
+
+glIsNamedStringARBFunPtr :: FunPtr (GLint -> Ptr GLchar -> IO GLboolean)
+glIsNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glIsNamedStringARB")
+
+{-# NOINLINE glIsNamedStringARBFunPtr #-}
+
+-- | Usage: @'glNamedStringARB' type namelen name stringlen string@
+--
+-- The length of @name@ should be @namelen@.
+--
+-- The length of @string@ should be @stringlen@.
+
+
+glNamedStringARB :: MonadIO m => GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()
+glNamedStringARB = ffienumintPtrcharintPtrcharIOV glNamedStringARBFunPtr
+
+glNamedStringARBFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ())
+glNamedStringARBFunPtr = unsafePerformIO (getProcAddress "glNamedStringARB")
+
+{-# NOINLINE glNamedStringARBFunPtr #-}
+
+pattern GL_NAMED_STRING_LENGTH_ARB = 0x8DE9
+
+pattern GL_NAMED_STRING_TYPE_ARB = 0x8DEA
+
+pattern GL_SHADER_INCLUDE_ARB = 0x8DAE
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguagePacking.hs b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguagePacking.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguagePacking.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShadingLanguagePacking (
+  -- * Extension Support
+    gl_ARB_shading_language_packing
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shading_language_packing.txt GL_ARB_shading_language_packing> extension is available.
+
+gl_ARB_shading_language_packing :: Bool
+gl_ARB_shading_language_packing = member "GL_ARB_shading_language_packing" extensions
+{-# NOINLINE gl_ARB_shading_language_packing #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/Shadow.hs b/generated-src/Graphics/GL/Ext/ARB/Shadow.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/Shadow.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.Shadow (
+  -- * Extension Support
+    gl_ARB_shadow
+
+  -- * GL_ARB_shadow
+  , pattern GL_COMPARE_R_TO_TEXTURE_ARB
+  , pattern GL_TEXTURE_COMPARE_FUNC_ARB
+  , pattern GL_TEXTURE_COMPARE_MODE_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow.txt GL_ARB_shadow> extension is available.
+
+gl_ARB_shadow :: Bool
+gl_ARB_shadow = member "GL_ARB_shadow" extensions
+{-# NOINLINE gl_ARB_shadow #-}
+
+pattern GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E
+
+pattern GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE_ARB = 0x884C
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadowAmbient.hs b/generated-src/Graphics/GL/Ext/ARB/ShadowAmbient.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadowAmbient.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ShadowAmbient (
+  -- * Extension Support
+    gl_ARB_shadow_ambient
+
+  -- * GL_ARB_shadow_ambient
+  , pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/shadow_ambient.txt GL_ARB_shadow_ambient> extension is available.
+
+gl_ARB_shadow_ambient :: Bool
+gl_ARB_shadow_ambient = member "GL_ARB_shadow_ambient" extensions
+{-# NOINLINE gl_ARB_shadow_ambient #-}
+
+pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF
diff --git a/generated-src/Graphics/GL/Ext/ARB/SparseBuffer.hs b/generated-src/Graphics/GL/Ext/ARB/SparseBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SparseBuffer.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SparseBuffer (
+  -- * Extension Support
+    gl_ARB_sparse_buffer
+
+  -- * GL_ARB_sparse_buffer
+  , glBufferPageCommitmentARB
+  , glNamedBufferPageCommitmentARB
+  , glNamedBufferPageCommitmentEXT
+  , pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB
+  , pattern GL_SPARSE_STORAGE_BIT_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_buffer.txt GL_ARB_sparse_buffer> extension is available.
+
+gl_ARB_sparse_buffer :: Bool
+gl_ARB_sparse_buffer = member "GL_ARB_sparse_buffer" extensions
+{-# NOINLINE gl_ARB_sparse_buffer #-}
+
+-- | Usage: @'glBufferPageCommitmentARB' target offset size commit@
+
+
+glBufferPageCommitmentARB :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
+glBufferPageCommitmentARB = ffienumintptrsizeiptrbooleanIOV glBufferPageCommitmentARBFunPtr
+
+glBufferPageCommitmentARBFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+glBufferPageCommitmentARBFunPtr = unsafePerformIO (getProcAddress "glBufferPageCommitmentARB")
+
+{-# NOINLINE glBufferPageCommitmentARBFunPtr #-}
+
+-- | Usage: @'glNamedBufferPageCommitmentARB' buffer offset size commit@
+
+
+glNamedBufferPageCommitmentARB :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
+glNamedBufferPageCommitmentARB = ffiuintintptrsizeiptrbooleanIOV glNamedBufferPageCommitmentARBFunPtr
+
+glNamedBufferPageCommitmentARBFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+glNamedBufferPageCommitmentARBFunPtr = unsafePerformIO (getProcAddress "glNamedBufferPageCommitmentARB")
+
+{-# NOINLINE glNamedBufferPageCommitmentARBFunPtr #-}
+
+-- | Usage: @'glNamedBufferPageCommitmentEXT' buffer offset size commit@
+
+
+glNamedBufferPageCommitmentEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
+glNamedBufferPageCommitmentEXT = ffiuintintptrsizeiptrbooleanIOV glNamedBufferPageCommitmentEXTFunPtr
+
+glNamedBufferPageCommitmentEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+glNamedBufferPageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferPageCommitmentEXT")
+
+{-# NOINLINE glNamedBufferPageCommitmentEXTFunPtr #-}
+
+pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8
+
+pattern GL_SPARSE_STORAGE_BIT_ARB = 0x0400
diff --git a/generated-src/Graphics/GL/Ext/ARB/SparseTexture.hs b/generated-src/Graphics/GL/Ext/ARB/SparseTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SparseTexture.hs
@@ -0,0 +1,67 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SparseTexture (
+  -- * Extension Support
+    gl_ARB_sparse_texture
+
+  -- * GL_ARB_sparse_texture
+  , glTexPageCommitmentARB
+  , pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB
+  , pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB
+  , pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB
+  , pattern GL_NUM_SPARSE_LEVELS_ARB
+  , pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB
+  , pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB
+  , pattern GL_TEXTURE_SPARSE_ARB
+  , pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB
+  , pattern GL_VIRTUAL_PAGE_SIZE_X_ARB
+  , pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB
+  , pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture.txt GL_ARB_sparse_texture> extension is available.
+
+gl_ARB_sparse_texture :: Bool
+gl_ARB_sparse_texture = member "GL_ARB_sparse_texture" extensions
+{-# NOINLINE gl_ARB_sparse_texture #-}
+
+-- | Usage: @'glTexPageCommitmentARB' target level xoffset yoffset zoffset width height depth commit@
+
+
+glTexPageCommitmentARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexPageCommitmentARB = ffienumintintintintsizeisizeisizeibooleanIOV glTexPageCommitmentARBFunPtr
+
+glTexPageCommitmentARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexPageCommitmentARBFunPtr = unsafePerformIO (getProcAddress "glTexPageCommitmentARB")
+
+{-# NOINLINE glTexPageCommitmentARBFunPtr #-}
+
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199
+
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A
+
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198
+
+pattern GL_NUM_SPARSE_LEVELS_ARB = 0x91AA
+
+pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8
+
+pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9
+
+pattern GL_TEXTURE_SPARSE_ARB = 0x91A6
+
+pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7
+
+pattern GL_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195
+
+pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197
diff --git a/generated-src/Graphics/GL/Ext/ARB/SparseTexture2.hs b/generated-src/Graphics/GL/Ext/ARB/SparseTexture2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SparseTexture2.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SparseTexture2 (
+  -- * Extension Support
+    gl_ARB_sparse_texture2
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture2.txt GL_ARB_sparse_texture2> extension is available.
+
+gl_ARB_sparse_texture2 :: Bool
+gl_ARB_sparse_texture2 = member "GL_ARB_sparse_texture2" extensions
+{-# NOINLINE gl_ARB_sparse_texture2 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/SparseTextureClamp.hs b/generated-src/Graphics/GL/Ext/ARB/SparseTextureClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/SparseTextureClamp.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.SparseTextureClamp (
+  -- * Extension Support
+    gl_ARB_sparse_texture_clamp
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sparse_texture_clamp.txt GL_ARB_sparse_texture_clamp> extension is available.
+
+gl_ARB_sparse_texture_clamp :: Bool
+gl_ARB_sparse_texture_clamp = member "GL_ARB_sparse_texture_clamp" extensions
+{-# NOINLINE gl_ARB_sparse_texture_clamp #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/StencilTexturing.hs b/generated-src/Graphics/GL/Ext/ARB/StencilTexturing.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/StencilTexturing.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.StencilTexturing (
+  -- * Extension Support
+    gl_ARB_stencil_texturing
+
+  -- * GL_ARB_stencil_texturing
+  , pattern GL_DEPTH_STENCIL_TEXTURE_MODE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/stencil_texturing.txt GL_ARB_stencil_texturing> extension is available.
+
+gl_ARB_stencil_texturing :: Bool
+gl_ARB_stencil_texturing = member "GL_ARB_stencil_texturing" extensions
+{-# NOINLINE gl_ARB_stencil_texturing #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/Sync.hs b/generated-src/Graphics/GL/Ext/ARB/Sync.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/Sync.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.Sync (
+  -- * Extension Support
+    gl_ARB_sync
+
+  -- * GL_ARB_sync
+  , glClientWaitSync
+  , glDeleteSync
+  , glFenceSync
+  , glGetInteger64v
+  , glGetSynciv
+  , glIsSync
+  , glWaitSync
+  , pattern GL_ALREADY_SIGNALED
+  , pattern GL_CONDITION_SATISFIED
+  , pattern GL_MAX_SERVER_WAIT_TIMEOUT
+  , pattern GL_OBJECT_TYPE
+  , pattern GL_SIGNALED
+  , pattern GL_SYNC_CONDITION
+  , pattern GL_SYNC_FENCE
+  , pattern GL_SYNC_FLAGS
+  , pattern GL_SYNC_FLUSH_COMMANDS_BIT
+  , pattern GL_SYNC_GPU_COMMANDS_COMPLETE
+  , pattern GL_SYNC_STATUS
+  , pattern GL_TIMEOUT_EXPIRED
+  , pattern GL_TIMEOUT_IGNORED
+  , pattern GL_UNSIGNALED
+  , pattern GL_WAIT_FAILED
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/sync.txt GL_ARB_sync> extension is available.
+
+gl_ARB_sync :: Bool
+gl_ARB_sync = member "GL_ARB_sync" extensions
+{-# NOINLINE gl_ARB_sync #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TessellationShader.hs b/generated-src/Graphics/GL/Ext/ARB/TessellationShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TessellationShader.hs
@@ -0,0 +1,57 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TessellationShader (
+  -- * Extension Support
+    gl_ARB_tessellation_shader
+
+  -- * GL_ARB_tessellation_shader
+  , glPatchParameterfv
+  , glPatchParameteri
+  , pattern GL_CCW
+  , pattern GL_CW
+  , pattern GL_EQUAL
+  , pattern GL_FRACTIONAL_EVEN
+  , pattern GL_FRACTIONAL_ODD
+  , pattern GL_ISOLINES
+  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS
+  , pattern GL_MAX_PATCH_VERTICES
+  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS
+  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS
+  , pattern GL_MAX_TESS_GEN_LEVEL
+  , pattern GL_MAX_TESS_PATCH_COMPONENTS
+  , pattern GL_PATCHES
+  , pattern GL_PATCH_DEFAULT_INNER_LEVEL
+  , pattern GL_PATCH_DEFAULT_OUTER_LEVEL
+  , pattern GL_PATCH_VERTICES
+  , pattern GL_QUADS
+  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES
+  , pattern GL_TESS_CONTROL_SHADER
+  , pattern GL_TESS_EVALUATION_SHADER
+  , pattern GL_TESS_GEN_MODE
+  , pattern GL_TESS_GEN_POINT_MODE
+  , pattern GL_TESS_GEN_SPACING
+  , pattern GL_TESS_GEN_VERTEX_ORDER
+  , pattern GL_TRIANGLES
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/tessellation_shader.txt GL_ARB_tessellation_shader> extension is available.
+
+gl_ARB_tessellation_shader :: Bool
+gl_ARB_tessellation_shader = member "GL_ARB_tessellation_shader" extensions
+{-# NOINLINE gl_ARB_tessellation_shader #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureBarrier.hs b/generated-src/Graphics/GL/Ext/ARB/TextureBarrier.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureBarrier.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureBarrier (
+  -- * Extension Support
+    gl_ARB_texture_barrier
+
+  -- * GL_ARB_texture_barrier
+  , glTextureBarrier
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_barrier.txt GL_ARB_texture_barrier> extension is available.
+
+gl_ARB_texture_barrier :: Bool
+gl_ARB_texture_barrier = member "GL_ARB_texture_barrier" extensions
+{-# NOINLINE gl_ARB_texture_barrier #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/ARB/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureBorderClamp.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureBorderClamp (
+  -- * Extension Support
+    gl_ARB_texture_border_clamp
+
+  -- * GL_ARB_texture_border_clamp
+  , pattern GL_CLAMP_TO_BORDER_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_border_clamp.txt GL_ARB_texture_border_clamp> extension is available.
+
+gl_ARB_texture_border_clamp :: Bool
+gl_ARB_texture_border_clamp = member "GL_ARB_texture_border_clamp" extensions
+{-# NOINLINE gl_ARB_texture_border_clamp #-}
+
+pattern GL_CLAMP_TO_BORDER_ARB = 0x812D
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/TextureBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureBufferObject.hs
@@ -0,0 +1,53 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureBufferObject (
+  -- * Extension Support
+    gl_ARB_texture_buffer_object
+
+  -- * GL_ARB_texture_buffer_object
+  , glTexBufferARB
+  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB
+  , pattern GL_TEXTURE_BINDING_BUFFER_ARB
+  , pattern GL_TEXTURE_BUFFER_ARB
+  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB
+  , pattern GL_TEXTURE_BUFFER_FORMAT_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object.txt GL_ARB_texture_buffer_object> extension is available.
+
+gl_ARB_texture_buffer_object :: Bool
+gl_ARB_texture_buffer_object = member "GL_ARB_texture_buffer_object" extensions
+{-# NOINLINE gl_ARB_texture_buffer_object #-}
+
+-- | Usage: @'glTexBufferARB' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
+
+
+glTexBufferARB :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBufferARB = ffienumenumuintIOV glTexBufferARBFunPtr
+
+glTexBufferARBFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferARBFunPtr = unsafePerformIO (getProcAddress "glTexBufferARB")
+
+{-# NOINLINE glTexBufferARBFunPtr #-}
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B
+
+pattern GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C
+
+pattern GL_TEXTURE_BUFFER_ARB = 0x8C2A
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D
+
+pattern GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureBufferObjectRgb32.hs b/generated-src/Graphics/GL/Ext/ARB/TextureBufferObjectRgb32.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureBufferObjectRgb32.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureBufferObjectRgb32 (
+  -- * Extension Support
+    gl_ARB_texture_buffer_object_rgb32
+
+  -- * GL_ARB_texture_buffer_object_rgb32
+  , pattern GL_RGB32F
+  , pattern GL_RGB32I
+  , pattern GL_RGB32UI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_object_rgb32.txt GL_ARB_texture_buffer_object_rgb32> extension is available.
+
+gl_ARB_texture_buffer_object_rgb32 :: Bool
+gl_ARB_texture_buffer_object_rgb32 = member "GL_ARB_texture_buffer_object_rgb32" extensions
+{-# NOINLINE gl_ARB_texture_buffer_object_rgb32 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureBufferRange.hs b/generated-src/Graphics/GL/Ext/ARB/TextureBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureBufferRange.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureBufferRange (
+  -- * Extension Support
+    gl_ARB_texture_buffer_range
+
+  -- * GL_ARB_texture_buffer_range
+  , glTexBufferRange
+  , pattern GL_TEXTURE_BUFFER_OFFSET
+  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_TEXTURE_BUFFER_SIZE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_buffer_range.txt GL_ARB_texture_buffer_range> extension is available.
+
+gl_ARB_texture_buffer_range :: Bool
+gl_ARB_texture_buffer_range = member "GL_ARB_texture_buffer_range" extensions
+{-# NOINLINE gl_ARB_texture_buffer_range #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCompression.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCompression.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCompression.hs
@@ -0,0 +1,239 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureCompression (
+  -- * Extension Support
+    gl_ARB_texture_compression
+
+  -- * GL_ARB_texture_compression
+  , glCompressedTexImage1DARB
+  , glCompressedTexImage2DARB
+  , glCompressedTexImage3DARB
+  , glCompressedTexSubImage1DARB
+  , glCompressedTexSubImage2DARB
+  , glCompressedTexSubImage3DARB
+  , glGetCompressedTexImageARB
+  , pattern GL_COMPRESSED_ALPHA_ARB
+  , pattern GL_COMPRESSED_INTENSITY_ARB
+  , pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB
+  , pattern GL_COMPRESSED_LUMINANCE_ARB
+  , pattern GL_COMPRESSED_RGBA_ARB
+  , pattern GL_COMPRESSED_RGB_ARB
+  , pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB
+  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB
+  , pattern GL_TEXTURE_COMPRESSED_ARB
+  , pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB
+  , pattern GL_TEXTURE_COMPRESSION_HINT_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression.txt GL_ARB_texture_compression> extension is available.
+
+gl_ARB_texture_compression :: Bool
+gl_ARB_texture_compression = member "GL_ARB_texture_compression" extensions
+{-# NOINLINE gl_ARB_texture_compression #-}
+
+-- | Usage: @'glCompressedTexImage1DARB' target level internalformat width border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage1D'.
+
+
+glCompressedTexImage1DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage1DARB = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DARBFunPtr
+
+glCompressedTexImage1DARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage1DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1DARB")
+
+{-# NOINLINE glCompressedTexImage1DARBFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage2DARB' target level internalformat width height border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage2D'.
+
+
+glCompressedTexImage2DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage2DARB = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DARBFunPtr
+
+glCompressedTexImage2DARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage2DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2DARB")
+
+{-# NOINLINE glCompressedTexImage2DARBFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage3DARB' target level internalformat width height depth border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage3D'.
+
+
+glCompressedTexImage3DARB :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage3DARB = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DARBFunPtr
+
+glCompressedTexImage3DARBFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage3DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3DARB")
+
+{-# NOINLINE glCompressedTexImage3DARBFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage1DARB' target level xoffset width format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage1D'.
+
+
+glCompressedTexSubImage1DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage1DARB = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DARBFunPtr
+
+glCompressedTexSubImage1DARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage1DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1DARB")
+
+{-# NOINLINE glCompressedTexSubImage1DARBFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage2DARB' target level xoffset yoffset width height format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage2D'.
+
+
+glCompressedTexSubImage2DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage2DARB = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DARBFunPtr
+
+glCompressedTexSubImage2DARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage2DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2DARB")
+
+{-# NOINLINE glCompressedTexSubImage2DARBFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage3DARB' target level xoffset yoffset zoffset width height depth format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage3D'.
+
+
+glCompressedTexSubImage3DARB :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage3DARB = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DARBFunPtr
+
+glCompressedTexSubImage3DARBFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage3DARBFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3DARB")
+
+{-# NOINLINE glCompressedTexSubImage3DARBFunPtr #-}
+
+-- | Usage: @'glGetCompressedTexImageARB' target level img@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @img@ is a @CompressedTextureARB@.
+--
+-- The length of @img@ should be @COMPSIZE(target,level)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetCompressedTexImage'.
+
+
+glGetCompressedTexImageARB :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedTexImageARB = ffienumintPtrVIOV glGetCompressedTexImageARBFunPtr
+
+glGetCompressedTexImageARBFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedTexImageARBFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImageARB")
+
+{-# NOINLINE glGetCompressedTexImageARBFunPtr #-}
+
+pattern GL_COMPRESSED_ALPHA_ARB = 0x84E9
+
+pattern GL_COMPRESSED_INTENSITY_ARB = 0x84EC
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB
+
+pattern GL_COMPRESSED_LUMINANCE_ARB = 0x84EA
+
+pattern GL_COMPRESSED_RGBA_ARB = 0x84EE
+
+pattern GL_COMPRESSED_RGB_ARB = 0x84ED
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2
+
+pattern GL_TEXTURE_COMPRESSED_ARB = 0x86A1
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0
+
+pattern GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureCompressionBptc (
+  -- * Extension Support
+    gl_ARB_texture_compression_bptc
+
+  -- * GL_ARB_texture_compression_bptc
+  , pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
+  , pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
+  , pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
+  , pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_bptc.txt GL_ARB_texture_compression_bptc> extension is available.
+
+gl_ARB_texture_compression_bptc :: Bool
+gl_ARB_texture_compression_bptc = member "GL_ARB_texture_compression_bptc" extensions
+{-# NOINLINE gl_ARB_texture_compression_bptc #-}
+
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C
+
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E
+
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F
+
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCompressionRgtc.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCompressionRgtc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCompressionRgtc.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureCompressionRgtc (
+  -- * Extension Support
+    gl_ARB_texture_compression_rgtc
+
+  -- * GL_ARB_texture_compression_rgtc
+  , pattern GL_COMPRESSED_RED_RGTC1
+  , pattern GL_COMPRESSED_RG_RGTC2
+  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1
+  , pattern GL_COMPRESSED_SIGNED_RG_RGTC2
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_compression_rgtc.txt GL_ARB_texture_compression_rgtc> extension is available.
+
+gl_ARB_texture_compression_rgtc :: Bool
+gl_ARB_texture_compression_rgtc = member "GL_ARB_texture_compression_rgtc" extensions
+{-# NOINLINE gl_ARB_texture_compression_rgtc #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCubeMap.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMap.hs
@@ -0,0 +1,53 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureCubeMap (
+  -- * Extension Support
+    gl_ARB_texture_cube_map
+
+  -- * GL_ARB_texture_cube_map
+  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB
+  , pattern GL_NORMAL_MAP_ARB
+  , pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB
+  , pattern GL_REFLECTION_MAP_ARB
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map.txt GL_ARB_texture_cube_map> extension is available.
+
+gl_ARB_texture_cube_map :: Bool
+gl_ARB_texture_cube_map = member "GL_ARB_texture_cube_map" extensions
+{-# NOINLINE gl_ARB_texture_cube_map #-}
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C
+
+pattern GL_NORMAL_MAP_ARB = 0x8511
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B
+
+pattern GL_REFLECTION_MAP_ARB = 0x8512
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514
+
+pattern GL_TEXTURE_CUBE_MAP_ARB = 0x8513
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs
@@ -0,0 +1,38 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureCubeMapArray (
+  -- * Extension Support
+    gl_ARB_texture_cube_map_array
+
+  -- * GL_ARB_texture_cube_map_array
+  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
+  , pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB
+  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_cube_map_array.txt GL_ARB_texture_cube_map_array> extension is available.
+
+gl_ARB_texture_cube_map_array :: Bool
+gl_ARB_texture_cube_map_array = member "GL_ARB_texture_cube_map_array" extensions
+{-# NOINLINE gl_ARB_texture_cube_map_array #-}
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureEnvAdd.hs b/generated-src/Graphics/GL/Ext/ARB/TextureEnvAdd.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureEnvAdd.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureEnvAdd (
+  -- * Extension Support
+    gl_ARB_texture_env_add
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_add.txt GL_ARB_texture_env_add> extension is available.
+
+gl_ARB_texture_env_add :: Bool
+gl_ARB_texture_env_add = member "GL_ARB_texture_env_add" extensions
+{-# NOINLINE gl_ARB_texture_env_add #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureEnvCombine.hs b/generated-src/Graphics/GL/Ext/ARB/TextureEnvCombine.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureEnvCombine.hs
@@ -0,0 +1,83 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureEnvCombine (
+  -- * Extension Support
+    gl_ARB_texture_env_combine
+
+  -- * GL_ARB_texture_env_combine
+  , pattern GL_ADD_SIGNED_ARB
+  , pattern GL_COMBINE_ALPHA_ARB
+  , pattern GL_COMBINE_ARB
+  , pattern GL_COMBINE_RGB_ARB
+  , pattern GL_CONSTANT_ARB
+  , pattern GL_INTERPOLATE_ARB
+  , pattern GL_OPERAND0_ALPHA_ARB
+  , pattern GL_OPERAND0_RGB_ARB
+  , pattern GL_OPERAND1_ALPHA_ARB
+  , pattern GL_OPERAND1_RGB_ARB
+  , pattern GL_OPERAND2_ALPHA_ARB
+  , pattern GL_OPERAND2_RGB_ARB
+  , pattern GL_PREVIOUS_ARB
+  , pattern GL_PRIMARY_COLOR_ARB
+  , pattern GL_RGB_SCALE_ARB
+  , pattern GL_SOURCE0_ALPHA_ARB
+  , pattern GL_SOURCE0_RGB_ARB
+  , pattern GL_SOURCE1_ALPHA_ARB
+  , pattern GL_SOURCE1_RGB_ARB
+  , pattern GL_SOURCE2_ALPHA_ARB
+  , pattern GL_SOURCE2_RGB_ARB
+  , pattern GL_SUBTRACT_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_combine.txt GL_ARB_texture_env_combine> extension is available.
+
+gl_ARB_texture_env_combine :: Bool
+gl_ARB_texture_env_combine = member "GL_ARB_texture_env_combine" extensions
+{-# NOINLINE gl_ARB_texture_env_combine #-}
+
+pattern GL_ADD_SIGNED_ARB = 0x8574
+
+pattern GL_COMBINE_ALPHA_ARB = 0x8572
+
+pattern GL_COMBINE_ARB = 0x8570
+
+pattern GL_COMBINE_RGB_ARB = 0x8571
+
+pattern GL_CONSTANT_ARB = 0x8576
+
+pattern GL_INTERPOLATE_ARB = 0x8575
+
+pattern GL_OPERAND0_ALPHA_ARB = 0x8598
+
+pattern GL_OPERAND0_RGB_ARB = 0x8590
+
+pattern GL_OPERAND1_ALPHA_ARB = 0x8599
+
+pattern GL_OPERAND1_RGB_ARB = 0x8591
+
+pattern GL_OPERAND2_ALPHA_ARB = 0x859A
+
+pattern GL_OPERAND2_RGB_ARB = 0x8592
+
+pattern GL_PREVIOUS_ARB = 0x8578
+
+pattern GL_PRIMARY_COLOR_ARB = 0x8577
+
+pattern GL_RGB_SCALE_ARB = 0x8573
+
+pattern GL_SOURCE0_ALPHA_ARB = 0x8588
+
+pattern GL_SOURCE0_RGB_ARB = 0x8580
+
+pattern GL_SOURCE1_ALPHA_ARB = 0x8589
+
+pattern GL_SOURCE1_RGB_ARB = 0x8581
+
+pattern GL_SOURCE2_ALPHA_ARB = 0x858A
+
+pattern GL_SOURCE2_RGB_ARB = 0x8582
+
+pattern GL_SUBTRACT_ARB = 0x84E7
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureEnvCrossbar.hs b/generated-src/Graphics/GL/Ext/ARB/TextureEnvCrossbar.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureEnvCrossbar.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureEnvCrossbar (
+  -- * Extension Support
+    gl_ARB_texture_env_crossbar
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_crossbar.txt GL_ARB_texture_env_crossbar> extension is available.
+
+gl_ARB_texture_env_crossbar :: Bool
+gl_ARB_texture_env_crossbar = member "GL_ARB_texture_env_crossbar" extensions
+{-# NOINLINE gl_ARB_texture_env_crossbar #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureEnvDot3.hs b/generated-src/Graphics/GL/Ext/ARB/TextureEnvDot3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureEnvDot3.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureEnvDot3 (
+  -- * Extension Support
+    gl_ARB_texture_env_dot3
+
+  -- * GL_ARB_texture_env_dot3
+  , pattern GL_DOT3_RGBA_ARB
+  , pattern GL_DOT3_RGB_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_env_dot3.txt GL_ARB_texture_env_dot3> extension is available.
+
+gl_ARB_texture_env_dot3 :: Bool
+gl_ARB_texture_env_dot3 = member "GL_ARB_texture_env_dot3" extensions
+{-# NOINLINE gl_ARB_texture_env_dot3 #-}
+
+pattern GL_DOT3_RGBA_ARB = 0x86AF
+
+pattern GL_DOT3_RGB_ARB = 0x86AE
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs b/generated-src/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureFilterMinmax (
+  -- * Extension Support
+    gl_ARB_texture_filter_minmax
+
+  -- * GL_ARB_texture_filter_minmax
+  , pattern GL_TEXTURE_REDUCTION_MODE_ARB
+  , pattern GL_WEIGHTED_AVERAGE_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_filter_minmax.txt GL_ARB_texture_filter_minmax> extension is available.
+
+gl_ARB_texture_filter_minmax :: Bool
+gl_ARB_texture_filter_minmax = member "GL_ARB_texture_filter_minmax" extensions
+{-# NOINLINE gl_ARB_texture_filter_minmax #-}
+
+pattern GL_TEXTURE_REDUCTION_MODE_ARB = 0x9366
+
+pattern GL_WEIGHTED_AVERAGE_ARB = 0x9367
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureFloat.hs b/generated-src/Graphics/GL/Ext/ARB/TextureFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureFloat.hs
@@ -0,0 +1,77 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureFloat (
+  -- * Extension Support
+    gl_ARB_texture_float
+
+  -- * GL_ARB_texture_float
+  , pattern GL_ALPHA16F_ARB
+  , pattern GL_ALPHA32F_ARB
+  , pattern GL_INTENSITY16F_ARB
+  , pattern GL_INTENSITY32F_ARB
+  , pattern GL_LUMINANCE16F_ARB
+  , pattern GL_LUMINANCE32F_ARB
+  , pattern GL_LUMINANCE_ALPHA16F_ARB
+  , pattern GL_LUMINANCE_ALPHA32F_ARB
+  , pattern GL_RGB16F_ARB
+  , pattern GL_RGB32F_ARB
+  , pattern GL_RGBA16F_ARB
+  , pattern GL_RGBA32F_ARB
+  , pattern GL_TEXTURE_ALPHA_TYPE_ARB
+  , pattern GL_TEXTURE_BLUE_TYPE_ARB
+  , pattern GL_TEXTURE_DEPTH_TYPE_ARB
+  , pattern GL_TEXTURE_GREEN_TYPE_ARB
+  , pattern GL_TEXTURE_INTENSITY_TYPE_ARB
+  , pattern GL_TEXTURE_LUMINANCE_TYPE_ARB
+  , pattern GL_TEXTURE_RED_TYPE_ARB
+  , pattern GL_UNSIGNED_NORMALIZED_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_float.txt GL_ARB_texture_float> extension is available.
+
+gl_ARB_texture_float :: Bool
+gl_ARB_texture_float = member "GL_ARB_texture_float" extensions
+{-# NOINLINE gl_ARB_texture_float #-}
+
+pattern GL_ALPHA16F_ARB = 0x881C
+
+pattern GL_ALPHA32F_ARB = 0x8816
+
+pattern GL_INTENSITY16F_ARB = 0x881D
+
+pattern GL_INTENSITY32F_ARB = 0x8817
+
+pattern GL_LUMINANCE16F_ARB = 0x881E
+
+pattern GL_LUMINANCE32F_ARB = 0x8818
+
+pattern GL_LUMINANCE_ALPHA16F_ARB = 0x881F
+
+pattern GL_LUMINANCE_ALPHA32F_ARB = 0x8819
+
+pattern GL_RGB16F_ARB = 0x881B
+
+pattern GL_RGB32F_ARB = 0x8815
+
+pattern GL_RGBA16F_ARB = 0x881A
+
+pattern GL_RGBA32F_ARB = 0x8814
+
+pattern GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13
+
+pattern GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12
+
+pattern GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16
+
+pattern GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11
+
+pattern GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15
+
+pattern GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14
+
+pattern GL_TEXTURE_RED_TYPE_ARB = 0x8C10
+
+pattern GL_UNSIGNED_NORMALIZED_ARB = 0x8C17
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureGather.hs b/generated-src/Graphics/GL/Ext/ARB/TextureGather.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureGather.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureGather (
+  -- * Extension Support
+    gl_ARB_texture_gather
+
+  -- * GL_ARB_texture_gather
+  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB
+  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
+  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_gather.txt GL_ARB_texture_gather> extension is available.
+
+gl_ARB_texture_gather :: Bool
+gl_ARB_texture_gather = member "GL_ARB_texture_gather" extensions
+{-# NOINLINE gl_ARB_texture_gather #-}
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureMirrorClampToEdge.hs b/generated-src/Graphics/GL/Ext/ARB/TextureMirrorClampToEdge.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureMirrorClampToEdge.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureMirrorClampToEdge (
+  -- * Extension Support
+    gl_ARB_texture_mirror_clamp_to_edge
+
+  -- * GL_ARB_texture_mirror_clamp_to_edge
+  , pattern GL_MIRROR_CLAMP_TO_EDGE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirror_clamp_to_edge.txt GL_ARB_texture_mirror_clamp_to_edge> extension is available.
+
+gl_ARB_texture_mirror_clamp_to_edge :: Bool
+gl_ARB_texture_mirror_clamp_to_edge = member "GL_ARB_texture_mirror_clamp_to_edge" extensions
+{-# NOINLINE gl_ARB_texture_mirror_clamp_to_edge #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs b/generated-src/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureMirroredRepeat (
+  -- * Extension Support
+    gl_ARB_texture_mirrored_repeat
+
+  -- * GL_ARB_texture_mirrored_repeat
+  , pattern GL_MIRRORED_REPEAT_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_mirrored_repeat.txt GL_ARB_texture_mirrored_repeat> extension is available.
+
+gl_ARB_texture_mirrored_repeat :: Bool
+gl_ARB_texture_mirrored_repeat = member "GL_ARB_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_ARB_texture_mirrored_repeat #-}
+
+pattern GL_MIRRORED_REPEAT_ARB = 0x8370
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureMultisample.hs b/generated-src/Graphics/GL/Ext/ARB/TextureMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureMultisample.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureMultisample (
+  -- * Extension Support
+    gl_ARB_texture_multisample
+
+  -- * GL_ARB_texture_multisample
+  , glGetMultisamplefv
+  , glSampleMaski
+  , glTexImage2DMultisample
+  , glTexImage3DMultisample
+  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_MAX_COLOR_TEXTURE_SAMPLES
+  , pattern GL_MAX_DEPTH_TEXTURE_SAMPLES
+  , pattern GL_MAX_INTEGER_SAMPLES
+  , pattern GL_MAX_SAMPLE_MASK_WORDS
+  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE
+  , pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY
+  , pattern GL_SAMPLE_MASK
+  , pattern GL_SAMPLE_MASK_VALUE
+  , pattern GL_SAMPLE_POSITION
+  , pattern GL_TEXTURE_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
+  , pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS
+  , pattern GL_TEXTURE_SAMPLES
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_multisample.txt GL_ARB_texture_multisample> extension is available.
+
+gl_ARB_texture_multisample :: Bool
+gl_ARB_texture_multisample = member "GL_ARB_texture_multisample" extensions
+{-# NOINLINE gl_ARB_texture_multisample #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureNonPowerOfTwo.hs b/generated-src/Graphics/GL/Ext/ARB/TextureNonPowerOfTwo.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureNonPowerOfTwo.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureNonPowerOfTwo (
+  -- * Extension Support
+    gl_ARB_texture_non_power_of_two
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_non_power_of_two.txt GL_ARB_texture_non_power_of_two> extension is available.
+
+gl_ARB_texture_non_power_of_two :: Bool
+gl_ARB_texture_non_power_of_two = member "GL_ARB_texture_non_power_of_two" extensions
+{-# NOINLINE gl_ARB_texture_non_power_of_two #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureQueryLevels.hs b/generated-src/Graphics/GL/Ext/ARB/TextureQueryLevels.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureQueryLevels.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureQueryLevels (
+  -- * Extension Support
+    gl_ARB_texture_query_levels
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_levels.txt GL_ARB_texture_query_levels> extension is available.
+
+gl_ARB_texture_query_levels :: Bool
+gl_ARB_texture_query_levels = member "GL_ARB_texture_query_levels" extensions
+{-# NOINLINE gl_ARB_texture_query_levels #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureQueryLod.hs b/generated-src/Graphics/GL/Ext/ARB/TextureQueryLod.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureQueryLod.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureQueryLod (
+  -- * Extension Support
+    gl_ARB_texture_query_lod
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_query_lod.txt GL_ARB_texture_query_lod> extension is available.
+
+gl_ARB_texture_query_lod :: Bool
+gl_ARB_texture_query_lod = member "GL_ARB_texture_query_lod" extensions
+{-# NOINLINE gl_ARB_texture_query_lod #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureRectangle.hs b/generated-src/Graphics/GL/Ext/ARB/TextureRectangle.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureRectangle.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureRectangle (
+  -- * Extension Support
+    gl_ARB_texture_rectangle
+
+  -- * GL_ARB_texture_rectangle
+  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB
+  , pattern GL_PROXY_TEXTURE_RECTANGLE_ARB
+  , pattern GL_TEXTURE_BINDING_RECTANGLE_ARB
+  , pattern GL_TEXTURE_RECTANGLE_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rectangle.txt GL_ARB_texture_rectangle> extension is available.
+
+gl_ARB_texture_rectangle :: Bool
+gl_ARB_texture_rectangle = member "GL_ARB_texture_rectangle" extensions
+{-# NOINLINE gl_ARB_texture_rectangle #-}
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8
+
+pattern GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7
+
+pattern GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6
+
+pattern GL_TEXTURE_RECTANGLE_ARB = 0x84F5
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureRg.hs b/generated-src/Graphics/GL/Ext/ARB/TextureRg.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureRg.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureRg (
+  -- * Extension Support
+    gl_ARB_texture_rg
+
+  -- * GL_ARB_texture_rg
+  , pattern GL_R16
+  , pattern GL_R16F
+  , pattern GL_R16I
+  , pattern GL_R16UI
+  , pattern GL_R32F
+  , pattern GL_R32I
+  , pattern GL_R32UI
+  , pattern GL_R8
+  , pattern GL_R8I
+  , pattern GL_R8UI
+  , pattern GL_RG
+  , pattern GL_RG16
+  , pattern GL_RG16F
+  , pattern GL_RG16I
+  , pattern GL_RG16UI
+  , pattern GL_RG32F
+  , pattern GL_RG32I
+  , pattern GL_RG32UI
+  , pattern GL_RG8
+  , pattern GL_RG8I
+  , pattern GL_RG8UI
+  , pattern GL_RG_INTEGER
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rg.txt GL_ARB_texture_rg> extension is available.
+
+gl_ARB_texture_rg :: Bool
+gl_ARB_texture_rg = member "GL_ARB_texture_rg" extensions
+{-# NOINLINE gl_ARB_texture_rg #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureRgb10A2ui.hs b/generated-src/Graphics/GL/Ext/ARB/TextureRgb10A2ui.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureRgb10A2ui.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureRgb10A2ui (
+  -- * Extension Support
+    gl_ARB_texture_rgb10_a2ui
+
+  -- * GL_ARB_texture_rgb10_a2ui
+  , pattern GL_RGB10_A2UI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_rgb10_a2ui.txt GL_ARB_texture_rgb10_a2ui> extension is available.
+
+gl_ARB_texture_rgb10_a2ui :: Bool
+gl_ARB_texture_rgb10_a2ui = member "GL_ARB_texture_rgb10_a2ui" extensions
+{-# NOINLINE gl_ARB_texture_rgb10_a2ui #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureStencil8.hs b/generated-src/Graphics/GL/Ext/ARB/TextureStencil8.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureStencil8.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureStencil8 (
+  -- * Extension Support
+    gl_ARB_texture_stencil8
+
+  -- * GL_ARB_texture_stencil8
+  , pattern GL_STENCIL_INDEX
+  , pattern GL_STENCIL_INDEX8
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_stencil8.txt GL_ARB_texture_stencil8> extension is available.
+
+gl_ARB_texture_stencil8 :: Bool
+gl_ARB_texture_stencil8 = member "GL_ARB_texture_stencil8" extensions
+{-# NOINLINE gl_ARB_texture_stencil8 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureStorage.hs b/generated-src/Graphics/GL/Ext/ARB/TextureStorage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureStorage.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureStorage (
+  -- * Extension Support
+    gl_ARB_texture_storage
+
+  -- * GL_ARB_texture_storage
+  , glTexStorage1D
+  , glTexStorage2D
+  , glTexStorage3D
+  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage.txt GL_ARB_texture_storage> extension is available.
+
+gl_ARB_texture_storage :: Bool
+gl_ARB_texture_storage = member "GL_ARB_texture_storage" extensions
+{-# NOINLINE gl_ARB_texture_storage #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureStorageMultisample.hs b/generated-src/Graphics/GL/Ext/ARB/TextureStorageMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureStorageMultisample.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureStorageMultisample (
+  -- * Extension Support
+    gl_ARB_texture_storage_multisample
+
+  -- * GL_ARB_texture_storage_multisample
+  , glTexStorage2DMultisample
+  , glTexStorage3DMultisample
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_storage_multisample.txt GL_ARB_texture_storage_multisample> extension is available.
+
+gl_ARB_texture_storage_multisample :: Bool
+gl_ARB_texture_storage_multisample = member "GL_ARB_texture_storage_multisample" extensions
+{-# NOINLINE gl_ARB_texture_storage_multisample #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureSwizzle.hs b/generated-src/Graphics/GL/Ext/ARB/TextureSwizzle.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureSwizzle.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureSwizzle (
+  -- * Extension Support
+    gl_ARB_texture_swizzle
+
+  -- * GL_ARB_texture_swizzle
+  , pattern GL_TEXTURE_SWIZZLE_A
+  , pattern GL_TEXTURE_SWIZZLE_B
+  , pattern GL_TEXTURE_SWIZZLE_G
+  , pattern GL_TEXTURE_SWIZZLE_R
+  , pattern GL_TEXTURE_SWIZZLE_RGBA
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_swizzle.txt GL_ARB_texture_swizzle> extension is available.
+
+gl_ARB_texture_swizzle :: Bool
+gl_ARB_texture_swizzle = member "GL_ARB_texture_swizzle" extensions
+{-# NOINLINE gl_ARB_texture_swizzle #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureView.hs b/generated-src/Graphics/GL/Ext/ARB/TextureView.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureView.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TextureView (
+  -- * Extension Support
+    gl_ARB_texture_view
+
+  -- * GL_ARB_texture_view
+  , glTextureView
+  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
+  , pattern GL_TEXTURE_VIEW_MIN_LAYER
+  , pattern GL_TEXTURE_VIEW_MIN_LEVEL
+  , pattern GL_TEXTURE_VIEW_NUM_LAYERS
+  , pattern GL_TEXTURE_VIEW_NUM_LEVELS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/texture_view.txt GL_ARB_texture_view> extension is available.
+
+gl_ARB_texture_view :: Bool
+gl_ARB_texture_view = member "GL_ARB_texture_view" extensions
+{-# NOINLINE gl_ARB_texture_view #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TimerQuery.hs b/generated-src/Graphics/GL/Ext/ARB/TimerQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TimerQuery.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TimerQuery (
+  -- * Extension Support
+    gl_ARB_timer_query
+
+  -- * GL_ARB_timer_query
+  , glGetQueryObjecti64v
+  , glGetQueryObjectui64v
+  , glQueryCounter
+  , pattern GL_TIMESTAMP
+  , pattern GL_TIME_ELAPSED
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/timer_query.txt GL_ARB_timer_query> extension is available.
+
+gl_ARB_timer_query :: Bool
+gl_ARB_timer_query = member "GL_ARB_timer_query" extensions
+{-# NOINLINE gl_ARB_timer_query #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TransformFeedback2.hs b/generated-src/Graphics/GL/Ext/ARB/TransformFeedback2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TransformFeedback2.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TransformFeedback2 (
+  -- * Extension Support
+    gl_ARB_transform_feedback2
+
+  -- * GL_ARB_transform_feedback2
+  , glBindTransformFeedback
+  , glDeleteTransformFeedbacks
+  , glDrawTransformFeedback
+  , glGenTransformFeedbacks
+  , glIsTransformFeedback
+  , glPauseTransformFeedback
+  , glResumeTransformFeedback
+  , pattern GL_TRANSFORM_FEEDBACK
+  , pattern GL_TRANSFORM_FEEDBACK_BINDING
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback2.txt GL_ARB_transform_feedback2> extension is available.
+
+gl_ARB_transform_feedback2 :: Bool
+gl_ARB_transform_feedback2 = member "GL_ARB_transform_feedback2" extensions
+{-# NOINLINE gl_ARB_transform_feedback2 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TransformFeedback3.hs b/generated-src/Graphics/GL/Ext/ARB/TransformFeedback3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TransformFeedback3.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TransformFeedback3 (
+  -- * Extension Support
+    gl_ARB_transform_feedback3
+
+  -- * GL_ARB_transform_feedback3
+  , glBeginQueryIndexed
+  , glDrawTransformFeedbackStream
+  , glEndQueryIndexed
+  , glGetQueryIndexediv
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS
+  , pattern GL_MAX_VERTEX_STREAMS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback3.txt GL_ARB_transform_feedback3> extension is available.
+
+gl_ARB_transform_feedback3 :: Bool
+gl_ARB_transform_feedback3 = member "GL_ARB_transform_feedback3" extensions
+{-# NOINLINE gl_ARB_transform_feedback3 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackInstanced.hs b/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackInstanced.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackInstanced.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TransformFeedbackInstanced (
+  -- * Extension Support
+    gl_ARB_transform_feedback_instanced
+
+  -- * GL_ARB_transform_feedback_instanced
+  , glDrawTransformFeedbackInstanced
+  , glDrawTransformFeedbackStreamInstanced
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_instanced.txt GL_ARB_transform_feedback_instanced> extension is available.
+
+gl_ARB_transform_feedback_instanced :: Bool
+gl_ARB_transform_feedback_instanced = member "GL_ARB_transform_feedback_instanced" extensions
+{-# NOINLINE gl_ARB_transform_feedback_instanced #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs b/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TransformFeedbackOverflowQuery (
+  -- * Extension Support
+    gl_ARB_transform_feedback_overflow_query
+
+  -- * GL_ARB_transform_feedback_overflow_query
+  , pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB
+  , pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transform_feedback_overflow_query.txt GL_ARB_transform_feedback_overflow_query> extension is available.
+
+gl_ARB_transform_feedback_overflow_query :: Bool
+gl_ARB_transform_feedback_overflow_query = member "GL_ARB_transform_feedback_overflow_query" extensions
+{-# NOINLINE gl_ARB_transform_feedback_overflow_query #-}
+
+pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC
+
+pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED
diff --git a/generated-src/Graphics/GL/Ext/ARB/TransposeMatrix.hs b/generated-src/Graphics/GL/Ext/ARB/TransposeMatrix.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/TransposeMatrix.hs
@@ -0,0 +1,98 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.TransposeMatrix (
+  -- * Extension Support
+    gl_ARB_transpose_matrix
+
+  -- * GL_ARB_transpose_matrix
+  , glLoadTransposeMatrixdARB
+  , glLoadTransposeMatrixfARB
+  , glMultTransposeMatrixdARB
+  , glMultTransposeMatrixfARB
+  , pattern GL_TRANSPOSE_COLOR_MATRIX_ARB
+  , pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB
+  , pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB
+  , pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/transpose_matrix.txt GL_ARB_transpose_matrix> extension is available.
+
+gl_ARB_transpose_matrix :: Bool
+gl_ARB_transpose_matrix = member "GL_ARB_transpose_matrix" extensions
+{-# NOINLINE gl_ARB_transpose_matrix #-}
+
+-- | Usage: @'glLoadTransposeMatrixdARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glLoadTransposeMatrixd'.
+
+
+glLoadTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()
+glLoadTransposeMatrixdARB = ffiPtrdoubleIOV glLoadTransposeMatrixdARBFunPtr
+
+glLoadTransposeMatrixdARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glLoadTransposeMatrixdARBFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixdARB")
+
+{-# NOINLINE glLoadTransposeMatrixdARBFunPtr #-}
+
+-- | Usage: @'glLoadTransposeMatrixfARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glLoadTransposeMatrixf'.
+
+
+glLoadTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
+glLoadTransposeMatrixfARB = ffiPtrfloatIOV glLoadTransposeMatrixfARBFunPtr
+
+glLoadTransposeMatrixfARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glLoadTransposeMatrixfARBFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixfARB")
+
+{-# NOINLINE glLoadTransposeMatrixfARBFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixdARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultTransposeMatrixd'.
+
+
+glMultTransposeMatrixdARB :: MonadIO m => Ptr GLdouble -> m ()
+glMultTransposeMatrixdARB = ffiPtrdoubleIOV glMultTransposeMatrixdARBFunPtr
+
+glMultTransposeMatrixdARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glMultTransposeMatrixdARBFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixdARB")
+
+{-# NOINLINE glMultTransposeMatrixdARBFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixfARB' m@
+--
+-- The length of @m@ should be @16@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultTransposeMatrixf'.
+
+
+glMultTransposeMatrixfARB :: MonadIO m => Ptr GLfloat -> m ()
+glMultTransposeMatrixfARB = ffiPtrfloatIOV glMultTransposeMatrixfARBFunPtr
+
+glMultTransposeMatrixfARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glMultTransposeMatrixfARBFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixfARB")
+
+{-# NOINLINE glMultTransposeMatrixfARBFunPtr #-}
+
+pattern GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5
diff --git a/generated-src/Graphics/GL/Ext/ARB/UniformBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/UniformBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/UniformBufferObject.hs
@@ -0,0 +1,61 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.UniformBufferObject (
+  -- * Extension Support
+    gl_ARB_uniform_buffer_object
+
+  -- * GL_ARB_uniform_buffer_object
+  , glBindBufferBase
+  , glBindBufferRange
+  , glGetActiveUniformBlockName
+  , glGetActiveUniformBlockiv
+  , glGetActiveUniformName
+  , glGetActiveUniformsiv
+  , glGetIntegeri_v
+  , glGetUniformBlockIndex
+  , glGetUniformIndices
+  , glUniformBlockBinding
+  , pattern GL_ACTIVE_UNIFORM_BLOCKS
+  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
+  , pattern GL_INVALID_INDEX
+  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
+  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
+  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
+  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
+  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
+  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
+  , pattern GL_UNIFORM_ARRAY_STRIDE
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
+  , pattern GL_UNIFORM_BLOCK_BINDING
+  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
+  , pattern GL_UNIFORM_BLOCK_INDEX
+  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_UNIFORM_BUFFER
+  , pattern GL_UNIFORM_BUFFER_BINDING
+  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_UNIFORM_BUFFER_SIZE
+  , pattern GL_UNIFORM_BUFFER_START
+  , pattern GL_UNIFORM_IS_ROW_MAJOR
+  , pattern GL_UNIFORM_MATRIX_STRIDE
+  , pattern GL_UNIFORM_NAME_LENGTH
+  , pattern GL_UNIFORM_OFFSET
+  , pattern GL_UNIFORM_SIZE
+  , pattern GL_UNIFORM_TYPE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/uniform_buffer_object.txt GL_ARB_uniform_buffer_object> extension is available.
+
+gl_ARB_uniform_buffer_object :: Bool
+gl_ARB_uniform_buffer_object = member "GL_ARB_uniform_buffer_object" extensions
+{-# NOINLINE gl_ARB_uniform_buffer_object #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexArrayBgra.hs b/generated-src/Graphics/GL/Ext/ARB/VertexArrayBgra.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexArrayBgra.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexArrayBgra (
+  -- * Extension Support
+    gl_ARB_vertex_array_bgra
+
+  -- * GL_ARB_vertex_array_bgra
+  , pattern GL_BGRA
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_bgra.txt GL_ARB_vertex_array_bgra> extension is available.
+
+gl_ARB_vertex_array_bgra :: Bool
+gl_ARB_vertex_array_bgra = member "GL_ARB_vertex_array_bgra" extensions
+{-# NOINLINE gl_ARB_vertex_array_bgra #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexArrayObject.hs b/generated-src/Graphics/GL/Ext/ARB/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexArrayObject.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexArrayObject (
+  -- * Extension Support
+    gl_ARB_vertex_array_object
+
+  -- * GL_ARB_vertex_array_object
+  , glBindVertexArray
+  , glDeleteVertexArrays
+  , glGenVertexArrays
+  , glIsVertexArray
+  , pattern GL_VERTEX_ARRAY_BINDING
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_array_object.txt GL_ARB_vertex_array_object> extension is available.
+
+gl_ARB_vertex_array_object :: Bool
+gl_ARB_vertex_array_object = member "GL_ARB_vertex_array_object" extensions
+{-# NOINLINE gl_ARB_vertex_array_object #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexAttrib64bit.hs b/generated-src/Graphics/GL/Ext/ARB/VertexAttrib64bit.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexAttrib64bit.hs
@@ -0,0 +1,41 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexAttrib64bit (
+  -- * Extension Support
+    gl_ARB_vertex_attrib_64bit
+
+  -- * GL_ARB_vertex_attrib_64bit
+  , glGetVertexAttribLdv
+  , glVertexAttribL1d
+  , glVertexAttribL1dv
+  , glVertexAttribL2d
+  , glVertexAttribL2dv
+  , glVertexAttribL3d
+  , glVertexAttribL3dv
+  , glVertexAttribL4d
+  , glVertexAttribL4dv
+  , glVertexAttribLPointer
+  , pattern GL_DOUBLE_MAT2
+  , pattern GL_DOUBLE_MAT2x3
+  , pattern GL_DOUBLE_MAT2x4
+  , pattern GL_DOUBLE_MAT3
+  , pattern GL_DOUBLE_MAT3x2
+  , pattern GL_DOUBLE_MAT3x4
+  , pattern GL_DOUBLE_MAT4
+  , pattern GL_DOUBLE_MAT4x2
+  , pattern GL_DOUBLE_MAT4x3
+  , pattern GL_DOUBLE_VEC2
+  , pattern GL_DOUBLE_VEC3
+  , pattern GL_DOUBLE_VEC4
+  , pattern GL_RGB32I
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_64bit.txt GL_ARB_vertex_attrib_64bit> extension is available.
+
+gl_ARB_vertex_attrib_64bit :: Bool
+gl_ARB_vertex_attrib_64bit = member "GL_ARB_vertex_attrib_64bit" extensions
+{-# NOINLINE gl_ARB_vertex_attrib_64bit #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexAttribBinding.hs b/generated-src/Graphics/GL/Ext/ARB/VertexAttribBinding.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexAttribBinding.hs
@@ -0,0 +1,31 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexAttribBinding (
+  -- * Extension Support
+    gl_ARB_vertex_attrib_binding
+
+  -- * GL_ARB_vertex_attrib_binding
+  , glBindVertexBuffer
+  , glVertexAttribBinding
+  , glVertexAttribFormat
+  , glVertexAttribIFormat
+  , glVertexAttribLFormat
+  , glVertexBindingDivisor
+  , pattern GL_MAX_VERTEX_ATTRIB_BINDINGS
+  , pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET
+  , pattern GL_VERTEX_ATTRIB_BINDING
+  , pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET
+  , pattern GL_VERTEX_BINDING_DIVISOR
+  , pattern GL_VERTEX_BINDING_OFFSET
+  , pattern GL_VERTEX_BINDING_STRIDE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_attrib_binding.txt GL_ARB_vertex_attrib_binding> extension is available.
+
+gl_ARB_vertex_attrib_binding :: Bool
+gl_ARB_vertex_attrib_binding = member "GL_ARB_vertex_attrib_binding" extensions
+{-# NOINLINE gl_ARB_vertex_attrib_binding #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexBlend.hs b/generated-src/Graphics/GL/Ext/ARB/VertexBlend.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexBlend.hs
@@ -0,0 +1,288 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexBlend (
+  -- * Extension Support
+    gl_ARB_vertex_blend
+
+  -- * GL_ARB_vertex_blend
+  , glVertexBlendARB
+  , glWeightPointerARB
+  , glWeightbvARB
+  , glWeightdvARB
+  , glWeightfvARB
+  , glWeightivARB
+  , glWeightsvARB
+  , glWeightubvARB
+  , glWeightuivARB
+  , glWeightusvARB
+  , pattern GL_ACTIVE_VERTEX_UNITS_ARB
+  , pattern GL_CURRENT_WEIGHT_ARB
+  , pattern GL_MAX_VERTEX_UNITS_ARB
+  , pattern GL_MODELVIEW0_ARB
+  , pattern GL_MODELVIEW10_ARB
+  , pattern GL_MODELVIEW11_ARB
+  , pattern GL_MODELVIEW12_ARB
+  , pattern GL_MODELVIEW13_ARB
+  , pattern GL_MODELVIEW14_ARB
+  , pattern GL_MODELVIEW15_ARB
+  , pattern GL_MODELVIEW16_ARB
+  , pattern GL_MODELVIEW17_ARB
+  , pattern GL_MODELVIEW18_ARB
+  , pattern GL_MODELVIEW19_ARB
+  , pattern GL_MODELVIEW1_ARB
+  , pattern GL_MODELVIEW20_ARB
+  , pattern GL_MODELVIEW21_ARB
+  , pattern GL_MODELVIEW22_ARB
+  , pattern GL_MODELVIEW23_ARB
+  , pattern GL_MODELVIEW24_ARB
+  , pattern GL_MODELVIEW25_ARB
+  , pattern GL_MODELVIEW26_ARB
+  , pattern GL_MODELVIEW27_ARB
+  , pattern GL_MODELVIEW28_ARB
+  , pattern GL_MODELVIEW29_ARB
+  , pattern GL_MODELVIEW2_ARB
+  , pattern GL_MODELVIEW30_ARB
+  , pattern GL_MODELVIEW31_ARB
+  , pattern GL_MODELVIEW3_ARB
+  , pattern GL_MODELVIEW4_ARB
+  , pattern GL_MODELVIEW5_ARB
+  , pattern GL_MODELVIEW6_ARB
+  , pattern GL_MODELVIEW7_ARB
+  , pattern GL_MODELVIEW8_ARB
+  , pattern GL_MODELVIEW9_ARB
+  , pattern GL_VERTEX_BLEND_ARB
+  , pattern GL_WEIGHT_ARRAY_ARB
+  , pattern GL_WEIGHT_ARRAY_POINTER_ARB
+  , pattern GL_WEIGHT_ARRAY_SIZE_ARB
+  , pattern GL_WEIGHT_ARRAY_STRIDE_ARB
+  , pattern GL_WEIGHT_ARRAY_TYPE_ARB
+  , pattern GL_WEIGHT_SUM_UNITY_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_blend.txt GL_ARB_vertex_blend> extension is available.
+
+gl_ARB_vertex_blend :: Bool
+gl_ARB_vertex_blend = member "GL_ARB_vertex_blend" extensions
+{-# NOINLINE gl_ARB_vertex_blend #-}
+
+-- | Usage: @'glVertexBlendARB' count@
+
+
+glVertexBlendARB :: MonadIO m => GLint -> m ()
+glVertexBlendARB = ffiintIOV glVertexBlendARBFunPtr
+
+glVertexBlendARBFunPtr :: FunPtr (GLint -> IO ())
+glVertexBlendARBFunPtr = unsafePerformIO (getProcAddress "glVertexBlendARB")
+
+{-# NOINLINE glVertexBlendARBFunPtr #-}
+
+-- | Usage: @'glWeightPointerARB' size type stride pointer@
+--
+-- The parameter @type@ is a @WeightPointerTypeARB@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glWeightPointerARB :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glWeightPointerARB = ffiintenumsizeiPtrVIOV glWeightPointerARBFunPtr
+
+glWeightPointerARBFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glWeightPointerARBFunPtr = unsafePerformIO (getProcAddress "glWeightPointerARB")
+
+{-# NOINLINE glWeightPointerARBFunPtr #-}
+
+-- | Usage: @'glWeightbvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightbvARB :: MonadIO m => GLint -> Ptr GLbyte -> m ()
+glWeightbvARB = ffiintPtrbyteIOV glWeightbvARBFunPtr
+
+glWeightbvARBFunPtr :: FunPtr (GLint -> Ptr GLbyte -> IO ())
+glWeightbvARBFunPtr = unsafePerformIO (getProcAddress "glWeightbvARB")
+
+{-# NOINLINE glWeightbvARBFunPtr #-}
+
+-- | Usage: @'glWeightdvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightdvARB :: MonadIO m => GLint -> Ptr GLdouble -> m ()
+glWeightdvARB = ffiintPtrdoubleIOV glWeightdvARBFunPtr
+
+glWeightdvARBFunPtr :: FunPtr (GLint -> Ptr GLdouble -> IO ())
+glWeightdvARBFunPtr = unsafePerformIO (getProcAddress "glWeightdvARB")
+
+{-# NOINLINE glWeightdvARBFunPtr #-}
+
+-- | Usage: @'glWeightfvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightfvARB :: MonadIO m => GLint -> Ptr GLfloat -> m ()
+glWeightfvARB = ffiintPtrfloatIOV glWeightfvARBFunPtr
+
+glWeightfvARBFunPtr :: FunPtr (GLint -> Ptr GLfloat -> IO ())
+glWeightfvARBFunPtr = unsafePerformIO (getProcAddress "glWeightfvARB")
+
+{-# NOINLINE glWeightfvARBFunPtr #-}
+
+-- | Usage: @'glWeightivARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightivARB :: MonadIO m => GLint -> Ptr GLint -> m ()
+glWeightivARB = ffiintPtrintIOV glWeightivARBFunPtr
+
+glWeightivARBFunPtr :: FunPtr (GLint -> Ptr GLint -> IO ())
+glWeightivARBFunPtr = unsafePerformIO (getProcAddress "glWeightivARB")
+
+{-# NOINLINE glWeightivARBFunPtr #-}
+
+-- | Usage: @'glWeightsvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightsvARB :: MonadIO m => GLint -> Ptr GLshort -> m ()
+glWeightsvARB = ffiintPtrshortIOV glWeightsvARBFunPtr
+
+glWeightsvARBFunPtr :: FunPtr (GLint -> Ptr GLshort -> IO ())
+glWeightsvARBFunPtr = unsafePerformIO (getProcAddress "glWeightsvARB")
+
+{-# NOINLINE glWeightsvARBFunPtr #-}
+
+-- | Usage: @'glWeightubvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightubvARB :: MonadIO m => GLint -> Ptr GLubyte -> m ()
+glWeightubvARB = ffiintPtrubyteIOV glWeightubvARBFunPtr
+
+glWeightubvARBFunPtr :: FunPtr (GLint -> Ptr GLubyte -> IO ())
+glWeightubvARBFunPtr = unsafePerformIO (getProcAddress "glWeightubvARB")
+
+{-# NOINLINE glWeightubvARBFunPtr #-}
+
+-- | Usage: @'glWeightuivARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightuivARB :: MonadIO m => GLint -> Ptr GLuint -> m ()
+glWeightuivARB = ffiintPtruintIOV glWeightuivARBFunPtr
+
+glWeightuivARBFunPtr :: FunPtr (GLint -> Ptr GLuint -> IO ())
+glWeightuivARBFunPtr = unsafePerformIO (getProcAddress "glWeightuivARB")
+
+{-# NOINLINE glWeightuivARBFunPtr #-}
+
+-- | Usage: @'glWeightusvARB' size weights@
+--
+-- The length of @weights@ should be @size@.
+
+
+glWeightusvARB :: MonadIO m => GLint -> Ptr GLushort -> m ()
+glWeightusvARB = ffiintPtrushortIOV glWeightusvARBFunPtr
+
+glWeightusvARBFunPtr :: FunPtr (GLint -> Ptr GLushort -> IO ())
+glWeightusvARBFunPtr = unsafePerformIO (getProcAddress "glWeightusvARB")
+
+{-# NOINLINE glWeightusvARBFunPtr #-}
+
+pattern GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5
+
+pattern GL_CURRENT_WEIGHT_ARB = 0x86A8
+
+pattern GL_MAX_VERTEX_UNITS_ARB = 0x86A4
+
+pattern GL_MODELVIEW0_ARB = 0x1700
+
+pattern GL_MODELVIEW10_ARB = 0x872A
+
+pattern GL_MODELVIEW11_ARB = 0x872B
+
+pattern GL_MODELVIEW12_ARB = 0x872C
+
+pattern GL_MODELVIEW13_ARB = 0x872D
+
+pattern GL_MODELVIEW14_ARB = 0x872E
+
+pattern GL_MODELVIEW15_ARB = 0x872F
+
+pattern GL_MODELVIEW16_ARB = 0x8730
+
+pattern GL_MODELVIEW17_ARB = 0x8731
+
+pattern GL_MODELVIEW18_ARB = 0x8732
+
+pattern GL_MODELVIEW19_ARB = 0x8733
+
+pattern GL_MODELVIEW1_ARB = 0x850A
+
+pattern GL_MODELVIEW20_ARB = 0x8734
+
+pattern GL_MODELVIEW21_ARB = 0x8735
+
+pattern GL_MODELVIEW22_ARB = 0x8736
+
+pattern GL_MODELVIEW23_ARB = 0x8737
+
+pattern GL_MODELVIEW24_ARB = 0x8738
+
+pattern GL_MODELVIEW25_ARB = 0x8739
+
+pattern GL_MODELVIEW26_ARB = 0x873A
+
+pattern GL_MODELVIEW27_ARB = 0x873B
+
+pattern GL_MODELVIEW28_ARB = 0x873C
+
+pattern GL_MODELVIEW29_ARB = 0x873D
+
+pattern GL_MODELVIEW2_ARB = 0x8722
+
+pattern GL_MODELVIEW30_ARB = 0x873E
+
+pattern GL_MODELVIEW31_ARB = 0x873F
+
+pattern GL_MODELVIEW3_ARB = 0x8723
+
+pattern GL_MODELVIEW4_ARB = 0x8724
+
+pattern GL_MODELVIEW5_ARB = 0x8725
+
+pattern GL_MODELVIEW6_ARB = 0x8726
+
+pattern GL_MODELVIEW7_ARB = 0x8727
+
+pattern GL_MODELVIEW8_ARB = 0x8728
+
+pattern GL_MODELVIEW9_ARB = 0x8729
+
+pattern GL_VERTEX_BLEND_ARB = 0x86A7
+
+pattern GL_WEIGHT_ARRAY_ARB = 0x86AD
+
+pattern GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC
+
+pattern GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB
+
+pattern GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA
+
+pattern GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9
+
+pattern GL_WEIGHT_SUM_UNITY_ARB = 0x86A6
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/VertexBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexBufferObject.hs
@@ -0,0 +1,317 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexBufferObject (
+  -- * Extension Support
+    gl_ARB_vertex_buffer_object
+
+  -- * GL_ARB_vertex_buffer_object
+  , glBindBufferARB
+  , glBufferDataARB
+  , glBufferSubDataARB
+  , glDeleteBuffersARB
+  , glGenBuffersARB
+  , glGetBufferParameterivARB
+  , glGetBufferPointervARB
+  , glGetBufferSubDataARB
+  , glIsBufferARB
+  , glMapBufferARB
+  , glUnmapBufferARB
+  , pattern GL_ARRAY_BUFFER_ARB
+  , pattern GL_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_BUFFER_ACCESS_ARB
+  , pattern GL_BUFFER_MAPPED_ARB
+  , pattern GL_BUFFER_MAP_POINTER_ARB
+  , pattern GL_BUFFER_SIZE_ARB
+  , pattern GL_BUFFER_USAGE_ARB
+  , pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_DYNAMIC_COPY_ARB
+  , pattern GL_DYNAMIC_DRAW_ARB
+  , pattern GL_DYNAMIC_READ_ARB
+  , pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_ELEMENT_ARRAY_BUFFER_ARB
+  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_READ_ONLY_ARB
+  , pattern GL_READ_WRITE_ARB
+  , pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_STATIC_COPY_ARB
+  , pattern GL_STATIC_DRAW_ARB
+  , pattern GL_STATIC_READ_ARB
+  , pattern GL_STREAM_COPY_ARB
+  , pattern GL_STREAM_DRAW_ARB
+  , pattern GL_STREAM_READ_ARB
+  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB
+  , pattern GL_WRITE_ONLY_ARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_buffer_object.txt GL_ARB_vertex_buffer_object> extension is available.
+
+gl_ARB_vertex_buffer_object :: Bool
+gl_ARB_vertex_buffer_object = member "GL_ARB_vertex_buffer_object" extensions
+{-# NOINLINE gl_ARB_vertex_buffer_object #-}
+
+-- | Usage: @'glBindBufferARB' target buffer@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBuffer'.
+
+
+glBindBufferARB :: MonadIO m => GLenum -> GLuint -> m ()
+glBindBufferARB = ffienumuintIOV glBindBufferARBFunPtr
+
+glBindBufferARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindBufferARBFunPtr = unsafePerformIO (getProcAddress "glBindBufferARB")
+
+{-# NOINLINE glBindBufferARBFunPtr #-}
+
+-- | Usage: @'glBufferDataARB' target size data usage@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @size@ is a @BufferSizeARB@.
+--
+-- The parameter @usage@ is a @BufferUsageARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBufferData'.
+
+
+glBufferDataARB :: MonadIO m => GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> m ()
+glBufferDataARB = ffienumsizeiptrARBPtrVenumIOV glBufferDataARBFunPtr
+
+glBufferDataARBFunPtr :: FunPtr (GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ())
+glBufferDataARBFunPtr = unsafePerformIO (getProcAddress "glBufferDataARB")
+
+{-# NOINLINE glBufferDataARBFunPtr #-}
+
+-- | Usage: @'glBufferSubDataARB' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffsetARB@.
+--
+-- The parameter @size@ is a @BufferSizeARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBufferSubData'.
+
+
+glBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
+glBufferSubDataARB = ffienumintptrARBsizeiptrARBPtrVIOV glBufferSubDataARBFunPtr
+
+glBufferSubDataARBFunPtr :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ())
+glBufferSubDataARBFunPtr = unsafePerformIO (getProcAddress "glBufferSubDataARB")
+
+{-# NOINLINE glBufferSubDataARBFunPtr #-}
+
+-- | Usage: @'glDeleteBuffersARB' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteBuffers'.
+
+
+glDeleteBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteBuffersARB = ffisizeiPtruintIOV glDeleteBuffersARBFunPtr
+
+glDeleteBuffersARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteBuffersARBFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffersARB")
+
+{-# NOINLINE glDeleteBuffersARBFunPtr #-}
+
+-- | Usage: @'glGenBuffersARB' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenBuffers'.
+
+
+glGenBuffersARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenBuffersARB = ffisizeiPtruintIOV glGenBuffersARBFunPtr
+
+glGenBuffersARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenBuffersARBFunPtr = unsafePerformIO (getProcAddress "glGenBuffersARB")
+
+{-# NOINLINE glGenBuffersARBFunPtr #-}
+
+-- | Usage: @'glGetBufferParameterivARB' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferParameteriv'.
+
+
+glGetBufferParameterivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetBufferParameterivARB = ffienumenumPtrintIOV glGetBufferParameterivARBFunPtr
+
+glGetBufferParameterivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetBufferParameterivARBFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameterivARB")
+
+{-# NOINLINE glGetBufferParameterivARBFunPtr #-}
+
+-- | Usage: @'glGetBufferPointervARB' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPointerNameARB@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferPointerv'.
+
+
+glGetBufferPointervARB :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetBufferPointervARB = ffienumenumPtrPtrVIOV glGetBufferPointervARBFunPtr
+
+glGetBufferPointervARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetBufferPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointervARB")
+
+{-# NOINLINE glGetBufferPointervARBFunPtr #-}
+
+-- | Usage: @'glGetBufferSubDataARB' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffsetARB@.
+--
+-- The parameter @size@ is a @BufferSizeARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferSubData'.
+
+
+glGetBufferSubDataARB :: MonadIO m => GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
+glGetBufferSubDataARB = ffienumintptrARBsizeiptrARBPtrVIOV glGetBufferSubDataARBFunPtr
+
+glGetBufferSubDataARBFunPtr :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ())
+glGetBufferSubDataARBFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubDataARB")
+
+{-# NOINLINE glGetBufferSubDataARBFunPtr #-}
+
+-- | Usage: @'glIsBufferARB' buffer@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsBuffer'.
+
+
+glIsBufferARB :: MonadIO m => GLuint -> m GLboolean
+glIsBufferARB = ffiuintIOboolean glIsBufferARBFunPtr
+
+glIsBufferARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsBufferARBFunPtr = unsafePerformIO (getProcAddress "glIsBufferARB")
+
+{-# NOINLINE glIsBufferARBFunPtr #-}
+
+-- | Usage: @'glMapBufferARB' target access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @access@ is a @BufferAccessARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMapBuffer'.
+
+
+glMapBufferARB :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
+glMapBufferARB = ffienumenumIOPtrV glMapBufferARBFunPtr
+
+glMapBufferARBFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
+glMapBufferARBFunPtr = unsafePerformIO (getProcAddress "glMapBufferARB")
+
+{-# NOINLINE glMapBufferARBFunPtr #-}
+
+-- | Usage: @'glUnmapBufferARB' target@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUnmapBuffer'.
+
+
+glUnmapBufferARB :: MonadIO m => GLenum -> m GLboolean
+glUnmapBufferARB = ffienumIOboolean glUnmapBufferARBFunPtr
+
+glUnmapBufferARBFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glUnmapBufferARBFunPtr = unsafePerformIO (getProcAddress "glUnmapBufferARB")
+
+{-# NOINLINE glUnmapBufferARBFunPtr #-}
+
+pattern GL_ARRAY_BUFFER_ARB = 0x8892
+
+pattern GL_ARRAY_BUFFER_BINDING_ARB = 0x8894
+
+pattern GL_BUFFER_ACCESS_ARB = 0x88BB
+
+pattern GL_BUFFER_MAPPED_ARB = 0x88BC
+
+pattern GL_BUFFER_MAP_POINTER_ARB = 0x88BD
+
+pattern GL_BUFFER_SIZE_ARB = 0x8764
+
+pattern GL_BUFFER_USAGE_ARB = 0x8765
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898
+
+pattern GL_DYNAMIC_COPY_ARB = 0x88EA
+
+pattern GL_DYNAMIC_DRAW_ARB = 0x88E8
+
+pattern GL_DYNAMIC_READ_ARB = 0x88E9
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B
+
+pattern GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897
+
+pattern GL_READ_ONLY_ARB = 0x88B8
+
+pattern GL_READ_WRITE_ARB = 0x88BA
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C
+
+pattern GL_STATIC_COPY_ARB = 0x88E6
+
+pattern GL_STATIC_DRAW_ARB = 0x88E4
+
+pattern GL_STATIC_READ_ARB = 0x88E5
+
+pattern GL_STREAM_COPY_ARB = 0x88E2
+
+pattern GL_STREAM_DRAW_ARB = 0x88E0
+
+pattern GL_STREAM_READ_ARB = 0x88E1
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E
+
+pattern GL_WRITE_ONLY_ARB = 0x88B9
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexProgram.hs b/generated-src/Graphics/GL/Ext/ARB/VertexProgram.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexProgram.hs
@@ -0,0 +1,171 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexProgram (
+  -- * Extension Support
+    gl_ARB_vertex_program
+
+  -- * GL_ARB_vertex_program
+  , glBindProgramARB
+  , glDeleteProgramsARB
+  , glDisableVertexAttribArrayARB
+  , glEnableVertexAttribArrayARB
+  , glGenProgramsARB
+  , glGetProgramEnvParameterdvARB
+  , glGetProgramEnvParameterfvARB
+  , glGetProgramLocalParameterdvARB
+  , glGetProgramLocalParameterfvARB
+  , glGetProgramStringARB
+  , glGetProgramivARB
+  , glGetVertexAttribPointervARB
+  , glGetVertexAttribdvARB
+  , glGetVertexAttribfvARB
+  , glGetVertexAttribivARB
+  , glIsProgramARB
+  , glProgramEnvParameter4dARB
+  , glProgramEnvParameter4dvARB
+  , glProgramEnvParameter4fARB
+  , glProgramEnvParameter4fvARB
+  , glProgramLocalParameter4dARB
+  , glProgramLocalParameter4dvARB
+  , glProgramLocalParameter4fARB
+  , glProgramLocalParameter4fvARB
+  , glProgramStringARB
+  , glVertexAttrib1dARB
+  , glVertexAttrib1dvARB
+  , glVertexAttrib1fARB
+  , glVertexAttrib1fvARB
+  , glVertexAttrib1sARB
+  , glVertexAttrib1svARB
+  , glVertexAttrib2dARB
+  , glVertexAttrib2dvARB
+  , glVertexAttrib2fARB
+  , glVertexAttrib2fvARB
+  , glVertexAttrib2sARB
+  , glVertexAttrib2svARB
+  , glVertexAttrib3dARB
+  , glVertexAttrib3dvARB
+  , glVertexAttrib3fARB
+  , glVertexAttrib3fvARB
+  , glVertexAttrib3sARB
+  , glVertexAttrib3svARB
+  , glVertexAttrib4NbvARB
+  , glVertexAttrib4NivARB
+  , glVertexAttrib4NsvARB
+  , glVertexAttrib4NubARB
+  , glVertexAttrib4NubvARB
+  , glVertexAttrib4NuivARB
+  , glVertexAttrib4NusvARB
+  , glVertexAttrib4bvARB
+  , glVertexAttrib4dARB
+  , glVertexAttrib4dvARB
+  , glVertexAttrib4fARB
+  , glVertexAttrib4fvARB
+  , glVertexAttrib4ivARB
+  , glVertexAttrib4sARB
+  , glVertexAttrib4svARB
+  , glVertexAttrib4ubvARB
+  , glVertexAttrib4uivARB
+  , glVertexAttrib4usvARB
+  , glVertexAttribPointerARB
+  , pattern GL_COLOR_SUM_ARB
+  , pattern GL_CURRENT_MATRIX_ARB
+  , pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB
+  , pattern GL_CURRENT_VERTEX_ATTRIB_ARB
+  , pattern GL_MATRIX0_ARB
+  , pattern GL_MATRIX10_ARB
+  , pattern GL_MATRIX11_ARB
+  , pattern GL_MATRIX12_ARB
+  , pattern GL_MATRIX13_ARB
+  , pattern GL_MATRIX14_ARB
+  , pattern GL_MATRIX15_ARB
+  , pattern GL_MATRIX16_ARB
+  , pattern GL_MATRIX17_ARB
+  , pattern GL_MATRIX18_ARB
+  , pattern GL_MATRIX19_ARB
+  , pattern GL_MATRIX1_ARB
+  , pattern GL_MATRIX20_ARB
+  , pattern GL_MATRIX21_ARB
+  , pattern GL_MATRIX22_ARB
+  , pattern GL_MATRIX23_ARB
+  , pattern GL_MATRIX24_ARB
+  , pattern GL_MATRIX25_ARB
+  , pattern GL_MATRIX26_ARB
+  , pattern GL_MATRIX27_ARB
+  , pattern GL_MATRIX28_ARB
+  , pattern GL_MATRIX29_ARB
+  , pattern GL_MATRIX2_ARB
+  , pattern GL_MATRIX30_ARB
+  , pattern GL_MATRIX31_ARB
+  , pattern GL_MATRIX3_ARB
+  , pattern GL_MATRIX4_ARB
+  , pattern GL_MATRIX5_ARB
+  , pattern GL_MATRIX6_ARB
+  , pattern GL_MATRIX7_ARB
+  , pattern GL_MATRIX8_ARB
+  , pattern GL_MATRIX9_ARB
+  , pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB
+  , pattern GL_MAX_PROGRAM_ATTRIBS_ARB
+  , pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB
+  , pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_MATRICES_ARB
+  , pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
+  , pattern GL_MAX_PROGRAM_PARAMETERS_ARB
+  , pattern GL_MAX_PROGRAM_TEMPORARIES_ARB
+  , pattern GL_MAX_VERTEX_ATTRIBS_ARB
+  , pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB
+  , pattern GL_PROGRAM_ATTRIBS_ARB
+  , pattern GL_PROGRAM_BINDING_ARB
+  , pattern GL_PROGRAM_ERROR_POSITION_ARB
+  , pattern GL_PROGRAM_ERROR_STRING_ARB
+  , pattern GL_PROGRAM_FORMAT_ARB
+  , pattern GL_PROGRAM_FORMAT_ASCII_ARB
+  , pattern GL_PROGRAM_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_LENGTH_ARB
+  , pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB
+  , pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB
+  , pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB
+  , pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB
+  , pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB
+  , pattern GL_PROGRAM_PARAMETERS_ARB
+  , pattern GL_PROGRAM_STRING_ARB
+  , pattern GL_PROGRAM_TEMPORARIES_ARB
+  , pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB
+  , pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
+  , pattern GL_VERTEX_PROGRAM_ARB
+  , pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB
+  , pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_program.txt GL_ARB_vertex_program> extension is available.
+
+gl_ARB_vertex_program :: Bool
+gl_ARB_vertex_program = member "GL_ARB_vertex_program" extensions
+{-# NOINLINE gl_ARB_vertex_program #-}
+
+pattern GL_COLOR_SUM_ARB = 0x8458
+
+pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1
+
+pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3
+
+pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0
+
+pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2
+
+pattern GL_VERTEX_PROGRAM_ARB = 0x8620
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexShader.hs b/generated-src/Graphics/GL/Ext/ARB/VertexShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexShader.hs
@@ -0,0 +1,160 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexShader (
+  -- * Extension Support
+    gl_ARB_vertex_shader
+
+  -- * GL_ARB_vertex_shader
+  , glBindAttribLocationARB
+  , glDisableVertexAttribArrayARB
+  , glEnableVertexAttribArrayARB
+  , glGetActiveAttribARB
+  , glGetAttribLocationARB
+  , glGetVertexAttribPointervARB
+  , glGetVertexAttribdvARB
+  , glGetVertexAttribfvARB
+  , glGetVertexAttribivARB
+  , glVertexAttrib1dARB
+  , glVertexAttrib1dvARB
+  , glVertexAttrib1fARB
+  , glVertexAttrib1fvARB
+  , glVertexAttrib1sARB
+  , glVertexAttrib1svARB
+  , glVertexAttrib2dARB
+  , glVertexAttrib2dvARB
+  , glVertexAttrib2fARB
+  , glVertexAttrib2fvARB
+  , glVertexAttrib2sARB
+  , glVertexAttrib2svARB
+  , glVertexAttrib3dARB
+  , glVertexAttrib3dvARB
+  , glVertexAttrib3fARB
+  , glVertexAttrib3fvARB
+  , glVertexAttrib3sARB
+  , glVertexAttrib3svARB
+  , glVertexAttrib4NbvARB
+  , glVertexAttrib4NivARB
+  , glVertexAttrib4NsvARB
+  , glVertexAttrib4NubARB
+  , glVertexAttrib4NubvARB
+  , glVertexAttrib4NuivARB
+  , glVertexAttrib4NusvARB
+  , glVertexAttrib4bvARB
+  , glVertexAttrib4dARB
+  , glVertexAttrib4dvARB
+  , glVertexAttrib4fARB
+  , glVertexAttrib4fvARB
+  , glVertexAttrib4ivARB
+  , glVertexAttrib4sARB
+  , glVertexAttrib4svARB
+  , glVertexAttrib4ubvARB
+  , glVertexAttrib4uivARB
+  , glVertexAttrib4usvARB
+  , glVertexAttribPointerARB
+  , pattern GL_CURRENT_VERTEX_ATTRIB_ARB
+  , pattern GL_FLOAT
+  , pattern GL_FLOAT_MAT2_ARB
+  , pattern GL_FLOAT_MAT3_ARB
+  , pattern GL_FLOAT_MAT4_ARB
+  , pattern GL_FLOAT_VEC2_ARB
+  , pattern GL_FLOAT_VEC3_ARB
+  , pattern GL_FLOAT_VEC4_ARB
+  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
+  , pattern GL_MAX_TEXTURE_COORDS_ARB
+  , pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB
+  , pattern GL_MAX_VARYING_FLOATS_ARB
+  , pattern GL_MAX_VERTEX_ATTRIBS_ARB
+  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
+  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
+  , pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB
+  , pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB
+  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB
+  , pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB
+  , pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB
+  , pattern GL_VERTEX_SHADER_ARB
+) 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/ARB/vertex_shader.txt GL_ARB_vertex_shader> extension is available.
+
+gl_ARB_vertex_shader :: Bool
+gl_ARB_vertex_shader = member "GL_ARB_vertex_shader" extensions
+{-# NOINLINE gl_ARB_vertex_shader #-}
+
+-- | Usage: @'glBindAttribLocationARB' programObj index name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindAttribLocation'.
+
+
+glBindAttribLocationARB :: MonadIO m => GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()
+glBindAttribLocationARB = ffihandleARBuintPtrcharARBIOV glBindAttribLocationARBFunPtr
+
+glBindAttribLocationARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ())
+glBindAttribLocationARBFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocationARB")
+
+{-# NOINLINE glBindAttribLocationARBFunPtr #-}
+
+-- | Usage: @'glGetActiveAttribARB' programObj index maxLength length size type name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @maxLength@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetActiveAttrib'.
+
+
+glGetActiveAttribARB :: MonadIO m => GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
+glGetActiveAttribARB = ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV glGetActiveAttribARBFunPtr
+
+glGetActiveAttribARBFunPtr :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
+glGetActiveAttribARBFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttribARB")
+
+{-# NOINLINE glGetActiveAttribARBFunPtr #-}
+
+-- | Usage: @'glGetAttribLocationARB' programObj name@
+--
+-- The parameter @programObj@ is a @handleARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetAttribLocation'.
+
+
+glGetAttribLocationARB :: MonadIO m => GLhandleARB -> Ptr GLcharARB -> m GLint
+glGetAttribLocationARB = ffihandleARBPtrcharARBIOint glGetAttribLocationARBFunPtr
+
+glGetAttribLocationARBFunPtr :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
+glGetAttribLocationARBFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocationARB")
+
+{-# NOINLINE glGetAttribLocationARBFunPtr #-}
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D
+
+pattern GL_MAX_VARYING_FLOATS_ARB = 0x8B4B
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A
+
+pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89
+
+pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A
+
+pattern GL_VERTEX_SHADER_ARB = 0x8B31
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexType10f11f11fRev.hs b/generated-src/Graphics/GL/Ext/ARB/VertexType10f11f11fRev.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexType10f11f11fRev.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexType10f11f11fRev (
+  -- * Extension Support
+    gl_ARB_vertex_type_10f_11f_11f_rev
+
+  -- * GL_ARB_vertex_type_10f_11f_11f_rev
+  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_10f_11f_11f_rev.txt GL_ARB_vertex_type_10f_11f_11f_rev> extension is available.
+
+gl_ARB_vertex_type_10f_11f_11f_rev :: Bool
+gl_ARB_vertex_type_10f_11f_11f_rev = member "GL_ARB_vertex_type_10f_11f_11f_rev" extensions
+{-# NOINLINE gl_ARB_vertex_type_10f_11f_11f_rev #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexType2101010Rev.hs b/generated-src/Graphics/GL/Ext/ARB/VertexType2101010Rev.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexType2101010Rev.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.VertexType2101010Rev (
+  -- * Extension Support
+    gl_ARB_vertex_type_2_10_10_10_rev
+
+  -- * GL_ARB_vertex_type_2_10_10_10_rev
+  , glColorP3ui
+  , glColorP3uiv
+  , glColorP4ui
+  , glColorP4uiv
+  , glMultiTexCoordP1ui
+  , glMultiTexCoordP1uiv
+  , glMultiTexCoordP2ui
+  , glMultiTexCoordP2uiv
+  , glMultiTexCoordP3ui
+  , glMultiTexCoordP3uiv
+  , glMultiTexCoordP4ui
+  , glMultiTexCoordP4uiv
+  , glNormalP3ui
+  , glNormalP3uiv
+  , glSecondaryColorP3ui
+  , glSecondaryColorP3uiv
+  , glTexCoordP1ui
+  , glTexCoordP1uiv
+  , glTexCoordP2ui
+  , glTexCoordP2uiv
+  , glTexCoordP3ui
+  , glTexCoordP3uiv
+  , glTexCoordP4ui
+  , glTexCoordP4uiv
+  , glVertexAttribP1ui
+  , glVertexAttribP1uiv
+  , glVertexAttribP2ui
+  , glVertexAttribP2uiv
+  , glVertexAttribP3ui
+  , glVertexAttribP3uiv
+  , glVertexAttribP4ui
+  , glVertexAttribP4uiv
+  , glVertexP2ui
+  , glVertexP2uiv
+  , glVertexP3ui
+  , glVertexP3uiv
+  , glVertexP4ui
+  , glVertexP4uiv
+  , pattern GL_INT_2_10_10_10_REV
+  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/vertex_type_2_10_10_10_rev.txt GL_ARB_vertex_type_2_10_10_10_rev> extension is available.
+
+gl_ARB_vertex_type_2_10_10_10_rev :: Bool
+gl_ARB_vertex_type_2_10_10_10_rev = member "GL_ARB_vertex_type_2_10_10_10_rev" extensions
+{-# NOINLINE gl_ARB_vertex_type_2_10_10_10_rev #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/ViewportArray.hs b/generated-src/Graphics/GL/Ext/ARB/ViewportArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/ViewportArray.hs
@@ -0,0 +1,41 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.ViewportArray (
+  -- * Extension Support
+    gl_ARB_viewport_array
+
+  -- * GL_ARB_viewport_array
+  , glDepthRangeArrayv
+  , glDepthRangeIndexed
+  , glGetDoublei_v
+  , glGetFloati_v
+  , glScissorArrayv
+  , glScissorIndexed
+  , glScissorIndexedv
+  , glViewportArrayv
+  , glViewportIndexedf
+  , glViewportIndexedfv
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_FIRST_VERTEX_CONVENTION
+  , pattern GL_LAST_VERTEX_CONVENTION
+  , pattern GL_LAYER_PROVOKING_VERTEX
+  , pattern GL_MAX_VIEWPORTS
+  , pattern GL_PROVOKING_VERTEX
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_UNDEFINED_VERTEX
+  , pattern GL_VIEWPORT
+  , pattern GL_VIEWPORT_BOUNDS_RANGE
+  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX
+  , pattern GL_VIEWPORT_SUBPIXEL_BITS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/viewport_array.txt GL_ARB_viewport_array> extension is available.
+
+gl_ARB_viewport_array :: Bool
+gl_ARB_viewport_array = member "GL_ARB_viewport_array" extensions
+{-# NOINLINE gl_ARB_viewport_array #-}
diff --git a/generated-src/Graphics/GL/Ext/ARB/WindowPos.hs b/generated-src/Graphics/GL/Ext/ARB/WindowPos.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARB/WindowPos.hs
@@ -0,0 +1,334 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARB.WindowPos (
+  -- * Extension Support
+    gl_ARB_window_pos
+
+  -- * GL_ARB_window_pos
+  , glWindowPos2dARB
+  , glWindowPos2dvARB
+  , glWindowPos2fARB
+  , glWindowPos2fvARB
+  , glWindowPos2iARB
+  , glWindowPos2ivARB
+  , glWindowPos2sARB
+  , glWindowPos2svARB
+  , glWindowPos3dARB
+  , glWindowPos3dvARB
+  , glWindowPos3fARB
+  , glWindowPos3fvARB
+  , glWindowPos3iARB
+  , glWindowPos3ivARB
+  , glWindowPos3sARB
+  , glWindowPos3svARB
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ARB/window_pos.txt GL_ARB_window_pos> extension is available.
+
+gl_ARB_window_pos :: Bool
+gl_ARB_window_pos = member "GL_ARB_window_pos" extensions
+{-# NOINLINE gl_ARB_window_pos #-}
+
+-- | Usage: @'glWindowPos2dARB' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2dvARB'.
+
+
+glWindowPos2dARB :: MonadIO m => GLdouble -> GLdouble -> m ()
+glWindowPos2dARB = ffidoubledoubleIOV glWindowPos2dARBFunPtr
+
+glWindowPos2dARBFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glWindowPos2dARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dARB")
+
+{-# NOINLINE glWindowPos2dARBFunPtr #-}
+
+-- | Usage: @'glWindowPos2dvARB' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2dv'.
+
+
+glWindowPos2dvARB :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos2dvARB = ffiPtrdoubleIOV glWindowPos2dvARBFunPtr
+
+glWindowPos2dvARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos2dvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dvARB")
+
+{-# NOINLINE glWindowPos2dvARBFunPtr #-}
+
+-- | Usage: @'glWindowPos2fARB' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2fvARB'.
+
+
+glWindowPos2fARB :: MonadIO m => GLfloat -> GLfloat -> m ()
+glWindowPos2fARB = ffifloatfloatIOV glWindowPos2fARBFunPtr
+
+glWindowPos2fARBFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glWindowPos2fARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fARB")
+
+{-# NOINLINE glWindowPos2fARBFunPtr #-}
+
+-- | Usage: @'glWindowPos2fvARB' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2fv'.
+
+
+glWindowPos2fvARB :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos2fvARB = ffiPtrfloatIOV glWindowPos2fvARBFunPtr
+
+glWindowPos2fvARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos2fvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fvARB")
+
+{-# NOINLINE glWindowPos2fvARBFunPtr #-}
+
+-- | Usage: @'glWindowPos2iARB' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2ivARB'.
+
+
+glWindowPos2iARB :: MonadIO m => GLint -> GLint -> m ()
+glWindowPos2iARB = ffiintintIOV glWindowPos2iARBFunPtr
+
+glWindowPos2iARBFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glWindowPos2iARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iARB")
+
+{-# NOINLINE glWindowPos2iARBFunPtr #-}
+
+-- | Usage: @'glWindowPos2ivARB' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2iv'.
+
+
+glWindowPos2ivARB :: MonadIO m => Ptr GLint -> m ()
+glWindowPos2ivARB = ffiPtrintIOV glWindowPos2ivARBFunPtr
+
+glWindowPos2ivARBFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos2ivARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2ivARB")
+
+{-# NOINLINE glWindowPos2ivARBFunPtr #-}
+
+-- | Usage: @'glWindowPos2sARB' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos2svARB'.
+
+
+glWindowPos2sARB :: MonadIO m => GLshort -> GLshort -> m ()
+glWindowPos2sARB = ffishortshortIOV glWindowPos2sARBFunPtr
+
+glWindowPos2sARBFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glWindowPos2sARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sARB")
+
+{-# NOINLINE glWindowPos2sARBFunPtr #-}
+
+-- | Usage: @'glWindowPos2svARB' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2sv'.
+
+
+glWindowPos2svARB :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos2svARB = ffiPtrshortIOV glWindowPos2svARBFunPtr
+
+glWindowPos2svARBFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos2svARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos2svARB")
+
+{-# NOINLINE glWindowPos2svARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3dARB' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3dvARB'.
+
+
+glWindowPos3dARB :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glWindowPos3dARB = ffidoubledoubledoubleIOV glWindowPos3dARBFunPtr
+
+glWindowPos3dARBFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glWindowPos3dARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dARB")
+
+{-# NOINLINE glWindowPos3dARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3dvARB' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3dv'.
+
+
+glWindowPos3dvARB :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos3dvARB = ffiPtrdoubleIOV glWindowPos3dvARBFunPtr
+
+glWindowPos3dvARBFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos3dvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dvARB")
+
+{-# NOINLINE glWindowPos3dvARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3fARB' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3fvARB'.
+
+
+glWindowPos3fARB :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glWindowPos3fARB = ffifloatfloatfloatIOV glWindowPos3fARBFunPtr
+
+glWindowPos3fARBFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glWindowPos3fARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fARB")
+
+{-# NOINLINE glWindowPos3fARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3fvARB' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3fv'.
+
+
+glWindowPos3fvARB :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos3fvARB = ffiPtrfloatIOV glWindowPos3fvARBFunPtr
+
+glWindowPos3fvARBFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos3fvARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fvARB")
+
+{-# NOINLINE glWindowPos3fvARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3iARB' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3ivARB'.
+
+
+glWindowPos3iARB :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glWindowPos3iARB = ffiintintintIOV glWindowPos3iARBFunPtr
+
+glWindowPos3iARBFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glWindowPos3iARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iARB")
+
+{-# NOINLINE glWindowPos3iARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3ivARB' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3iv'.
+
+
+glWindowPos3ivARB :: MonadIO m => Ptr GLint -> m ()
+glWindowPos3ivARB = ffiPtrintIOV glWindowPos3ivARBFunPtr
+
+glWindowPos3ivARBFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos3ivARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3ivARB")
+
+{-# NOINLINE glWindowPos3ivARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3sARB' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.ARB.WindowPos.glWindowPos3svARB'.
+
+
+glWindowPos3sARB :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glWindowPos3sARB = ffishortshortshortIOV glWindowPos3sARBFunPtr
+
+glWindowPos3sARBFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glWindowPos3sARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sARB")
+
+{-# NOINLINE glWindowPos3sARBFunPtr #-}
+
+-- | Usage: @'glWindowPos3svARB' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3sv'.
+
+
+glWindowPos3svARB :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos3svARB = ffiPtrshortIOV glWindowPos3svARBFunPtr
+
+glWindowPos3svARBFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos3svARBFunPtr = unsafePerformIO (getProcAddress "glWindowPos3svARB")
+
+{-# NOINLINE glWindowPos3svARBFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/ARM.hs b/generated-src/Graphics/GL/Ext/ARM.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARM.hs
@@ -0,0 +1,16 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARM (
+  -- * ARM Extensions
+    module Graphics.GL.Ext.ARM.MaliProgramBinary
+  , module Graphics.GL.Ext.ARM.MaliShaderBinary
+  , module Graphics.GL.Ext.ARM.Rgba8
+  , module Graphics.GL.Ext.ARM.ShaderFramebufferFetch
+  , module Graphics.GL.Ext.ARM.ShaderFramebufferFetchDepthStencil
+) where
+
+import Graphics.GL.Ext.ARM.MaliProgramBinary
+import Graphics.GL.Ext.ARM.MaliShaderBinary
+import Graphics.GL.Ext.ARM.Rgba8
+import Graphics.GL.Ext.ARM.ShaderFramebufferFetch
+import Graphics.GL.Ext.ARM.ShaderFramebufferFetchDepthStencil
diff --git a/generated-src/Graphics/GL/Ext/ARM/MaliProgramBinary.hs b/generated-src/Graphics/GL/Ext/ARM/MaliProgramBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARM/MaliProgramBinary.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARM.MaliProgramBinary (
+  -- * Extension Support
+    gl_ARM_mali_program_binary
+
+  -- * GL_ARM_mali_program_binary
+  , pattern GL_MALI_PROGRAM_BINARY_ARM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_mali_program_binary.txt GL_ARM_mali_program_binary> extension is available.
+
+gl_ARM_mali_program_binary :: Bool
+gl_ARM_mali_program_binary = member "GL_ARM_mali_program_binary" extensions
+{-# NOINLINE gl_ARM_mali_program_binary #-}
+
+pattern GL_MALI_PROGRAM_BINARY_ARM = 0x8F61
diff --git a/generated-src/Graphics/GL/Ext/ARM/MaliShaderBinary.hs b/generated-src/Graphics/GL/Ext/ARM/MaliShaderBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARM/MaliShaderBinary.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARM.MaliShaderBinary (
+  -- * Extension Support
+    gl_ARM_mali_shader_binary
+
+  -- * GL_ARM_mali_shader_binary
+  , pattern GL_MALI_SHADER_BINARY_ARM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_mali_shader_binary.txt GL_ARM_mali_shader_binary> extension is available.
+
+gl_ARM_mali_shader_binary :: Bool
+gl_ARM_mali_shader_binary = member "GL_ARM_mali_shader_binary" extensions
+{-# NOINLINE gl_ARM_mali_shader_binary #-}
+
+pattern GL_MALI_SHADER_BINARY_ARM = 0x8F60
diff --git a/generated-src/Graphics/GL/Ext/ARM/Rgba8.hs b/generated-src/Graphics/GL/Ext/ARM/Rgba8.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARM/Rgba8.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARM.Rgba8 (
+  -- * Extension Support
+    gl_ARM_rgba8
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_rgba8.txt GL_ARM_rgba8> extension is available.
+
+gl_ARM_rgba8 :: Bool
+gl_ARM_rgba8 = member "GL_ARM_rgba8" extensions
+{-# NOINLINE gl_ARM_rgba8 #-}
diff --git a/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs b/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARM.ShaderFramebufferFetch (
+  -- * Extension Support
+    gl_ARM_shader_framebuffer_fetch
+
+  -- * GL_ARM_shader_framebuffer_fetch
+  , pattern GL_FETCH_PER_SAMPLE_ARM
+  , pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_shader_framebuffer_fetch.txt GL_ARM_shader_framebuffer_fetch> extension is available.
+
+gl_ARM_shader_framebuffer_fetch :: Bool
+gl_ARM_shader_framebuffer_fetch = member "GL_ARM_shader_framebuffer_fetch" extensions
+{-# NOINLINE gl_ARM_shader_framebuffer_fetch #-}
+
+pattern GL_FETCH_PER_SAMPLE_ARM = 0x8F65
+
+pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66
diff --git a/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetchDepthStencil.hs b/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetchDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetchDepthStencil.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ARM.ShaderFramebufferFetchDepthStencil (
+  -- * Extension Support
+    gl_ARM_shader_framebuffer_fetch_depth_stencil
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/ARM/ARM_shader_framebuffer_fetch_depth_stencil.txt GL_ARM_shader_framebuffer_fetch_depth_stencil> extension is available.
+
+gl_ARM_shader_framebuffer_fetch_depth_stencil :: Bool
+gl_ARM_shader_framebuffer_fetch_depth_stencil = member "GL_ARM_shader_framebuffer_fetch_depth_stencil" extensions
+{-# NOINLINE gl_ARM_shader_framebuffer_fetch_depth_stencil #-}
diff --git a/generated-src/Graphics/GL/Ext/ATI.hs b/generated-src/Graphics/GL/Ext/ATI.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI.hs
@@ -0,0 +1,38 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI (
+  -- * ATI Extensions
+    module Graphics.GL.Ext.ATI.DrawBuffers
+  , module Graphics.GL.Ext.ATI.ElementArray
+  , module Graphics.GL.Ext.ATI.EnvmapBumpmap
+  , module Graphics.GL.Ext.ATI.FragmentShader
+  , module Graphics.GL.Ext.ATI.MapObjectBuffer
+  , module Graphics.GL.Ext.ATI.Meminfo
+  , module Graphics.GL.Ext.ATI.PixelFormatFloat
+  , module Graphics.GL.Ext.ATI.PnTriangles
+  , module Graphics.GL.Ext.ATI.SeparateStencil
+  , module Graphics.GL.Ext.ATI.TextFragmentShader
+  , module Graphics.GL.Ext.ATI.TextureEnvCombine3
+  , module Graphics.GL.Ext.ATI.TextureFloat
+  , module Graphics.GL.Ext.ATI.TextureMirrorOnce
+  , module Graphics.GL.Ext.ATI.VertexArrayObject
+  , module Graphics.GL.Ext.ATI.VertexAttribArrayObject
+  , module Graphics.GL.Ext.ATI.VertexStreams
+) where
+
+import Graphics.GL.Ext.ATI.DrawBuffers
+import Graphics.GL.Ext.ATI.ElementArray
+import Graphics.GL.Ext.ATI.EnvmapBumpmap
+import Graphics.GL.Ext.ATI.FragmentShader
+import Graphics.GL.Ext.ATI.MapObjectBuffer
+import Graphics.GL.Ext.ATI.Meminfo
+import Graphics.GL.Ext.ATI.PixelFormatFloat
+import Graphics.GL.Ext.ATI.PnTriangles
+import Graphics.GL.Ext.ATI.SeparateStencil
+import Graphics.GL.Ext.ATI.TextFragmentShader
+import Graphics.GL.Ext.ATI.TextureEnvCombine3
+import Graphics.GL.Ext.ATI.TextureFloat
+import Graphics.GL.Ext.ATI.TextureMirrorOnce
+import Graphics.GL.Ext.ATI.VertexArrayObject
+import Graphics.GL.Ext.ATI.VertexAttribArrayObject
+import Graphics.GL.Ext.ATI.VertexStreams
diff --git a/generated-src/Graphics/GL/Ext/ATI/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/ATI/DrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/DrawBuffers.hs
@@ -0,0 +1,91 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.DrawBuffers (
+  -- * Extension Support
+    gl_ATI_draw_buffers
+
+  -- * GL_ATI_draw_buffers
+  , glDrawBuffersATI
+  , pattern GL_DRAW_BUFFER0_ATI
+  , pattern GL_DRAW_BUFFER10_ATI
+  , pattern GL_DRAW_BUFFER11_ATI
+  , pattern GL_DRAW_BUFFER12_ATI
+  , pattern GL_DRAW_BUFFER13_ATI
+  , pattern GL_DRAW_BUFFER14_ATI
+  , pattern GL_DRAW_BUFFER15_ATI
+  , pattern GL_DRAW_BUFFER1_ATI
+  , pattern GL_DRAW_BUFFER2_ATI
+  , pattern GL_DRAW_BUFFER3_ATI
+  , pattern GL_DRAW_BUFFER4_ATI
+  , pattern GL_DRAW_BUFFER5_ATI
+  , pattern GL_DRAW_BUFFER6_ATI
+  , pattern GL_DRAW_BUFFER7_ATI
+  , pattern GL_DRAW_BUFFER8_ATI
+  , pattern GL_DRAW_BUFFER9_ATI
+  , pattern GL_MAX_DRAW_BUFFERS_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/draw_buffers.txt GL_ATI_draw_buffers> extension is available.
+
+gl_ATI_draw_buffers :: Bool
+gl_ATI_draw_buffers = member "GL_ATI_draw_buffers" extensions
+{-# NOINLINE gl_ATI_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersATI' n bufs@
+--
+-- The parameter @bufs@ is a @DrawBufferModeATI@.
+--
+-- The length of @bufs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawBuffers'.
+
+
+glDrawBuffersATI :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffersATI = ffisizeiPtrenumIOV glDrawBuffersATIFunPtr
+
+glDrawBuffersATIFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersATIFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersATI")
+
+{-# NOINLINE glDrawBuffersATIFunPtr #-}
+
+pattern GL_DRAW_BUFFER0_ATI = 0x8825
+
+pattern GL_DRAW_BUFFER10_ATI = 0x882F
+
+pattern GL_DRAW_BUFFER11_ATI = 0x8830
+
+pattern GL_DRAW_BUFFER12_ATI = 0x8831
+
+pattern GL_DRAW_BUFFER13_ATI = 0x8832
+
+pattern GL_DRAW_BUFFER14_ATI = 0x8833
+
+pattern GL_DRAW_BUFFER15_ATI = 0x8834
+
+pattern GL_DRAW_BUFFER1_ATI = 0x8826
+
+pattern GL_DRAW_BUFFER2_ATI = 0x8827
+
+pattern GL_DRAW_BUFFER3_ATI = 0x8828
+
+pattern GL_DRAW_BUFFER4_ATI = 0x8829
+
+pattern GL_DRAW_BUFFER5_ATI = 0x882A
+
+pattern GL_DRAW_BUFFER6_ATI = 0x882B
+
+pattern GL_DRAW_BUFFER7_ATI = 0x882C
+
+pattern GL_DRAW_BUFFER8_ATI = 0x882D
+
+pattern GL_DRAW_BUFFER9_ATI = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_ATI = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/ATI/ElementArray.hs b/generated-src/Graphics/GL/Ext/ATI/ElementArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/ElementArray.hs
@@ -0,0 +1,75 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.ElementArray (
+  -- * Extension Support
+    gl_ATI_element_array
+
+  -- * GL_ATI_element_array
+  , glDrawElementArrayATI
+  , glDrawRangeElementArrayATI
+  , glElementPointerATI
+  , pattern GL_ELEMENT_ARRAY_ATI
+  , pattern GL_ELEMENT_ARRAY_POINTER_ATI
+  , pattern GL_ELEMENT_ARRAY_TYPE_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/element_array.txt GL_ATI_element_array> extension is available.
+
+gl_ATI_element_array :: Bool
+gl_ATI_element_array = member "GL_ATI_element_array" extensions
+{-# NOINLINE gl_ATI_element_array #-}
+
+-- | Usage: @'glDrawElementArrayATI' mode count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
+glDrawElementArrayATI :: MonadIO m => GLenum -> GLsizei -> m ()
+glDrawElementArrayATI = ffienumsizeiIOV glDrawElementArrayATIFunPtr
+
+glDrawElementArrayATIFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
+glDrawElementArrayATIFunPtr = unsafePerformIO (getProcAddress "glDrawElementArrayATI")
+
+{-# NOINLINE glDrawElementArrayATIFunPtr #-}
+
+-- | Usage: @'glDrawRangeElementArrayATI' mode start end count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
+glDrawRangeElementArrayATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
+glDrawRangeElementArrayATI = ffienumuintuintsizeiIOV glDrawRangeElementArrayATIFunPtr
+
+glDrawRangeElementArrayATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+glDrawRangeElementArrayATIFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementArrayATI")
+
+{-# NOINLINE glDrawRangeElementArrayATIFunPtr #-}
+
+-- | Usage: @'glElementPointerATI' type pointer@
+--
+-- The parameter @type@ is a @ElementPointerTypeATI@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type)@.
+
+
+glElementPointerATI :: MonadIO m => GLenum -> Ptr () -> m ()
+glElementPointerATI = ffienumPtrVIOV glElementPointerATIFunPtr
+
+glElementPointerATIFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glElementPointerATIFunPtr = unsafePerformIO (getProcAddress "glElementPointerATI")
+
+{-# NOINLINE glElementPointerATIFunPtr #-}
+
+pattern GL_ELEMENT_ARRAY_ATI = 0x8768
+
+pattern GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A
+
+pattern GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769
diff --git a/generated-src/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs b/generated-src/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs
@@ -0,0 +1,110 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.EnvmapBumpmap (
+  -- * Extension Support
+    gl_ATI_envmap_bumpmap
+
+  -- * GL_ATI_envmap_bumpmap
+  , glGetTexBumpParameterfvATI
+  , glGetTexBumpParameterivATI
+  , glTexBumpParameterfvATI
+  , glTexBumpParameterivATI
+  , pattern GL_BUMP_ENVMAP_ATI
+  , pattern GL_BUMP_NUM_TEX_UNITS_ATI
+  , pattern GL_BUMP_ROT_MATRIX_ATI
+  , pattern GL_BUMP_ROT_MATRIX_SIZE_ATI
+  , pattern GL_BUMP_TARGET_ATI
+  , pattern GL_BUMP_TEX_UNITS_ATI
+  , pattern GL_DU8DV8_ATI
+  , pattern GL_DUDV_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/envmap_bumpmap.txt GL_ATI_envmap_bumpmap> extension is available.
+
+gl_ATI_envmap_bumpmap :: Bool
+gl_ATI_envmap_bumpmap = member "GL_ATI_envmap_bumpmap" extensions
+{-# NOINLINE gl_ATI_envmap_bumpmap #-}
+
+-- | Usage: @'glGetTexBumpParameterfvATI' pname param@
+--
+-- The parameter @pname@ is a @GetTexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glGetTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetTexBumpParameterfvATI = ffienumPtrfloatIOV glGetTexBumpParameterfvATIFunPtr
+
+glGetTexBumpParameterfvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetTexBumpParameterfvATIFunPtr = unsafePerformIO (getProcAddress "glGetTexBumpParameterfvATI")
+
+{-# NOINLINE glGetTexBumpParameterfvATIFunPtr #-}
+
+-- | Usage: @'glGetTexBumpParameterivATI' pname param@
+--
+-- The parameter @pname@ is a @GetTexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glGetTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glGetTexBumpParameterivATI = ffienumPtrintIOV glGetTexBumpParameterivATIFunPtr
+
+glGetTexBumpParameterivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glGetTexBumpParameterivATIFunPtr = unsafePerformIO (getProcAddress "glGetTexBumpParameterivATI")
+
+{-# NOINLINE glGetTexBumpParameterivATIFunPtr #-}
+
+-- | Usage: @'glTexBumpParameterfvATI' pname param@
+--
+-- The parameter @pname@ is a @TexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glTexBumpParameterfvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glTexBumpParameterfvATI = ffienumPtrfloatIOV glTexBumpParameterfvATIFunPtr
+
+glTexBumpParameterfvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glTexBumpParameterfvATIFunPtr = unsafePerformIO (getProcAddress "glTexBumpParameterfvATI")
+
+{-# NOINLINE glTexBumpParameterfvATIFunPtr #-}
+
+-- | Usage: @'glTexBumpParameterivATI' pname param@
+--
+-- The parameter @pname@ is a @TexBumpParameterATI@.
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glTexBumpParameterivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glTexBumpParameterivATI = ffienumPtrintIOV glTexBumpParameterivATIFunPtr
+
+glTexBumpParameterivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glTexBumpParameterivATIFunPtr = unsafePerformIO (getProcAddress "glTexBumpParameterivATI")
+
+{-# NOINLINE glTexBumpParameterivATIFunPtr #-}
+
+pattern GL_BUMP_ENVMAP_ATI = 0x877B
+
+pattern GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777
+
+pattern GL_BUMP_ROT_MATRIX_ATI = 0x8775
+
+pattern GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776
+
+pattern GL_BUMP_TARGET_ATI = 0x877C
+
+pattern GL_BUMP_TEX_UNITS_ATI = 0x8778
+
+pattern GL_DU8DV8_ATI = 0x877A
+
+pattern GL_DUDV_ATI = 0x8779
diff --git a/generated-src/Graphics/GL/Ext/ATI/FragmentShader.hs b/generated-src/Graphics/GL/Ext/ATI/FragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/FragmentShader.hs
@@ -0,0 +1,520 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.FragmentShader (
+  -- * Extension Support
+    gl_ATI_fragment_shader
+
+  -- * GL_ATI_fragment_shader
+  , glAlphaFragmentOp1ATI
+  , glAlphaFragmentOp2ATI
+  , glAlphaFragmentOp3ATI
+  , glBeginFragmentShaderATI
+  , glBindFragmentShaderATI
+  , glColorFragmentOp1ATI
+  , glColorFragmentOp2ATI
+  , glColorFragmentOp3ATI
+  , glDeleteFragmentShaderATI
+  , glEndFragmentShaderATI
+  , glGenFragmentShadersATI
+  , glPassTexCoordATI
+  , glSampleMapATI
+  , glSetFragmentShaderConstantATI
+  , pattern GL_2X_BIT_ATI
+  , pattern GL_4X_BIT_ATI
+  , pattern GL_8X_BIT_ATI
+  , pattern GL_ADD_ATI
+  , pattern GL_BIAS_BIT_ATI
+  , pattern GL_BLUE_BIT_ATI
+  , pattern GL_CND0_ATI
+  , pattern GL_CND_ATI
+  , pattern GL_COLOR_ALPHA_PAIRING_ATI
+  , pattern GL_COMP_BIT_ATI
+  , pattern GL_CON_0_ATI
+  , pattern GL_CON_10_ATI
+  , pattern GL_CON_11_ATI
+  , pattern GL_CON_12_ATI
+  , pattern GL_CON_13_ATI
+  , pattern GL_CON_14_ATI
+  , pattern GL_CON_15_ATI
+  , pattern GL_CON_16_ATI
+  , pattern GL_CON_17_ATI
+  , pattern GL_CON_18_ATI
+  , pattern GL_CON_19_ATI
+  , pattern GL_CON_1_ATI
+  , pattern GL_CON_20_ATI
+  , pattern GL_CON_21_ATI
+  , pattern GL_CON_22_ATI
+  , pattern GL_CON_23_ATI
+  , pattern GL_CON_24_ATI
+  , pattern GL_CON_25_ATI
+  , pattern GL_CON_26_ATI
+  , pattern GL_CON_27_ATI
+  , pattern GL_CON_28_ATI
+  , pattern GL_CON_29_ATI
+  , pattern GL_CON_2_ATI
+  , pattern GL_CON_30_ATI
+  , pattern GL_CON_31_ATI
+  , pattern GL_CON_3_ATI
+  , pattern GL_CON_4_ATI
+  , pattern GL_CON_5_ATI
+  , pattern GL_CON_6_ATI
+  , pattern GL_CON_7_ATI
+  , pattern GL_CON_8_ATI
+  , pattern GL_CON_9_ATI
+  , pattern GL_DOT2_ADD_ATI
+  , pattern GL_DOT3_ATI
+  , pattern GL_DOT4_ATI
+  , pattern GL_EIGHTH_BIT_ATI
+  , pattern GL_FRAGMENT_SHADER_ATI
+  , pattern GL_GREEN_BIT_ATI
+  , pattern GL_HALF_BIT_ATI
+  , pattern GL_LERP_ATI
+  , pattern GL_MAD_ATI
+  , pattern GL_MOV_ATI
+  , pattern GL_MUL_ATI
+  , pattern GL_NEGATE_BIT_ATI
+  , pattern GL_NUM_FRAGMENT_CONSTANTS_ATI
+  , pattern GL_NUM_FRAGMENT_REGISTERS_ATI
+  , pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
+  , pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI
+  , pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI
+  , pattern GL_NUM_LOOPBACK_COMPONENTS_ATI
+  , pattern GL_NUM_PASSES_ATI
+  , pattern GL_QUARTER_BIT_ATI
+  , pattern GL_RED_BIT_ATI
+  , pattern GL_REG_0_ATI
+  , pattern GL_REG_10_ATI
+  , pattern GL_REG_11_ATI
+  , pattern GL_REG_12_ATI
+  , pattern GL_REG_13_ATI
+  , pattern GL_REG_14_ATI
+  , pattern GL_REG_15_ATI
+  , pattern GL_REG_16_ATI
+  , pattern GL_REG_17_ATI
+  , pattern GL_REG_18_ATI
+  , pattern GL_REG_19_ATI
+  , pattern GL_REG_1_ATI
+  , pattern GL_REG_20_ATI
+  , pattern GL_REG_21_ATI
+  , pattern GL_REG_22_ATI
+  , pattern GL_REG_23_ATI
+  , pattern GL_REG_24_ATI
+  , pattern GL_REG_25_ATI
+  , pattern GL_REG_26_ATI
+  , pattern GL_REG_27_ATI
+  , pattern GL_REG_28_ATI
+  , pattern GL_REG_29_ATI
+  , pattern GL_REG_2_ATI
+  , pattern GL_REG_30_ATI
+  , pattern GL_REG_31_ATI
+  , pattern GL_REG_3_ATI
+  , pattern GL_REG_4_ATI
+  , pattern GL_REG_5_ATI
+  , pattern GL_REG_6_ATI
+  , pattern GL_REG_7_ATI
+  , pattern GL_REG_8_ATI
+  , pattern GL_REG_9_ATI
+  , pattern GL_SATURATE_BIT_ATI
+  , pattern GL_SECONDARY_INTERPOLATOR_ATI
+  , pattern GL_SUB_ATI
+  , pattern GL_SWIZZLE_STQ_ATI
+  , pattern GL_SWIZZLE_STQ_DQ_ATI
+  , pattern GL_SWIZZLE_STRQ_ATI
+  , pattern GL_SWIZZLE_STRQ_DQ_ATI
+  , pattern GL_SWIZZLE_STR_ATI
+  , pattern GL_SWIZZLE_STR_DR_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/fragment_shader.txt GL_ATI_fragment_shader> extension is available.
+
+gl_ATI_fragment_shader :: Bool
+gl_ATI_fragment_shader = member "GL_ATI_fragment_shader" extensions
+{-# NOINLINE gl_ATI_fragment_shader #-}
+
+-- | Usage: @'glAlphaFragmentOp1ATI' op dst dstMod arg1 arg1Rep arg1Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
+glAlphaFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glAlphaFragmentOp1ATI = ffienumuintuintuintuintuintIOV glAlphaFragmentOp1ATIFunPtr
+
+glAlphaFragmentOp1ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glAlphaFragmentOp1ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp1ATI")
+
+{-# NOINLINE glAlphaFragmentOp1ATIFunPtr #-}
+
+-- | Usage: @'glAlphaFragmentOp2ATI' op dst dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
+glAlphaFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glAlphaFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp2ATIFunPtr
+
+glAlphaFragmentOp2ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glAlphaFragmentOp2ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp2ATI")
+
+{-# NOINLINE glAlphaFragmentOp2ATIFunPtr #-}
+
+-- | Usage: @'glAlphaFragmentOp3ATI' op dst dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
+glAlphaFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glAlphaFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintIOV glAlphaFragmentOp3ATIFunPtr
+
+glAlphaFragmentOp3ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glAlphaFragmentOp3ATIFunPtr = unsafePerformIO (getProcAddress "glAlphaFragmentOp3ATI")
+
+{-# NOINLINE glAlphaFragmentOp3ATIFunPtr #-}
+
+-- | Usage: @'glBeginFragmentShaderATI'@
+
+
+glBeginFragmentShaderATI :: MonadIO m => m ()
+glBeginFragmentShaderATI = ffiIOV glBeginFragmentShaderATIFunPtr
+
+glBeginFragmentShaderATIFunPtr :: FunPtr (IO ())
+glBeginFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glBeginFragmentShaderATI")
+
+{-# NOINLINE glBeginFragmentShaderATIFunPtr #-}
+
+-- | Usage: @'glBindFragmentShaderATI' id@
+
+
+glBindFragmentShaderATI :: MonadIO m => GLuint -> m ()
+glBindFragmentShaderATI = ffiuintIOV glBindFragmentShaderATIFunPtr
+
+glBindFragmentShaderATIFunPtr :: FunPtr (GLuint -> IO ())
+glBindFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glBindFragmentShaderATI")
+
+{-# NOINLINE glBindFragmentShaderATIFunPtr #-}
+
+-- | Usage: @'glColorFragmentOp1ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
+glColorFragmentOp1ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glColorFragmentOp1ATI = ffienumuintuintuintuintuintuintIOV glColorFragmentOp1ATIFunPtr
+
+glColorFragmentOp1ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glColorFragmentOp1ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp1ATI")
+
+{-# NOINLINE glColorFragmentOp1ATIFunPtr #-}
+
+-- | Usage: @'glColorFragmentOp2ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
+glColorFragmentOp2ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glColorFragmentOp2ATI = ffienumuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp2ATIFunPtr
+
+glColorFragmentOp2ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glColorFragmentOp2ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp2ATI")
+
+{-# NOINLINE glColorFragmentOp2ATIFunPtr #-}
+
+-- | Usage: @'glColorFragmentOp3ATI' op dst dstMask dstMod arg1 arg1Rep arg1Mod arg2 arg2Rep arg2Mod arg3 arg3Rep arg3Mod@
+--
+-- The parameter @op@ is a @FragmentOpATI@.
+
+
+glColorFragmentOp3ATI :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glColorFragmentOp3ATI = ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV glColorFragmentOp3ATIFunPtr
+
+glColorFragmentOp3ATIFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glColorFragmentOp3ATIFunPtr = unsafePerformIO (getProcAddress "glColorFragmentOp3ATI")
+
+{-# NOINLINE glColorFragmentOp3ATIFunPtr #-}
+
+-- | Usage: @'glDeleteFragmentShaderATI' id@
+
+
+glDeleteFragmentShaderATI :: MonadIO m => GLuint -> m ()
+glDeleteFragmentShaderATI = ffiuintIOV glDeleteFragmentShaderATIFunPtr
+
+glDeleteFragmentShaderATIFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glDeleteFragmentShaderATI")
+
+{-# NOINLINE glDeleteFragmentShaderATIFunPtr #-}
+
+-- | Usage: @'glEndFragmentShaderATI'@
+
+
+glEndFragmentShaderATI :: MonadIO m => m ()
+glEndFragmentShaderATI = ffiIOV glEndFragmentShaderATIFunPtr
+
+glEndFragmentShaderATIFunPtr :: FunPtr (IO ())
+glEndFragmentShaderATIFunPtr = unsafePerformIO (getProcAddress "glEndFragmentShaderATI")
+
+{-# NOINLINE glEndFragmentShaderATIFunPtr #-}
+
+-- | Usage: @'glGenFragmentShadersATI' range@
+
+
+glGenFragmentShadersATI :: MonadIO m => GLuint -> m GLuint
+glGenFragmentShadersATI = ffiuintIOuint glGenFragmentShadersATIFunPtr
+
+glGenFragmentShadersATIFunPtr :: FunPtr (GLuint -> IO GLuint)
+glGenFragmentShadersATIFunPtr = unsafePerformIO (getProcAddress "glGenFragmentShadersATI")
+
+{-# NOINLINE glGenFragmentShadersATIFunPtr #-}
+
+-- | Usage: @'glPassTexCoordATI' dst coord swizzle@
+--
+-- The parameter @swizzle@ is a @SwizzleOpATI@.
+
+
+glPassTexCoordATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
+glPassTexCoordATI = ffiuintuintenumIOV glPassTexCoordATIFunPtr
+
+glPassTexCoordATIFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
+glPassTexCoordATIFunPtr = unsafePerformIO (getProcAddress "glPassTexCoordATI")
+
+{-# NOINLINE glPassTexCoordATIFunPtr #-}
+
+-- | Usage: @'glSampleMapATI' dst interp swizzle@
+--
+-- The parameter @swizzle@ is a @SwizzleOpATI@.
+
+
+glSampleMapATI :: MonadIO m => GLuint -> GLuint -> GLenum -> m ()
+glSampleMapATI = ffiuintuintenumIOV glSampleMapATIFunPtr
+
+glSampleMapATIFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
+glSampleMapATIFunPtr = unsafePerformIO (getProcAddress "glSampleMapATI")
+
+{-# NOINLINE glSampleMapATIFunPtr #-}
+
+-- | Usage: @'glSetFragmentShaderConstantATI' dst value@
+--
+-- The length of @value@ should be @4@.
+
+
+glSetFragmentShaderConstantATI :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glSetFragmentShaderConstantATI = ffiuintPtrfloatIOV glSetFragmentShaderConstantATIFunPtr
+
+glSetFragmentShaderConstantATIFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glSetFragmentShaderConstantATIFunPtr = unsafePerformIO (getProcAddress "glSetFragmentShaderConstantATI")
+
+{-# NOINLINE glSetFragmentShaderConstantATIFunPtr #-}
+
+pattern GL_2X_BIT_ATI = 0x00000001
+
+pattern GL_4X_BIT_ATI = 0x00000002
+
+pattern GL_8X_BIT_ATI = 0x00000004
+
+pattern GL_ADD_ATI = 0x8963
+
+pattern GL_BIAS_BIT_ATI = 0x00000008
+
+pattern GL_BLUE_BIT_ATI = 0x00000004
+
+pattern GL_CND0_ATI = 0x896B
+
+pattern GL_CND_ATI = 0x896A
+
+pattern GL_COLOR_ALPHA_PAIRING_ATI = 0x8975
+
+pattern GL_COMP_BIT_ATI = 0x00000002
+
+pattern GL_CON_0_ATI = 0x8941
+
+pattern GL_CON_10_ATI = 0x894B
+
+pattern GL_CON_11_ATI = 0x894C
+
+pattern GL_CON_12_ATI = 0x894D
+
+pattern GL_CON_13_ATI = 0x894E
+
+pattern GL_CON_14_ATI = 0x894F
+
+pattern GL_CON_15_ATI = 0x8950
+
+pattern GL_CON_16_ATI = 0x8951
+
+pattern GL_CON_17_ATI = 0x8952
+
+pattern GL_CON_18_ATI = 0x8953
+
+pattern GL_CON_19_ATI = 0x8954
+
+pattern GL_CON_1_ATI = 0x8942
+
+pattern GL_CON_20_ATI = 0x8955
+
+pattern GL_CON_21_ATI = 0x8956
+
+pattern GL_CON_22_ATI = 0x8957
+
+pattern GL_CON_23_ATI = 0x8958
+
+pattern GL_CON_24_ATI = 0x8959
+
+pattern GL_CON_25_ATI = 0x895A
+
+pattern GL_CON_26_ATI = 0x895B
+
+pattern GL_CON_27_ATI = 0x895C
+
+pattern GL_CON_28_ATI = 0x895D
+
+pattern GL_CON_29_ATI = 0x895E
+
+pattern GL_CON_2_ATI = 0x8943
+
+pattern GL_CON_30_ATI = 0x895F
+
+pattern GL_CON_31_ATI = 0x8960
+
+pattern GL_CON_3_ATI = 0x8944
+
+pattern GL_CON_4_ATI = 0x8945
+
+pattern GL_CON_5_ATI = 0x8946
+
+pattern GL_CON_6_ATI = 0x8947
+
+pattern GL_CON_7_ATI = 0x8948
+
+pattern GL_CON_8_ATI = 0x8949
+
+pattern GL_CON_9_ATI = 0x894A
+
+pattern GL_DOT2_ADD_ATI = 0x896C
+
+pattern GL_DOT3_ATI = 0x8966
+
+pattern GL_DOT4_ATI = 0x8967
+
+pattern GL_EIGHTH_BIT_ATI = 0x00000020
+
+pattern GL_FRAGMENT_SHADER_ATI = 0x8920
+
+pattern GL_GREEN_BIT_ATI = 0x00000002
+
+pattern GL_HALF_BIT_ATI = 0x00000008
+
+pattern GL_LERP_ATI = 0x8969
+
+pattern GL_MAD_ATI = 0x8968
+
+pattern GL_MOV_ATI = 0x8961
+
+pattern GL_MUL_ATI = 0x8964
+
+pattern GL_NEGATE_BIT_ATI = 0x00000004
+
+pattern GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F
+
+pattern GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E
+
+pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973
+
+pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971
+
+pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972
+
+pattern GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974
+
+pattern GL_NUM_PASSES_ATI = 0x8970
+
+pattern GL_QUARTER_BIT_ATI = 0x00000010
+
+pattern GL_RED_BIT_ATI = 0x00000001
+
+pattern GL_REG_0_ATI = 0x8921
+
+pattern GL_REG_10_ATI = 0x892B
+
+pattern GL_REG_11_ATI = 0x892C
+
+pattern GL_REG_12_ATI = 0x892D
+
+pattern GL_REG_13_ATI = 0x892E
+
+pattern GL_REG_14_ATI = 0x892F
+
+pattern GL_REG_15_ATI = 0x8930
+
+pattern GL_REG_16_ATI = 0x8931
+
+pattern GL_REG_17_ATI = 0x8932
+
+pattern GL_REG_18_ATI = 0x8933
+
+pattern GL_REG_19_ATI = 0x8934
+
+pattern GL_REG_1_ATI = 0x8922
+
+pattern GL_REG_20_ATI = 0x8935
+
+pattern GL_REG_21_ATI = 0x8936
+
+pattern GL_REG_22_ATI = 0x8937
+
+pattern GL_REG_23_ATI = 0x8938
+
+pattern GL_REG_24_ATI = 0x8939
+
+pattern GL_REG_25_ATI = 0x893A
+
+pattern GL_REG_26_ATI = 0x893B
+
+pattern GL_REG_27_ATI = 0x893C
+
+pattern GL_REG_28_ATI = 0x893D
+
+pattern GL_REG_29_ATI = 0x893E
+
+pattern GL_REG_2_ATI = 0x8923
+
+pattern GL_REG_30_ATI = 0x893F
+
+pattern GL_REG_31_ATI = 0x8940
+
+pattern GL_REG_3_ATI = 0x8924
+
+pattern GL_REG_4_ATI = 0x8925
+
+pattern GL_REG_5_ATI = 0x8926
+
+pattern GL_REG_6_ATI = 0x8927
+
+pattern GL_REG_7_ATI = 0x8928
+
+pattern GL_REG_8_ATI = 0x8929
+
+pattern GL_REG_9_ATI = 0x892A
+
+pattern GL_SATURATE_BIT_ATI = 0x00000040
+
+pattern GL_SECONDARY_INTERPOLATOR_ATI = 0x896D
+
+pattern GL_SUB_ATI = 0x8965
+
+pattern GL_SWIZZLE_STQ_ATI = 0x8977
+
+pattern GL_SWIZZLE_STQ_DQ_ATI = 0x8979
+
+pattern GL_SWIZZLE_STRQ_ATI = 0x897A
+
+pattern GL_SWIZZLE_STRQ_DQ_ATI = 0x897B
+
+pattern GL_SWIZZLE_STR_ATI = 0x8976
+
+pattern GL_SWIZZLE_STR_DR_ATI = 0x8978
diff --git a/generated-src/Graphics/GL/Ext/ATI/MapObjectBuffer.hs b/generated-src/Graphics/GL/Ext/ATI/MapObjectBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/MapObjectBuffer.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.MapObjectBuffer (
+  -- * Extension Support
+    gl_ATI_map_object_buffer
+
+  -- * GL_ATI_map_object_buffer
+  , glMapObjectBufferATI
+  , glUnmapObjectBufferATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/map_object_buffer.txt GL_ATI_map_object_buffer> extension is available.
+
+gl_ATI_map_object_buffer :: Bool
+gl_ATI_map_object_buffer = member "GL_ATI_map_object_buffer" extensions
+{-# NOINLINE gl_ATI_map_object_buffer #-}
+
+-- | Usage: @'glMapObjectBufferATI' buffer@
+
+
+glMapObjectBufferATI :: MonadIO m => GLuint -> m (Ptr ())
+glMapObjectBufferATI = ffiuintIOPtrV glMapObjectBufferATIFunPtr
+
+glMapObjectBufferATIFunPtr :: FunPtr (GLuint -> IO (Ptr ()))
+glMapObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glMapObjectBufferATI")
+
+{-# NOINLINE glMapObjectBufferATIFunPtr #-}
+
+-- | Usage: @'glUnmapObjectBufferATI' buffer@
+
+
+glUnmapObjectBufferATI :: MonadIO m => GLuint -> m ()
+glUnmapObjectBufferATI = ffiuintIOV glUnmapObjectBufferATIFunPtr
+
+glUnmapObjectBufferATIFunPtr :: FunPtr (GLuint -> IO ())
+glUnmapObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glUnmapObjectBufferATI")
+
+{-# NOINLINE glUnmapObjectBufferATIFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/ATI/Meminfo.hs b/generated-src/Graphics/GL/Ext/ATI/Meminfo.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/Meminfo.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.Meminfo (
+  -- * Extension Support
+    gl_ATI_meminfo
+
+  -- * GL_ATI_meminfo
+  , pattern GL_RENDERBUFFER_FREE_MEMORY_ATI
+  , pattern GL_TEXTURE_FREE_MEMORY_ATI
+  , pattern GL_VBO_FREE_MEMORY_ATI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/meminfo.txt GL_ATI_meminfo> extension is available.
+
+gl_ATI_meminfo :: Bool
+gl_ATI_meminfo = member "GL_ATI_meminfo" extensions
+{-# NOINLINE gl_ATI_meminfo #-}
+
+pattern GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD
+
+pattern GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC
+
+pattern GL_VBO_FREE_MEMORY_ATI = 0x87FB
diff --git a/generated-src/Graphics/GL/Ext/ATI/PixelFormatFloat.hs b/generated-src/Graphics/GL/Ext/ATI/PixelFormatFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/PixelFormatFloat.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.PixelFormatFloat (
+  -- * Extension Support
+    gl_ATI_pixel_format_float
+
+  -- * GL_ATI_pixel_format_float
+  , pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI
+  , pattern GL_RGBA_FLOAT_MODE_ATI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pixel_format_float.txt GL_ATI_pixel_format_float> extension is available.
+
+gl_ATI_pixel_format_float :: Bool
+gl_ATI_pixel_format_float = member "GL_ATI_pixel_format_float" extensions
+{-# NOINLINE gl_ATI_pixel_format_float #-}
+
+pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835
+
+pattern GL_RGBA_FLOAT_MODE_ATI = 0x8820
diff --git a/generated-src/Graphics/GL/Ext/ATI/PnTriangles.hs b/generated-src/Graphics/GL/Ext/ATI/PnTriangles.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/PnTriangles.hs
@@ -0,0 +1,77 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.PnTriangles (
+  -- * Extension Support
+    gl_ATI_pn_triangles
+
+  -- * GL_ATI_pn_triangles
+  , glPNTrianglesfATI
+  , glPNTrianglesiATI
+  , pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI
+  , pattern GL_PN_TRIANGLES_ATI
+  , pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI
+  , pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI
+  , pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI
+  , pattern GL_PN_TRIANGLES_POINT_MODE_ATI
+  , pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI
+  , pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI
+  , pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/pn_triangles.txt GL_ATI_pn_triangles> extension is available.
+
+gl_ATI_pn_triangles :: Bool
+gl_ATI_pn_triangles = member "GL_ATI_pn_triangles" extensions
+{-# NOINLINE gl_ATI_pn_triangles #-}
+
+-- | Usage: @'glPNTrianglesfATI' pname param@
+--
+-- The parameter @pname@ is a @PNTrianglesPNameATI@.
+
+
+glPNTrianglesfATI :: MonadIO m => GLenum -> GLfloat -> m ()
+glPNTrianglesfATI = ffienumfloatIOV glPNTrianglesfATIFunPtr
+
+glPNTrianglesfATIFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPNTrianglesfATIFunPtr = unsafePerformIO (getProcAddress "glPNTrianglesfATI")
+
+{-# NOINLINE glPNTrianglesfATIFunPtr #-}
+
+-- | Usage: @'glPNTrianglesiATI' pname param@
+--
+-- The parameter @pname@ is a @PNTrianglesPNameATI@.
+
+
+glPNTrianglesiATI :: MonadIO m => GLenum -> GLint -> m ()
+glPNTrianglesiATI = ffienumintIOV glPNTrianglesiATIFunPtr
+
+glPNTrianglesiATIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPNTrianglesiATIFunPtr = unsafePerformIO (getProcAddress "glPNTrianglesiATI")
+
+{-# NOINLINE glPNTrianglesiATIFunPtr #-}
+
+pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1
+
+pattern GL_PN_TRIANGLES_ATI = 0x87F0
+
+pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3
+
+pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7
+
+pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8
+
+pattern GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2
+
+pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6
+
+pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5
+
+pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4
diff --git a/generated-src/Graphics/GL/Ext/ATI/SeparateStencil.hs b/generated-src/Graphics/GL/Ext/ATI/SeparateStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/SeparateStencil.hs
@@ -0,0 +1,76 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.SeparateStencil (
+  -- * Extension Support
+    gl_ATI_separate_stencil
+
+  -- * GL_ATI_separate_stencil
+  , glStencilFuncSeparateATI
+  , glStencilOpSeparateATI
+  , pattern GL_STENCIL_BACK_FAIL_ATI
+  , pattern GL_STENCIL_BACK_FUNC_ATI
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/separate_stencil.txt GL_ATI_separate_stencil> extension is available.
+
+gl_ATI_separate_stencil :: Bool
+gl_ATI_separate_stencil = member "GL_ATI_separate_stencil" extensions
+{-# NOINLINE gl_ATI_separate_stencil #-}
+
+-- | Usage: @'glStencilFuncSeparateATI' frontfunc backfunc ref mask@
+--
+-- The parameter @frontfunc@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @backfunc@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @ClampedStencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
+glStencilFuncSeparateATI :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
+glStencilFuncSeparateATI = ffienumenumintuintIOV glStencilFuncSeparateATIFunPtr
+
+glStencilFuncSeparateATIFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncSeparateATIFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparateATI")
+
+{-# NOINLINE glStencilFuncSeparateATIFunPtr #-}
+
+-- | Usage: @'glStencilOpSeparateATI' face sfail dpfail dppass@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glStencilOpSeparate'.
+
+
+glStencilOpSeparateATI :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glStencilOpSeparateATI = ffienumenumenumenumIOV glStencilOpSeparateATIFunPtr
+
+glStencilOpSeparateATIFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpSeparateATIFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparateATI")
+
+{-# NOINLINE glStencilOpSeparateATIFunPtr #-}
+
+pattern GL_STENCIL_BACK_FAIL_ATI = 0x8801
+
+pattern GL_STENCIL_BACK_FUNC_ATI = 0x8800
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextFragmentShader.hs b/generated-src/Graphics/GL/Ext/ATI/TextFragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/TextFragmentShader.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.TextFragmentShader (
+  -- * Extension Support
+    gl_ATI_text_fragment_shader
+
+  -- * GL_ATI_text_fragment_shader
+  , pattern GL_TEXT_FRAGMENT_SHADER_ATI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/text_fragment_shader.txt GL_ATI_text_fragment_shader> extension is available.
+
+gl_ATI_text_fragment_shader :: Bool
+gl_ATI_text_fragment_shader = member "GL_ATI_text_fragment_shader" extensions
+{-# NOINLINE gl_ATI_text_fragment_shader #-}
+
+pattern GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs b/generated-src/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.TextureEnvCombine3 (
+  -- * Extension Support
+    gl_ATI_texture_env_combine3
+
+  -- * GL_ATI_texture_env_combine3
+  , pattern GL_MODULATE_ADD_ATI
+  , pattern GL_MODULATE_SIGNED_ADD_ATI
+  , pattern GL_MODULATE_SUBTRACT_ATI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_env_combine3.txt GL_ATI_texture_env_combine3> extension is available.
+
+gl_ATI_texture_env_combine3 :: Bool
+gl_ATI_texture_env_combine3 = member "GL_ATI_texture_env_combine3" extensions
+{-# NOINLINE gl_ATI_texture_env_combine3 #-}
+
+pattern GL_MODULATE_ADD_ATI = 0x8744
+
+pattern GL_MODULATE_SIGNED_ADD_ATI = 0x8745
+
+pattern GL_MODULATE_SUBTRACT_ATI = 0x8746
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextureFloat.hs b/generated-src/Graphics/GL/Ext/ATI/TextureFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/TextureFloat.hs
@@ -0,0 +1,53 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.TextureFloat (
+  -- * Extension Support
+    gl_ATI_texture_float
+
+  -- * GL_ATI_texture_float
+  , pattern GL_ALPHA_FLOAT16_ATI
+  , pattern GL_ALPHA_FLOAT32_ATI
+  , pattern GL_INTENSITY_FLOAT16_ATI
+  , pattern GL_INTENSITY_FLOAT32_ATI
+  , pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI
+  , pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI
+  , pattern GL_LUMINANCE_FLOAT16_ATI
+  , pattern GL_LUMINANCE_FLOAT32_ATI
+  , pattern GL_RGBA_FLOAT16_ATI
+  , pattern GL_RGBA_FLOAT32_ATI
+  , pattern GL_RGB_FLOAT16_ATI
+  , pattern GL_RGB_FLOAT32_ATI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_float.txt GL_ATI_texture_float> extension is available.
+
+gl_ATI_texture_float :: Bool
+gl_ATI_texture_float = member "GL_ATI_texture_float" extensions
+{-# NOINLINE gl_ATI_texture_float #-}
+
+pattern GL_ALPHA_FLOAT16_ATI = 0x881C
+
+pattern GL_ALPHA_FLOAT32_ATI = 0x8816
+
+pattern GL_INTENSITY_FLOAT16_ATI = 0x881D
+
+pattern GL_INTENSITY_FLOAT32_ATI = 0x8817
+
+pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F
+
+pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819
+
+pattern GL_LUMINANCE_FLOAT16_ATI = 0x881E
+
+pattern GL_LUMINANCE_FLOAT32_ATI = 0x8818
+
+pattern GL_RGBA_FLOAT16_ATI = 0x881A
+
+pattern GL_RGBA_FLOAT32_ATI = 0x8814
+
+pattern GL_RGB_FLOAT16_ATI = 0x881B
+
+pattern GL_RGB_FLOAT32_ATI = 0x8815
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs b/generated-src/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.TextureMirrorOnce (
+  -- * Extension Support
+    gl_ATI_texture_mirror_once
+
+  -- * GL_ATI_texture_mirror_once
+  , pattern GL_MIRROR_CLAMP_ATI
+  , pattern GL_MIRROR_CLAMP_TO_EDGE_ATI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/texture_mirror_once.txt GL_ATI_texture_mirror_once> extension is available.
+
+gl_ATI_texture_mirror_once :: Bool
+gl_ATI_texture_mirror_once = member "GL_ATI_texture_mirror_once" extensions
+{-# NOINLINE gl_ATI_texture_mirror_once #-}
+
+pattern GL_MIRROR_CLAMP_ATI = 0x8742
+
+pattern GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743
diff --git a/generated-src/Graphics/GL/Ext/ATI/VertexArrayObject.hs b/generated-src/Graphics/GL/Ext/ATI/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/VertexArrayObject.hs
@@ -0,0 +1,232 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.VertexArrayObject (
+  -- * Extension Support
+    gl_ATI_vertex_array_object
+
+  -- * GL_ATI_vertex_array_object
+  , glArrayObjectATI
+  , glFreeObjectBufferATI
+  , glGetArrayObjectfvATI
+  , glGetArrayObjectivATI
+  , glGetObjectBufferfvATI
+  , glGetObjectBufferivATI
+  , glGetVariantArrayObjectfvATI
+  , glGetVariantArrayObjectivATI
+  , glIsObjectBufferATI
+  , glNewObjectBufferATI
+  , glUpdateObjectBufferATI
+  , glVariantArrayObjectATI
+  , pattern GL_ARRAY_OBJECT_BUFFER_ATI
+  , pattern GL_ARRAY_OBJECT_OFFSET_ATI
+  , pattern GL_DISCARD_ATI
+  , pattern GL_DYNAMIC_ATI
+  , pattern GL_OBJECT_BUFFER_SIZE_ATI
+  , pattern GL_OBJECT_BUFFER_USAGE_ATI
+  , pattern GL_PRESERVE_ATI
+  , pattern GL_STATIC_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_array_object.txt GL_ATI_vertex_array_object> extension is available.
+
+gl_ATI_vertex_array_object :: Bool
+gl_ATI_vertex_array_object = member "GL_ATI_vertex_array_object" extensions
+{-# NOINLINE gl_ATI_vertex_array_object #-}
+
+-- | Usage: @'glArrayObjectATI' array size type stride buffer offset@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- The parameter @type@ is a @ScalarType@.
+
+
+glArrayObjectATI :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
+glArrayObjectATI = ffienumintenumsizeiuintuintIOV glArrayObjectATIFunPtr
+
+glArrayObjectATIFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
+glArrayObjectATIFunPtr = unsafePerformIO (getProcAddress "glArrayObjectATI")
+
+{-# NOINLINE glArrayObjectATIFunPtr #-}
+
+-- | Usage: @'glFreeObjectBufferATI' buffer@
+
+
+glFreeObjectBufferATI :: MonadIO m => GLuint -> m ()
+glFreeObjectBufferATI = ffiuintIOV glFreeObjectBufferATIFunPtr
+
+glFreeObjectBufferATIFunPtr :: FunPtr (GLuint -> IO ())
+glFreeObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glFreeObjectBufferATI")
+
+{-# NOINLINE glFreeObjectBufferATIFunPtr #-}
+
+-- | Usage: @'glGetArrayObjectfvATI' array pname params@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetArrayObjectfvATI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetArrayObjectfvATI = ffienumenumPtrfloatIOV glGetArrayObjectfvATIFunPtr
+
+glGetArrayObjectfvATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetArrayObjectfvATIFunPtr = unsafePerformIO (getProcAddress "glGetArrayObjectfvATI")
+
+{-# NOINLINE glGetArrayObjectfvATIFunPtr #-}
+
+-- | Usage: @'glGetArrayObjectivATI' array pname params@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetArrayObjectivATI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetArrayObjectivATI = ffienumenumPtrintIOV glGetArrayObjectivATIFunPtr
+
+glGetArrayObjectivATIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetArrayObjectivATIFunPtr = unsafePerformIO (getProcAddress "glGetArrayObjectivATI")
+
+{-# NOINLINE glGetArrayObjectivATIFunPtr #-}
+
+-- | Usage: @'glGetObjectBufferfvATI' buffer pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetObjectBufferfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetObjectBufferfvATI = ffiuintenumPtrfloatIOV glGetObjectBufferfvATIFunPtr
+
+glGetObjectBufferfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetObjectBufferfvATIFunPtr = unsafePerformIO (getProcAddress "glGetObjectBufferfvATI")
+
+{-# NOINLINE glGetObjectBufferfvATIFunPtr #-}
+
+-- | Usage: @'glGetObjectBufferivATI' buffer pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetObjectBufferivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetObjectBufferivATI = ffiuintenumPtrintIOV glGetObjectBufferivATIFunPtr
+
+glGetObjectBufferivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetObjectBufferivATIFunPtr = unsafePerformIO (getProcAddress "glGetObjectBufferivATI")
+
+{-# NOINLINE glGetObjectBufferivATIFunPtr #-}
+
+-- | Usage: @'glGetVariantArrayObjectfvATI' id pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVariantArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVariantArrayObjectfvATI = ffiuintenumPtrfloatIOV glGetVariantArrayObjectfvATIFunPtr
+
+glGetVariantArrayObjectfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVariantArrayObjectfvATIFunPtr = unsafePerformIO (getProcAddress "glGetVariantArrayObjectfvATI")
+
+{-# NOINLINE glGetVariantArrayObjectfvATIFunPtr #-}
+
+-- | Usage: @'glGetVariantArrayObjectivATI' id pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVariantArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVariantArrayObjectivATI = ffiuintenumPtrintIOV glGetVariantArrayObjectivATIFunPtr
+
+glGetVariantArrayObjectivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVariantArrayObjectivATIFunPtr = unsafePerformIO (getProcAddress "glGetVariantArrayObjectivATI")
+
+{-# NOINLINE glGetVariantArrayObjectivATIFunPtr #-}
+
+-- | Usage: @'glIsObjectBufferATI' buffer@
+
+
+glIsObjectBufferATI :: MonadIO m => GLuint -> m GLboolean
+glIsObjectBufferATI = ffiuintIOboolean glIsObjectBufferATIFunPtr
+
+glIsObjectBufferATIFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glIsObjectBufferATI")
+
+{-# NOINLINE glIsObjectBufferATIFunPtr #-}
+
+-- | Usage: @'glNewObjectBufferATI' size pointer usage@
+--
+-- The parameter @usage@ is a @ArrayObjectUsageATI@.
+--
+-- The length of @pointer@ should be @size@.
+
+
+glNewObjectBufferATI :: MonadIO m => GLsizei -> Ptr () -> GLenum -> m GLuint
+glNewObjectBufferATI = ffisizeiPtrVenumIOuint glNewObjectBufferATIFunPtr
+
+glNewObjectBufferATIFunPtr :: FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint)
+glNewObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glNewObjectBufferATI")
+
+{-# NOINLINE glNewObjectBufferATIFunPtr #-}
+
+-- | Usage: @'glUpdateObjectBufferATI' buffer offset size pointer preserve@
+--
+-- The parameter @preserve@ is a @PreserveModeATI@.
+--
+-- The length of @pointer@ should be @size@.
+
+
+glUpdateObjectBufferATI :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
+glUpdateObjectBufferATI = ffiuintuintsizeiPtrVenumIOV glUpdateObjectBufferATIFunPtr
+
+glUpdateObjectBufferATIFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ())
+glUpdateObjectBufferATIFunPtr = unsafePerformIO (getProcAddress "glUpdateObjectBufferATI")
+
+{-# NOINLINE glUpdateObjectBufferATIFunPtr #-}
+
+-- | Usage: @'glVariantArrayObjectATI' id type stride buffer offset@
+--
+-- The parameter @type@ is a @ScalarType@.
+
+
+glVariantArrayObjectATI :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
+glVariantArrayObjectATI = ffiuintenumsizeiuintuintIOV glVariantArrayObjectATIFunPtr
+
+glVariantArrayObjectATIFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
+glVariantArrayObjectATIFunPtr = unsafePerformIO (getProcAddress "glVariantArrayObjectATI")
+
+{-# NOINLINE glVariantArrayObjectATIFunPtr #-}
+
+pattern GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766
+
+pattern GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767
+
+pattern GL_DISCARD_ATI = 0x8763
+
+pattern GL_DYNAMIC_ATI = 0x8761
+
+pattern GL_OBJECT_BUFFER_SIZE_ATI = 0x8764
+
+pattern GL_OBJECT_BUFFER_USAGE_ATI = 0x8765
+
+pattern GL_PRESERVE_ATI = 0x8762
+
+pattern GL_STATIC_ATI = 0x8760
diff --git a/generated-src/Graphics/GL/Ext/ATI/VertexAttribArrayObject.hs b/generated-src/Graphics/GL/Ext/ATI/VertexAttribArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/VertexAttribArrayObject.hs
@@ -0,0 +1,70 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.VertexAttribArrayObject (
+  -- * Extension Support
+    gl_ATI_vertex_attrib_array_object
+
+  -- * GL_ATI_vertex_attrib_array_object
+  , glGetVertexAttribArrayObjectfvATI
+  , glGetVertexAttribArrayObjectivATI
+  , glVertexAttribArrayObjectATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_attrib_array_object.txt GL_ATI_vertex_attrib_array_object> extension is available.
+
+gl_ATI_vertex_attrib_array_object :: Bool
+gl_ATI_vertex_attrib_array_object = member "GL_ATI_vertex_attrib_array_object" extensions
+{-# NOINLINE gl_ATI_vertex_attrib_array_object #-}
+
+-- | Usage: @'glGetVertexAttribArrayObjectfvATI' index pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVertexAttribArrayObjectfvATI :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribArrayObjectfvATI = ffiuintenumPtrfloatIOV glGetVertexAttribArrayObjectfvATIFunPtr
+
+glGetVertexAttribArrayObjectfvATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribArrayObjectfvATIFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribArrayObjectfvATI")
+
+{-# NOINLINE glGetVertexAttribArrayObjectfvATIFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribArrayObjectivATI' index pname params@
+--
+-- The parameter @pname@ is a @ArrayObjectPNameATI@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVertexAttribArrayObjectivATI :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribArrayObjectivATI = ffiuintenumPtrintIOV glGetVertexAttribArrayObjectivATIFunPtr
+
+glGetVertexAttribArrayObjectivATIFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribArrayObjectivATIFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribArrayObjectivATI")
+
+{-# NOINLINE glGetVertexAttribArrayObjectivATIFunPtr #-}
+
+-- | Usage: @'glVertexAttribArrayObjectATI' index size type normalized stride buffer offset@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribArrayObjectATI :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()
+glVertexAttribArrayObjectATI = ffiuintintenumbooleansizeiuintuintIOV glVertexAttribArrayObjectATIFunPtr
+
+glVertexAttribArrayObjectATIFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ())
+glVertexAttribArrayObjectATIFunPtr = unsafePerformIO (getProcAddress "glVertexAttribArrayObjectATI")
+
+{-# NOINLINE glVertexAttribArrayObjectATIFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/ATI/VertexStreams.hs b/generated-src/Graphics/GL/Ext/ATI/VertexStreams.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ATI/VertexStreams.hs
@@ -0,0 +1,724 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ATI.VertexStreams (
+  -- * Extension Support
+    gl_ATI_vertex_streams
+
+  -- * GL_ATI_vertex_streams
+  , glClientActiveVertexStreamATI
+  , glNormalStream3bATI
+  , glNormalStream3bvATI
+  , glNormalStream3dATI
+  , glNormalStream3dvATI
+  , glNormalStream3fATI
+  , glNormalStream3fvATI
+  , glNormalStream3iATI
+  , glNormalStream3ivATI
+  , glNormalStream3sATI
+  , glNormalStream3svATI
+  , glVertexBlendEnvfATI
+  , glVertexBlendEnviATI
+  , glVertexStream1dATI
+  , glVertexStream1dvATI
+  , glVertexStream1fATI
+  , glVertexStream1fvATI
+  , glVertexStream1iATI
+  , glVertexStream1ivATI
+  , glVertexStream1sATI
+  , glVertexStream1svATI
+  , glVertexStream2dATI
+  , glVertexStream2dvATI
+  , glVertexStream2fATI
+  , glVertexStream2fvATI
+  , glVertexStream2iATI
+  , glVertexStream2ivATI
+  , glVertexStream2sATI
+  , glVertexStream2svATI
+  , glVertexStream3dATI
+  , glVertexStream3dvATI
+  , glVertexStream3fATI
+  , glVertexStream3fvATI
+  , glVertexStream3iATI
+  , glVertexStream3ivATI
+  , glVertexStream3sATI
+  , glVertexStream3svATI
+  , glVertexStream4dATI
+  , glVertexStream4dvATI
+  , glVertexStream4fATI
+  , glVertexStream4fvATI
+  , glVertexStream4iATI
+  , glVertexStream4ivATI
+  , glVertexStream4sATI
+  , glVertexStream4svATI
+  , pattern GL_MAX_VERTEX_STREAMS_ATI
+  , pattern GL_VERTEX_SOURCE_ATI
+  , pattern GL_VERTEX_STREAM0_ATI
+  , pattern GL_VERTEX_STREAM1_ATI
+  , pattern GL_VERTEX_STREAM2_ATI
+  , pattern GL_VERTEX_STREAM3_ATI
+  , pattern GL_VERTEX_STREAM4_ATI
+  , pattern GL_VERTEX_STREAM5_ATI
+  , pattern GL_VERTEX_STREAM6_ATI
+  , pattern GL_VERTEX_STREAM7_ATI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/ATI/vertex_streams.txt GL_ATI_vertex_streams> extension is available.
+
+gl_ATI_vertex_streams :: Bool
+gl_ATI_vertex_streams = member "GL_ATI_vertex_streams" extensions
+{-# NOINLINE gl_ATI_vertex_streams #-}
+
+-- | Usage: @'glClientActiveVertexStreamATI' stream@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glClientActiveVertexStreamATI :: MonadIO m => GLenum -> m ()
+glClientActiveVertexStreamATI = ffienumIOV glClientActiveVertexStreamATIFunPtr
+
+glClientActiveVertexStreamATIFunPtr :: FunPtr (GLenum -> IO ())
+glClientActiveVertexStreamATIFunPtr = unsafePerformIO (getProcAddress "glClientActiveVertexStreamATI")
+
+{-# NOINLINE glClientActiveVertexStreamATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3bATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glNormalStream3bATI :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
+glNormalStream3bATI = ffienumbytebytebyteIOV glNormalStream3bATIFunPtr
+
+glNormalStream3bATIFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glNormalStream3bATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3bATI")
+
+{-# NOINLINE glNormalStream3bATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3bvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glNormalStream3bvATI :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
+glNormalStream3bvATI = ffienumPtrbyteIOV glNormalStream3bvATIFunPtr
+
+glNormalStream3bvATIFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+glNormalStream3bvATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3bvATI")
+
+{-# NOINLINE glNormalStream3bvATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3dATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glNormalStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glNormalStream3dATI = ffienumdoubledoubledoubleIOV glNormalStream3dATIFunPtr
+
+glNormalStream3dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glNormalStream3dATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3dATI")
+
+{-# NOINLINE glNormalStream3dATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glNormalStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glNormalStream3dvATI = ffienumPtrdoubleIOV glNormalStream3dvATIFunPtr
+
+glNormalStream3dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glNormalStream3dvATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3dvATI")
+
+{-# NOINLINE glNormalStream3dvATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3fATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glNormalStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glNormalStream3fATI = ffienumfloatfloatfloatIOV glNormalStream3fATIFunPtr
+
+glNormalStream3fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glNormalStream3fATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3fATI")
+
+{-# NOINLINE glNormalStream3fATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glNormalStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glNormalStream3fvATI = ffienumPtrfloatIOV glNormalStream3fvATIFunPtr
+
+glNormalStream3fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glNormalStream3fvATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3fvATI")
+
+{-# NOINLINE glNormalStream3fvATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3iATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glNormalStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
+glNormalStream3iATI = ffienumintintintIOV glNormalStream3iATIFunPtr
+
+glNormalStream3iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+glNormalStream3iATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3iATI")
+
+{-# NOINLINE glNormalStream3iATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glNormalStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glNormalStream3ivATI = ffienumPtrintIOV glNormalStream3ivATIFunPtr
+
+glNormalStream3ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glNormalStream3ivATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3ivATI")
+
+{-# NOINLINE glNormalStream3ivATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3sATI' stream nx ny nz@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glNormalStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
+glNormalStream3sATI = ffienumshortshortshortIOV glNormalStream3sATIFunPtr
+
+glNormalStream3sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+glNormalStream3sATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3sATI")
+
+{-# NOINLINE glNormalStream3sATIFunPtr #-}
+
+-- | Usage: @'glNormalStream3svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glNormalStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glNormalStream3svATI = ffienumPtrshortIOV glNormalStream3svATIFunPtr
+
+glNormalStream3svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glNormalStream3svATIFunPtr = unsafePerformIO (getProcAddress "glNormalStream3svATI")
+
+{-# NOINLINE glNormalStream3svATIFunPtr #-}
+
+-- | Usage: @'glVertexBlendEnvfATI' pname param@
+--
+-- The parameter @pname@ is a @VertexStreamATI@.
+
+
+glVertexBlendEnvfATI :: MonadIO m => GLenum -> GLfloat -> m ()
+glVertexBlendEnvfATI = ffienumfloatIOV glVertexBlendEnvfATIFunPtr
+
+glVertexBlendEnvfATIFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glVertexBlendEnvfATIFunPtr = unsafePerformIO (getProcAddress "glVertexBlendEnvfATI")
+
+{-# NOINLINE glVertexBlendEnvfATIFunPtr #-}
+
+-- | Usage: @'glVertexBlendEnviATI' pname param@
+--
+-- The parameter @pname@ is a @VertexStreamATI@.
+
+
+glVertexBlendEnviATI :: MonadIO m => GLenum -> GLint -> m ()
+glVertexBlendEnviATI = ffienumintIOV glVertexBlendEnviATIFunPtr
+
+glVertexBlendEnviATIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glVertexBlendEnviATIFunPtr = unsafePerformIO (getProcAddress "glVertexBlendEnviATI")
+
+{-# NOINLINE glVertexBlendEnviATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1dATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream1dATI :: MonadIO m => GLenum -> GLdouble -> m ()
+glVertexStream1dATI = ffienumdoubleIOV glVertexStream1dATIFunPtr
+
+glVertexStream1dATIFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
+glVertexStream1dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1dATI")
+
+{-# NOINLINE glVertexStream1dATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
+glVertexStream1dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glVertexStream1dvATI = ffienumPtrdoubleIOV glVertexStream1dvATIFunPtr
+
+glVertexStream1dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glVertexStream1dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1dvATI")
+
+{-# NOINLINE glVertexStream1dvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1fATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream1fATI :: MonadIO m => GLenum -> GLfloat -> m ()
+glVertexStream1fATI = ffienumfloatIOV glVertexStream1fATIFunPtr
+
+glVertexStream1fATIFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glVertexStream1fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1fATI")
+
+{-# NOINLINE glVertexStream1fATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
+glVertexStream1fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glVertexStream1fvATI = ffienumPtrfloatIOV glVertexStream1fvATIFunPtr
+
+glVertexStream1fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glVertexStream1fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1fvATI")
+
+{-# NOINLINE glVertexStream1fvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1iATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream1iATI :: MonadIO m => GLenum -> GLint -> m ()
+glVertexStream1iATI = ffienumintIOV glVertexStream1iATIFunPtr
+
+glVertexStream1iATIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glVertexStream1iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1iATI")
+
+{-# NOINLINE glVertexStream1iATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
+glVertexStream1ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glVertexStream1ivATI = ffienumPtrintIOV glVertexStream1ivATIFunPtr
+
+glVertexStream1ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glVertexStream1ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1ivATI")
+
+{-# NOINLINE glVertexStream1ivATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1sATI' stream x@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream1sATI :: MonadIO m => GLenum -> GLshort -> m ()
+glVertexStream1sATI = ffienumshortIOV glVertexStream1sATIFunPtr
+
+glVertexStream1sATIFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
+glVertexStream1sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1sATI")
+
+{-# NOINLINE glVertexStream1sATIFunPtr #-}
+
+-- | Usage: @'glVertexStream1svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @1@.
+
+
+glVertexStream1svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glVertexStream1svATI = ffienumPtrshortIOV glVertexStream1svATIFunPtr
+
+glVertexStream1svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glVertexStream1svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream1svATI")
+
+{-# NOINLINE glVertexStream1svATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2dATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream2dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
+glVertexStream2dATI = ffienumdoubledoubleIOV glVertexStream2dATIFunPtr
+
+glVertexStream2dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+glVertexStream2dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2dATI")
+
+{-# NOINLINE glVertexStream2dATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
+glVertexStream2dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glVertexStream2dvATI = ffienumPtrdoubleIOV glVertexStream2dvATIFunPtr
+
+glVertexStream2dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glVertexStream2dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2dvATI")
+
+{-# NOINLINE glVertexStream2dvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2fATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream2fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
+glVertexStream2fATI = ffienumfloatfloatIOV glVertexStream2fATIFunPtr
+
+glVertexStream2fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+glVertexStream2fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2fATI")
+
+{-# NOINLINE glVertexStream2fATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
+glVertexStream2fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glVertexStream2fvATI = ffienumPtrfloatIOV glVertexStream2fvATIFunPtr
+
+glVertexStream2fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glVertexStream2fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2fvATI")
+
+{-# NOINLINE glVertexStream2fvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2iATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream2iATI :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glVertexStream2iATI = ffienumintintIOV glVertexStream2iATIFunPtr
+
+glVertexStream2iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glVertexStream2iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2iATI")
+
+{-# NOINLINE glVertexStream2iATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
+glVertexStream2ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glVertexStream2ivATI = ffienumPtrintIOV glVertexStream2ivATIFunPtr
+
+glVertexStream2ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glVertexStream2ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2ivATI")
+
+{-# NOINLINE glVertexStream2ivATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2sATI' stream x y@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream2sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
+glVertexStream2sATI = ffienumshortshortIOV glVertexStream2sATIFunPtr
+
+glVertexStream2sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+glVertexStream2sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2sATI")
+
+{-# NOINLINE glVertexStream2sATIFunPtr #-}
+
+-- | Usage: @'glVertexStream2svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @2@.
+
+
+glVertexStream2svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glVertexStream2svATI = ffienumPtrshortIOV glVertexStream2svATIFunPtr
+
+glVertexStream2svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glVertexStream2svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream2svATI")
+
+{-# NOINLINE glVertexStream2svATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3dATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream3dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexStream3dATI = ffienumdoubledoubledoubleIOV glVertexStream3dATIFunPtr
+
+glVertexStream3dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexStream3dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3dATI")
+
+{-# NOINLINE glVertexStream3dATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glVertexStream3dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glVertexStream3dvATI = ffienumPtrdoubleIOV glVertexStream3dvATIFunPtr
+
+glVertexStream3dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glVertexStream3dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3dvATI")
+
+{-# NOINLINE glVertexStream3dvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3fATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream3fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexStream3fATI = ffienumfloatfloatfloatIOV glVertexStream3fATIFunPtr
+
+glVertexStream3fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexStream3fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3fATI")
+
+{-# NOINLINE glVertexStream3fATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glVertexStream3fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glVertexStream3fvATI = ffienumPtrfloatIOV glVertexStream3fvATIFunPtr
+
+glVertexStream3fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glVertexStream3fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3fvATI")
+
+{-# NOINLINE glVertexStream3fvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3iATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream3iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
+glVertexStream3iATI = ffienumintintintIOV glVertexStream3iATIFunPtr
+
+glVertexStream3iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+glVertexStream3iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3iATI")
+
+{-# NOINLINE glVertexStream3iATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glVertexStream3ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glVertexStream3ivATI = ffienumPtrintIOV glVertexStream3ivATIFunPtr
+
+glVertexStream3ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glVertexStream3ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3ivATI")
+
+{-# NOINLINE glVertexStream3ivATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3sATI' stream x y z@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream3sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
+glVertexStream3sATI = ffienumshortshortshortIOV glVertexStream3sATIFunPtr
+
+glVertexStream3sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexStream3sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3sATI")
+
+{-# NOINLINE glVertexStream3sATIFunPtr #-}
+
+-- | Usage: @'glVertexStream3svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @3@.
+
+
+glVertexStream3svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glVertexStream3svATI = ffienumPtrshortIOV glVertexStream3svATIFunPtr
+
+glVertexStream3svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glVertexStream3svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream3svATI")
+
+{-# NOINLINE glVertexStream3svATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4dATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream4dATI :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexStream4dATI = ffienumdoubledoubledoubledoubleIOV glVertexStream4dATIFunPtr
+
+glVertexStream4dATIFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexStream4dATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4dATI")
+
+{-# NOINLINE glVertexStream4dATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4dvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
+
+glVertexStream4dvATI :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glVertexStream4dvATI = ffienumPtrdoubleIOV glVertexStream4dvATIFunPtr
+
+glVertexStream4dvATIFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glVertexStream4dvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4dvATI")
+
+{-# NOINLINE glVertexStream4dvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4fATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream4fATI :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexStream4fATI = ffienumfloatfloatfloatfloatIOV glVertexStream4fATIFunPtr
+
+glVertexStream4fATIFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexStream4fATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4fATI")
+
+{-# NOINLINE glVertexStream4fATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4fvATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
+
+glVertexStream4fvATI :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glVertexStream4fvATI = ffienumPtrfloatIOV glVertexStream4fvATIFunPtr
+
+glVertexStream4fvATIFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glVertexStream4fvATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4fvATI")
+
+{-# NOINLINE glVertexStream4fvATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4iATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream4iATI :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glVertexStream4iATI = ffienumintintintintIOV glVertexStream4iATIFunPtr
+
+glVertexStream4iATIFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glVertexStream4iATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4iATI")
+
+{-# NOINLINE glVertexStream4iATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4ivATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
+
+glVertexStream4ivATI :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glVertexStream4ivATI = ffienumPtrintIOV glVertexStream4ivATIFunPtr
+
+glVertexStream4ivATIFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glVertexStream4ivATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4ivATI")
+
+{-# NOINLINE glVertexStream4ivATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4sATI' stream x y z w@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+
+
+glVertexStream4sATI :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexStream4sATI = ffienumshortshortshortshortIOV glVertexStream4sATIFunPtr
+
+glVertexStream4sATIFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexStream4sATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4sATI")
+
+{-# NOINLINE glVertexStream4sATIFunPtr #-}
+
+-- | Usage: @'glVertexStream4svATI' stream coords@
+--
+-- The parameter @stream@ is a @VertexStreamATI@.
+--
+-- The length of @coords@ should be @4@.
+
+
+glVertexStream4svATI :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glVertexStream4svATI = ffienumPtrshortIOV glVertexStream4svATIFunPtr
+
+glVertexStream4svATIFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glVertexStream4svATIFunPtr = unsafePerformIO (getProcAddress "glVertexStream4svATI")
+
+{-# NOINLINE glVertexStream4svATIFunPtr #-}
+
+pattern GL_MAX_VERTEX_STREAMS_ATI = 0x876B
+
+pattern GL_VERTEX_SOURCE_ATI = 0x8774
+
+pattern GL_VERTEX_STREAM0_ATI = 0x876C
+
+pattern GL_VERTEX_STREAM1_ATI = 0x876D
+
+pattern GL_VERTEX_STREAM2_ATI = 0x876E
+
+pattern GL_VERTEX_STREAM3_ATI = 0x876F
+
+pattern GL_VERTEX_STREAM4_ATI = 0x8770
+
+pattern GL_VERTEX_STREAM5_ATI = 0x8771
+
+pattern GL_VERTEX_STREAM6_ATI = 0x8772
+
+pattern GL_VERTEX_STREAM7_ATI = 0x8773
diff --git a/generated-src/Graphics/GL/Ext/DMP.hs b/generated-src/Graphics/GL/Ext/DMP.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/DMP.hs
@@ -0,0 +1,10 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.DMP (
+  -- * DMP Extensions
+    module Graphics.GL.Ext.DMP.ProgramBinary
+  , module Graphics.GL.Ext.DMP.ShaderBinary
+) where
+
+import Graphics.GL.Ext.DMP.ProgramBinary
+import Graphics.GL.Ext.DMP.ShaderBinary
diff --git a/generated-src/Graphics/GL/Ext/DMP/ProgramBinary.hs b/generated-src/Graphics/GL/Ext/DMP/ProgramBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/DMP/ProgramBinary.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.DMP.ProgramBinary (
+  -- * Extension Support
+    gl_DMP_program_binary
+
+  -- * GL_DMP_program_binary
+  , pattern GL_DMP_PROGRAM_BINARY_DMP
+  , pattern GL_SMAPHS30_PROGRAM_BINARY_DMP
+  , pattern GL_SMAPHS_PROGRAM_BINARY_DMP
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/DMP/DMP_program_binary.txt GL_DMP_program_binary> extension is available.
+
+gl_DMP_program_binary :: Bool
+gl_DMP_program_binary = member "GL_DMP_program_binary" extensions
+{-# NOINLINE gl_DMP_program_binary #-}
+
+pattern GL_DMP_PROGRAM_BINARY_DMP = 0x9253
+
+pattern GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251
+
+pattern GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252
diff --git a/generated-src/Graphics/GL/Ext/DMP/ShaderBinary.hs b/generated-src/Graphics/GL/Ext/DMP/ShaderBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/DMP/ShaderBinary.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.DMP.ShaderBinary (
+  -- * Extension Support
+    gl_DMP_shader_binary
+
+  -- * GL_DMP_shader_binary
+  , pattern GL_SHADER_BINARY_DMP
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/DMP/DMP_shader_binary.txt GL_DMP_shader_binary> extension is available.
+
+gl_DMP_shader_binary :: Bool
+gl_DMP_shader_binary = member "GL_DMP_shader_binary" extensions
+{-# NOINLINE gl_DMP_shader_binary #-}
+
+pattern GL_SHADER_BINARY_DMP = 0x9250
diff --git a/generated-src/Graphics/GL/Ext/EXT.hs b/generated-src/Graphics/GL/Ext/EXT.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT.hs
@@ -0,0 +1,330 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT (
+  -- * EXT Extensions
+    module Graphics.GL.Ext.EXT.Abgr
+  , module Graphics.GL.Ext.EXT.BaseInstance
+  , module Graphics.GL.Ext.EXT.Bgra
+  , module Graphics.GL.Ext.EXT.BindableUniform
+  , module Graphics.GL.Ext.EXT.BlendColor
+  , module Graphics.GL.Ext.EXT.BlendEquationSeparate
+  , module Graphics.GL.Ext.EXT.BlendFuncExtended
+  , module Graphics.GL.Ext.EXT.BlendFuncSeparate
+  , module Graphics.GL.Ext.EXT.BlendLogicOp
+  , module Graphics.GL.Ext.EXT.BlendMinmax
+  , module Graphics.GL.Ext.EXT.BlendSubtract
+  , module Graphics.GL.Ext.EXT.BufferStorage
+  , module Graphics.GL.Ext.EXT.ClearTexture
+  , module Graphics.GL.Ext.EXT.ClipCullDistance
+  , module Graphics.GL.Ext.EXT.ClipVolumeHint
+  , module Graphics.GL.Ext.EXT.Cmyka
+  , module Graphics.GL.Ext.EXT.ColorBufferFloat
+  , module Graphics.GL.Ext.EXT.ColorBufferHalfFloat
+  , module Graphics.GL.Ext.EXT.ColorSubtable
+  , module Graphics.GL.Ext.EXT.CompiledVertexArray
+  , module Graphics.GL.Ext.EXT.ConservativeDepth
+  , module Graphics.GL.Ext.EXT.Convolution
+  , module Graphics.GL.Ext.EXT.CoordinateFrame
+  , module Graphics.GL.Ext.EXT.CopyImage
+  , module Graphics.GL.Ext.EXT.CopyTexture
+  , module Graphics.GL.Ext.EXT.CullVertex
+  , module Graphics.GL.Ext.EXT.DebugLabel
+  , module Graphics.GL.Ext.EXT.DebugMarker
+  , module Graphics.GL.Ext.EXT.DepthBoundsTest
+  , module Graphics.GL.Ext.EXT.DirectStateAccess
+  , module Graphics.GL.Ext.EXT.DiscardFramebuffer
+  , module Graphics.GL.Ext.EXT.DisjointTimerQuery
+  , module Graphics.GL.Ext.EXT.DrawBuffers
+  , module Graphics.GL.Ext.EXT.DrawBuffers2
+  , module Graphics.GL.Ext.EXT.DrawBuffersIndexed
+  , module Graphics.GL.Ext.EXT.DrawElementsBaseVertex
+  , module Graphics.GL.Ext.EXT.DrawInstanced
+  , module Graphics.GL.Ext.EXT.DrawRangeElements
+  , module Graphics.GL.Ext.EXT.DrawTransformFeedback
+  , module Graphics.GL.Ext.EXT.FloatBlend
+  , module Graphics.GL.Ext.EXT.FogCoord
+  , module Graphics.GL.Ext.EXT.FourTwoTwoPixels
+  , module Graphics.GL.Ext.EXT.FramebufferBlit
+  , module Graphics.GL.Ext.EXT.FramebufferMultisample
+  , module Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled
+  , module Graphics.GL.Ext.EXT.FramebufferObject
+  , module Graphics.GL.Ext.EXT.FramebufferSRGB
+  , module Graphics.GL.Ext.EXT.GeometryPointSize
+  , module Graphics.GL.Ext.EXT.GeometryShader
+  , module Graphics.GL.Ext.EXT.GeometryShader4
+  , module Graphics.GL.Ext.EXT.GpuProgramParameters
+  , module Graphics.GL.Ext.EXT.GpuShader4
+  , module Graphics.GL.Ext.EXT.GpuShader5
+  , module Graphics.GL.Ext.EXT.Histogram
+  , module Graphics.GL.Ext.EXT.IndexArrayFormats
+  , module Graphics.GL.Ext.EXT.IndexFunc
+  , module Graphics.GL.Ext.EXT.IndexMaterial
+  , module Graphics.GL.Ext.EXT.IndexTexture
+  , module Graphics.GL.Ext.EXT.InstancedArrays
+  , module Graphics.GL.Ext.EXT.LightTexture
+  , module Graphics.GL.Ext.EXT.MapBufferRange
+  , module Graphics.GL.Ext.EXT.MiscAttribute
+  , module Graphics.GL.Ext.EXT.MultiDrawArrays
+  , module Graphics.GL.Ext.EXT.MultiDrawIndirect
+  , module Graphics.GL.Ext.EXT.Multisample
+  , module Graphics.GL.Ext.EXT.MultisampleCompatibility
+  , module Graphics.GL.Ext.EXT.MultisampledRenderToTexture
+  , module Graphics.GL.Ext.EXT.MultiviewDrawBuffers
+  , module Graphics.GL.Ext.EXT.OcclusionQueryBoolean
+  , module Graphics.GL.Ext.EXT.PackedDepthStencil
+  , module Graphics.GL.Ext.EXT.PackedFloat
+  , module Graphics.GL.Ext.EXT.PackedPixels
+  , module Graphics.GL.Ext.EXT.PalettedTexture
+  , module Graphics.GL.Ext.EXT.PixelBufferObject
+  , module Graphics.GL.Ext.EXT.PixelTransform
+  , module Graphics.GL.Ext.EXT.PixelTransformColorTable
+  , module Graphics.GL.Ext.EXT.PointParameters
+  , module Graphics.GL.Ext.EXT.PolygonOffset
+  , module Graphics.GL.Ext.EXT.PolygonOffsetClamp
+  , module Graphics.GL.Ext.EXT.PostDepthCoverage
+  , module Graphics.GL.Ext.EXT.PrimitiveBoundingBox
+  , module Graphics.GL.Ext.EXT.ProtectedTextures
+  , module Graphics.GL.Ext.EXT.ProvokingVertex
+  , module Graphics.GL.Ext.EXT.PvrtcSRGB
+  , module Graphics.GL.Ext.EXT.RasterMultisample
+  , module Graphics.GL.Ext.EXT.ReadFormatBgra
+  , module Graphics.GL.Ext.EXT.RenderSnorm
+  , module Graphics.GL.Ext.EXT.RescaleNormal
+  , module Graphics.GL.Ext.EXT.Robustness
+  , module Graphics.GL.Ext.EXT.SRGB
+  , module Graphics.GL.Ext.EXT.SRGBWriteControl
+  , module Graphics.GL.Ext.EXT.SecondaryColor
+  , module Graphics.GL.Ext.EXT.SeparateShaderObjects
+  , module Graphics.GL.Ext.EXT.SeparateSpecularColor
+  , module Graphics.GL.Ext.EXT.ShaderFramebufferFetch
+  , module Graphics.GL.Ext.EXT.ShaderGroupVote
+  , module Graphics.GL.Ext.EXT.ShaderImageLoadFormatted
+  , module Graphics.GL.Ext.EXT.ShaderImageLoadStore
+  , module Graphics.GL.Ext.EXT.ShaderImplicitConversions
+  , module Graphics.GL.Ext.EXT.ShaderIntegerMix
+  , module Graphics.GL.Ext.EXT.ShaderIoBlocks
+  , module Graphics.GL.Ext.EXT.ShaderNonConstantGlobalInitializers
+  , module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage
+  , module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage2
+  , module Graphics.GL.Ext.EXT.ShaderTextureLod
+  , module Graphics.GL.Ext.EXT.ShadowFuncs
+  , module Graphics.GL.Ext.EXT.ShadowSamplers
+  , module Graphics.GL.Ext.EXT.SharedTexturePalette
+  , module Graphics.GL.Ext.EXT.SparseTexture
+  , module Graphics.GL.Ext.EXT.SparseTexture2
+  , module Graphics.GL.Ext.EXT.StencilClearTag
+  , module Graphics.GL.Ext.EXT.StencilTwoSide
+  , module Graphics.GL.Ext.EXT.StencilWrap
+  , module Graphics.GL.Ext.EXT.Subtexture
+  , module Graphics.GL.Ext.EXT.TessellationPointSize
+  , module Graphics.GL.Ext.EXT.TessellationShader
+  , module Graphics.GL.Ext.EXT.Texture
+  , module Graphics.GL.Ext.EXT.Texture3D
+  , module Graphics.GL.Ext.EXT.TextureArray
+  , module Graphics.GL.Ext.EXT.TextureBorderClamp
+  , module Graphics.GL.Ext.EXT.TextureBuffer
+  , module Graphics.GL.Ext.EXT.TextureBufferObject
+  , module Graphics.GL.Ext.EXT.TextureCompressionDxt1
+  , module Graphics.GL.Ext.EXT.TextureCompressionLatc
+  , module Graphics.GL.Ext.EXT.TextureCompressionRgtc
+  , module Graphics.GL.Ext.EXT.TextureCompressionS3tc
+  , module Graphics.GL.Ext.EXT.TextureCubeMap
+  , module Graphics.GL.Ext.EXT.TextureCubeMapArray
+  , module Graphics.GL.Ext.EXT.TextureEnvAdd
+  , module Graphics.GL.Ext.EXT.TextureEnvCombine
+  , module Graphics.GL.Ext.EXT.TextureEnvDot3
+  , module Graphics.GL.Ext.EXT.TextureFilterAnisotropic
+  , module Graphics.GL.Ext.EXT.TextureFilterMinmax
+  , module Graphics.GL.Ext.EXT.TextureFormatBGRA8888
+  , module Graphics.GL.Ext.EXT.TextureInteger
+  , module Graphics.GL.Ext.EXT.TextureLodBias
+  , module Graphics.GL.Ext.EXT.TextureMirrorClamp
+  , module Graphics.GL.Ext.EXT.TextureNorm16
+  , module Graphics.GL.Ext.EXT.TextureObject
+  , module Graphics.GL.Ext.EXT.TexturePerturbNormal
+  , module Graphics.GL.Ext.EXT.TextureRg
+  , module Graphics.GL.Ext.EXT.TextureSRGB
+  , module Graphics.GL.Ext.EXT.TextureSRGBDecode
+  , module Graphics.GL.Ext.EXT.TextureSRGBR8
+  , module Graphics.GL.Ext.EXT.TextureSRGBRG8
+  , module Graphics.GL.Ext.EXT.TextureSharedExponent
+  , module Graphics.GL.Ext.EXT.TextureSnorm
+  , module Graphics.GL.Ext.EXT.TextureStorage
+  , module Graphics.GL.Ext.EXT.TextureSwizzle
+  , module Graphics.GL.Ext.EXT.TextureType2101010REV
+  , module Graphics.GL.Ext.EXT.TextureView
+  , module Graphics.GL.Ext.EXT.TimerQuery
+  , module Graphics.GL.Ext.EXT.TransformFeedback
+  , module Graphics.GL.Ext.EXT.UnpackSubimage
+  , module Graphics.GL.Ext.EXT.VertexArray
+  , module Graphics.GL.Ext.EXT.VertexArrayBgra
+  , module Graphics.GL.Ext.EXT.VertexAttrib64bit
+  , module Graphics.GL.Ext.EXT.VertexShader
+  , module Graphics.GL.Ext.EXT.VertexWeighting
+  , module Graphics.GL.Ext.EXT.WindowRectangles
+  , module Graphics.GL.Ext.EXT.X11SyncObject
+  , module Graphics.GL.Ext.EXT.YUVTarget
+) where
+
+import Graphics.GL.Ext.EXT.Abgr
+import Graphics.GL.Ext.EXT.BaseInstance
+import Graphics.GL.Ext.EXT.Bgra
+import Graphics.GL.Ext.EXT.BindableUniform
+import Graphics.GL.Ext.EXT.BlendColor
+import Graphics.GL.Ext.EXT.BlendEquationSeparate
+import Graphics.GL.Ext.EXT.BlendFuncExtended
+import Graphics.GL.Ext.EXT.BlendFuncSeparate
+import Graphics.GL.Ext.EXT.BlendLogicOp
+import Graphics.GL.Ext.EXT.BlendMinmax
+import Graphics.GL.Ext.EXT.BlendSubtract
+import Graphics.GL.Ext.EXT.BufferStorage
+import Graphics.GL.Ext.EXT.ClearTexture
+import Graphics.GL.Ext.EXT.ClipCullDistance
+import Graphics.GL.Ext.EXT.ClipVolumeHint
+import Graphics.GL.Ext.EXT.Cmyka
+import Graphics.GL.Ext.EXT.ColorBufferFloat
+import Graphics.GL.Ext.EXT.ColorBufferHalfFloat
+import Graphics.GL.Ext.EXT.ColorSubtable
+import Graphics.GL.Ext.EXT.CompiledVertexArray
+import Graphics.GL.Ext.EXT.ConservativeDepth
+import Graphics.GL.Ext.EXT.Convolution
+import Graphics.GL.Ext.EXT.CoordinateFrame
+import Graphics.GL.Ext.EXT.CopyImage
+import Graphics.GL.Ext.EXT.CopyTexture
+import Graphics.GL.Ext.EXT.CullVertex
+import Graphics.GL.Ext.EXT.DebugLabel
+import Graphics.GL.Ext.EXT.DebugMarker
+import Graphics.GL.Ext.EXT.DepthBoundsTest
+import Graphics.GL.Ext.EXT.DirectStateAccess
+import Graphics.GL.Ext.EXT.DiscardFramebuffer
+import Graphics.GL.Ext.EXT.DisjointTimerQuery
+import Graphics.GL.Ext.EXT.DrawBuffers
+import Graphics.GL.Ext.EXT.DrawBuffers2
+import Graphics.GL.Ext.EXT.DrawBuffersIndexed
+import Graphics.GL.Ext.EXT.DrawElementsBaseVertex
+import Graphics.GL.Ext.EXT.DrawInstanced
+import Graphics.GL.Ext.EXT.DrawRangeElements
+import Graphics.GL.Ext.EXT.DrawTransformFeedback
+import Graphics.GL.Ext.EXT.FloatBlend
+import Graphics.GL.Ext.EXT.FogCoord
+import Graphics.GL.Ext.EXT.FourTwoTwoPixels
+import Graphics.GL.Ext.EXT.FramebufferBlit
+import Graphics.GL.Ext.EXT.FramebufferMultisample
+import Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled
+import Graphics.GL.Ext.EXT.FramebufferObject
+import Graphics.GL.Ext.EXT.FramebufferSRGB
+import Graphics.GL.Ext.EXT.GeometryPointSize
+import Graphics.GL.Ext.EXT.GeometryShader
+import Graphics.GL.Ext.EXT.GeometryShader4
+import Graphics.GL.Ext.EXT.GpuProgramParameters
+import Graphics.GL.Ext.EXT.GpuShader4
+import Graphics.GL.Ext.EXT.GpuShader5
+import Graphics.GL.Ext.EXT.Histogram
+import Graphics.GL.Ext.EXT.IndexArrayFormats
+import Graphics.GL.Ext.EXT.IndexFunc
+import Graphics.GL.Ext.EXT.IndexMaterial
+import Graphics.GL.Ext.EXT.IndexTexture
+import Graphics.GL.Ext.EXT.InstancedArrays
+import Graphics.GL.Ext.EXT.LightTexture
+import Graphics.GL.Ext.EXT.MapBufferRange
+import Graphics.GL.Ext.EXT.MiscAttribute
+import Graphics.GL.Ext.EXT.MultiDrawArrays
+import Graphics.GL.Ext.EXT.MultiDrawIndirect
+import Graphics.GL.Ext.EXT.Multisample
+import Graphics.GL.Ext.EXT.MultisampleCompatibility
+import Graphics.GL.Ext.EXT.MultisampledRenderToTexture
+import Graphics.GL.Ext.EXT.MultiviewDrawBuffers
+import Graphics.GL.Ext.EXT.OcclusionQueryBoolean
+import Graphics.GL.Ext.EXT.PackedDepthStencil
+import Graphics.GL.Ext.EXT.PackedFloat
+import Graphics.GL.Ext.EXT.PackedPixels
+import Graphics.GL.Ext.EXT.PalettedTexture
+import Graphics.GL.Ext.EXT.PixelBufferObject
+import Graphics.GL.Ext.EXT.PixelTransform
+import Graphics.GL.Ext.EXT.PixelTransformColorTable
+import Graphics.GL.Ext.EXT.PointParameters
+import Graphics.GL.Ext.EXT.PolygonOffset
+import Graphics.GL.Ext.EXT.PolygonOffsetClamp
+import Graphics.GL.Ext.EXT.PostDepthCoverage
+import Graphics.GL.Ext.EXT.PrimitiveBoundingBox
+import Graphics.GL.Ext.EXT.ProtectedTextures
+import Graphics.GL.Ext.EXT.ProvokingVertex
+import Graphics.GL.Ext.EXT.PvrtcSRGB
+import Graphics.GL.Ext.EXT.RasterMultisample
+import Graphics.GL.Ext.EXT.ReadFormatBgra
+import Graphics.GL.Ext.EXT.RenderSnorm
+import Graphics.GL.Ext.EXT.RescaleNormal
+import Graphics.GL.Ext.EXT.Robustness
+import Graphics.GL.Ext.EXT.SRGB
+import Graphics.GL.Ext.EXT.SRGBWriteControl
+import Graphics.GL.Ext.EXT.SecondaryColor
+import Graphics.GL.Ext.EXT.SeparateShaderObjects
+import Graphics.GL.Ext.EXT.SeparateSpecularColor
+import Graphics.GL.Ext.EXT.ShaderFramebufferFetch
+import Graphics.GL.Ext.EXT.ShaderGroupVote
+import Graphics.GL.Ext.EXT.ShaderImageLoadFormatted
+import Graphics.GL.Ext.EXT.ShaderImageLoadStore
+import Graphics.GL.Ext.EXT.ShaderImplicitConversions
+import Graphics.GL.Ext.EXT.ShaderIntegerMix
+import Graphics.GL.Ext.EXT.ShaderIoBlocks
+import Graphics.GL.Ext.EXT.ShaderNonConstantGlobalInitializers
+import Graphics.GL.Ext.EXT.ShaderPixelLocalStorage
+import Graphics.GL.Ext.EXT.ShaderPixelLocalStorage2
+import Graphics.GL.Ext.EXT.ShaderTextureLod
+import Graphics.GL.Ext.EXT.ShadowFuncs
+import Graphics.GL.Ext.EXT.ShadowSamplers
+import Graphics.GL.Ext.EXT.SharedTexturePalette
+import Graphics.GL.Ext.EXT.SparseTexture
+import Graphics.GL.Ext.EXT.SparseTexture2
+import Graphics.GL.Ext.EXT.StencilClearTag
+import Graphics.GL.Ext.EXT.StencilTwoSide
+import Graphics.GL.Ext.EXT.StencilWrap
+import Graphics.GL.Ext.EXT.Subtexture
+import Graphics.GL.Ext.EXT.TessellationPointSize
+import Graphics.GL.Ext.EXT.TessellationShader
+import Graphics.GL.Ext.EXT.Texture
+import Graphics.GL.Ext.EXT.Texture3D
+import Graphics.GL.Ext.EXT.TextureArray
+import Graphics.GL.Ext.EXT.TextureBorderClamp
+import Graphics.GL.Ext.EXT.TextureBuffer
+import Graphics.GL.Ext.EXT.TextureBufferObject
+import Graphics.GL.Ext.EXT.TextureCompressionDxt1
+import Graphics.GL.Ext.EXT.TextureCompressionLatc
+import Graphics.GL.Ext.EXT.TextureCompressionRgtc
+import Graphics.GL.Ext.EXT.TextureCompressionS3tc
+import Graphics.GL.Ext.EXT.TextureCubeMap
+import Graphics.GL.Ext.EXT.TextureCubeMapArray
+import Graphics.GL.Ext.EXT.TextureEnvAdd
+import Graphics.GL.Ext.EXT.TextureEnvCombine
+import Graphics.GL.Ext.EXT.TextureEnvDot3
+import Graphics.GL.Ext.EXT.TextureFilterAnisotropic
+import Graphics.GL.Ext.EXT.TextureFilterMinmax
+import Graphics.GL.Ext.EXT.TextureFormatBGRA8888
+import Graphics.GL.Ext.EXT.TextureInteger
+import Graphics.GL.Ext.EXT.TextureLodBias
+import Graphics.GL.Ext.EXT.TextureMirrorClamp
+import Graphics.GL.Ext.EXT.TextureNorm16
+import Graphics.GL.Ext.EXT.TextureObject
+import Graphics.GL.Ext.EXT.TexturePerturbNormal
+import Graphics.GL.Ext.EXT.TextureRg
+import Graphics.GL.Ext.EXT.TextureSRGB
+import Graphics.GL.Ext.EXT.TextureSRGBDecode
+import Graphics.GL.Ext.EXT.TextureSRGBR8
+import Graphics.GL.Ext.EXT.TextureSRGBRG8
+import Graphics.GL.Ext.EXT.TextureSharedExponent
+import Graphics.GL.Ext.EXT.TextureSnorm
+import Graphics.GL.Ext.EXT.TextureStorage
+import Graphics.GL.Ext.EXT.TextureSwizzle
+import Graphics.GL.Ext.EXT.TextureType2101010REV
+import Graphics.GL.Ext.EXT.TextureView
+import Graphics.GL.Ext.EXT.TimerQuery
+import Graphics.GL.Ext.EXT.TransformFeedback
+import Graphics.GL.Ext.EXT.UnpackSubimage
+import Graphics.GL.Ext.EXT.VertexArray
+import Graphics.GL.Ext.EXT.VertexArrayBgra
+import Graphics.GL.Ext.EXT.VertexAttrib64bit
+import Graphics.GL.Ext.EXT.VertexShader
+import Graphics.GL.Ext.EXT.VertexWeighting
+import Graphics.GL.Ext.EXT.WindowRectangles
+import Graphics.GL.Ext.EXT.X11SyncObject
+import Graphics.GL.Ext.EXT.YUVTarget
diff --git a/generated-src/Graphics/GL/Ext/EXT/Abgr.hs b/generated-src/Graphics/GL/Ext/EXT/Abgr.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Abgr.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Abgr (
+  -- * Extension Support
+    gl_EXT_abgr
+
+  -- * GL_EXT_abgr
+  , pattern GL_ABGR_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/abgr.txt GL_EXT_abgr> extension is available.
+
+gl_EXT_abgr :: Bool
+gl_EXT_abgr = member "GL_EXT_abgr" extensions
+{-# NOINLINE gl_EXT_abgr #-}
+
+pattern GL_ABGR_EXT = 0x8000
diff --git a/generated-src/Graphics/GL/Ext/EXT/BaseInstance.hs b/generated-src/Graphics/GL/Ext/EXT/BaseInstance.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BaseInstance.hs
@@ -0,0 +1,74 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BaseInstance (
+  -- * Extension Support
+    gl_EXT_base_instance
+
+  -- * GL_EXT_base_instance
+  , glDrawArraysInstancedBaseInstanceEXT
+  , glDrawElementsInstancedBaseInstanceEXT
+  , glDrawElementsInstancedBaseVertexBaseInstanceEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_EXT_base_instance extension is available.
+
+gl_EXT_base_instance :: Bool
+gl_EXT_base_instance = member "GL_EXT_base_instance" extensions
+{-# NOINLINE gl_EXT_base_instance #-}
+
+-- | Usage: @'glDrawArraysInstancedBaseInstanceEXT' mode first count instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstancedBaseInstance'.
+
+
+glDrawArraysInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
+glDrawArraysInstancedBaseInstanceEXT = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceEXTFunPtr
+
+glDrawArraysInstancedBaseInstanceEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+glDrawArraysInstancedBaseInstanceEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstanceEXT")
+
+{-# NOINLINE glDrawArraysInstancedBaseInstanceEXTFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseInstanceEXT' mode count type indices instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseInstance'.
+
+
+glDrawElementsInstancedBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
+glDrawElementsInstancedBaseInstanceEXT = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceEXTFunPtr
+
+glDrawElementsInstancedBaseInstanceEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
+glDrawElementsInstancedBaseInstanceEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstanceEXT")
+
+{-# NOINLINE glDrawElementsInstancedBaseInstanceEXTFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertexBaseInstanceEXT' mode count type indices instancecount basevertex baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseVertexBaseInstance'.
+
+
+glDrawElementsInstancedBaseVertexBaseInstanceEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
+glDrawElementsInstancedBaseVertexBaseInstanceEXT = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr
+
+glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
+glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstanceEXT")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/Bgra.hs b/generated-src/Graphics/GL/Ext/EXT/Bgra.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Bgra.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Bgra (
+  -- * Extension Support
+    gl_EXT_bgra
+
+  -- * GL_EXT_bgra
+  , pattern GL_BGRA_EXT
+  , pattern GL_BGR_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bgra.txt GL_EXT_bgra> extension is available.
+
+gl_EXT_bgra :: Bool
+gl_EXT_bgra = member "GL_EXT_bgra" extensions
+{-# NOINLINE gl_EXT_bgra #-}
+
+pattern GL_BGR_EXT = 0x80E0
diff --git a/generated-src/Graphics/GL/Ext/EXT/BindableUniform.hs b/generated-src/Graphics/GL/Ext/EXT/BindableUniform.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BindableUniform.hs
@@ -0,0 +1,76 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BindableUniform (
+  -- * Extension Support
+    gl_EXT_bindable_uniform
+
+  -- * GL_EXT_bindable_uniform
+  , glGetUniformBufferSizeEXT
+  , glGetUniformOffsetEXT
+  , glUniformBufferEXT
+  , pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT
+  , pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT
+  , pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT
+  , pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT
+  , pattern GL_UNIFORM_BUFFER_BINDING_EXT
+  , pattern GL_UNIFORM_BUFFER_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/bindable_uniform.txt GL_EXT_bindable_uniform> extension is available.
+
+gl_EXT_bindable_uniform :: Bool
+gl_EXT_bindable_uniform = member "GL_EXT_bindable_uniform" extensions
+{-# NOINLINE gl_EXT_bindable_uniform #-}
+
+-- | Usage: @'glGetUniformBufferSizeEXT' program location@
+
+
+glGetUniformBufferSizeEXT :: MonadIO m => GLuint -> GLint -> m GLint
+glGetUniformBufferSizeEXT = ffiuintintIOint glGetUniformBufferSizeEXTFunPtr
+
+glGetUniformBufferSizeEXTFunPtr :: FunPtr (GLuint -> GLint -> IO GLint)
+glGetUniformBufferSizeEXTFunPtr = unsafePerformIO (getProcAddress "glGetUniformBufferSizeEXT")
+
+{-# NOINLINE glGetUniformBufferSizeEXTFunPtr #-}
+
+-- | Usage: @'glGetUniformOffsetEXT' program location@
+
+
+glGetUniformOffsetEXT :: MonadIO m => GLuint -> GLint -> m GLintptr
+glGetUniformOffsetEXT = ffiuintintIOintptr glGetUniformOffsetEXTFunPtr
+
+glGetUniformOffsetEXTFunPtr :: FunPtr (GLuint -> GLint -> IO GLintptr)
+glGetUniformOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glGetUniformOffsetEXT")
+
+{-# NOINLINE glGetUniformOffsetEXTFunPtr #-}
+
+-- | Usage: @'glUniformBufferEXT' program location buffer@
+
+
+glUniformBufferEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glUniformBufferEXT = ffiuintintuintIOV glUniformBufferEXTFunPtr
+
+glUniformBufferEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glUniformBufferEXTFunPtr = unsafePerformIO (getProcAddress "glUniformBufferEXT")
+
+{-# NOINLINE glUniformBufferEXTFunPtr #-}
+
+pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED
+
+pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3
+
+pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4
+
+pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2
+
+pattern GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF
+
+pattern GL_UNIFORM_BUFFER_EXT = 0x8DEE
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendColor.hs b/generated-src/Graphics/GL/Ext/EXT/BlendColor.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendColor.hs
@@ -0,0 +1,59 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BlendColor (
+  -- * Extension Support
+    gl_EXT_blend_color
+
+  -- * GL_EXT_blend_color
+  , glBlendColorEXT
+  , pattern GL_BLEND_COLOR_EXT
+  , pattern GL_CONSTANT_ALPHA_EXT
+  , pattern GL_CONSTANT_COLOR_EXT
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_color.txt GL_EXT_blend_color> extension is available.
+
+gl_EXT_blend_color :: Bool
+gl_EXT_blend_color = member "GL_EXT_blend_color" extensions
+{-# NOINLINE gl_EXT_blend_color #-}
+
+-- | Usage: @'glBlendColorEXT' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendColor'.
+
+
+glBlendColorEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glBlendColorEXT = ffifloatfloatfloatfloatIOV glBlendColorEXTFunPtr
+
+glBlendColorEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glBlendColorEXTFunPtr = unsafePerformIO (getProcAddress "glBlendColorEXT")
+
+{-# NOINLINE glBlendColorEXTFunPtr #-}
+
+pattern GL_BLEND_COLOR_EXT = 0x8005
+
+pattern GL_CONSTANT_ALPHA_EXT = 0x8003
+
+pattern GL_CONSTANT_COLOR_EXT = 0x8001
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs b/generated-src/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BlendEquationSeparate (
+  -- * Extension Support
+    gl_EXT_blend_equation_separate
+
+  -- * GL_EXT_blend_equation_separate
+  , glBlendEquationSeparateEXT
+  , pattern GL_BLEND_EQUATION_ALPHA_EXT
+  , pattern GL_BLEND_EQUATION_RGB_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_equation_separate.txt GL_EXT_blend_equation_separate> extension is available.
+
+gl_EXT_blend_equation_separate :: Bool
+gl_EXT_blend_equation_separate = member "GL_EXT_blend_equation_separate" extensions
+{-# NOINLINE gl_EXT_blend_equation_separate #-}
+
+-- | Usage: @'glBlendEquationSeparateEXT' modeRGB modeAlpha@
+--
+-- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparate'.
+
+
+glBlendEquationSeparateEXT :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendEquationSeparateEXT = ffienumenumIOV glBlendEquationSeparateEXTFunPtr
+
+glBlendEquationSeparateEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendEquationSeparateEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateEXT")
+
+{-# NOINLINE glBlendEquationSeparateEXTFunPtr #-}
+
+pattern GL_BLEND_EQUATION_ALPHA_EXT = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB_EXT = 0x8009
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendFuncExtended.hs b/generated-src/Graphics/GL/Ext/EXT/BlendFuncExtended.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendFuncExtended.hs
@@ -0,0 +1,87 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BlendFuncExtended (
+  -- * Extension Support
+    gl_EXT_blend_func_extended
+
+  -- * GL_EXT_blend_func_extended
+  , glBindFragDataLocationEXT
+  , glBindFragDataLocationIndexedEXT
+  , glGetFragDataIndexEXT
+  , glGetProgramResourceLocationIndexEXT
+  , pattern GL_LOCATION_INDEX_EXT
+  , pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT
+  , pattern GL_ONE_MINUS_SRC1_ALPHA_EXT
+  , pattern GL_ONE_MINUS_SRC1_COLOR_EXT
+  , pattern GL_SRC1_ALPHA_EXT
+  , pattern GL_SRC1_COLOR_EXT
+  , pattern GL_SRC_ALPHA_SATURATE_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 GL_EXT_blend_func_extended extension is available.
+
+gl_EXT_blend_func_extended :: Bool
+gl_EXT_blend_func_extended = member "GL_EXT_blend_func_extended" extensions
+{-# NOINLINE gl_EXT_blend_func_extended #-}
+
+-- | Usage: @'glBindFragDataLocationIndexedEXT' program colorNumber index name@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindFragDataLocationIndexed'.
+
+
+glBindFragDataLocationIndexedEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocationIndexedEXT = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedEXTFunPtr
+
+glBindFragDataLocationIndexedEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexedEXT")
+
+{-# NOINLINE glBindFragDataLocationIndexedEXTFunPtr #-}
+
+-- | Usage: @'glGetFragDataIndexEXT' program name@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFragDataIndex'.
+
+
+glGetFragDataIndexEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataIndexEXT = ffiuintPtrcharIOint glGetFragDataIndexEXTFunPtr
+
+glGetFragDataIndexEXTFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataIndexEXTFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndexEXT")
+
+{-# NOINLINE glGetFragDataIndexEXTFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceLocationIndexEXT' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+
+
+glGetProgramResourceLocationIndexEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocationIndexEXT = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexEXTFunPtr
+
+glGetProgramResourceLocationIndexEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationIndexEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndexEXT")
+
+{-# NOINLINE glGetProgramResourceLocationIndexEXTFunPtr #-}
+
+pattern GL_LOCATION_INDEX_EXT = 0x930F
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT = 0x88FC
+
+pattern GL_ONE_MINUS_SRC1_ALPHA_EXT = 0x88FB
+
+pattern GL_ONE_MINUS_SRC1_COLOR_EXT = 0x88FA
+
+pattern GL_SRC1_ALPHA_EXT = 0x8589
+
+pattern GL_SRC1_COLOR_EXT = 0x88F9
+
+pattern GL_SRC_ALPHA_SATURATE_EXT = 0x0308
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs b/generated-src/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs
@@ -0,0 +1,56 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BlendFuncSeparate (
+  -- * Extension Support
+    gl_EXT_blend_func_separate
+
+  -- * GL_EXT_blend_func_separate
+  , glBlendFuncSeparateEXT
+  , pattern GL_BLEND_DST_ALPHA_EXT
+  , pattern GL_BLEND_DST_RGB_EXT
+  , pattern GL_BLEND_SRC_ALPHA_EXT
+  , pattern GL_BLEND_SRC_RGB_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_func_separate.txt GL_EXT_blend_func_separate> extension is available.
+
+gl_EXT_blend_func_separate :: Bool
+gl_EXT_blend_func_separate = member "GL_EXT_blend_func_separate" extensions
+{-# NOINLINE gl_EXT_blend_func_separate #-}
+
+-- | Usage: @'glBlendFuncSeparateEXT' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
+--
+-- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparate'.
+
+
+glBlendFuncSeparateEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparateEXT = ffienumenumenumenumIOV glBlendFuncSeparateEXTFunPtr
+
+glBlendFuncSeparateEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateEXTFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateEXT")
+
+{-# NOINLINE glBlendFuncSeparateEXTFunPtr #-}
+
+pattern GL_BLEND_DST_ALPHA_EXT = 0x80CA
+
+pattern GL_BLEND_DST_RGB_EXT = 0x80C8
+
+pattern GL_BLEND_SRC_ALPHA_EXT = 0x80CB
+
+pattern GL_BLEND_SRC_RGB_EXT = 0x80C9
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendLogicOp.hs b/generated-src/Graphics/GL/Ext/EXT/BlendLogicOp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendLogicOp.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BlendLogicOp (
+  -- * Extension Support
+    gl_EXT_blend_logic_op
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_logic_op.txt GL_EXT_blend_logic_op> extension is available.
+
+gl_EXT_blend_logic_op :: Bool
+gl_EXT_blend_logic_op = member "GL_EXT_blend_logic_op" extensions
+{-# NOINLINE gl_EXT_blend_logic_op #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendMinmax.hs b/generated-src/Graphics/GL/Ext/EXT/BlendMinmax.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendMinmax.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BlendMinmax (
+  -- * Extension Support
+    gl_EXT_blend_minmax
+
+  -- * GL_EXT_blend_minmax
+  , glBlendEquationEXT
+  , pattern GL_BLEND_EQUATION_EXT
+  , pattern GL_FUNC_ADD_EXT
+  , pattern GL_MAX_EXT
+  , pattern GL_MIN_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_blend_minmax.txt GL_EXT_blend_minmax> extension is available.
+
+gl_EXT_blend_minmax :: Bool
+gl_EXT_blend_minmax = member "GL_EXT_blend_minmax" extensions
+{-# NOINLINE gl_EXT_blend_minmax #-}
+
+-- | Usage: @'glBlendEquationEXT' mode@
+--
+-- The parameter @mode@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquation'.
+
+
+glBlendEquationEXT :: MonadIO m => GLenum -> m ()
+glBlendEquationEXT = ffienumIOV glBlendEquationEXTFunPtr
+
+glBlendEquationEXTFunPtr :: FunPtr (GLenum -> IO ())
+glBlendEquationEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationEXT")
+
+{-# NOINLINE glBlendEquationEXTFunPtr #-}
+
+pattern GL_BLEND_EQUATION_EXT = 0x8009
+
+pattern GL_FUNC_ADD_EXT = 0x8006
+
+pattern GL_MAX_EXT = 0x8008
+
+pattern GL_MIN_EXT = 0x8007
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendSubtract.hs b/generated-src/Graphics/GL/Ext/EXT/BlendSubtract.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendSubtract.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BlendSubtract (
+  -- * Extension Support
+    gl_EXT_blend_subtract
+
+  -- * GL_EXT_blend_subtract
+  , pattern GL_FUNC_REVERSE_SUBTRACT_EXT
+  , pattern GL_FUNC_SUBTRACT_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/blend_subtract.txt GL_EXT_blend_subtract> extension is available.
+
+gl_EXT_blend_subtract :: Bool
+gl_EXT_blend_subtract = member "GL_EXT_blend_subtract" extensions
+{-# NOINLINE gl_EXT_blend_subtract #-}
+
+pattern GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B
+
+pattern GL_FUNC_SUBTRACT_EXT = 0x800A
diff --git a/generated-src/Graphics/GL/Ext/EXT/BufferStorage.hs b/generated-src/Graphics/GL/Ext/EXT/BufferStorage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/BufferStorage.hs
@@ -0,0 +1,62 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.BufferStorage (
+  -- * Extension Support
+    gl_EXT_buffer_storage
+
+  -- * GL_EXT_buffer_storage
+  , glBufferStorageEXT
+  , pattern GL_BUFFER_IMMUTABLE_STORAGE_EXT
+  , pattern GL_BUFFER_STORAGE_FLAGS_EXT
+  , pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT
+  , pattern GL_CLIENT_STORAGE_BIT_EXT
+  , pattern GL_DYNAMIC_STORAGE_BIT_EXT
+  , pattern GL_MAP_COHERENT_BIT_EXT
+  , pattern GL_MAP_PERSISTENT_BIT_EXT
+  , pattern GL_MAP_READ_BIT
+  , pattern GL_MAP_WRITE_BIT
+) 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://www.khronos.org/registry/gles/extensions/EXT/EXT_buffer_storage.txt GL_EXT_buffer_storage> extension is available.
+
+gl_EXT_buffer_storage :: Bool
+gl_EXT_buffer_storage = member "GL_EXT_buffer_storage" extensions
+{-# NOINLINE gl_EXT_buffer_storage #-}
+
+-- | Usage: @'glBufferStorageEXT' target size data flags@
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBufferStorage'.
+
+
+glBufferStorageEXT :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glBufferStorageEXT = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageEXTFunPtr
+
+glBufferStorageEXTFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glBufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glBufferStorageEXT")
+
+{-# NOINLINE glBufferStorageEXTFunPtr #-}
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE_EXT = 0x821F
+
+pattern GL_BUFFER_STORAGE_FLAGS_EXT = 0x8220
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT = 0x00004000
+
+pattern GL_CLIENT_STORAGE_BIT_EXT = 0x0200
+
+pattern GL_DYNAMIC_STORAGE_BIT_EXT = 0x0100
+
+pattern GL_MAP_COHERENT_BIT_EXT = 0x0080
+
+pattern GL_MAP_PERSISTENT_BIT_EXT = 0x0040
diff --git a/generated-src/Graphics/GL/Ext/EXT/ClearTexture.hs b/generated-src/Graphics/GL/Ext/EXT/ClearTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ClearTexture.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ClearTexture (
+  -- * Extension Support
+    gl_EXT_clear_texture
+
+  -- * GL_EXT_clear_texture
+  , glClearTexImageEXT
+  , glClearTexSubImageEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clear_texture.txt GL_EXT_clear_texture> extension is available.
+
+gl_EXT_clear_texture :: Bool
+gl_EXT_clear_texture = member "GL_EXT_clear_texture" extensions
+{-# NOINLINE gl_EXT_clear_texture #-}
+
+-- | Usage: @'glClearTexImageEXT' texture level format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glClearTexImage'.
+
+
+glClearTexImageEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexImageEXT = ffiuintintenumenumPtrVIOV glClearTexImageEXTFunPtr
+
+glClearTexImageEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glClearTexImageEXT")
+
+{-# NOINLINE glClearTexImageEXTFunPtr #-}
+
+-- | Usage: @'glClearTexSubImageEXT' texture level xoffset yoffset zoffset width height depth format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glClearTexSubImage'.
+
+
+glClearTexSubImageEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexSubImageEXT = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageEXTFunPtr
+
+glClearTexSubImageEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexSubImageEXTFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImageEXT")
+
+{-# NOINLINE glClearTexSubImageEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ClipCullDistance.hs b/generated-src/Graphics/GL/Ext/EXT/ClipCullDistance.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ClipCullDistance.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ClipCullDistance (
+  -- * Extension Support
+    gl_EXT_clip_cull_distance
+
+  -- * GL_EXT_clip_cull_distance
+  , pattern GL_CLIP_DISTANCE0_EXT
+  , pattern GL_CLIP_DISTANCE1_EXT
+  , pattern GL_CLIP_DISTANCE2_EXT
+  , pattern GL_CLIP_DISTANCE3_EXT
+  , pattern GL_CLIP_DISTANCE4_EXT
+  , pattern GL_CLIP_DISTANCE5_EXT
+  , pattern GL_CLIP_DISTANCE6_EXT
+  , pattern GL_CLIP_DISTANCE7_EXT
+  , pattern GL_MAX_CLIP_DISTANCES_EXT
+  , pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT
+  , pattern GL_MAX_CULL_DISTANCES_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_clip_cull_distance.txt GL_EXT_clip_cull_distance> extension is available.
+
+gl_EXT_clip_cull_distance :: Bool
+gl_EXT_clip_cull_distance = member "GL_EXT_clip_cull_distance" extensions
+{-# NOINLINE gl_EXT_clip_cull_distance #-}
+
+pattern GL_CLIP_DISTANCE0_EXT = 0x3000
+
+pattern GL_CLIP_DISTANCE1_EXT = 0x3001
+
+pattern GL_CLIP_DISTANCE2_EXT = 0x3002
+
+pattern GL_CLIP_DISTANCE3_EXT = 0x3003
+
+pattern GL_CLIP_DISTANCE4_EXT = 0x3004
+
+pattern GL_CLIP_DISTANCE5_EXT = 0x3005
+
+pattern GL_CLIP_DISTANCE6_EXT = 0x3006
+
+pattern GL_CLIP_DISTANCE7_EXT = 0x3007
+
+pattern GL_MAX_CLIP_DISTANCES_EXT = 0x0D32
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT = 0x82FA
+
+pattern GL_MAX_CULL_DISTANCES_EXT = 0x82F9
diff --git a/generated-src/Graphics/GL/Ext/EXT/ClipVolumeHint.hs b/generated-src/Graphics/GL/Ext/EXT/ClipVolumeHint.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ClipVolumeHint.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ClipVolumeHint (
+  -- * Extension Support
+    gl_EXT_clip_volume_hint
+
+  -- * GL_EXT_clip_volume_hint
+  , pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/clip_volume_hint.txt GL_EXT_clip_volume_hint> extension is available.
+
+gl_EXT_clip_volume_hint :: Bool
+gl_EXT_clip_volume_hint = member "GL_EXT_clip_volume_hint" extensions
+{-# NOINLINE gl_EXT_clip_volume_hint #-}
+
+pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0
diff --git a/generated-src/Graphics/GL/Ext/EXT/Cmyka.hs b/generated-src/Graphics/GL/Ext/EXT/Cmyka.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Cmyka.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Cmyka (
+  -- * Extension Support
+    gl_EXT_cmyka
+
+  -- * GL_EXT_cmyka
+  , pattern GL_CMYKA_EXT
+  , pattern GL_CMYK_EXT
+  , pattern GL_PACK_CMYK_HINT_EXT
+  , pattern GL_UNPACK_CMYK_HINT_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cmyka.txt GL_EXT_cmyka> extension is available.
+
+gl_EXT_cmyka :: Bool
+gl_EXT_cmyka = member "GL_EXT_cmyka" extensions
+{-# NOINLINE gl_EXT_cmyka #-}
+
+pattern GL_CMYKA_EXT = 0x800D
+
+pattern GL_CMYK_EXT = 0x800C
+
+pattern GL_PACK_CMYK_HINT_EXT = 0x800E
+
+pattern GL_UNPACK_CMYK_HINT_EXT = 0x800F
diff --git a/generated-src/Graphics/GL/Ext/EXT/ColorBufferFloat.hs b/generated-src/Graphics/GL/Ext/EXT/ColorBufferFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ColorBufferFloat.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ColorBufferFloat (
+  -- * Extension Support
+    gl_EXT_color_buffer_float
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_float.txt GL_EXT_color_buffer_float> extension is available.
+
+gl_EXT_color_buffer_float :: Bool
+gl_EXT_color_buffer_float = member "GL_EXT_color_buffer_float" extensions
+{-# NOINLINE gl_EXT_color_buffer_float #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs b/generated-src/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs
@@ -0,0 +1,28 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ColorBufferHalfFloat (
+  -- * Extension Support
+    gl_EXT_color_buffer_half_float
+
+  -- * GL_EXT_color_buffer_half_float
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT
+  , pattern GL_R16F_EXT
+  , pattern GL_RG16F_EXT
+  , pattern GL_RGB16F_EXT
+  , pattern GL_RGBA16F_EXT
+  , pattern GL_UNSIGNED_NORMALIZED_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_color_buffer_half_float.txt GL_EXT_color_buffer_half_float> extension is available.
+
+gl_EXT_color_buffer_half_float :: Bool
+gl_EXT_color_buffer_half_float = member "GL_EXT_color_buffer_half_float" extensions
+{-# NOINLINE gl_EXT_color_buffer_half_float #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211
+
+pattern GL_UNSIGNED_NORMALIZED_EXT = 0x8C17
diff --git a/generated-src/Graphics/GL/Ext/EXT/ColorSubtable.hs b/generated-src/Graphics/GL/Ext/EXT/ColorSubtable.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ColorSubtable.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ColorSubtable (
+  -- * Extension Support
+    gl_EXT_color_subtable
+
+  -- * GL_EXT_color_subtable
+  , glColorSubTableEXT
+  , glCopyColorSubTableEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/color_subtable.txt GL_EXT_color_subtable> extension is available.
+
+gl_EXT_color_subtable :: Bool
+gl_EXT_color_subtable = member "GL_EXT_color_subtable" extensions
+{-# NOINLINE gl_EXT_color_subtable #-}
+
+-- | Usage: @'glColorSubTableEXT' target start count format type data@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type,count)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorSubTable'.
+
+
+glColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glColorSubTableEXT = ffienumsizeisizeienumenumPtrVIOV glColorSubTableEXTFunPtr
+
+glColorSubTableEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glColorSubTableEXTFunPtr = unsafePerformIO (getProcAddress "glColorSubTableEXT")
+
+{-# NOINLINE glColorSubTableEXTFunPtr #-}
+
+-- | Usage: @'glCopyColorSubTableEXT' target start x y width@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyColorSubTable'.
+
+
+glCopyColorSubTableEXT :: MonadIO m => GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
+glCopyColorSubTableEXT = ffienumsizeiintintsizeiIOV glCopyColorSubTableEXTFunPtr
+
+glCopyColorSubTableEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
+glCopyColorSubTableEXTFunPtr = unsafePerformIO (getProcAddress "glCopyColorSubTableEXT")
+
+{-# NOINLINE glCopyColorSubTableEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/CompiledVertexArray.hs b/generated-src/Graphics/GL/Ext/EXT/CompiledVertexArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/CompiledVertexArray.hs
@@ -0,0 +1,52 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.CompiledVertexArray (
+  -- * Extension Support
+    gl_EXT_compiled_vertex_array
+
+  -- * GL_EXT_compiled_vertex_array
+  , glLockArraysEXT
+  , glUnlockArraysEXT
+  , pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT
+  , pattern GL_ARRAY_ELEMENT_LOCK_FIRST_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/compiled_vertex_array.txt GL_EXT_compiled_vertex_array> extension is available.
+
+gl_EXT_compiled_vertex_array :: Bool
+gl_EXT_compiled_vertex_array = member "GL_EXT_compiled_vertex_array" extensions
+{-# NOINLINE gl_EXT_compiled_vertex_array #-}
+
+-- | Usage: @'glLockArraysEXT' first count@
+
+
+glLockArraysEXT :: MonadIO m => GLint -> GLsizei -> m ()
+glLockArraysEXT = ffiintsizeiIOV glLockArraysEXTFunPtr
+
+glLockArraysEXTFunPtr :: FunPtr (GLint -> GLsizei -> IO ())
+glLockArraysEXTFunPtr = unsafePerformIO (getProcAddress "glLockArraysEXT")
+
+{-# NOINLINE glLockArraysEXTFunPtr #-}
+
+-- | Usage: @'glUnlockArraysEXT'@
+
+
+glUnlockArraysEXT :: MonadIO m => m ()
+glUnlockArraysEXT = ffiIOV glUnlockArraysEXTFunPtr
+
+glUnlockArraysEXTFunPtr :: FunPtr (IO ())
+glUnlockArraysEXTFunPtr = unsafePerformIO (getProcAddress "glUnlockArraysEXT")
+
+{-# NOINLINE glUnlockArraysEXTFunPtr #-}
+
+pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9
+
+pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8
diff --git a/generated-src/Graphics/GL/Ext/EXT/ConservativeDepth.hs b/generated-src/Graphics/GL/Ext/EXT/ConservativeDepth.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ConservativeDepth.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ConservativeDepth (
+  -- * Extension Support
+    gl_EXT_conservative_depth
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_conservative_depth.txt GL_EXT_conservative_depth> extension is available.
+
+gl_EXT_conservative_depth :: Bool
+gl_EXT_conservative_depth = member "GL_EXT_conservative_depth" extensions
+{-# NOINLINE gl_EXT_conservative_depth #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/Convolution.hs b/generated-src/Graphics/GL/Ext/EXT/Convolution.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Convolution.hs
@@ -0,0 +1,364 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Convolution (
+  -- * Extension Support
+    gl_EXT_convolution
+
+  -- * GL_EXT_convolution
+  , glConvolutionFilter1DEXT
+  , glConvolutionFilter2DEXT
+  , glConvolutionParameterfEXT
+  , glConvolutionParameterfvEXT
+  , glConvolutionParameteriEXT
+  , glConvolutionParameterivEXT
+  , glCopyConvolutionFilter1DEXT
+  , glCopyConvolutionFilter2DEXT
+  , glGetConvolutionFilterEXT
+  , glGetConvolutionParameterfvEXT
+  , glGetConvolutionParameterivEXT
+  , glGetSeparableFilterEXT
+  , glSeparableFilter2DEXT
+  , pattern GL_CONVOLUTION_1D_EXT
+  , pattern GL_CONVOLUTION_2D_EXT
+  , pattern GL_CONVOLUTION_BORDER_MODE_EXT
+  , pattern GL_CONVOLUTION_FILTER_BIAS_EXT
+  , pattern GL_CONVOLUTION_FILTER_SCALE_EXT
+  , pattern GL_CONVOLUTION_FORMAT_EXT
+  , pattern GL_CONVOLUTION_HEIGHT_EXT
+  , pattern GL_CONVOLUTION_WIDTH_EXT
+  , pattern GL_MAX_CONVOLUTION_HEIGHT_EXT
+  , pattern GL_MAX_CONVOLUTION_WIDTH_EXT
+  , pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT
+  , pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT
+  , pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT
+  , pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT
+  , pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT
+  , pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT
+  , pattern GL_POST_CONVOLUTION_RED_BIAS_EXT
+  , pattern GL_POST_CONVOLUTION_RED_SCALE_EXT
+  , pattern GL_REDUCE_EXT
+  , pattern GL_SEPARABLE_2D_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/convolution.txt GL_EXT_convolution> extension is available.
+
+gl_EXT_convolution :: Bool
+gl_EXT_convolution = member "GL_EXT_convolution" extensions
+{-# NOINLINE gl_EXT_convolution #-}
+
+-- | Usage: @'glConvolutionFilter1DEXT' target internalformat width format type image@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionFilter1D'.
+
+
+glConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glConvolutionFilter1DEXT = ffienumenumsizeienumenumPtrVIOV glConvolutionFilter1DEXTFunPtr
+
+glConvolutionFilter1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glConvolutionFilter1DEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter1DEXT")
+
+{-# NOINLINE glConvolutionFilter1DEXTFunPtr #-}
+
+-- | Usage: @'glConvolutionFilter2DEXT' target internalformat width height format type image@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionFilter2D'.
+
+
+glConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glConvolutionFilter2DEXT = ffienumenumsizeisizeienumenumPtrVIOV glConvolutionFilter2DEXTFunPtr
+
+glConvolutionFilter2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glConvolutionFilter2DEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionFilter2DEXT")
+
+{-# NOINLINE glConvolutionFilter2DEXTFunPtr #-}
+
+-- | Usage: @'glConvolutionParameterfEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameterf'.
+
+
+glConvolutionParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glConvolutionParameterfEXT = ffienumenumfloatIOV glConvolutionParameterfEXTFunPtr
+
+glConvolutionParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glConvolutionParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterfEXT")
+
+{-# NOINLINE glConvolutionParameterfEXTFunPtr #-}
+
+-- | Usage: @'glConvolutionParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameterfv'.
+
+
+glConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glConvolutionParameterfvEXT = ffienumenumPtrfloatIOV glConvolutionParameterfvEXTFunPtr
+
+glConvolutionParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glConvolutionParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterfvEXT")
+
+{-# NOINLINE glConvolutionParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glConvolutionParameteriEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameteri'.
+
+
+glConvolutionParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glConvolutionParameteriEXT = ffienumenumintIOV glConvolutionParameteriEXTFunPtr
+
+glConvolutionParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glConvolutionParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameteriEXT")
+
+{-# NOINLINE glConvolutionParameteriEXTFunPtr #-}
+
+-- | Usage: @'glConvolutionParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glConvolutionParameteriv'.
+
+
+glConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glConvolutionParameterivEXT = ffienumenumPtrintIOV glConvolutionParameterivEXTFunPtr
+
+glConvolutionParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glConvolutionParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterivEXT")
+
+{-# NOINLINE glConvolutionParameterivEXTFunPtr #-}
+
+-- | Usage: @'glCopyConvolutionFilter1DEXT' target internalformat x y width@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyConvolutionFilter1D'.
+
+
+glCopyConvolutionFilter1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
+glCopyConvolutionFilter1DEXT = ffienumenumintintsizeiIOV glCopyConvolutionFilter1DEXTFunPtr
+
+glCopyConvolutionFilter1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+glCopyConvolutionFilter1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter1DEXT")
+
+{-# NOINLINE glCopyConvolutionFilter1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyConvolutionFilter2DEXT' target internalformat x y width height@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyConvolutionFilter2D'.
+
+
+glCopyConvolutionFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyConvolutionFilter2DEXT = ffienumenumintintsizeisizeiIOV glCopyConvolutionFilter2DEXTFunPtr
+
+glCopyConvolutionFilter2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyConvolutionFilter2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyConvolutionFilter2DEXT")
+
+{-# NOINLINE glCopyConvolutionFilter2DEXTFunPtr #-}
+
+-- | Usage: @'glGetConvolutionFilterEXT' target format type image@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @image@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetConvolutionFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glGetConvolutionFilterEXT = ffienumenumenumPtrVIOV glGetConvolutionFilterEXTFunPtr
+
+glGetConvolutionFilterEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetConvolutionFilterEXTFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionFilterEXT")
+
+{-# NOINLINE glGetConvolutionFilterEXTFunPtr #-}
+
+-- | Usage: @'glGetConvolutionParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetConvolutionParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetConvolutionParameterfvEXT = ffienumenumPtrfloatIOV glGetConvolutionParameterfvEXTFunPtr
+
+glGetConvolutionParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetConvolutionParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterfvEXT")
+
+{-# NOINLINE glGetConvolutionParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetConvolutionParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @ConvolutionTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_1D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT'.
+--
+-- The parameter @pname@ is a @ConvolutionParameterEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_BORDER_MODE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_BORDER_MODE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_CONVOLUTION_FILTER_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_FILTER_SCALE_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetConvolutionParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetConvolutionParameterivEXT = ffienumenumPtrintIOV glGetConvolutionParameterivEXTFunPtr
+
+glGetConvolutionParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetConvolutionParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterivEXT")
+
+{-# NOINLINE glGetConvolutionParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetSeparableFilterEXT' target format type row column span@
+--
+-- The parameter @target@ is a @SeparableTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_SEPARABLE_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type)@.
+--
+-- The length of @span@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetSeparableFilterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
+glGetSeparableFilterEXT = ffienumenumenumPtrVPtrVPtrVIOV glGetSeparableFilterEXTFunPtr
+
+glGetSeparableFilterEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ())
+glGetSeparableFilterEXTFunPtr = unsafePerformIO (getProcAddress "glGetSeparableFilterEXT")
+
+{-# NOINLINE glGetSeparableFilterEXTFunPtr #-}
+
+-- | Usage: @'glSeparableFilter2DEXT' target internalformat width height format type row column@
+--
+-- The parameter @target@ is a @SeparableTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_SEPARABLE_2D', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @row@ should be @COMPSIZE(target,format,type,width)@.
+--
+-- The length of @column@ should be @COMPSIZE(target,format,type,height)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glSeparableFilter2D'.
+
+
+glSeparableFilter2DEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
+glSeparableFilter2DEXT = ffienumenumsizeisizeienumenumPtrVPtrVIOV glSeparableFilter2DEXTFunPtr
+
+glSeparableFilter2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ())
+glSeparableFilter2DEXTFunPtr = unsafePerformIO (getProcAddress "glSeparableFilter2DEXT")
+
+{-# NOINLINE glSeparableFilter2DEXTFunPtr #-}
+
+pattern GL_CONVOLUTION_1D_EXT = 0x8010
+
+pattern GL_CONVOLUTION_2D_EXT = 0x8011
+
+pattern GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013
+
+pattern GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015
+
+pattern GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014
+
+pattern GL_CONVOLUTION_FORMAT_EXT = 0x8017
+
+pattern GL_CONVOLUTION_HEIGHT_EXT = 0x8019
+
+pattern GL_CONVOLUTION_WIDTH_EXT = 0x8018
+
+pattern GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B
+
+pattern GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A
+
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023
+
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F
+
+pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022
+
+pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E
+
+pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021
+
+pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D
+
+pattern GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020
+
+pattern GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C
+
+pattern GL_REDUCE_EXT = 0x8016
+
+pattern GL_SEPARABLE_2D_EXT = 0x8012
diff --git a/generated-src/Graphics/GL/Ext/EXT/CoordinateFrame.hs b/generated-src/Graphics/GL/Ext/EXT/CoordinateFrame.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/CoordinateFrame.hs
@@ -0,0 +1,408 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.CoordinateFrame (
+  -- * Extension Support
+    gl_EXT_coordinate_frame
+
+  -- * GL_EXT_coordinate_frame
+  , glBinormal3bEXT
+  , glBinormal3bvEXT
+  , glBinormal3dEXT
+  , glBinormal3dvEXT
+  , glBinormal3fEXT
+  , glBinormal3fvEXT
+  , glBinormal3iEXT
+  , glBinormal3ivEXT
+  , glBinormal3sEXT
+  , glBinormal3svEXT
+  , glBinormalPointerEXT
+  , glTangent3bEXT
+  , glTangent3bvEXT
+  , glTangent3dEXT
+  , glTangent3dvEXT
+  , glTangent3fEXT
+  , glTangent3fvEXT
+  , glTangent3iEXT
+  , glTangent3ivEXT
+  , glTangent3sEXT
+  , glTangent3svEXT
+  , glTangentPointerEXT
+  , pattern GL_BINORMAL_ARRAY_EXT
+  , pattern GL_BINORMAL_ARRAY_POINTER_EXT
+  , pattern GL_BINORMAL_ARRAY_STRIDE_EXT
+  , pattern GL_BINORMAL_ARRAY_TYPE_EXT
+  , pattern GL_CURRENT_BINORMAL_EXT
+  , pattern GL_CURRENT_TANGENT_EXT
+  , pattern GL_MAP1_BINORMAL_EXT
+  , pattern GL_MAP1_TANGENT_EXT
+  , pattern GL_MAP2_BINORMAL_EXT
+  , pattern GL_MAP2_TANGENT_EXT
+  , pattern GL_TANGENT_ARRAY_EXT
+  , pattern GL_TANGENT_ARRAY_POINTER_EXT
+  , pattern GL_TANGENT_ARRAY_STRIDE_EXT
+  , pattern GL_TANGENT_ARRAY_TYPE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/coordinate_frame.txt GL_EXT_coordinate_frame> extension is available.
+
+gl_EXT_coordinate_frame :: Bool
+gl_EXT_coordinate_frame = member "GL_EXT_coordinate_frame" extensions
+{-# NOINLINE gl_EXT_coordinate_frame #-}
+
+-- | Usage: @'glBinormal3bEXT' bx by bz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3bvEXT'.
+
+
+glBinormal3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glBinormal3bEXT = ffibytebytebyteIOV glBinormal3bEXTFunPtr
+
+glBinormal3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glBinormal3bEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3bEXT")
+
+{-# NOINLINE glBinormal3bEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3bvEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glBinormal3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
+glBinormal3bvEXT = ffiPtrbyteIOV glBinormal3bvEXTFunPtr
+
+glBinormal3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glBinormal3bvEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3bvEXT")
+
+{-# NOINLINE glBinormal3bvEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3dEXT' bx by bz@
+--
+-- The parameter @bx@ is a @CoordD@.
+--
+-- The parameter @by@ is a @CoordD@.
+--
+-- The parameter @bz@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3dvEXT'.
+
+
+glBinormal3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glBinormal3dEXT = ffidoubledoubledoubleIOV glBinormal3dEXTFunPtr
+
+glBinormal3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glBinormal3dEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3dEXT")
+
+{-# NOINLINE glBinormal3dEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3dvEXT' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glBinormal3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
+glBinormal3dvEXT = ffiPtrdoubleIOV glBinormal3dvEXTFunPtr
+
+glBinormal3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glBinormal3dvEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3dvEXT")
+
+{-# NOINLINE glBinormal3dvEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3fEXT' bx by bz@
+--
+-- The parameter @bx@ is a @CoordF@.
+--
+-- The parameter @by@ is a @CoordF@.
+--
+-- The parameter @bz@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3fvEXT'.
+
+
+glBinormal3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glBinormal3fEXT = ffifloatfloatfloatIOV glBinormal3fEXTFunPtr
+
+glBinormal3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glBinormal3fEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3fEXT")
+
+{-# NOINLINE glBinormal3fEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3fvEXT' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glBinormal3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
+glBinormal3fvEXT = ffiPtrfloatIOV glBinormal3fvEXTFunPtr
+
+glBinormal3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glBinormal3fvEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3fvEXT")
+
+{-# NOINLINE glBinormal3fvEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3iEXT' bx by bz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3ivEXT'.
+
+
+glBinormal3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glBinormal3iEXT = ffiintintintIOV glBinormal3iEXTFunPtr
+
+glBinormal3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glBinormal3iEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3iEXT")
+
+{-# NOINLINE glBinormal3iEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3ivEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glBinormal3ivEXT :: MonadIO m => Ptr GLint -> m ()
+glBinormal3ivEXT = ffiPtrintIOV glBinormal3ivEXTFunPtr
+
+glBinormal3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
+glBinormal3ivEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3ivEXT")
+
+{-# NOINLINE glBinormal3ivEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3sEXT' bx by bz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glBinormal3svEXT'.
+
+
+glBinormal3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glBinormal3sEXT = ffishortshortshortIOV glBinormal3sEXTFunPtr
+
+glBinormal3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glBinormal3sEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3sEXT")
+
+{-# NOINLINE glBinormal3sEXTFunPtr #-}
+
+-- | Usage: @'glBinormal3svEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glBinormal3svEXT :: MonadIO m => Ptr GLshort -> m ()
+glBinormal3svEXT = ffiPtrshortIOV glBinormal3svEXTFunPtr
+
+glBinormal3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glBinormal3svEXTFunPtr = unsafePerformIO (getProcAddress "glBinormal3svEXT")
+
+{-# NOINLINE glBinormal3svEXTFunPtr #-}
+
+-- | Usage: @'glBinormalPointerEXT' type stride pointer@
+--
+-- The parameter @type@ is a @BinormalPointerTypeEXT@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glBinormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glBinormalPointerEXT = ffienumsizeiPtrVIOV glBinormalPointerEXTFunPtr
+
+glBinormalPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glBinormalPointerEXTFunPtr = unsafePerformIO (getProcAddress "glBinormalPointerEXT")
+
+{-# NOINLINE glBinormalPointerEXTFunPtr #-}
+
+-- | Usage: @'glTangent3bEXT' tx ty tz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3bvEXT'.
+
+
+glTangent3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glTangent3bEXT = ffibytebytebyteIOV glTangent3bEXTFunPtr
+
+glTangent3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glTangent3bEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3bEXT")
+
+{-# NOINLINE glTangent3bEXTFunPtr #-}
+
+-- | Usage: @'glTangent3bvEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glTangent3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
+glTangent3bvEXT = ffiPtrbyteIOV glTangent3bvEXTFunPtr
+
+glTangent3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glTangent3bvEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3bvEXT")
+
+{-# NOINLINE glTangent3bvEXTFunPtr #-}
+
+-- | Usage: @'glTangent3dEXT' tx ty tz@
+--
+-- The parameter @tx@ is a @CoordD@.
+--
+-- The parameter @ty@ is a @CoordD@.
+--
+-- The parameter @tz@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3dvEXT'.
+
+
+glTangent3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glTangent3dEXT = ffidoubledoubledoubleIOV glTangent3dEXTFunPtr
+
+glTangent3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glTangent3dEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3dEXT")
+
+{-# NOINLINE glTangent3dEXTFunPtr #-}
+
+-- | Usage: @'glTangent3dvEXT' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTangent3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
+glTangent3dvEXT = ffiPtrdoubleIOV glTangent3dvEXTFunPtr
+
+glTangent3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTangent3dvEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3dvEXT")
+
+{-# NOINLINE glTangent3dvEXTFunPtr #-}
+
+-- | Usage: @'glTangent3fEXT' tx ty tz@
+--
+-- The parameter @tx@ is a @CoordF@.
+--
+-- The parameter @ty@ is a @CoordF@.
+--
+-- The parameter @tz@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3fvEXT'.
+
+
+glTangent3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glTangent3fEXT = ffifloatfloatfloatIOV glTangent3fEXTFunPtr
+
+glTangent3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glTangent3fEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3fEXT")
+
+{-# NOINLINE glTangent3fEXTFunPtr #-}
+
+-- | Usage: @'glTangent3fvEXT' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTangent3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
+glTangent3fvEXT = ffiPtrfloatIOV glTangent3fvEXTFunPtr
+
+glTangent3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTangent3fvEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3fvEXT")
+
+{-# NOINLINE glTangent3fvEXTFunPtr #-}
+
+-- | Usage: @'glTangent3iEXT' tx ty tz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3ivEXT'.
+
+
+glTangent3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glTangent3iEXT = ffiintintintIOV glTangent3iEXTFunPtr
+
+glTangent3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glTangent3iEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3iEXT")
+
+{-# NOINLINE glTangent3iEXTFunPtr #-}
+
+-- | Usage: @'glTangent3ivEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glTangent3ivEXT :: MonadIO m => Ptr GLint -> m ()
+glTangent3ivEXT = ffiPtrintIOV glTangent3ivEXTFunPtr
+
+glTangent3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTangent3ivEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3ivEXT")
+
+{-# NOINLINE glTangent3ivEXTFunPtr #-}
+
+-- | Usage: @'glTangent3sEXT' tx ty tz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.CoordinateFrame.glTangent3svEXT'.
+
+
+glTangent3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glTangent3sEXT = ffishortshortshortIOV glTangent3sEXTFunPtr
+
+glTangent3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glTangent3sEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3sEXT")
+
+{-# NOINLINE glTangent3sEXTFunPtr #-}
+
+-- | Usage: @'glTangent3svEXT' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glTangent3svEXT :: MonadIO m => Ptr GLshort -> m ()
+glTangent3svEXT = ffiPtrshortIOV glTangent3svEXTFunPtr
+
+glTangent3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTangent3svEXTFunPtr = unsafePerformIO (getProcAddress "glTangent3svEXT")
+
+{-# NOINLINE glTangent3svEXTFunPtr #-}
+
+-- | Usage: @'glTangentPointerEXT' type stride pointer@
+--
+-- The parameter @type@ is a @TangentPointerTypeEXT@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glTangentPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glTangentPointerEXT = ffienumsizeiPtrVIOV glTangentPointerEXTFunPtr
+
+glTangentPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glTangentPointerEXTFunPtr = unsafePerformIO (getProcAddress "glTangentPointerEXT")
+
+{-# NOINLINE glTangentPointerEXTFunPtr #-}
+
+pattern GL_BINORMAL_ARRAY_EXT = 0x843A
+
+pattern GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443
+
+pattern GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441
+
+pattern GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440
+
+pattern GL_CURRENT_BINORMAL_EXT = 0x843C
+
+pattern GL_CURRENT_TANGENT_EXT = 0x843B
+
+pattern GL_MAP1_BINORMAL_EXT = 0x8446
+
+pattern GL_MAP1_TANGENT_EXT = 0x8444
+
+pattern GL_MAP2_BINORMAL_EXT = 0x8447
+
+pattern GL_MAP2_TANGENT_EXT = 0x8445
+
+pattern GL_TANGENT_ARRAY_EXT = 0x8439
+
+pattern GL_TANGENT_ARRAY_POINTER_EXT = 0x8442
+
+pattern GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F
+
+pattern GL_TANGENT_ARRAY_TYPE_EXT = 0x843E
diff --git a/generated-src/Graphics/GL/Ext/EXT/CopyImage.hs b/generated-src/Graphics/GL/Ext/EXT/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/CopyImage.hs
@@ -0,0 +1,36 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.CopyImage (
+  -- * Extension Support
+    gl_EXT_copy_image
+
+  -- * GL_EXT_copy_image
+  , glCopyImageSubDataEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_copy_image.txt GL_EXT_copy_image> extension is available.
+
+gl_EXT_copy_image :: Bool
+gl_EXT_copy_image = member "GL_EXT_copy_image" extensions
+{-# NOINLINE gl_EXT_copy_image #-}
+
+-- | Usage: @'glCopyImageSubDataEXT' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyImageSubData'.
+
+
+glCopyImageSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glCopyImageSubDataEXT = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataEXTFunPtr
+
+glCopyImageSubDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glCopyImageSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubDataEXT")
+
+{-# NOINLINE glCopyImageSubDataEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/CopyTexture.hs b/generated-src/Graphics/GL/Ext/EXT/CopyTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/CopyTexture.hs
@@ -0,0 +1,152 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.CopyTexture (
+  -- * Extension Support
+    gl_EXT_copy_texture
+
+  -- * GL_EXT_copy_texture
+  , glCopyTexImage1DEXT
+  , glCopyTexImage2DEXT
+  , glCopyTexSubImage1DEXT
+  , glCopyTexSubImage2DEXT
+  , glCopyTexSubImage3DEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/copy_texture.txt GL_EXT_copy_texture> extension is available.
+
+gl_EXT_copy_texture :: Bool
+gl_EXT_copy_texture = member "GL_EXT_copy_texture" extensions
+{-# NOINLINE gl_EXT_copy_texture #-}
+
+-- | Usage: @'glCopyTexImage1DEXT' target level internalformat x y width border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexImage1D'.
+
+
+glCopyTexImage1DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyTexImage1DEXT = ffienumintenumintintsizeiintIOV glCopyTexImage1DEXTFunPtr
+
+glCopyTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1DEXT")
+
+{-# NOINLINE glCopyTexImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTexImage2DEXT' target level internalformat x y width height border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexImage2D'.
+
+
+glCopyTexImage2DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyTexImage2DEXT = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DEXTFunPtr
+
+glCopyTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2DEXT")
+
+{-# NOINLINE glCopyTexImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage1DEXT' target level xoffset x y width@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage1D'.
+
+
+glCopyTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTexSubImage1DEXT = ffienumintintintintsizeiIOV glCopyTexSubImage1DEXTFunPtr
+
+glCopyTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1DEXT")
+
+{-# NOINLINE glCopyTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage2DEXT' target level xoffset yoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage2D'.
+
+
+glCopyTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage2DEXT = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DEXTFunPtr
+
+glCopyTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2DEXT")
+
+{-# NOINLINE glCopyTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage3DEXT' target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage3D'.
+
+
+glCopyTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage3DEXT = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DEXTFunPtr
+
+glCopyTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3DEXT")
+
+{-# NOINLINE glCopyTexSubImage3DEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/CullVertex.hs b/generated-src/Graphics/GL/Ext/EXT/CullVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/CullVertex.hs
@@ -0,0 +1,63 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.CullVertex (
+  -- * Extension Support
+    gl_EXT_cull_vertex
+
+  -- * GL_EXT_cull_vertex
+  , glCullParameterdvEXT
+  , glCullParameterfvEXT
+  , pattern GL_CULL_VERTEX_EXT
+  , pattern GL_CULL_VERTEX_EYE_POSITION_EXT
+  , pattern GL_CULL_VERTEX_OBJECT_POSITION_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/cull_vertex.txt GL_EXT_cull_vertex> extension is available.
+
+gl_EXT_cull_vertex :: Bool
+gl_EXT_cull_vertex = member "GL_EXT_cull_vertex" extensions
+{-# NOINLINE gl_EXT_cull_vertex #-}
+
+-- | Usage: @'glCullParameterdvEXT' pname params@
+--
+-- The parameter @pname@ is a @CullParameterEXT@.
+--
+-- The length of @params@ should be @4@.
+
+
+glCullParameterdvEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glCullParameterdvEXT = ffienumPtrdoubleIOV glCullParameterdvEXTFunPtr
+
+glCullParameterdvEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glCullParameterdvEXTFunPtr = unsafePerformIO (getProcAddress "glCullParameterdvEXT")
+
+{-# NOINLINE glCullParameterdvEXTFunPtr #-}
+
+-- | Usage: @'glCullParameterfvEXT' pname params@
+--
+-- The parameter @pname@ is a @CullParameterEXT@.
+--
+-- The length of @params@ should be @4@.
+
+
+glCullParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glCullParameterfvEXT = ffienumPtrfloatIOV glCullParameterfvEXTFunPtr
+
+glCullParameterfvEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glCullParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glCullParameterfvEXT")
+
+{-# NOINLINE glCullParameterfvEXTFunPtr #-}
+
+pattern GL_CULL_VERTEX_EXT = 0x81AA
+
+pattern GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB
+
+pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC
diff --git a/generated-src/Graphics/GL/Ext/EXT/DebugLabel.hs b/generated-src/Graphics/GL/Ext/EXT/DebugLabel.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DebugLabel.hs
@@ -0,0 +1,71 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DebugLabel (
+  -- * Extension Support
+    gl_EXT_debug_label
+
+  -- * GL_EXT_debug_label
+  , glGetObjectLabelEXT
+  , glLabelObjectEXT
+  , pattern GL_BUFFER_OBJECT_EXT
+  , pattern GL_PROGRAM_OBJECT_EXT
+  , pattern GL_PROGRAM_PIPELINE_OBJECT_EXT
+  , pattern GL_QUERY_OBJECT_EXT
+  , pattern GL_SAMPLER
+  , pattern GL_SHADER_OBJECT_EXT
+  , pattern GL_TRANSFORM_FEEDBACK
+  , pattern GL_VERTEX_ARRAY_OBJECT_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://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_label.txt GL_EXT_debug_label> extension is available.
+
+gl_EXT_debug_label :: Bool
+gl_EXT_debug_label = member "GL_EXT_debug_label" extensions
+{-# NOINLINE gl_EXT_debug_label #-}
+
+-- | Usage: @'glGetObjectLabelEXT' type object bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+
+
+glGetObjectLabelEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectLabelEXT = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelEXTFunPtr
+
+glGetObjectLabelEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectLabelEXTFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabelEXT")
+
+{-# NOINLINE glGetObjectLabelEXTFunPtr #-}
+
+-- | Usage: @'glLabelObjectEXT' type object length label@
+
+
+glLabelObjectEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glLabelObjectEXT = ffienumuintsizeiPtrcharIOV glLabelObjectEXTFunPtr
+
+glLabelObjectEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glLabelObjectEXTFunPtr = unsafePerformIO (getProcAddress "glLabelObjectEXT")
+
+{-# NOINLINE glLabelObjectEXTFunPtr #-}
+
+pattern GL_BUFFER_OBJECT_EXT = 0x9151
+
+pattern GL_PROGRAM_OBJECT_EXT = 0x8B40
+
+pattern GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F
+
+pattern GL_QUERY_OBJECT_EXT = 0x9153
+
+pattern GL_SHADER_OBJECT_EXT = 0x8B48
+
+pattern GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154
diff --git a/generated-src/Graphics/GL/Ext/EXT/DebugMarker.hs b/generated-src/Graphics/GL/Ext/EXT/DebugMarker.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DebugMarker.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DebugMarker (
+  -- * Extension Support
+    gl_EXT_debug_marker
+
+  -- * GL_EXT_debug_marker
+  , glInsertEventMarkerEXT
+  , glPopGroupMarkerEXT
+  , glPushGroupMarkerEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt GL_EXT_debug_marker> extension is available.
+
+gl_EXT_debug_marker :: Bool
+gl_EXT_debug_marker = member "GL_EXT_debug_marker" extensions
+{-# NOINLINE gl_EXT_debug_marker #-}
+
+-- | Usage: @'glInsertEventMarkerEXT' length marker@
+
+
+glInsertEventMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
+glInsertEventMarkerEXT = ffisizeiPtrcharIOV glInsertEventMarkerEXTFunPtr
+
+glInsertEventMarkerEXTFunPtr :: FunPtr (GLsizei -> Ptr GLchar -> IO ())
+glInsertEventMarkerEXTFunPtr = unsafePerformIO (getProcAddress "glInsertEventMarkerEXT")
+
+{-# NOINLINE glInsertEventMarkerEXTFunPtr #-}
+
+-- | Usage: @'glPopGroupMarkerEXT'@
+
+
+glPopGroupMarkerEXT :: MonadIO m => m ()
+glPopGroupMarkerEXT = ffiIOV glPopGroupMarkerEXTFunPtr
+
+glPopGroupMarkerEXTFunPtr :: FunPtr (IO ())
+glPopGroupMarkerEXTFunPtr = unsafePerformIO (getProcAddress "glPopGroupMarkerEXT")
+
+{-# NOINLINE glPopGroupMarkerEXTFunPtr #-}
+
+-- | Usage: @'glPushGroupMarkerEXT' length marker@
+
+
+glPushGroupMarkerEXT :: MonadIO m => GLsizei -> Ptr GLchar -> m ()
+glPushGroupMarkerEXT = ffisizeiPtrcharIOV glPushGroupMarkerEXTFunPtr
+
+glPushGroupMarkerEXTFunPtr :: FunPtr (GLsizei -> Ptr GLchar -> IO ())
+glPushGroupMarkerEXTFunPtr = unsafePerformIO (getProcAddress "glPushGroupMarkerEXT")
+
+{-# NOINLINE glPushGroupMarkerEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/DepthBoundsTest.hs b/generated-src/Graphics/GL/Ext/EXT/DepthBoundsTest.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DepthBoundsTest.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DepthBoundsTest (
+  -- * Extension Support
+    gl_EXT_depth_bounds_test
+
+  -- * GL_EXT_depth_bounds_test
+  , glDepthBoundsEXT
+  , pattern GL_DEPTH_BOUNDS_EXT
+  , pattern GL_DEPTH_BOUNDS_TEST_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/depth_bounds_test.txt GL_EXT_depth_bounds_test> extension is available.
+
+gl_EXT_depth_bounds_test :: Bool
+gl_EXT_depth_bounds_test = member "GL_EXT_depth_bounds_test" extensions
+{-# NOINLINE gl_EXT_depth_bounds_test #-}
+
+-- | Usage: @'glDepthBoundsEXT' zmin zmax@
+--
+-- The parameter @zmin@ is a @ClampedFloat64@.
+--
+-- The parameter @zmax@ is a @ClampedFloat64@.
+
+
+glDepthBoundsEXT :: MonadIO m => GLclampd -> GLclampd -> m ()
+glDepthBoundsEXT = fficlampdclampdIOV glDepthBoundsEXTFunPtr
+
+glDepthBoundsEXTFunPtr :: FunPtr (GLclampd -> GLclampd -> IO ())
+glDepthBoundsEXTFunPtr = unsafePerformIO (getProcAddress "glDepthBoundsEXT")
+
+{-# NOINLINE glDepthBoundsEXTFunPtr #-}
+
+pattern GL_DEPTH_BOUNDS_EXT = 0x8891
+
+pattern GL_DEPTH_BOUNDS_TEST_EXT = 0x8890
diff --git a/generated-src/Graphics/GL/Ext/EXT/DirectStateAccess.hs b/generated-src/Graphics/GL/Ext/EXT/DirectStateAccess.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DirectStateAccess.hs
@@ -0,0 +1,4011 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DirectStateAccess (
+  -- * Extension Support
+    gl_EXT_direct_state_access
+
+  -- * GL_EXT_direct_state_access
+  , glBindMultiTextureEXT
+  , glCheckNamedFramebufferStatusEXT
+  , glClearNamedBufferDataEXT
+  , glClearNamedBufferSubDataEXT
+  , glClientAttribDefaultEXT
+  , glCompressedMultiTexImage1DEXT
+  , glCompressedMultiTexImage2DEXT
+  , glCompressedMultiTexImage3DEXT
+  , glCompressedMultiTexSubImage1DEXT
+  , glCompressedMultiTexSubImage2DEXT
+  , glCompressedMultiTexSubImage3DEXT
+  , glCompressedTextureImage1DEXT
+  , glCompressedTextureImage2DEXT
+  , glCompressedTextureImage3DEXT
+  , glCompressedTextureSubImage1DEXT
+  , glCompressedTextureSubImage2DEXT
+  , glCompressedTextureSubImage3DEXT
+  , glCopyMultiTexImage1DEXT
+  , glCopyMultiTexImage2DEXT
+  , glCopyMultiTexSubImage1DEXT
+  , glCopyMultiTexSubImage2DEXT
+  , glCopyMultiTexSubImage3DEXT
+  , glCopyTextureImage1DEXT
+  , glCopyTextureImage2DEXT
+  , glCopyTextureSubImage1DEXT
+  , glCopyTextureSubImage2DEXT
+  , glCopyTextureSubImage3DEXT
+  , glDisableClientStateIndexedEXT
+  , glDisableClientStateiEXT
+  , glDisableIndexedEXT
+  , glDisableVertexArrayAttribEXT
+  , glDisableVertexArrayEXT
+  , glEnableClientStateIndexedEXT
+  , glEnableClientStateiEXT
+  , glEnableIndexedEXT
+  , glEnableVertexArrayAttribEXT
+  , glEnableVertexArrayEXT
+  , glFlushMappedNamedBufferRangeEXT
+  , glFramebufferDrawBufferEXT
+  , glFramebufferDrawBuffersEXT
+  , glFramebufferReadBufferEXT
+  , glGenerateMultiTexMipmapEXT
+  , glGenerateTextureMipmapEXT
+  , glGetBooleanIndexedvEXT
+  , glGetCompressedMultiTexImageEXT
+  , glGetCompressedTextureImageEXT
+  , glGetDoubleIndexedvEXT
+  , glGetDoublei_vEXT
+  , glGetFloatIndexedvEXT
+  , glGetFloati_vEXT
+  , glGetFramebufferParameterivEXT
+  , glGetIntegerIndexedvEXT
+  , glGetMultiTexEnvfvEXT
+  , glGetMultiTexEnvivEXT
+  , glGetMultiTexGendvEXT
+  , glGetMultiTexGenfvEXT
+  , glGetMultiTexGenivEXT
+  , glGetMultiTexImageEXT
+  , glGetMultiTexLevelParameterfvEXT
+  , glGetMultiTexLevelParameterivEXT
+  , glGetMultiTexParameterIivEXT
+  , glGetMultiTexParameterIuivEXT
+  , glGetMultiTexParameterfvEXT
+  , glGetMultiTexParameterivEXT
+  , glGetNamedBufferParameterivEXT
+  , glGetNamedBufferPointervEXT
+  , glGetNamedBufferSubDataEXT
+  , glGetNamedFramebufferAttachmentParameterivEXT
+  , glGetNamedFramebufferParameterivEXT
+  , glGetNamedProgramLocalParameterIivEXT
+  , glGetNamedProgramLocalParameterIuivEXT
+  , glGetNamedProgramLocalParameterdvEXT
+  , glGetNamedProgramLocalParameterfvEXT
+  , glGetNamedProgramStringEXT
+  , glGetNamedProgramivEXT
+  , glGetNamedRenderbufferParameterivEXT
+  , glGetPointerIndexedvEXT
+  , glGetPointeri_vEXT
+  , glGetTextureImageEXT
+  , glGetTextureLevelParameterfvEXT
+  , glGetTextureLevelParameterivEXT
+  , glGetTextureParameterIivEXT
+  , glGetTextureParameterIuivEXT
+  , glGetTextureParameterfvEXT
+  , glGetTextureParameterivEXT
+  , glGetVertexArrayIntegeri_vEXT
+  , glGetVertexArrayIntegervEXT
+  , glGetVertexArrayPointeri_vEXT
+  , glGetVertexArrayPointervEXT
+  , glIsEnabledIndexedEXT
+  , glMapNamedBufferEXT
+  , glMapNamedBufferRangeEXT
+  , glMatrixFrustumEXT
+  , glMatrixLoadIdentityEXT
+  , glMatrixLoadTransposedEXT
+  , glMatrixLoadTransposefEXT
+  , glMatrixLoaddEXT
+  , glMatrixLoadfEXT
+  , glMatrixMultTransposedEXT
+  , glMatrixMultTransposefEXT
+  , glMatrixMultdEXT
+  , glMatrixMultfEXT
+  , glMatrixOrthoEXT
+  , glMatrixPopEXT
+  , glMatrixPushEXT
+  , glMatrixRotatedEXT
+  , glMatrixRotatefEXT
+  , glMatrixScaledEXT
+  , glMatrixScalefEXT
+  , glMatrixTranslatedEXT
+  , glMatrixTranslatefEXT
+  , glMultiTexBufferEXT
+  , glMultiTexCoordPointerEXT
+  , glMultiTexEnvfEXT
+  , glMultiTexEnvfvEXT
+  , glMultiTexEnviEXT
+  , glMultiTexEnvivEXT
+  , glMultiTexGendEXT
+  , glMultiTexGendvEXT
+  , glMultiTexGenfEXT
+  , glMultiTexGenfvEXT
+  , glMultiTexGeniEXT
+  , glMultiTexGenivEXT
+  , glMultiTexImage1DEXT
+  , glMultiTexImage2DEXT
+  , glMultiTexImage3DEXT
+  , glMultiTexParameterIivEXT
+  , glMultiTexParameterIuivEXT
+  , glMultiTexParameterfEXT
+  , glMultiTexParameterfvEXT
+  , glMultiTexParameteriEXT
+  , glMultiTexParameterivEXT
+  , glMultiTexRenderbufferEXT
+  , glMultiTexSubImage1DEXT
+  , glMultiTexSubImage2DEXT
+  , glMultiTexSubImage3DEXT
+  , glNamedBufferDataEXT
+  , glNamedBufferStorageEXT
+  , glNamedBufferSubDataEXT
+  , glNamedCopyBufferSubDataEXT
+  , glNamedFramebufferParameteriEXT
+  , glNamedFramebufferRenderbufferEXT
+  , glNamedFramebufferTexture1DEXT
+  , glNamedFramebufferTexture2DEXT
+  , glNamedFramebufferTexture3DEXT
+  , glNamedFramebufferTextureEXT
+  , glNamedFramebufferTextureFaceEXT
+  , glNamedFramebufferTextureLayerEXT
+  , glNamedProgramLocalParameter4dEXT
+  , glNamedProgramLocalParameter4dvEXT
+  , glNamedProgramLocalParameter4fEXT
+  , glNamedProgramLocalParameter4fvEXT
+  , glNamedProgramLocalParameterI4iEXT
+  , glNamedProgramLocalParameterI4ivEXT
+  , glNamedProgramLocalParameterI4uiEXT
+  , glNamedProgramLocalParameterI4uivEXT
+  , glNamedProgramLocalParameters4fvEXT
+  , glNamedProgramLocalParametersI4ivEXT
+  , glNamedProgramLocalParametersI4uivEXT
+  , glNamedProgramStringEXT
+  , glNamedRenderbufferStorageEXT
+  , glNamedRenderbufferStorageMultisampleCoverageEXT
+  , glNamedRenderbufferStorageMultisampleEXT
+  , glProgramUniform1dEXT
+  , glProgramUniform1dvEXT
+  , glProgramUniform1fEXT
+  , glProgramUniform1fvEXT
+  , glProgramUniform1iEXT
+  , glProgramUniform1ivEXT
+  , glProgramUniform1uiEXT
+  , glProgramUniform1uivEXT
+  , glProgramUniform2dEXT
+  , glProgramUniform2dvEXT
+  , glProgramUniform2fEXT
+  , glProgramUniform2fvEXT
+  , glProgramUniform2iEXT
+  , glProgramUniform2ivEXT
+  , glProgramUniform2uiEXT
+  , glProgramUniform2uivEXT
+  , glProgramUniform3dEXT
+  , glProgramUniform3dvEXT
+  , glProgramUniform3fEXT
+  , glProgramUniform3fvEXT
+  , glProgramUniform3iEXT
+  , glProgramUniform3ivEXT
+  , glProgramUniform3uiEXT
+  , glProgramUniform3uivEXT
+  , glProgramUniform4dEXT
+  , glProgramUniform4dvEXT
+  , glProgramUniform4fEXT
+  , glProgramUniform4fvEXT
+  , glProgramUniform4iEXT
+  , glProgramUniform4ivEXT
+  , glProgramUniform4uiEXT
+  , glProgramUniform4uivEXT
+  , glProgramUniformMatrix2dvEXT
+  , glProgramUniformMatrix2fvEXT
+  , glProgramUniformMatrix2x3dvEXT
+  , glProgramUniformMatrix2x3fvEXT
+  , glProgramUniformMatrix2x4dvEXT
+  , glProgramUniformMatrix2x4fvEXT
+  , glProgramUniformMatrix3dvEXT
+  , glProgramUniformMatrix3fvEXT
+  , glProgramUniformMatrix3x2dvEXT
+  , glProgramUniformMatrix3x2fvEXT
+  , glProgramUniformMatrix3x4dvEXT
+  , glProgramUniformMatrix3x4fvEXT
+  , glProgramUniformMatrix4dvEXT
+  , glProgramUniformMatrix4fvEXT
+  , glProgramUniformMatrix4x2dvEXT
+  , glProgramUniformMatrix4x2fvEXT
+  , glProgramUniformMatrix4x3dvEXT
+  , glProgramUniformMatrix4x3fvEXT
+  , glPushClientAttribDefaultEXT
+  , glTextureBufferEXT
+  , glTextureBufferRangeEXT
+  , glTextureImage1DEXT
+  , glTextureImage2DEXT
+  , glTextureImage3DEXT
+  , glTexturePageCommitmentEXT
+  , glTextureParameterIivEXT
+  , glTextureParameterIuivEXT
+  , glTextureParameterfEXT
+  , glTextureParameterfvEXT
+  , glTextureParameteriEXT
+  , glTextureParameterivEXT
+  , glTextureRenderbufferEXT
+  , glTextureStorage1DEXT
+  , glTextureStorage2DEXT
+  , glTextureStorage2DMultisampleEXT
+  , glTextureStorage3DEXT
+  , glTextureStorage3DMultisampleEXT
+  , glTextureSubImage1DEXT
+  , glTextureSubImage2DEXT
+  , glTextureSubImage3DEXT
+  , glUnmapNamedBufferEXT
+  , glVertexArrayBindVertexBufferEXT
+  , glVertexArrayColorOffsetEXT
+  , glVertexArrayEdgeFlagOffsetEXT
+  , glVertexArrayFogCoordOffsetEXT
+  , glVertexArrayIndexOffsetEXT
+  , glVertexArrayMultiTexCoordOffsetEXT
+  , glVertexArrayNormalOffsetEXT
+  , glVertexArraySecondaryColorOffsetEXT
+  , glVertexArrayTexCoordOffsetEXT
+  , glVertexArrayVertexAttribBindingEXT
+  , glVertexArrayVertexAttribDivisorEXT
+  , glVertexArrayVertexAttribFormatEXT
+  , glVertexArrayVertexAttribIFormatEXT
+  , glVertexArrayVertexAttribIOffsetEXT
+  , glVertexArrayVertexAttribLFormatEXT
+  , glVertexArrayVertexAttribLOffsetEXT
+  , glVertexArrayVertexAttribOffsetEXT
+  , glVertexArrayVertexBindingDivisorEXT
+  , glVertexArrayVertexOffsetEXT
+  , pattern GL_PROGRAM_MATRIX_EXT
+  , pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT
+  , pattern GL_TRANSPOSE_PROGRAM_MATRIX_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/direct_state_access.txt GL_EXT_direct_state_access> extension is available.
+
+gl_EXT_direct_state_access :: Bool
+gl_EXT_direct_state_access = member "GL_EXT_direct_state_access" extensions
+{-# NOINLINE gl_EXT_direct_state_access #-}
+
+-- | Usage: @'glBindMultiTextureEXT' texunit target texture@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+
+
+glBindMultiTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glBindMultiTextureEXT = ffienumenumuintIOV glBindMultiTextureEXTFunPtr
+
+glBindMultiTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glBindMultiTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindMultiTextureEXT")
+
+{-# NOINLINE glBindMultiTextureEXTFunPtr #-}
+
+-- | Usage: @'glCheckNamedFramebufferStatusEXT' framebuffer target@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+
+
+glCheckNamedFramebufferStatusEXT :: MonadIO m => GLuint -> GLenum -> m GLenum
+glCheckNamedFramebufferStatusEXT = ffiuintenumIOenum glCheckNamedFramebufferStatusEXTFunPtr
+
+glCheckNamedFramebufferStatusEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
+glCheckNamedFramebufferStatusEXTFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatusEXT")
+
+{-# NOINLINE glCheckNamedFramebufferStatusEXTFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferDataEXT' buffer internalformat format type data@
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+
+
+glClearNamedBufferDataEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferDataEXT = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataEXTFunPtr
+
+glClearNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferDataEXT")
+
+{-# NOINLINE glClearNamedBufferDataEXTFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferSubDataEXT' buffer internalformat offset size format type data@
+--
+-- The parameter @offset@ is a @BufferSize@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+
+
+glClearNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferSubDataEXT = ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataEXTFunPtr
+
+glClearNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubDataEXT")
+
+{-# NOINLINE glClearNamedBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glClientAttribDefaultEXT' mask@
+--
+-- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
+
+
+glClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
+glClientAttribDefaultEXT = ffibitfieldIOV glClientAttribDefaultEXTFunPtr
+
+glClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
+glClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glClientAttribDefaultEXT")
+
+{-# NOINLINE glClientAttribDefaultEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexImage1DEXT' texunit target level internalformat width border imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexImage1DEXT = ffienumenumintenumsizeiintsizeiPtrVIOV glCompressedMultiTexImage1DEXTFunPtr
+
+glCompressedMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage1DEXT")
+
+{-# NOINLINE glCompressedMultiTexImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexImage2DEXT' texunit target level internalformat width height border imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexImage2DEXT = ffienumenumintenumsizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage2DEXTFunPtr
+
+glCompressedMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage2DEXT")
+
+{-# NOINLINE glCompressedMultiTexImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexImage3DEXT' texunit target level internalformat width height depth border imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexImage3DEXT = ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedMultiTexImage3DEXTFunPtr
+
+glCompressedMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexImage3DEXT")
+
+{-# NOINLINE glCompressedMultiTexImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexSubImage1DEXT' texunit target level xoffset width format imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexSubImage1DEXT = ffienumenumintintsizeienumsizeiPtrVIOV glCompressedMultiTexSubImage1DEXTFunPtr
+
+glCompressedMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage1DEXT")
+
+{-# NOINLINE glCompressedMultiTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexSubImage2DEXT' texunit target level xoffset yoffset width height format imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage2DEXTFunPtr
+
+glCompressedMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage2DEXT")
+
+{-# NOINLINE glCompressedMultiTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset width height depth format imageSize bits@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedMultiTexSubImage3DEXTFunPtr
+
+glCompressedMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedMultiTexSubImage3DEXT")
+
+{-# NOINLINE glCompressedMultiTexSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureImage1DEXT' texture target level internalformat width border imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTextureImage1DEXT = ffiuintenumintenumsizeiintsizeiPtrVIOV glCompressedTextureImage1DEXTFunPtr
+
+glCompressedTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage1DEXT")
+
+{-# NOINLINE glCompressedTextureImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureImage2DEXT' texture target level internalformat width height border imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTextureImage2DEXT = ffiuintenumintenumsizeisizeiintsizeiPtrVIOV glCompressedTextureImage2DEXTFunPtr
+
+glCompressedTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage2DEXT")
+
+{-# NOINLINE glCompressedTextureImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureImage3DEXT' texture target level internalformat width height depth border imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTextureImage3DEXT = ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTextureImage3DEXTFunPtr
+
+glCompressedTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureImage3DEXT")
+
+{-# NOINLINE glCompressedTextureImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage1DEXT' texture target level xoffset width format imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage1DEXT = ffiuintenumintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DEXTFunPtr
+
+glCompressedTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1DEXT")
+
+{-# NOINLINE glCompressedTextureSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage2DEXT' texture target level xoffset yoffset width height format imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DEXTFunPtr
+
+glCompressedTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2DEXT")
+
+{-# NOINLINE glCompressedTextureSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage3DEXT' texture target level xoffset yoffset zoffset width height depth format imageSize bits@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The length of @bits@ should be @imageSize@.
+
+
+glCompressedTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DEXTFunPtr
+
+glCompressedTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3DEXT")
+
+{-# NOINLINE glCompressedTextureSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexImage1DEXT' texunit target level internalformat x y width border@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyMultiTexImage1DEXT = ffienumenumintenumintintsizeiintIOV glCopyMultiTexImage1DEXTFunPtr
+
+glCopyMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage1DEXT")
+
+{-# NOINLINE glCopyMultiTexImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexImage2DEXT' texunit target level internalformat x y width height border@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyMultiTexImage2DEXT = ffienumenumintenumintintsizeisizeiintIOV glCopyMultiTexImage2DEXTFunPtr
+
+glCopyMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexImage2DEXT")
+
+{-# NOINLINE glCopyMultiTexImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexSubImage1DEXT' texunit target level xoffset x y width@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyMultiTexSubImage1DEXT = ffienumenumintintintintsizeiIOV glCopyMultiTexSubImage1DEXTFunPtr
+
+glCopyMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage1DEXT")
+
+{-# NOINLINE glCopyMultiTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexSubImage2DEXT' texunit target level xoffset yoffset x y width height@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyMultiTexSubImage2DEXT = ffienumenumintintintintintsizeisizeiIOV glCopyMultiTexSubImage2DEXTFunPtr
+
+glCopyMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage2DEXT")
+
+{-# NOINLINE glCopyMultiTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyMultiTexSubImage3DEXT = ffienumenumintintintintintintsizeisizeiIOV glCopyMultiTexSubImage3DEXTFunPtr
+
+glCopyMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyMultiTexSubImage3DEXT")
+
+{-# NOINLINE glCopyMultiTexSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureImage1DEXT' texture target level internalformat x y width border@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyTextureImage1DEXT = ffiuintenumintenumintintsizeiintIOV glCopyTextureImage1DEXTFunPtr
+
+glCopyTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage1DEXT")
+
+{-# NOINLINE glCopyTextureImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureImage2DEXT' texture target level internalformat x y width height border@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+
+
+glCopyTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyTextureImage2DEXT = ffiuintenumintenumintintsizeisizeiintIOV glCopyTextureImage2DEXTFunPtr
+
+glCopyTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureImage2DEXT")
+
+{-# NOINLINE glCopyTextureImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage1DEXT' texture target level xoffset x y width@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTextureSubImage1DEXT = ffiuintenumintintintintsizeiIOV glCopyTextureSubImage1DEXTFunPtr
+
+glCopyTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1DEXT")
+
+{-# NOINLINE glCopyTextureSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage2DEXT' texture target level xoffset yoffset x y width height@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage2DEXT = ffiuintenumintintintintintsizeisizeiIOV glCopyTextureSubImage2DEXTFunPtr
+
+glCopyTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2DEXT")
+
+{-# NOINLINE glCopyTextureSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage3DEXT' texture target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+
+
+glCopyTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage3DEXT = ffiuintenumintintintintintintsizeisizeiIOV glCopyTextureSubImage3DEXTFunPtr
+
+glCopyTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3DEXT")
+
+{-# NOINLINE glCopyTextureSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glDisableClientStateIndexedEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableClientStateIndexedEXT = ffienumuintIOV glDisableClientStateIndexedEXTFunPtr
+
+glDisableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateIndexedEXT")
+
+{-# NOINLINE glDisableClientStateIndexedEXTFunPtr #-}
+
+-- | Usage: @'glDisableClientStateiEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableClientStateiEXT = ffienumuintIOV glDisableClientStateiEXTFunPtr
+
+glDisableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glDisableClientStateiEXT")
+
+{-# NOINLINE glDisableClientStateiEXTFunPtr #-}
+
+-- | Usage: @'glDisableVertexArrayAttribEXT' vaobj index@
+
+
+glDisableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
+glDisableVertexArrayAttribEXT = ffiuintuintIOV glDisableVertexArrayAttribEXTFunPtr
+
+glDisableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDisableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttribEXT")
+
+{-# NOINLINE glDisableVertexArrayAttribEXTFunPtr #-}
+
+-- | Usage: @'glDisableVertexArrayEXT' vaobj array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glDisableVertexArrayEXT = ffiuintenumIOV glDisableVertexArrayEXTFunPtr
+
+glDisableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glDisableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayEXT")
+
+{-# NOINLINE glDisableVertexArrayEXTFunPtr #-}
+
+-- | Usage: @'glEnableClientStateIndexedEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableClientStateIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableClientStateIndexedEXT = ffienumuintIOV glEnableClientStateIndexedEXTFunPtr
+
+glEnableClientStateIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableClientStateIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateIndexedEXT")
+
+{-# NOINLINE glEnableClientStateIndexedEXTFunPtr #-}
+
+-- | Usage: @'glEnableClientStateiEXT' array index@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableClientStateiEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableClientStateiEXT = ffienumuintIOV glEnableClientStateiEXTFunPtr
+
+glEnableClientStateiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableClientStateiEXTFunPtr = unsafePerformIO (getProcAddress "glEnableClientStateiEXT")
+
+{-# NOINLINE glEnableClientStateiEXTFunPtr #-}
+
+-- | Usage: @'glEnableVertexArrayAttribEXT' vaobj index@
+
+
+glEnableVertexArrayAttribEXT :: MonadIO m => GLuint -> GLuint -> m ()
+glEnableVertexArrayAttribEXT = ffiuintuintIOV glEnableVertexArrayAttribEXTFunPtr
+
+glEnableVertexArrayAttribEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glEnableVertexArrayAttribEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttribEXT")
+
+{-# NOINLINE glEnableVertexArrayAttribEXTFunPtr #-}
+
+-- | Usage: @'glEnableVertexArrayEXT' vaobj array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableVertexArrayEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glEnableVertexArrayEXT = ffiuintenumIOV glEnableVertexArrayEXTFunPtr
+
+glEnableVertexArrayEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glEnableVertexArrayEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayEXT")
+
+{-# NOINLINE glEnableVertexArrayEXTFunPtr #-}
+
+-- | Usage: @'glFlushMappedNamedBufferRangeEXT' buffer offset length@
+
+
+glFlushMappedNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedNamedBufferRangeEXT = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeEXTFunPtr
+
+glFlushMappedNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRangeEXT")
+
+{-# NOINLINE glFlushMappedNamedBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferDrawBufferEXT' framebuffer mode@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @mode@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
+
+
+glFramebufferDrawBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glFramebufferDrawBufferEXT = ffiuintenumIOV glFramebufferDrawBufferEXTFunPtr
+
+glFramebufferDrawBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glFramebufferDrawBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBufferEXT")
+
+{-# NOINLINE glFramebufferDrawBufferEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferDrawBuffersEXT' framebuffer n bufs@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @bufs@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
+--
+-- The length of @bufs@ should be @n@.
+
+
+glFramebufferDrawBuffersEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glFramebufferDrawBuffersEXT = ffiuintsizeiPtrenumIOV glFramebufferDrawBuffersEXTFunPtr
+
+glFramebufferDrawBuffersEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glFramebufferDrawBuffersEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferDrawBuffersEXT")
+
+{-# NOINLINE glFramebufferDrawBuffersEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferReadBufferEXT' framebuffer mode@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @mode@ is a @ReadBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
+
+
+glFramebufferReadBufferEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glFramebufferReadBufferEXT = ffiuintenumIOV glFramebufferReadBufferEXTFunPtr
+
+glFramebufferReadBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glFramebufferReadBufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferReadBufferEXT")
+
+{-# NOINLINE glFramebufferReadBufferEXTFunPtr #-}
+
+-- | Usage: @'glGenerateMultiTexMipmapEXT' texunit target@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glGenerateMultiTexMipmapEXT :: MonadIO m => GLenum -> GLenum -> m ()
+glGenerateMultiTexMipmapEXT = ffienumenumIOV glGenerateMultiTexMipmapEXTFunPtr
+
+glGenerateMultiTexMipmapEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glGenerateMultiTexMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateMultiTexMipmapEXT")
+
+{-# NOINLINE glGenerateMultiTexMipmapEXTFunPtr #-}
+
+-- | Usage: @'glGenerateTextureMipmapEXT' texture target@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glGenerateTextureMipmapEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glGenerateTextureMipmapEXT = ffiuintenumIOV glGenerateTextureMipmapEXTFunPtr
+
+glGenerateTextureMipmapEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glGenerateTextureMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmapEXT")
+
+{-# NOINLINE glGenerateTextureMipmapEXTFunPtr #-}
+
+-- | Usage: @'glGetCompressedMultiTexImageEXT' texunit target lod img@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @lod@ is a @CheckedInt32@.
+--
+-- The length of @img@ should be @COMPSIZE(target,lod)@.
+
+
+glGetCompressedMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedMultiTexImageEXT = ffienumenumintPtrVIOV glGetCompressedMultiTexImageEXTFunPtr
+
+glGetCompressedMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedMultiTexImageEXT")
+
+{-# NOINLINE glGetCompressedMultiTexImageEXTFunPtr #-}
+
+-- | Usage: @'glGetCompressedTextureImageEXT' texture target lod img@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @lod@ is a @CheckedInt32@.
+--
+-- The length of @img@ should be @COMPSIZE(target,lod)@.
+
+
+glGetCompressedTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedTextureImageEXT = ffiuintenumintPtrVIOV glGetCompressedTextureImageEXTFunPtr
+
+glGetCompressedTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImageEXT")
+
+{-# NOINLINE glGetCompressedTextureImageEXTFunPtr #-}
+
+-- | Usage: @'glGetDoubleIndexedvEXT' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDoublei_v'.
+
+
+glGetDoubleIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoubleIndexedvEXT = ffienumuintPtrdoubleIOV glGetDoubleIndexedvEXTFunPtr
+
+glGetDoubleIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoubleIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoubleIndexedvEXT")
+
+{-# NOINLINE glGetDoubleIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetDoublei_vEXT' pname index params@
+--
+-- The parameter @pname@ is a @TypeEnum@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDoublei_v'.
+
+
+glGetDoublei_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoublei_vEXT = ffienumuintPtrdoubleIOV glGetDoublei_vEXTFunPtr
+
+glGetDoublei_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoublei_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_vEXT")
+
+{-# NOINLINE glGetDoublei_vEXTFunPtr #-}
+
+-- | Usage: @'glGetFloatIndexedvEXT' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
+
+
+glGetFloatIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloatIndexedvEXT = ffienumuintPtrfloatIOV glGetFloatIndexedvEXTFunPtr
+
+glGetFloatIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloatIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloatIndexedvEXT")
+
+{-# NOINLINE glGetFloatIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetFloati_vEXT' pname index params@
+--
+-- The parameter @pname@ is a @TypeEnum@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
+
+
+glGetFloati_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_vEXT = ffienumuintPtrfloatIOV glGetFloati_vEXTFunPtr
+
+glGetFloati_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vEXT")
+
+{-# NOINLINE glGetFloati_vEXTFunPtr #-}
+
+-- | Usage: @'glGetFramebufferParameterivEXT' framebuffer pname params@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @pname@ is a @GetFramebufferParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetFramebufferParameterivEXTFunPtr
+
+glGetFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameterivEXT")
+
+{-# NOINLINE glGetFramebufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexEnvfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexEnvfvEXTFunPtr
+
+glGetMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvfvEXT")
+
+{-# NOINLINE glGetMultiTexEnvfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexEnvivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexEnvivEXT = ffienumenumenumPtrintIOV glGetMultiTexEnvivEXTFunPtr
+
+glGetMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexEnvivEXT")
+
+{-# NOINLINE glGetMultiTexEnvivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexGendvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glGetMultiTexGendvEXTFunPtr
+
+glGetMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGendvEXT")
+
+{-# NOINLINE glGetMultiTexGendvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexGenfvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexGenfvEXTFunPtr
+
+glGetMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenfvEXT")
+
+{-# NOINLINE glGetMultiTexGenfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexGenivEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexGenivEXT = ffienumenumenumPtrintIOV glGetMultiTexGenivEXTFunPtr
+
+glGetMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexGenivEXT")
+
+{-# NOINLINE glGetMultiTexGenivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexImageEXT' texunit target level format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
+
+
+glGetMultiTexImageEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetMultiTexImageEXT = ffienumenumintenumenumPtrVIOV glGetMultiTexImageEXTFunPtr
+
+glGetMultiTexImageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetMultiTexImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexImageEXT")
+
+{-# NOINLINE glGetMultiTexImageEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexLevelParameterfvEXT' texunit target level pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexLevelParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexLevelParameterfvEXT = ffienumenumintenumPtrfloatIOV glGetMultiTexLevelParameterfvEXTFunPtr
+
+glGetMultiTexLevelParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterfvEXT")
+
+{-# NOINLINE glGetMultiTexLevelParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexLevelParameterivEXT' texunit target level pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexLevelParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexLevelParameterivEXT = ffienumenumintenumPtrintIOV glGetMultiTexLevelParameterivEXTFunPtr
+
+glGetMultiTexLevelParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexLevelParameterivEXT")
+
+{-# NOINLINE glGetMultiTexLevelParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterIivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterIivEXTFunPtr
+
+glGetMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIivEXT")
+
+{-# NOINLINE glGetMultiTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterIuivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glGetMultiTexParameterIuivEXTFunPtr
+
+glGetMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterIuivEXT")
+
+{-# NOINLINE glGetMultiTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glGetMultiTexParameterfvEXTFunPtr
+
+glGetMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterfvEXT")
+
+{-# NOINLINE glGetMultiTexParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMultiTexParameterivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMultiTexParameterivEXT = ffienumenumenumPtrintIOV glGetMultiTexParameterivEXTFunPtr
+
+glGetMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMultiTexParameterivEXT")
+
+{-# NOINLINE glGetMultiTexParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameterivEXT' buffer pname params@
+--
+-- The parameter @pname@ is a @VertexBufferObjectParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedBufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedBufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedBufferParameterivEXTFunPtr
+
+glGetNamedBufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedBufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameterivEXT")
+
+{-# NOINLINE glGetNamedBufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferPointervEXT' buffer pname params@
+--
+-- The parameter @pname@ is a @VertexBufferObjectParameter@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetNamedBufferPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetNamedBufferPointervEXT = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervEXTFunPtr
+
+glGetNamedBufferPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetNamedBufferPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointervEXT")
+
+{-# NOINLINE glGetNamedBufferPointervEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferSubDataEXT' buffer offset size data@
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+
+
+glGetNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataEXTFunPtr
+
+glGetNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubDataEXT")
+
+{-# NOINLINE glGetNamedBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferAttachmentParameterivEXT' framebuffer attachment pname params@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @pname@ is a @FramebufferAttachmentParameterName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedFramebufferAttachmentParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferAttachmentParameterivEXT = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivEXTFunPtr
+
+glGetNamedFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferAttachmentParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameterivEXT")
+
+{-# NOINLINE glGetNamedFramebufferAttachmentParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferParameterivEXT' framebuffer pname params@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @pname@ is a @GetFramebufferParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedFramebufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivEXTFunPtr
+
+glGetNamedFramebufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameterivEXT")
+
+{-# NOINLINE glGetNamedFramebufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterIivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glGetNamedProgramLocalParameterIivEXT = ffiuintenumuintPtrintIOV glGetNamedProgramLocalParameterIivEXTFunPtr
+
+glGetNamedProgramLocalParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetNamedProgramLocalParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIivEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterIuivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
+glGetNamedProgramLocalParameterIuivEXT = ffiuintenumuintPtruintIOV glGetNamedProgramLocalParameterIuivEXTFunPtr
+
+glGetNamedProgramLocalParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
+glGetNamedProgramLocalParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterIuivEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterdvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterdvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetNamedProgramLocalParameterdvEXT = ffiuintenumuintPtrdoubleIOV glGetNamedProgramLocalParameterdvEXTFunPtr
+
+glGetNamedProgramLocalParameterdvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetNamedProgramLocalParameterdvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterdvEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterdvEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramLocalParameterfvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetNamedProgramLocalParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetNamedProgramLocalParameterfvEXT = ffiuintenumuintPtrfloatIOV glGetNamedProgramLocalParameterfvEXTFunPtr
+
+glGetNamedProgramLocalParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetNamedProgramLocalParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramLocalParameterfvEXT")
+
+{-# NOINLINE glGetNamedProgramLocalParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramStringEXT' program target pname string@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The parameter @pname@ is a @ProgramStringProperty@.
+--
+-- The length of @string@ should be @COMPSIZE(program,pname)@.
+
+
+glGetNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetNamedProgramStringEXT = ffiuintenumenumPtrVIOV glGetNamedProgramStringEXTFunPtr
+
+glGetNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramStringEXT")
+
+{-# NOINLINE glGetNamedProgramStringEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedProgramivEXT' program target pname params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The parameter @pname@ is a @ProgramProperty@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetNamedProgramivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedProgramivEXT = ffiuintenumenumPtrintIOV glGetNamedProgramivEXTFunPtr
+
+glGetNamedProgramivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedProgramivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedProgramivEXT")
+
+{-# NOINLINE glGetNamedProgramivEXTFunPtr #-}
+
+-- | Usage: @'glGetNamedRenderbufferParameterivEXT' renderbuffer pname params@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @pname@ is a @RenderbufferParameterName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedRenderbufferParameterivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedRenderbufferParameterivEXT = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivEXTFunPtr
+
+glGetNamedRenderbufferParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedRenderbufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameterivEXT")
+
+{-# NOINLINE glGetNamedRenderbufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetPointerIndexedvEXT' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @1@.
+
+
+glGetPointerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
+glGetPointerIndexedvEXT = ffienumuintPtrPtrVIOV glGetPointerIndexedvEXTFunPtr
+
+glGetPointerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ())
+glGetPointerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointerIndexedvEXT")
+
+{-# NOINLINE glGetPointerIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetPointeri_vEXT' pname index params@
+--
+-- The parameter @pname@ is a @TypeEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetPointeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
+glGetPointeri_vEXT = ffienumuintPtrPtrVIOV glGetPointeri_vEXTFunPtr
+
+glGetPointeri_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ())
+glGetPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointeri_vEXT")
+
+{-# NOINLINE glGetPointeri_vEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureImageEXT' texture target level format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
+
+
+glGetTextureImageEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetTextureImageEXT = ffiuintenumintenumenumPtrVIOV glGetTextureImageEXTFunPtr
+
+glGetTextureImageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetTextureImageEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureImageEXT")
+
+{-# NOINLINE glGetTextureImageEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameterfvEXT' texture target level pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureLevelParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureLevelParameterfvEXT = ffiuintenumintenumPtrfloatIOV glGetTextureLevelParameterfvEXTFunPtr
+
+glGetTextureLevelParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureLevelParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfvEXT")
+
+{-# NOINLINE glGetTextureLevelParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameterivEXT' texture target level pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureLevelParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTextureLevelParameterivEXT = ffiuintenumintenumPtrintIOV glGetTextureLevelParameterivEXTFunPtr
+
+glGetTextureLevelParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureLevelParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterivEXT")
+
+{-# NOINLINE glGetTextureLevelParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterIivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterIivEXTFunPtr
+
+glGetTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIivEXT")
+
+{-# NOINLINE glGetTextureParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIuivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glGetTextureParameterIuivEXTFunPtr
+
+glGetTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuivEXT")
+
+{-# NOINLINE glGetTextureParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterfvEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glGetTextureParameterfvEXTFunPtr
+
+glGetTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfvEXT")
+
+{-# NOINLINE glGetTextureParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterivEXT = ffiuintenumenumPtrintIOV glGetTextureParameterivEXTFunPtr
+
+glGetTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterivEXT")
+
+{-# NOINLINE glGetTextureParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIntegeri_vEXT' vaobj index pname param@
+
+
+glGetVertexArrayIntegeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIntegeri_vEXT = ffiuintuintenumPtrintIOV glGetVertexArrayIntegeri_vEXTFunPtr
+
+glGetVertexArrayIntegeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIntegeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegeri_vEXT")
+
+{-# NOINLINE glGetVertexArrayIntegeri_vEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIntegervEXT' vaobj pname param@
+
+
+glGetVertexArrayIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIntegervEXT = ffiuintenumPtrintIOV glGetVertexArrayIntegervEXTFunPtr
+
+glGetVertexArrayIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIntegervEXT")
+
+{-# NOINLINE glGetVertexArrayIntegervEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayPointeri_vEXT' vaobj index pname param@
+
+
+glGetVertexArrayPointeri_vEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexArrayPointeri_vEXT = ffiuintuintenumPtrPtrVIOV glGetVertexArrayPointeri_vEXTFunPtr
+
+glGetVertexArrayPointeri_vEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexArrayPointeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointeri_vEXT")
+
+{-# NOINLINE glGetVertexArrayPointeri_vEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayPointervEXT' vaobj pname param@
+--
+-- The length of @param@ should be @1@.
+
+
+glGetVertexArrayPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexArrayPointervEXT = ffiuintenumPtrPtrVIOV glGetVertexArrayPointervEXTFunPtr
+
+glGetVertexArrayPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexArrayPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayPointervEXT")
+
+{-# NOINLINE glGetVertexArrayPointervEXTFunPtr #-}
+
+-- | Usage: @'glMapNamedBufferEXT' buffer access@
+--
+-- The parameter @access@ is a @VertexBufferObjectAccess@.
+
+
+glMapNamedBufferEXT :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
+glMapNamedBufferEXT = ffiuintenumIOPtrV glMapNamedBufferEXTFunPtr
+
+glMapNamedBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
+glMapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferEXT")
+
+{-# NOINLINE glMapNamedBufferEXTFunPtr #-}
+
+-- | Usage: @'glMapNamedBufferRangeEXT' buffer offset length access@
+--
+-- The parameter @access@ is a @BufferAccessMask@.
+
+
+glMapNamedBufferRangeEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapNamedBufferRangeEXT = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeEXTFunPtr
+
+glMapNamedBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapNamedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRangeEXT")
+
+{-# NOINLINE glMapNamedBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glMatrixFrustumEXT' mode left right bottom top zNear zFar@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixFrustumEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixFrustumEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixFrustumEXTFunPtr
+
+glMatrixFrustumEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixFrustumEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixFrustumEXT")
+
+{-# NOINLINE glMatrixFrustumEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadIdentityEXT' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixLoadIdentityEXT :: MonadIO m => GLenum -> m ()
+glMatrixLoadIdentityEXT = ffienumIOV glMatrixLoadIdentityEXTFunPtr
+
+glMatrixLoadIdentityEXTFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixLoadIdentityEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadIdentityEXT")
+
+{-# NOINLINE glMatrixLoadIdentityEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadTransposedEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoadTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixLoadTransposedEXT = ffienumPtrdoubleIOV glMatrixLoadTransposedEXTFunPtr
+
+glMatrixLoadTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixLoadTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposedEXT")
+
+{-# NOINLINE glMatrixLoadTransposedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadTransposefEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoadTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixLoadTransposefEXT = ffienumPtrfloatIOV glMatrixLoadTransposefEXTFunPtr
+
+glMatrixLoadTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixLoadTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTransposefEXT")
+
+{-# NOINLINE glMatrixLoadTransposefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoaddEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoaddEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixLoaddEXT = ffienumPtrdoubleIOV glMatrixLoaddEXTFunPtr
+
+glMatrixLoaddEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixLoaddEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoaddEXT")
+
+{-# NOINLINE glMatrixLoaddEXTFunPtr #-}
+
+-- | Usage: @'glMatrixLoadfEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixLoadfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixLoadfEXT = ffienumPtrfloatIOV glMatrixLoadfEXTFunPtr
+
+glMatrixLoadfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixLoadfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadfEXT")
+
+{-# NOINLINE glMatrixLoadfEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultTransposedEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultTransposedEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixMultTransposedEXT = ffienumPtrdoubleIOV glMatrixMultTransposedEXTFunPtr
+
+glMatrixMultTransposedEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixMultTransposedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposedEXT")
+
+{-# NOINLINE glMatrixMultTransposedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultTransposefEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultTransposefEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixMultTransposefEXT = ffienumPtrfloatIOV glMatrixMultTransposefEXTFunPtr
+
+glMatrixMultTransposefEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixMultTransposefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTransposefEXT")
+
+{-# NOINLINE glMatrixMultTransposefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultdEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultdEXT :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMatrixMultdEXT = ffienumPtrdoubleIOV glMatrixMultdEXTFunPtr
+
+glMatrixMultdEXTFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMatrixMultdEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultdEXT")
+
+{-# NOINLINE glMatrixMultdEXTFunPtr #-}
+
+-- | Usage: @'glMatrixMultfEXT' mode m@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+--
+-- The length of @m@ should be @16@.
+
+
+glMatrixMultfEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixMultfEXT = ffienumPtrfloatIOV glMatrixMultfEXTFunPtr
+
+glMatrixMultfEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixMultfEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixMultfEXT")
+
+{-# NOINLINE glMatrixMultfEXTFunPtr #-}
+
+-- | Usage: @'glMatrixOrthoEXT' mode left right bottom top zNear zFar@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixOrthoEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixOrthoEXT = ffienumdoubledoubledoubledoubledoubledoubleIOV glMatrixOrthoEXTFunPtr
+
+glMatrixOrthoEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixOrthoEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixOrthoEXT")
+
+{-# NOINLINE glMatrixOrthoEXTFunPtr #-}
+
+-- | Usage: @'glMatrixPopEXT' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixPopEXT :: MonadIO m => GLenum -> m ()
+glMatrixPopEXT = ffienumIOV glMatrixPopEXTFunPtr
+
+glMatrixPopEXTFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixPopEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPopEXT")
+
+{-# NOINLINE glMatrixPopEXTFunPtr #-}
+
+-- | Usage: @'glMatrixPushEXT' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixPushEXT :: MonadIO m => GLenum -> m ()
+glMatrixPushEXT = ffienumIOV glMatrixPushEXTFunPtr
+
+glMatrixPushEXTFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixPushEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixPushEXT")
+
+{-# NOINLINE glMatrixPushEXTFunPtr #-}
+
+-- | Usage: @'glMatrixRotatedEXT' mode angle x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixRotatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixRotatedEXT = ffienumdoubledoubledoubledoubleIOV glMatrixRotatedEXTFunPtr
+
+glMatrixRotatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixRotatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatedEXT")
+
+{-# NOINLINE glMatrixRotatedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixRotatefEXT' mode angle x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixRotatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMatrixRotatefEXT = ffienumfloatfloatfloatfloatIOV glMatrixRotatefEXTFunPtr
+
+glMatrixRotatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMatrixRotatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixRotatefEXT")
+
+{-# NOINLINE glMatrixRotatefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixScaledEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixScaledEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixScaledEXT = ffienumdoubledoubledoubleIOV glMatrixScaledEXTFunPtr
+
+glMatrixScaledEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixScaledEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScaledEXT")
+
+{-# NOINLINE glMatrixScaledEXTFunPtr #-}
+
+-- | Usage: @'glMatrixScalefEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixScalefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMatrixScalefEXT = ffienumfloatfloatfloatIOV glMatrixScalefEXTFunPtr
+
+glMatrixScalefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMatrixScalefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixScalefEXT")
+
+{-# NOINLINE glMatrixScalefEXTFunPtr #-}
+
+-- | Usage: @'glMatrixTranslatedEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixTranslatedEXT :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMatrixTranslatedEXT = ffienumdoubledoubledoubleIOV glMatrixTranslatedEXTFunPtr
+
+glMatrixTranslatedEXTFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMatrixTranslatedEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatedEXT")
+
+{-# NOINLINE glMatrixTranslatedEXTFunPtr #-}
+
+-- | Usage: @'glMatrixTranslatefEXT' mode x y z@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixTranslatefEXT :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMatrixTranslatefEXT = ffienumfloatfloatfloatIOV glMatrixTranslatefEXTFunPtr
+
+glMatrixTranslatefEXTFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMatrixTranslatefEXTFunPtr = unsafePerformIO (getProcAddress "glMatrixTranslatefEXT")
+
+{-# NOINLINE glMatrixTranslatefEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexBufferEXT' texunit target internalformat buffer@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TypeEnum@.
+
+
+glMultiTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glMultiTexBufferEXT = ffienumenumenumuintIOV glMultiTexBufferEXTFunPtr
+
+glMultiTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexBufferEXT")
+
+{-# NOINLINE glMultiTexBufferEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordPointerEXT' texunit size type stride pointer@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glMultiTexCoordPointerEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glMultiTexCoordPointerEXT = ffienumintenumsizeiPtrVIOV glMultiTexCoordPointerEXTFunPtr
+
+glMultiTexCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glMultiTexCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordPointerEXT")
+
+{-# NOINLINE glMultiTexCoordPointerEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnvfEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexEnvfvEXT'.
+
+
+glMultiTexEnvfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
+glMultiTexEnvfEXT = ffienumenumenumfloatIOV glMultiTexEnvfEXTFunPtr
+
+glMultiTexEnvfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+glMultiTexEnvfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfEXT")
+
+{-# NOINLINE glMultiTexEnvfEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnvfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexEnvfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMultiTexEnvfvEXT = ffienumenumenumPtrfloatIOV glMultiTexEnvfvEXTFunPtr
+
+glMultiTexEnvfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMultiTexEnvfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvfvEXT")
+
+{-# NOINLINE glMultiTexEnvfvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnviEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexEnvivEXT'.
+
+
+glMultiTexEnviEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
+glMultiTexEnviEXT = ffienumenumenumintIOV glMultiTexEnviEXTFunPtr
+
+glMultiTexEnviEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+glMultiTexEnviEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnviEXT")
+
+{-# NOINLINE glMultiTexEnviEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexEnvivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexEnvivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexEnvivEXT = ffienumenumenumPtrintIOV glMultiTexEnvivEXTFunPtr
+
+glMultiTexEnvivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexEnvivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexEnvivEXT")
+
+{-# NOINLINE glMultiTexEnvivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGendEXT' texunit coord pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexGendvEXT'.
+
+
+glMultiTexGendEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLdouble -> m ()
+glMultiTexGendEXT = ffienumenumenumdoubleIOV glMultiTexGendEXTFunPtr
+
+glMultiTexGendEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ())
+glMultiTexGendEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendEXT")
+
+{-# NOINLINE glMultiTexGendEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGendvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexGendvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
+glMultiTexGendvEXT = ffienumenumenumPtrdoubleIOV glMultiTexGendvEXTFunPtr
+
+glMultiTexGendvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glMultiTexGendvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGendvEXT")
+
+{-# NOINLINE glMultiTexGendvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGenfEXT' texunit coord pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexGenfvEXT'.
+
+
+glMultiTexGenfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
+glMultiTexGenfEXT = ffienumenumenumfloatIOV glMultiTexGenfEXTFunPtr
+
+glMultiTexGenfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+glMultiTexGenfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfEXT")
+
+{-# NOINLINE glMultiTexGenfEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGenfvEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexGenfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMultiTexGenfvEXT = ffienumenumenumPtrfloatIOV glMultiTexGenfvEXTFunPtr
+
+glMultiTexGenfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMultiTexGenfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenfvEXT")
+
+{-# NOINLINE glMultiTexGenfvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGeniEXT' texunit coord pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexGenivEXT'.
+
+
+glMultiTexGeniEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
+glMultiTexGeniEXT = ffienumenumenumintIOV glMultiTexGeniEXTFunPtr
+
+glMultiTexGeniEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+glMultiTexGeniEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGeniEXT")
+
+{-# NOINLINE glMultiTexGeniEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexGenivEXT' texunit coord pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexGenivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexGenivEXT = ffienumenumenumPtrintIOV glMultiTexGenivEXTFunPtr
+
+glMultiTexGenivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexGenivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexGenivEXT")
+
+{-# NOINLINE glMultiTexGenivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexImage1DEXT' texunit target level internalformat width border format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glMultiTexImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexImage1DEXT = ffienumenumintintsizeiintenumenumPtrVIOV glMultiTexImage1DEXTFunPtr
+
+glMultiTexImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage1DEXT")
+
+{-# NOINLINE glMultiTexImage1DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexImage2DEXT' texunit target level internalformat width height border format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glMultiTexImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexImage2DEXT = ffienumenumintintsizeisizeiintenumenumPtrVIOV glMultiTexImage2DEXTFunPtr
+
+glMultiTexImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage2DEXT")
+
+{-# NOINLINE glMultiTexImage2DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexImage3DEXT' texunit target level internalformat width height depth border format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glMultiTexImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexImage3DEXT = ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV glMultiTexImage3DEXTFunPtr
+
+glMultiTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexImage3DEXT")
+
+{-# NOINLINE glMultiTexImage3DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterIivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexParameterIivEXT = ffienumenumenumPtrintIOV glMultiTexParameterIivEXTFunPtr
+
+glMultiTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIivEXT")
+
+{-# NOINLINE glMultiTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterIuivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexParameterIuivEXT = ffienumenumenumPtruintIOV glMultiTexParameterIuivEXTFunPtr
+
+glMultiTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterIuivEXT")
+
+{-# NOINLINE glMultiTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterfEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexParameterfvEXT'.
+
+
+glMultiTexParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLfloat -> m ()
+glMultiTexParameterfEXT = ffienumenumenumfloatIOV glMultiTexParameterfEXTFunPtr
+
+glMultiTexParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+glMultiTexParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfEXT")
+
+{-# NOINLINE glMultiTexParameterfEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterfvEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterfvEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMultiTexParameterfvEXT = ffienumenumenumPtrfloatIOV glMultiTexParameterfvEXTFunPtr
+
+glMultiTexParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMultiTexParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterfvEXT")
+
+{-# NOINLINE glMultiTexParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameteriEXT' texunit target pname param@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glMultiTexParameterivEXT'.
+
+
+glMultiTexParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLint -> m ()
+glMultiTexParameteriEXT = ffienumenumenumintIOV glMultiTexParameteriEXTFunPtr
+
+glMultiTexParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+glMultiTexParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameteriEXT")
+
+{-# NOINLINE glMultiTexParameteriEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexParameterivEXT' texunit target pname params@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMultiTexParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glMultiTexParameterivEXT = ffienumenumenumPtrintIOV glMultiTexParameterivEXTFunPtr
+
+glMultiTexParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glMultiTexParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexParameterivEXT")
+
+{-# NOINLINE glMultiTexParameterivEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexRenderbufferEXT' texunit target renderbuffer@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glMultiTexRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexRenderbufferEXT = ffienumenumuintIOV glMultiTexRenderbufferEXTFunPtr
+
+glMultiTexRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexRenderbufferEXT")
+
+{-# NOINLINE glMultiTexRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexSubImage1DEXT' texunit target level xoffset width format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glMultiTexSubImage1DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexSubImage1DEXT = ffienumenumintintsizeienumenumPtrVIOV glMultiTexSubImage1DEXTFunPtr
+
+glMultiTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage1DEXT")
+
+{-# NOINLINE glMultiTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexSubImage2DEXT' texunit target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glMultiTexSubImage2DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexSubImage2DEXT = ffienumenumintintintsizeisizeienumenumPtrVIOV glMultiTexSubImage2DEXTFunPtr
+
+glMultiTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage2DEXT")
+
+{-# NOINLINE glMultiTexSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glMultiTexSubImage3DEXT' texunit target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @texunit@ is a @TextureUnit@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glMultiTexSubImage3DEXT :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glMultiTexSubImage3DEXT = ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV glMultiTexSubImage3DEXTFunPtr
+
+glMultiTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glMultiTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glMultiTexSubImage3DEXT")
+
+{-# NOINLINE glMultiTexSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glNamedBufferDataEXT' buffer size data usage@
+--
+-- The parameter @usage@ is a @VertexBufferObjectUsage@.
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+
+
+glNamedBufferDataEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glNamedBufferDataEXT = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataEXTFunPtr
+
+glNamedBufferDataEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glNamedBufferDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferDataEXT")
+
+{-# NOINLINE glNamedBufferDataEXTFunPtr #-}
+
+-- | Usage: @'glNamedBufferStorageEXT' buffer size data flags@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glNamedBufferStorage'.
+
+
+glNamedBufferStorageEXT :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glNamedBufferStorageEXT = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageEXTFunPtr
+
+glNamedBufferStorageEXTFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glNamedBufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorageEXT")
+
+{-# NOINLINE glNamedBufferStorageEXTFunPtr #-}
+
+-- | Usage: @'glNamedBufferSubDataEXT' buffer offset size data@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glNamedBufferSubData'.
+
+
+glNamedBufferSubDataEXT :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glNamedBufferSubDataEXT = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataEXTFunPtr
+
+glNamedBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glNamedBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubDataEXT")
+
+{-# NOINLINE glNamedBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glNamedCopyBufferSubDataEXT' readBuffer writeBuffer readOffset writeOffset size@
+
+
+glNamedCopyBufferSubDataEXT :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glNamedCopyBufferSubDataEXT = ffiuintuintintptrintptrsizeiptrIOV glNamedCopyBufferSubDataEXTFunPtr
+
+glNamedCopyBufferSubDataEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glNamedCopyBufferSubDataEXTFunPtr = unsafePerformIO (getProcAddress "glNamedCopyBufferSubDataEXT")
+
+{-# NOINLINE glNamedCopyBufferSubDataEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferParameteriEXT' framebuffer pname param@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @pname@ is a @FramebufferParameterName@.
+
+
+glNamedFramebufferParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glNamedFramebufferParameteriEXT = ffiuintenumintIOV glNamedFramebufferParameteriEXTFunPtr
+
+glNamedFramebufferParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glNamedFramebufferParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteriEXT")
+
+{-# NOINLINE glNamedFramebufferParameteriEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferRenderbufferEXT' framebuffer attachment renderbuffertarget renderbuffer@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+
+
+glNamedFramebufferRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glNamedFramebufferRenderbufferEXT = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferEXTFunPtr
+
+glNamedFramebufferRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glNamedFramebufferRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbufferEXT")
+
+{-# NOINLINE glNamedFramebufferRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture1DEXT' framebuffer attachment textarget texture level@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTexture1DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture1DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture1DEXTFunPtr
+
+glNamedFramebufferTexture1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTexture1DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture1DEXT")
+
+{-# NOINLINE glNamedFramebufferTexture1DEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture2DEXT' framebuffer attachment textarget texture level@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTexture2DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture2DEXT = ffiuintenumenumuintintIOV glNamedFramebufferTexture2DEXTFunPtr
+
+glNamedFramebufferTexture2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTexture2DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture2DEXT")
+
+{-# NOINLINE glNamedFramebufferTexture2DEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture3DEXT' framebuffer attachment textarget texture level zoffset@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @textarget@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTexture3DEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTexture3DEXT = ffiuintenumenumuintintintIOV glNamedFramebufferTexture3DEXTFunPtr
+
+glNamedFramebufferTexture3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTexture3DEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture3DEXT")
+
+{-# NOINLINE glNamedFramebufferTexture3DEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureEXT' framebuffer attachment texture level@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTextureEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTextureEXT = ffiuintenumuintintIOV glNamedFramebufferTextureEXTFunPtr
+
+glNamedFramebufferTextureEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureEXT")
+
+{-# NOINLINE glNamedFramebufferTextureEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureFaceEXT' framebuffer attachment texture level face@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glNamedFramebufferTextureFaceEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
+glNamedFramebufferTextureFaceEXT = ffiuintenumuintintenumIOV glNamedFramebufferTextureFaceEXTFunPtr
+
+glNamedFramebufferTextureFaceEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+glNamedFramebufferTextureFaceEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureFaceEXT")
+
+{-# NOINLINE glNamedFramebufferTextureFaceEXTFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureLayerEXT' framebuffer attachment texture level layer@
+--
+-- The parameter @framebuffer@ is a @Framebuffer@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+
+
+glNamedFramebufferTextureLayerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTextureLayerEXT = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerEXTFunPtr
+
+glNamedFramebufferTextureLayerEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayerEXT")
+
+{-# NOINLINE glNamedFramebufferTextureLayerEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4dEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameter4dvEXT'.
+
+
+glNamedProgramLocalParameter4dEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glNamedProgramLocalParameter4dEXT = ffiuintenumuintdoubledoubledoubledoubleIOV glNamedProgramLocalParameter4dEXTFunPtr
+
+glNamedProgramLocalParameter4dEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glNamedProgramLocalParameter4dEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4dEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4dvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameter4dvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
+glNamedProgramLocalParameter4dvEXT = ffiuintenumuintPtrdoubleIOV glNamedProgramLocalParameter4dvEXTFunPtr
+
+glNamedProgramLocalParameter4dvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glNamedProgramLocalParameter4dvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4dvEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4dvEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4fEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameter4fvEXT'.
+
+
+glNamedProgramLocalParameter4fEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glNamedProgramLocalParameter4fEXT = ffiuintenumuintfloatfloatfloatfloatIOV glNamedProgramLocalParameter4fEXTFunPtr
+
+glNamedProgramLocalParameter4fEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glNamedProgramLocalParameter4fEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4fEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameter4fvEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameter4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
+glNamedProgramLocalParameter4fvEXT = ffiuintenumuintPtrfloatIOV glNamedProgramLocalParameter4fvEXTFunPtr
+
+glNamedProgramLocalParameter4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glNamedProgramLocalParameter4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameter4fvEXT")
+
+{-# NOINLINE glNamedProgramLocalParameter4fvEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4iEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameterI4ivEXT'.
+
+
+glNamedProgramLocalParameterI4iEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glNamedProgramLocalParameterI4iEXT = ffiuintenumuintintintintintIOV glNamedProgramLocalParameterI4iEXTFunPtr
+
+glNamedProgramLocalParameterI4iEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glNamedProgramLocalParameterI4iEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4iEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4iEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4ivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameterI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glNamedProgramLocalParameterI4ivEXT = ffiuintenumuintPtrintIOV glNamedProgramLocalParameterI4ivEXTFunPtr
+
+glNamedProgramLocalParameterI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glNamedProgramLocalParameterI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4ivEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4ivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4uiEXT' program target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glNamedProgramLocalParameterI4uivEXT'.
+
+
+glNamedProgramLocalParameterI4uiEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glNamedProgramLocalParameterI4uiEXT = ffiuintenumuintuintuintuintuintIOV glNamedProgramLocalParameterI4uiEXTFunPtr
+
+glNamedProgramLocalParameterI4uiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glNamedProgramLocalParameterI4uiEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uiEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4uiEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameterI4uivEXT' program target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glNamedProgramLocalParameterI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
+glNamedProgramLocalParameterI4uivEXT = ffiuintenumuintPtruintIOV glNamedProgramLocalParameterI4uivEXTFunPtr
+
+glNamedProgramLocalParameterI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
+glNamedProgramLocalParameterI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameterI4uivEXT")
+
+{-# NOINLINE glNamedProgramLocalParameterI4uivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParameters4fvEXT' program target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glNamedProgramLocalParameters4fvEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glNamedProgramLocalParameters4fvEXT = ffiuintenumuintsizeiPtrfloatIOV glNamedProgramLocalParameters4fvEXTFunPtr
+
+glNamedProgramLocalParameters4fvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glNamedProgramLocalParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParameters4fvEXT")
+
+{-# NOINLINE glNamedProgramLocalParameters4fvEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParametersI4ivEXT' program target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glNamedProgramLocalParametersI4ivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
+glNamedProgramLocalParametersI4ivEXT = ffiuintenumuintsizeiPtrintIOV glNamedProgramLocalParametersI4ivEXTFunPtr
+
+glNamedProgramLocalParametersI4ivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+glNamedProgramLocalParametersI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4ivEXT")
+
+{-# NOINLINE glNamedProgramLocalParametersI4ivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramLocalParametersI4uivEXT' program target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glNamedProgramLocalParametersI4uivEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glNamedProgramLocalParametersI4uivEXT = ffiuintenumuintsizeiPtruintIOV glNamedProgramLocalParametersI4uivEXTFunPtr
+
+glNamedProgramLocalParametersI4uivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glNamedProgramLocalParametersI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramLocalParametersI4uivEXT")
+
+{-# NOINLINE glNamedProgramLocalParametersI4uivEXTFunPtr #-}
+
+-- | Usage: @'glNamedProgramStringEXT' program target format len string@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The parameter @format@ is a @ProgramFormat@.
+--
+-- The length of @string@ should be @len@.
+
+
+glNamedProgramStringEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glNamedProgramStringEXT = ffiuintenumenumsizeiPtrVIOV glNamedProgramStringEXTFunPtr
+
+glNamedProgramStringEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glNamedProgramStringEXTFunPtr = unsafePerformIO (getProcAddress "glNamedProgramStringEXT")
+
+{-# NOINLINE glNamedProgramStringEXTFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageEXT' renderbuffer internalformat width height@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+
+
+glNamedRenderbufferStorageEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageEXT = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageEXTFunPtr
+
+glNamedRenderbufferStorageEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageEXT")
+
+{-# NOINLINE glNamedRenderbufferStorageEXTFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageMultisampleCoverageEXT' renderbuffer coverageSamples colorSamples internalformat width height@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+
+
+glNamedRenderbufferStorageMultisampleCoverageEXT :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisampleCoverageEXT = ffiuintsizeisizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr
+
+glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleCoverageEXT")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleCoverageEXTFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageMultisampleEXT' renderbuffer samples internalformat width height@
+--
+-- The parameter @renderbuffer@ is a @Renderbuffer@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+
+
+glNamedRenderbufferStorageMultisampleEXT :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisampleEXT = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleEXTFunPtr
+
+glNamedRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisampleEXT")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1dEXT' program location x@
+
+
+glProgramUniform1dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
+glProgramUniform1dEXT = ffiuintintdoubleIOV glProgramUniform1dEXTFunPtr
+
+glProgramUniform1dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+glProgramUniform1dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dEXT")
+
+{-# NOINLINE glProgramUniform1dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1dvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform1dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvEXTFunPtr
+
+glProgramUniform1dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform1dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dvEXT")
+
+{-# NOINLINE glProgramUniform1dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2dEXT' program location x y@
+
+
+glProgramUniform2dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
+glProgramUniform2dEXT = ffiuintintdoubledoubleIOV glProgramUniform2dEXTFunPtr
+
+glProgramUniform2dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+glProgramUniform2dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dEXT")
+
+{-# NOINLINE glProgramUniform2dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2dvEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform2dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvEXTFunPtr
+
+glProgramUniform2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dvEXT")
+
+{-# NOINLINE glProgramUniform2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3dEXT' program location x y z@
+
+
+glProgramUniform3dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform3dEXT = ffiuintintdoubledoubledoubleIOV glProgramUniform3dEXTFunPtr
+
+glProgramUniform3dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform3dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dEXT")
+
+{-# NOINLINE glProgramUniform3dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3dvEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform3dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvEXTFunPtr
+
+glProgramUniform3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dvEXT")
+
+{-# NOINLINE glProgramUniform3dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4dEXT' program location x y z w@
+
+
+glProgramUniform4dEXT :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform4dEXT = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dEXTFunPtr
+
+glProgramUniform4dEXTFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform4dEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dEXT")
+
+{-# NOINLINE glProgramUniform4dEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4dvEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform4dvEXT = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvEXTFunPtr
+
+glProgramUniform4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dvEXT")
+
+{-# NOINLINE glProgramUniform4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniformMatrix2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvEXTFunPtr
+
+glProgramUniformMatrix2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix2x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvEXTFunPtr
+
+glProgramUniformMatrix2x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x3dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix2x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvEXTFunPtr
+
+glProgramUniformMatrix2x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glProgramUniformMatrix3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvEXTFunPtr
+
+glProgramUniformMatrix3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix3x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvEXTFunPtr
+
+glProgramUniformMatrix3x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix3x4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvEXTFunPtr
+
+glProgramUniformMatrix3x4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glProgramUniformMatrix4dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvEXTFunPtr
+
+glProgramUniformMatrix4dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix4x2dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x2dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvEXTFunPtr
+
+glProgramUniformMatrix4x2dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x2dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x2dvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3dvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix4x3dvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x3dvEXT = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvEXTFunPtr
+
+glProgramUniformMatrix4x3dvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x3dvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x3dvEXTFunPtr #-}
+
+-- | Usage: @'glPushClientAttribDefaultEXT' mask@
+--
+-- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
+
+
+glPushClientAttribDefaultEXT :: MonadIO m => GLbitfield -> m ()
+glPushClientAttribDefaultEXT = ffibitfieldIOV glPushClientAttribDefaultEXTFunPtr
+
+glPushClientAttribDefaultEXTFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushClientAttribDefaultEXTFunPtr = unsafePerformIO (getProcAddress "glPushClientAttribDefaultEXT")
+
+{-# NOINLINE glPushClientAttribDefaultEXTFunPtr #-}
+
+-- | Usage: @'glTextureBufferEXT' texture target internalformat buffer@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+
+
+glTextureBufferEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glTextureBufferEXT = ffiuintenumenumuintIOV glTextureBufferEXTFunPtr
+
+glTextureBufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glTextureBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferEXT")
+
+{-# NOINLINE glTextureBufferEXTFunPtr #-}
+
+-- | Usage: @'glTextureBufferRangeEXT' texture target internalformat buffer offset size@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glTextureBufferRangeEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTextureBufferRangeEXT = ffiuintenumenumuintintptrsizeiptrIOV glTextureBufferRangeEXTFunPtr
+
+glTextureBufferRangeEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTextureBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRangeEXT")
+
+{-# NOINLINE glTextureBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glTextureImage1DEXT' texture target level internalformat width border format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glTextureImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureImage1DEXT = ffiuintenumintintsizeiintenumenumPtrVIOV glTextureImage1DEXTFunPtr
+
+glTextureImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage1DEXT")
+
+{-# NOINLINE glTextureImage1DEXTFunPtr #-}
+
+-- | Usage: @'glTextureImage2DEXT' texture target level internalformat width height border format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glTextureImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureImage2DEXT = ffiuintenumintintsizeisizeiintenumenumPtrVIOV glTextureImage2DEXTFunPtr
+
+glTextureImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DEXT")
+
+{-# NOINLINE glTextureImage2DEXTFunPtr #-}
+
+-- | Usage: @'glTextureImage3DEXT' texture target level internalformat width height depth border format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glTextureImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureImage3DEXT = ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV glTextureImage3DEXTFunPtr
+
+glTextureImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DEXT")
+
+{-# NOINLINE glTextureImage3DEXTFunPtr #-}
+
+-- | Usage: @'glTexturePageCommitmentEXT' texture level xoffset yoffset zoffset width height depth commit@
+
+
+glTexturePageCommitmentEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexturePageCommitmentEXT = ffiuintintintintintsizeisizeisizeibooleanIOV glTexturePageCommitmentEXTFunPtr
+
+glTexturePageCommitmentEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexturePageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glTexturePageCommitmentEXT")
+
+{-# NOINLINE glTexturePageCommitmentEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterIivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterIivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glTextureParameterIivEXT = ffiuintenumenumPtrintIOV glTextureParameterIivEXTFunPtr
+
+glTextureParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIivEXT")
+
+{-# NOINLINE glTextureParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterIuivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
+glTextureParameterIuivEXT = ffiuintenumenumPtruintIOV glTextureParameterIuivEXTFunPtr
+
+glTextureParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTextureParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuivEXT")
+
+{-# NOINLINE glTextureParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterfEXT' texture target pname param@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glTextureParameterfvEXT'.
+
+
+glTextureParameterfEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLfloat -> m ()
+glTextureParameterfEXT = ffiuintenumenumfloatIOV glTextureParameterfEXTFunPtr
+
+glTextureParameterfEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ())
+glTextureParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfEXT")
+
+{-# NOINLINE glTextureParameterfEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterfvEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterfvEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTextureParameterfvEXT = ffiuintenumenumPtrfloatIOV glTextureParameterfvEXTFunPtr
+
+glTextureParameterfvEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTextureParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfvEXT")
+
+{-# NOINLINE glTextureParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameteriEXT' texture target pname param@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.DirectStateAccess.glTextureParameterivEXT'.
+
+
+glTextureParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLint -> m ()
+glTextureParameteriEXT = ffiuintenumenumintIOV glTextureParameteriEXTFunPtr
+
+glTextureParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ())
+glTextureParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriEXT")
+
+{-# NOINLINE glTextureParameteriEXTFunPtr #-}
+
+-- | Usage: @'glTextureParameterivEXT' texture target pname params@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTextureParameterivEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glTextureParameterivEXT = ffiuintenumenumPtrintIOV glTextureParameterivEXTFunPtr
+
+glTextureParameterivEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glTextureParameterivEXT")
+
+{-# NOINLINE glTextureParameterivEXTFunPtr #-}
+
+-- | Usage: @'glTextureRenderbufferEXT' texture target renderbuffer@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glTextureRenderbufferEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
+glTextureRenderbufferEXT = ffiuintenumuintIOV glTextureRenderbufferEXTFunPtr
+
+glTextureRenderbufferEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+glTextureRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glTextureRenderbufferEXT")
+
+{-# NOINLINE glTextureRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DMultisampleEXT' texture target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @internalformat@ is a @TextureInternalFormat@.
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTextureStorage2DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage2DMultisampleEXT = ffiuintenumsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleEXTFunPtr
+
+glTextureStorage2DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage2DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisampleEXT")
+
+{-# NOINLINE glTextureStorage2DMultisampleEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DMultisampleEXT' texture target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTextureStorage3DMultisampleEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage3DMultisampleEXT = ffiuintenumsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleEXTFunPtr
+
+glTextureStorage3DMultisampleEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage3DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisampleEXT")
+
+{-# NOINLINE glTextureStorage3DMultisampleEXTFunPtr #-}
+
+-- | Usage: @'glTextureSubImage1DEXT' texture target level xoffset width format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+
+
+glTextureSubImage1DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage1DEXT = ffiuintenumintintsizeienumenumPtrVIOV glTextureSubImage1DEXTFunPtr
+
+glTextureSubImage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1DEXT")
+
+{-# NOINLINE glTextureSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glTextureSubImage2DEXT' texture target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glTextureSubImage2DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage2DEXT = ffiuintenumintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DEXTFunPtr
+
+glTextureSubImage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2DEXT")
+
+{-# NOINLINE glTextureSubImage2DEXTFunPtr #-}
+
+-- | Usage: @'glTextureSubImage3DEXT' texture target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+
+
+glTextureSubImage3DEXT :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage3DEXT = ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DEXTFunPtr
+
+glTextureSubImage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3DEXT")
+
+{-# NOINLINE glTextureSubImage3DEXTFunPtr #-}
+
+-- | Usage: @'glUnmapNamedBufferEXT' buffer@
+
+
+glUnmapNamedBufferEXT :: MonadIO m => GLuint -> m GLboolean
+glUnmapNamedBufferEXT = ffiuintIOboolean glUnmapNamedBufferEXTFunPtr
+
+glUnmapNamedBufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glUnmapNamedBufferEXTFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBufferEXT")
+
+{-# NOINLINE glUnmapNamedBufferEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayBindVertexBufferEXT' vaobj bindingindex buffer offset stride@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+
+
+glVertexArrayBindVertexBufferEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glVertexArrayBindVertexBufferEXT = ffiuintuintuintintptrsizeiIOV glVertexArrayBindVertexBufferEXTFunPtr
+
+glVertexArrayBindVertexBufferEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glVertexArrayBindVertexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindVertexBufferEXT")
+
+{-# NOINLINE glVertexArrayBindVertexBufferEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayColorOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+
+
+glVertexArrayColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayColorOffsetEXTFunPtr
+
+glVertexArrayColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayColorOffsetEXT")
+
+{-# NOINLINE glVertexArrayColorOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayEdgeFlagOffsetEXT' vaobj buffer stride offset@
+
+
+glVertexArrayEdgeFlagOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
+glVertexArrayEdgeFlagOffsetEXT = ffiuintuintsizeiintptrIOV glVertexArrayEdgeFlagOffsetEXTFunPtr
+
+glVertexArrayEdgeFlagOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ())
+glVertexArrayEdgeFlagOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayEdgeFlagOffsetEXT")
+
+{-# NOINLINE glVertexArrayEdgeFlagOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayFogCoordOffsetEXT' vaobj buffer type stride offset@
+--
+-- The parameter @type@ is a @FogCoordinatePointerType@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
+
+
+glVertexArrayFogCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayFogCoordOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayFogCoordOffsetEXTFunPtr
+
+glVertexArrayFogCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayFogCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayFogCoordOffsetEXT")
+
+{-# NOINLINE glVertexArrayFogCoordOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayIndexOffsetEXT' vaobj buffer type stride offset@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayIndexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayIndexOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayIndexOffsetEXTFunPtr
+
+glVertexArrayIndexOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayIndexOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayIndexOffsetEXT")
+
+{-# NOINLINE glVertexArrayIndexOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayMultiTexCoordOffsetEXT' vaobj buffer texunit size type stride offset@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayMultiTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayMultiTexCoordOffsetEXT = ffiuintuintenumintenumsizeiintptrIOV glVertexArrayMultiTexCoordOffsetEXTFunPtr
+
+glVertexArrayMultiTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayMultiTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayMultiTexCoordOffsetEXT")
+
+{-# NOINLINE glVertexArrayMultiTexCoordOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayNormalOffsetEXT' vaobj buffer type stride offset@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayNormalOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayNormalOffsetEXT = ffiuintuintenumsizeiintptrIOV glVertexArrayNormalOffsetEXTFunPtr
+
+glVertexArrayNormalOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayNormalOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayNormalOffsetEXT")
+
+{-# NOINLINE glVertexArrayNormalOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArraySecondaryColorOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+
+
+glVertexArraySecondaryColorOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArraySecondaryColorOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArraySecondaryColorOffsetEXTFunPtr
+
+glVertexArraySecondaryColorOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArraySecondaryColorOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArraySecondaryColorOffsetEXT")
+
+{-# NOINLINE glVertexArraySecondaryColorOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayTexCoordOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayTexCoordOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayTexCoordOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayTexCoordOffsetEXTFunPtr
+
+glVertexArrayTexCoordOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayTexCoordOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayTexCoordOffsetEXT")
+
+{-# NOINLINE glVertexArrayTexCoordOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribBindingEXT' vaobj attribindex bindingindex@
+
+
+glVertexArrayVertexAttribBindingEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayVertexAttribBindingEXT = ffiuintuintuintIOV glVertexArrayVertexAttribBindingEXTFunPtr
+
+glVertexArrayVertexAttribBindingEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayVertexAttribBindingEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribBindingEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribBindingEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribDivisorEXT' vaobj index divisor@
+
+
+glVertexArrayVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayVertexAttribDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexAttribDivisorEXTFunPtr
+
+glVertexArrayVertexAttribDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayVertexAttribDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribDivisorEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribDivisorEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribFormatEXT' vaobj attribindex size type normalized relativeoffset@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexArrayVertexAttribFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexArrayVertexAttribFormatEXT = ffiuintuintintenumbooleanuintIOV glVertexArrayVertexAttribFormatEXTFunPtr
+
+glVertexArrayVertexAttribFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexArrayVertexAttribFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribFormatEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribFormatEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribIFormatEXT' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayVertexAttribIFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayVertexAttribIFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribIFormatEXTFunPtr
+
+glVertexArrayVertexAttribIFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayVertexAttribIFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIFormatEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribIFormatEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribIOffsetEXT' vaobj buffer index size type stride offset@
+--
+-- The parameter @type@ is a @VertexAttribEnum@.
+
+
+glVertexArrayVertexAttribIOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayVertexAttribIOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribIOffsetEXTFunPtr
+
+glVertexArrayVertexAttribIOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayVertexAttribIOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribIOffsetEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribIOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribLFormatEXT' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayVertexAttribLFormatEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayVertexAttribLFormatEXT = ffiuintuintintenumuintIOV glVertexArrayVertexAttribLFormatEXTFunPtr
+
+glVertexArrayVertexAttribLFormatEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayVertexAttribLFormatEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLFormatEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribLFormatEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribLOffsetEXT' vaobj buffer index size type stride offset@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+
+
+glVertexArrayVertexAttribLOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayVertexAttribLOffsetEXT = ffiuintuintuintintenumsizeiintptrIOV glVertexArrayVertexAttribLOffsetEXTFunPtr
+
+glVertexArrayVertexAttribLOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayVertexAttribLOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribLOffsetEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribLOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexAttribOffsetEXT' vaobj buffer index size type normalized stride offset@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+
+
+glVertexArrayVertexAttribOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
+glVertexArrayVertexAttribOffsetEXT = ffiuintuintuintintenumbooleansizeiintptrIOV glVertexArrayVertexAttribOffsetEXTFunPtr
+
+glVertexArrayVertexAttribOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ())
+glVertexArrayVertexAttribOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexAttribOffsetEXT")
+
+{-# NOINLINE glVertexArrayVertexAttribOffsetEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBindingDivisorEXT' vaobj bindingindex divisor@
+
+
+glVertexArrayVertexBindingDivisorEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayVertexBindingDivisorEXT = ffiuintuintuintIOV glVertexArrayVertexBindingDivisorEXTFunPtr
+
+glVertexArrayVertexBindingDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayVertexBindingDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBindingDivisorEXT")
+
+{-# NOINLINE glVertexArrayVertexBindingDivisorEXTFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexOffsetEXT' vaobj buffer size type stride offset@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+
+
+glVertexArrayVertexOffsetEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+glVertexArrayVertexOffsetEXT = ffiuintuintintenumsizeiintptrIOV glVertexArrayVertexOffsetEXTFunPtr
+
+glVertexArrayVertexOffsetEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+glVertexArrayVertexOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexOffsetEXT")
+
+{-# NOINLINE glVertexArrayVertexOffsetEXTFunPtr #-}
+
+pattern GL_PROGRAM_MATRIX_EXT = 0x8E2D
+
+pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F
+
+pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E
diff --git a/generated-src/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs b/generated-src/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs
@@ -0,0 +1,45 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DiscardFramebuffer (
+  -- * Extension Support
+    gl_EXT_discard_framebuffer
+
+  -- * GL_EXT_discard_framebuffer
+  , glDiscardFramebufferEXT
+  , pattern GL_COLOR_EXT
+  , pattern GL_DEPTH_EXT
+  , pattern GL_STENCIL_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_framebuffer.txt GL_EXT_discard_framebuffer> extension is available.
+
+gl_EXT_discard_framebuffer :: Bool
+gl_EXT_discard_framebuffer = member "GL_EXT_discard_framebuffer" extensions
+{-# NOINLINE gl_EXT_discard_framebuffer #-}
+
+-- | Usage: @'glDiscardFramebufferEXT' target numAttachments attachments@
+--
+-- The length of @attachments@ should be @numAttachments@.
+
+
+glDiscardFramebufferEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
+glDiscardFramebufferEXT = ffienumsizeiPtrenumIOV glDiscardFramebufferEXTFunPtr
+
+glDiscardFramebufferEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+glDiscardFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glDiscardFramebufferEXT")
+
+{-# NOINLINE glDiscardFramebufferEXTFunPtr #-}
+
+pattern GL_COLOR_EXT = 0x1800
+
+pattern GL_DEPTH_EXT = 0x1801
+
+pattern GL_STENCIL_EXT = 0x1802
diff --git a/generated-src/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs b/generated-src/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs
@@ -0,0 +1,73 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DisjointTimerQuery (
+  -- * Extension Support
+    gl_EXT_disjoint_timer_query
+
+  -- * GL_EXT_disjoint_timer_query
+  , glBeginQueryEXT
+  , glDeleteQueriesEXT
+  , glEndQueryEXT
+  , glGenQueriesEXT
+  , glGetQueryObjecti64vEXT
+  , glGetQueryObjectivEXT
+  , glGetQueryObjectui64vEXT
+  , glGetQueryObjectuivEXT
+  , glGetQueryivEXT
+  , glIsQueryEXT
+  , glQueryCounterEXT
+  , pattern GL_CURRENT_QUERY_EXT
+  , pattern GL_GPU_DISJOINT_EXT
+  , pattern GL_QUERY_COUNTER_BITS_EXT
+  , pattern GL_QUERY_RESULT_AVAILABLE_EXT
+  , pattern GL_QUERY_RESULT_EXT
+  , pattern GL_TIMESTAMP_EXT
+  , pattern GL_TIME_ELAPSED_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://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt GL_EXT_disjoint_timer_query> extension is available.
+
+gl_EXT_disjoint_timer_query :: Bool
+gl_EXT_disjoint_timer_query = member "GL_EXT_disjoint_timer_query" extensions
+{-# NOINLINE gl_EXT_disjoint_timer_query #-}
+
+-- | Usage: @'glGetQueryObjectivEXT' id pname params@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectiv'.
+
+
+glGetQueryObjectivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryObjectivEXT = ffiuintenumPtrintIOV glGetQueryObjectivEXTFunPtr
+
+glGetQueryObjectivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryObjectivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectivEXT")
+
+{-# NOINLINE glGetQueryObjectivEXTFunPtr #-}
+
+-- | Usage: @'glQueryCounterEXT' id target@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glQueryCounter'.
+
+
+glQueryCounterEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glQueryCounterEXT = ffiuintenumIOV glQueryCounterEXTFunPtr
+
+glQueryCounterEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glQueryCounterEXTFunPtr = unsafePerformIO (getProcAddress "glQueryCounterEXT")
+
+{-# NOINLINE glQueryCounterEXTFunPtr #-}
+
+pattern GL_GPU_DISJOINT_EXT = 0x8FBB
+
+pattern GL_QUERY_COUNTER_BITS_EXT = 0x8864
+
+pattern GL_TIMESTAMP_EXT = 0x8E28
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/EXT/DrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawBuffers.hs
@@ -0,0 +1,105 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DrawBuffers (
+  -- * Extension Support
+    gl_EXT_draw_buffers
+
+  -- * GL_EXT_draw_buffers
+  , glDrawBuffersEXT
+  , pattern GL_COLOR_ATTACHMENT0_EXT
+  , pattern GL_COLOR_ATTACHMENT10_EXT
+  , pattern GL_COLOR_ATTACHMENT11_EXT
+  , pattern GL_COLOR_ATTACHMENT12_EXT
+  , pattern GL_COLOR_ATTACHMENT13_EXT
+  , pattern GL_COLOR_ATTACHMENT14_EXT
+  , pattern GL_COLOR_ATTACHMENT15_EXT
+  , pattern GL_COLOR_ATTACHMENT1_EXT
+  , pattern GL_COLOR_ATTACHMENT2_EXT
+  , pattern GL_COLOR_ATTACHMENT3_EXT
+  , pattern GL_COLOR_ATTACHMENT4_EXT
+  , pattern GL_COLOR_ATTACHMENT5_EXT
+  , pattern GL_COLOR_ATTACHMENT6_EXT
+  , pattern GL_COLOR_ATTACHMENT7_EXT
+  , pattern GL_COLOR_ATTACHMENT8_EXT
+  , pattern GL_COLOR_ATTACHMENT9_EXT
+  , pattern GL_DRAW_BUFFER0_EXT
+  , pattern GL_DRAW_BUFFER10_EXT
+  , pattern GL_DRAW_BUFFER11_EXT
+  , pattern GL_DRAW_BUFFER12_EXT
+  , pattern GL_DRAW_BUFFER13_EXT
+  , pattern GL_DRAW_BUFFER14_EXT
+  , pattern GL_DRAW_BUFFER15_EXT
+  , pattern GL_DRAW_BUFFER1_EXT
+  , pattern GL_DRAW_BUFFER2_EXT
+  , pattern GL_DRAW_BUFFER3_EXT
+  , pattern GL_DRAW_BUFFER4_EXT
+  , pattern GL_DRAW_BUFFER5_EXT
+  , pattern GL_DRAW_BUFFER6_EXT
+  , pattern GL_DRAW_BUFFER7_EXT
+  , pattern GL_DRAW_BUFFER8_EXT
+  , pattern GL_DRAW_BUFFER9_EXT
+  , pattern GL_MAX_COLOR_ATTACHMENTS_EXT
+  , pattern GL_MAX_DRAW_BUFFERS_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://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers.txt GL_EXT_draw_buffers> extension is available.
+
+gl_EXT_draw_buffers :: Bool
+gl_EXT_draw_buffers = member "GL_EXT_draw_buffers" extensions
+{-# NOINLINE gl_EXT_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersEXT' n bufs@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawBuffers'.
+
+
+glDrawBuffersEXT :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffersEXT = ffisizeiPtrenumIOV glDrawBuffersEXTFunPtr
+
+glDrawBuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersEXTFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersEXT")
+
+{-# NOINLINE glDrawBuffersEXTFunPtr #-}
+
+pattern GL_DRAW_BUFFER0_EXT = 0x8825
+
+pattern GL_DRAW_BUFFER10_EXT = 0x882F
+
+pattern GL_DRAW_BUFFER11_EXT = 0x8830
+
+pattern GL_DRAW_BUFFER12_EXT = 0x8831
+
+pattern GL_DRAW_BUFFER13_EXT = 0x8832
+
+pattern GL_DRAW_BUFFER14_EXT = 0x8833
+
+pattern GL_DRAW_BUFFER15_EXT = 0x8834
+
+pattern GL_DRAW_BUFFER1_EXT = 0x8826
+
+pattern GL_DRAW_BUFFER2_EXT = 0x8827
+
+pattern GL_DRAW_BUFFER3_EXT = 0x8828
+
+pattern GL_DRAW_BUFFER4_EXT = 0x8829
+
+pattern GL_DRAW_BUFFER5_EXT = 0x882A
+
+pattern GL_DRAW_BUFFER6_EXT = 0x882B
+
+pattern GL_DRAW_BUFFER7_EXT = 0x882C
+
+pattern GL_DRAW_BUFFER8_EXT = 0x882D
+
+pattern GL_DRAW_BUFFER9_EXT = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_EXT = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawBuffers2.hs b/generated-src/Graphics/GL/Ext/EXT/DrawBuffers2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawBuffers2.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DrawBuffers2 (
+  -- * Extension Support
+    gl_EXT_draw_buffers2
+
+  -- * GL_EXT_draw_buffers2
+  , glColorMaskIndexedEXT
+  , glDisableIndexedEXT
+  , glEnableIndexedEXT
+  , glGetBooleanIndexedvEXT
+  , glGetIntegerIndexedvEXT
+  , glIsEnabledIndexedEXT
+) 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/draw_buffers2.txt GL_EXT_draw_buffers2> extension is available.
+
+gl_EXT_draw_buffers2 :: Bool
+gl_EXT_draw_buffers2 = member "GL_EXT_draw_buffers2" extensions
+{-# NOINLINE gl_EXT_draw_buffers2 #-}
+
+-- | Usage: @'glColorMaskIndexedEXT' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glColorMaski'.
+
+
+glColorMaskIndexedEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMaskIndexedEXT = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskIndexedEXTFunPtr
+
+glColorMaskIndexedEXTFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glColorMaskIndexedEXT")
+
+{-# NOINLINE glColorMaskIndexedEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawBuffersIndexed.hs b/generated-src/Graphics/GL/Ext/EXT/DrawBuffersIndexed.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawBuffersIndexed.hs
@@ -0,0 +1,171 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DrawBuffersIndexed (
+  -- * Extension Support
+    gl_EXT_draw_buffers_indexed
+
+  -- * GL_EXT_draw_buffers_indexed
+  , glBlendEquationSeparateiEXT
+  , glBlendEquationiEXT
+  , glBlendFuncSeparateiEXT
+  , glBlendFunciEXT
+  , glColorMaskiEXT
+  , glDisableiEXT
+  , glEnableiEXT
+  , glIsEnablediEXT
+  , pattern GL_BLEND
+  , pattern GL_BLEND_DST_ALPHA
+  , pattern GL_BLEND_DST_RGB
+  , pattern GL_BLEND_EQUATION_ALPHA
+  , pattern GL_BLEND_EQUATION_RGB
+  , pattern GL_BLEND_SRC_ALPHA
+  , pattern GL_BLEND_SRC_RGB
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_CONSTANT_ALPHA
+  , pattern GL_CONSTANT_COLOR
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_FUNC_ADD
+  , pattern GL_FUNC_REVERSE_SUBTRACT
+  , pattern GL_FUNC_SUBTRACT
+  , pattern GL_MAX
+  , pattern GL_MIN
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_ZERO
+) 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://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers_indexed.txt GL_EXT_draw_buffers_indexed> extension is available.
+
+gl_EXT_draw_buffers_indexed :: Bool
+gl_EXT_draw_buffers_indexed = member "GL_EXT_draw_buffers_indexed" extensions
+{-# NOINLINE gl_EXT_draw_buffers_indexed #-}
+
+-- | Usage: @'glBlendEquationSeparateiEXT' buf modeRGB modeAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
+
+
+glBlendEquationSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendEquationSeparateiEXT = ffiuintenumenumIOV glBlendEquationSeparateiEXTFunPtr
+
+glBlendEquationSeparateiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendEquationSeparateiEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateiEXT")
+
+{-# NOINLINE glBlendEquationSeparateiEXTFunPtr #-}
+
+-- | Usage: @'glBlendEquationiEXT' buf mode@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
+
+
+glBlendEquationiEXT :: MonadIO m => GLuint -> GLenum -> m ()
+glBlendEquationiEXT = ffiuintenumIOV glBlendEquationiEXTFunPtr
+
+glBlendEquationiEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBlendEquationiEXTFunPtr = unsafePerformIO (getProcAddress "glBlendEquationiEXT")
+
+{-# NOINLINE glBlendEquationiEXTFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparateiEXT' buf srcRGB dstRGB srcAlpha dstAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
+
+
+glBlendFuncSeparateiEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparateiEXT = ffiuintenumenumenumenumIOV glBlendFuncSeparateiEXTFunPtr
+
+glBlendFuncSeparateiEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateiEXTFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateiEXT")
+
+{-# NOINLINE glBlendFuncSeparateiEXTFunPtr #-}
+
+-- | Usage: @'glBlendFunciEXT' buf src dst@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
+
+
+glBlendFunciEXT :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendFunciEXT = ffiuintenumenumIOV glBlendFunciEXTFunPtr
+
+glBlendFunciEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendFunciEXTFunPtr = unsafePerformIO (getProcAddress "glBlendFunciEXT")
+
+{-# NOINLINE glBlendFunciEXTFunPtr #-}
+
+-- | Usage: @'glColorMaskiEXT' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glColorMaski'.
+
+
+glColorMaskiEXT :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMaskiEXT = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiEXTFunPtr
+
+glColorMaskiEXTFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskiEXTFunPtr = unsafePerformIO (getProcAddress "glColorMaskiEXT")
+
+{-# NOINLINE glColorMaskiEXTFunPtr #-}
+
+-- | Usage: @'glDisableiEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
+
+
+glDisableiEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableiEXT = ffienumuintIOV glDisableiEXTFunPtr
+
+glDisableiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiEXTFunPtr = unsafePerformIO (getProcAddress "glDisableiEXT")
+
+{-# NOINLINE glDisableiEXTFunPtr #-}
+
+-- | Usage: @'glEnableiEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
+
+
+glEnableiEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableiEXT = ffienumuintIOV glEnableiEXTFunPtr
+
+glEnableiEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiEXTFunPtr = unsafePerformIO (getProcAddress "glEnableiEXT")
+
+{-# NOINLINE glEnableiEXTFunPtr #-}
+
+-- | Usage: @'glIsEnablediEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
+
+
+glIsEnablediEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnablediEXT = ffienumuintIOboolean glIsEnablediEXTFunPtr
+
+glIsEnablediEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnablediEXT")
+
+{-# NOINLINE glIsEnablediEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawElementsBaseVertex.hs b/generated-src/Graphics/GL/Ext/EXT/DrawElementsBaseVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawElementsBaseVertex.hs
@@ -0,0 +1,104 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DrawElementsBaseVertex (
+  -- * Extension Support
+    gl_EXT_draw_elements_base_vertex
+
+  -- * GL_EXT_draw_elements_base_vertex
+  , glDrawElementsBaseVertexEXT
+  , glDrawElementsInstancedBaseVertexEXT
+  , glDrawRangeElementsBaseVertexEXT
+  , glMultiDrawElementsBaseVertexEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_EXT_draw_elements_base_vertex extension is available.
+
+gl_EXT_draw_elements_base_vertex :: Bool
+gl_EXT_draw_elements_base_vertex = member "GL_EXT_draw_elements_base_vertex" extensions
+{-# NOINLINE gl_EXT_draw_elements_base_vertex #-}
+
+-- | Usage: @'glDrawElementsBaseVertexEXT' mode count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsBaseVertex'.
+
+
+glDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawElementsBaseVertexEXT = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexEXTFunPtr
+
+glDrawElementsBaseVertexEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawElementsBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertexEXT")
+
+{-# NOINLINE glDrawElementsBaseVertexEXTFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertexEXT' mode count type indices instancecount basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseVertex'.
+
+
+glDrawElementsInstancedBaseVertexEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
+glDrawElementsInstancedBaseVertexEXT = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexEXTFunPtr
+
+glDrawElementsInstancedBaseVertexEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
+glDrawElementsInstancedBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexEXT")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexEXTFunPtr #-}
+
+-- | Usage: @'glDrawRangeElementsBaseVertexEXT' mode start end count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawRangeElementsBaseVertex'.
+
+
+glDrawRangeElementsBaseVertexEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawRangeElementsBaseVertexEXT = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexEXTFunPtr
+
+glDrawRangeElementsBaseVertexEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawRangeElementsBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertexEXT")
+
+{-# NOINLINE glDrawRangeElementsBaseVertexEXTFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsBaseVertexEXT' mode count type indices primcount basevertex@
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsBaseVertex'.
+
+
+glMultiDrawElementsBaseVertexEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
+glMultiDrawElementsBaseVertexEXT = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexEXTFunPtr
+
+glMultiDrawElementsBaseVertexEXTFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
+glMultiDrawElementsBaseVertexEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertexEXT")
+
+{-# NOINLINE glMultiDrawElementsBaseVertexEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawInstanced.hs b/generated-src/Graphics/GL/Ext/EXT/DrawInstanced.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawInstanced.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DrawInstanced (
+  -- * Extension Support
+    gl_EXT_draw_instanced
+
+  -- * GL_EXT_draw_instanced
+  , glDrawArraysInstancedEXT
+  , glDrawElementsInstancedEXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_instanced.txt GL_EXT_draw_instanced> extension is available.
+
+gl_EXT_draw_instanced :: Bool
+gl_EXT_draw_instanced = member "GL_EXT_draw_instanced" extensions
+{-# NOINLINE gl_EXT_draw_instanced #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawRangeElements.hs b/generated-src/Graphics/GL/Ext/EXT/DrawRangeElements.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawRangeElements.hs
@@ -0,0 +1,48 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DrawRangeElements (
+  -- * Extension Support
+    gl_EXT_draw_range_elements
+
+  -- * GL_EXT_draw_range_elements
+  , glDrawRangeElementsEXT
+  , pattern GL_MAX_ELEMENTS_INDICES_EXT
+  , pattern GL_MAX_ELEMENTS_VERTICES_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_range_elements.txt GL_EXT_draw_range_elements> extension is available.
+
+gl_EXT_draw_range_elements :: Bool
+gl_EXT_draw_range_elements = member "GL_EXT_draw_range_elements" extensions
+{-# NOINLINE gl_EXT_draw_range_elements #-}
+
+-- | Usage: @'glDrawRangeElementsEXT' mode start end count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawRangeElements'.
+
+
+glDrawRangeElementsEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawRangeElementsEXT = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsEXTFunPtr
+
+glDrawRangeElementsEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawRangeElementsEXTFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsEXT")
+
+{-# NOINLINE glDrawRangeElementsEXTFunPtr #-}
+
+pattern GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9
+
+pattern GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawTransformFeedback.hs b/generated-src/Graphics/GL/Ext/EXT/DrawTransformFeedback.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawTransformFeedback.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.DrawTransformFeedback (
+  -- * Extension Support
+    gl_EXT_draw_transform_feedback
+
+  -- * GL_EXT_draw_transform_feedback
+  , glDrawTransformFeedbackEXT
+  , glDrawTransformFeedbackInstancedEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_transform_feedback.txt GL_EXT_draw_transform_feedback> extension is available.
+
+gl_EXT_draw_transform_feedback :: Bool
+gl_EXT_draw_transform_feedback = member "GL_EXT_draw_transform_feedback" extensions
+{-# NOINLINE gl_EXT_draw_transform_feedback #-}
+
+-- | Usage: @'glDrawTransformFeedbackEXT' mode id@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawTransformFeedback'.
+
+
+glDrawTransformFeedbackEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDrawTransformFeedbackEXT = ffienumuintIOV glDrawTransformFeedbackEXTFunPtr
+
+glDrawTransformFeedbackEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDrawTransformFeedbackEXTFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackEXT")
+
+{-# NOINLINE glDrawTransformFeedbackEXTFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackInstancedEXT' mode id instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawTransformFeedbackInstanced'.
+
+
+glDrawTransformFeedbackInstancedEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackInstancedEXT = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedEXTFunPtr
+
+glDrawTransformFeedbackInstancedEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstancedEXT")
+
+{-# NOINLINE glDrawTransformFeedbackInstancedEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/FloatBlend.hs b/generated-src/Graphics/GL/Ext/EXT/FloatBlend.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FloatBlend.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FloatBlend (
+  -- * Extension Support
+    gl_EXT_float_blend
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_float_blend.txt GL_EXT_float_blend> extension is available.
+
+gl_EXT_float_blend :: Bool
+gl_EXT_float_blend = member "GL_EXT_float_blend" extensions
+{-# NOINLINE gl_EXT_float_blend #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/FogCoord.hs b/generated-src/Graphics/GL/Ext/EXT/FogCoord.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FogCoord.hs
@@ -0,0 +1,135 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FogCoord (
+  -- * Extension Support
+    gl_EXT_fog_coord
+
+  -- * GL_EXT_fog_coord
+  , glFogCoordPointerEXT
+  , glFogCoorddEXT
+  , glFogCoorddvEXT
+  , glFogCoordfEXT
+  , glFogCoordfvEXT
+  , pattern GL_CURRENT_FOG_COORDINATE_EXT
+  , pattern GL_FOG_COORDINATE_ARRAY_EXT
+  , pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT
+  , pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT
+  , pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT
+  , pattern GL_FOG_COORDINATE_EXT
+  , pattern GL_FOG_COORDINATE_SOURCE_EXT
+  , pattern GL_FRAGMENT_DEPTH_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/fog_coord.txt GL_EXT_fog_coord> extension is available.
+
+gl_EXT_fog_coord :: Bool
+gl_EXT_fog_coord = member "GL_EXT_fog_coord" extensions
+{-# NOINLINE gl_EXT_fog_coord #-}
+
+-- | Usage: @'glFogCoordPointerEXT' type stride pointer@
+--
+-- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordPointer'.
+
+
+glFogCoordPointerEXT :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glFogCoordPointerEXT = ffienumsizeiPtrVIOV glFogCoordPointerEXTFunPtr
+
+glFogCoordPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glFogCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointerEXT")
+
+{-# NOINLINE glFogCoordPointerEXTFunPtr #-}
+
+-- | Usage: @'glFogCoorddEXT' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordd'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.FogCoord.glFogCoorddvEXT'.
+
+
+glFogCoorddEXT :: MonadIO m => GLdouble -> m ()
+glFogCoorddEXT = ffidoubleIOV glFogCoorddEXTFunPtr
+
+glFogCoorddEXTFunPtr :: FunPtr (GLdouble -> IO ())
+glFogCoorddEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoorddEXT")
+
+{-# NOINLINE glFogCoorddEXTFunPtr #-}
+
+-- | Usage: @'glFogCoorddvEXT' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- The length of @coord@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoorddv'.
+
+
+glFogCoorddvEXT :: MonadIO m => Ptr GLdouble -> m ()
+glFogCoorddvEXT = ffiPtrdoubleIOV glFogCoorddvEXTFunPtr
+
+glFogCoorddvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glFogCoorddvEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoorddvEXT")
+
+{-# NOINLINE glFogCoorddvEXTFunPtr #-}
+
+-- | Usage: @'glFogCoordfEXT' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordf'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.FogCoord.glFogCoordfvEXT'.
+
+
+glFogCoordfEXT :: MonadIO m => GLfloat -> m ()
+glFogCoordfEXT = ffifloatIOV glFogCoordfEXTFunPtr
+
+glFogCoordfEXTFunPtr :: FunPtr (GLfloat -> IO ())
+glFogCoordfEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordfEXT")
+
+{-# NOINLINE glFogCoordfEXTFunPtr #-}
+
+-- | Usage: @'glFogCoordfvEXT' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- The length of @coord@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFogCoordfv'.
+
+
+glFogCoordfvEXT :: MonadIO m => Ptr GLfloat -> m ()
+glFogCoordfvEXT = ffiPtrfloatIOV glFogCoordfvEXTFunPtr
+
+glFogCoordfvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glFogCoordfvEXTFunPtr = unsafePerformIO (getProcAddress "glFogCoordfvEXT")
+
+{-# NOINLINE glFogCoordfvEXTFunPtr #-}
+
+pattern GL_CURRENT_FOG_COORDINATE_EXT = 0x8453
+
+pattern GL_FOG_COORDINATE_ARRAY_EXT = 0x8457
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454
+
+pattern GL_FOG_COORDINATE_EXT = 0x8451
+
+pattern GL_FOG_COORDINATE_SOURCE_EXT = 0x8450
diff --git a/generated-src/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs b/generated-src/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FourTwoTwoPixels (
+  -- * Extension Support
+    gl_EXT_422_pixels
+
+  -- * GL_EXT_422_pixels
+  , pattern GL_422_AVERAGE_EXT
+  , pattern GL_422_EXT
+  , pattern GL_422_REV_AVERAGE_EXT
+  , pattern GL_422_REV_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/422_pixels.txt GL_EXT_422_pixels> extension is available.
+
+gl_EXT_422_pixels :: Bool
+gl_EXT_422_pixels = member "GL_EXT_422_pixels" extensions
+{-# NOINLINE gl_EXT_422_pixels #-}
+
+pattern GL_422_AVERAGE_EXT = 0x80CE
+
+pattern GL_422_EXT = 0x80CC
+
+pattern GL_422_REV_AVERAGE_EXT = 0x80CF
+
+pattern GL_422_REV_EXT = 0x80CD
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferBlit.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferBlit.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferBlit.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FramebufferBlit (
+  -- * Extension Support
+    gl_EXT_framebuffer_blit
+
+  -- * GL_EXT_framebuffer_blit
+  , glBlitFramebufferEXT
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT
+  , pattern GL_DRAW_FRAMEBUFFER_EXT
+  , pattern GL_READ_FRAMEBUFFER_BINDING_EXT
+  , pattern GL_READ_FRAMEBUFFER_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_blit.txt GL_EXT_framebuffer_blit> extension is available.
+
+gl_EXT_framebuffer_blit :: Bool
+gl_EXT_framebuffer_blit = member "GL_EXT_framebuffer_blit" extensions
+{-# NOINLINE gl_EXT_framebuffer_blit #-}
+
+-- | Usage: @'glBlitFramebufferEXT' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlitFramebuffer'.
+
+
+glBlitFramebufferEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitFramebufferEXT = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferEXTFunPtr
+
+glBlitFramebufferEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glBlitFramebufferEXT")
+
+{-# NOINLINE glBlitFramebufferEXTFunPtr #-}
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6
+
+pattern GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9
+
+pattern GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA
+
+pattern GL_READ_FRAMEBUFFER_EXT = 0x8CA8
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisample.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisample.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FramebufferMultisample (
+  -- * Extension Support
+    gl_EXT_framebuffer_multisample
+
+  -- * GL_EXT_framebuffer_multisample
+  , glRenderbufferStorageMultisampleEXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
+  , pattern GL_MAX_SAMPLES_EXT
+  , pattern GL_RENDERBUFFER_SAMPLES_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample.txt GL_EXT_framebuffer_multisample> extension is available.
+
+gl_EXT_framebuffer_multisample :: Bool
+gl_EXT_framebuffer_multisample = member "GL_EXT_framebuffer_multisample" extensions
+{-# NOINLINE gl_EXT_framebuffer_multisample #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled (
+  -- * Extension Support
+    gl_EXT_framebuffer_multisample_blit_scaled
+
+  -- * GL_EXT_framebuffer_multisample_blit_scaled
+  , pattern GL_SCALED_RESOLVE_FASTEST_EXT
+  , pattern GL_SCALED_RESOLVE_NICEST_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_multisample_blit_scaled.txt GL_EXT_framebuffer_multisample_blit_scaled> extension is available.
+
+gl_EXT_framebuffer_multisample_blit_scaled :: Bool
+gl_EXT_framebuffer_multisample_blit_scaled = member "GL_EXT_framebuffer_multisample_blit_scaled" extensions
+{-# NOINLINE gl_EXT_framebuffer_multisample_blit_scaled #-}
+
+pattern GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA
+
+pattern GL_SCALED_RESOLVE_NICEST_EXT = 0x90BB
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferObject.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferObject.hs
@@ -0,0 +1,420 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FramebufferObject (
+  -- * Extension Support
+    gl_EXT_framebuffer_object
+
+  -- * GL_EXT_framebuffer_object
+  , glBindFramebufferEXT
+  , glBindRenderbufferEXT
+  , glCheckFramebufferStatusEXT
+  , glDeleteFramebuffersEXT
+  , glDeleteRenderbuffersEXT
+  , glFramebufferRenderbufferEXT
+  , glFramebufferTexture1DEXT
+  , glFramebufferTexture2DEXT
+  , glFramebufferTexture3DEXT
+  , glGenFramebuffersEXT
+  , glGenRenderbuffersEXT
+  , glGenerateMipmapEXT
+  , glGetFramebufferAttachmentParameterivEXT
+  , glGetRenderbufferParameterivEXT
+  , glIsFramebufferEXT
+  , glIsRenderbufferEXT
+  , glRenderbufferStorageEXT
+  , pattern GL_COLOR_ATTACHMENT0_EXT
+  , pattern GL_COLOR_ATTACHMENT10_EXT
+  , pattern GL_COLOR_ATTACHMENT11_EXT
+  , pattern GL_COLOR_ATTACHMENT12_EXT
+  , pattern GL_COLOR_ATTACHMENT13_EXT
+  , pattern GL_COLOR_ATTACHMENT14_EXT
+  , pattern GL_COLOR_ATTACHMENT15_EXT
+  , pattern GL_COLOR_ATTACHMENT1_EXT
+  , pattern GL_COLOR_ATTACHMENT2_EXT
+  , pattern GL_COLOR_ATTACHMENT3_EXT
+  , pattern GL_COLOR_ATTACHMENT4_EXT
+  , pattern GL_COLOR_ATTACHMENT5_EXT
+  , pattern GL_COLOR_ATTACHMENT6_EXT
+  , pattern GL_COLOR_ATTACHMENT7_EXT
+  , pattern GL_COLOR_ATTACHMENT8_EXT
+  , pattern GL_COLOR_ATTACHMENT9_EXT
+  , pattern GL_DEPTH_ATTACHMENT_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT
+  , pattern GL_FRAMEBUFFER_BINDING_EXT
+  , pattern GL_FRAMEBUFFER_COMPLETE_EXT
+  , pattern GL_FRAMEBUFFER_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT
+  , pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT
+  , pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT
+  , pattern GL_MAX_COLOR_ATTACHMENTS_EXT
+  , pattern GL_MAX_RENDERBUFFER_SIZE_EXT
+  , pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT
+  , pattern GL_RENDERBUFFER_BINDING_EXT
+  , pattern GL_RENDERBUFFER_BLUE_SIZE_EXT
+  , pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT
+  , pattern GL_RENDERBUFFER_EXT
+  , pattern GL_RENDERBUFFER_GREEN_SIZE_EXT
+  , pattern GL_RENDERBUFFER_HEIGHT_EXT
+  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT
+  , pattern GL_RENDERBUFFER_RED_SIZE_EXT
+  , pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT
+  , pattern GL_RENDERBUFFER_WIDTH_EXT
+  , pattern GL_STENCIL_ATTACHMENT_EXT
+  , pattern GL_STENCIL_INDEX16_EXT
+  , pattern GL_STENCIL_INDEX1_EXT
+  , pattern GL_STENCIL_INDEX4_EXT
+  , pattern GL_STENCIL_INDEX8_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/framebuffer_object.txt GL_EXT_framebuffer_object> extension is available.
+
+gl_EXT_framebuffer_object :: Bool
+gl_EXT_framebuffer_object = member "GL_EXT_framebuffer_object" extensions
+{-# NOINLINE gl_EXT_framebuffer_object #-}
+
+-- | Usage: @'glBindFramebufferEXT' target framebuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+
+
+glBindFramebufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glBindFramebufferEXT = ffienumuintIOV glBindFramebufferEXTFunPtr
+
+glBindFramebufferEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glBindFramebufferEXT")
+
+{-# NOINLINE glBindFramebufferEXTFunPtr #-}
+
+-- | Usage: @'glBindRenderbufferEXT' target renderbuffer@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+
+
+glBindRenderbufferEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glBindRenderbufferEXT = ffienumuintIOV glBindRenderbufferEXTFunPtr
+
+glBindRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glBindRenderbufferEXT")
+
+{-# NOINLINE glBindRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glCheckFramebufferStatusEXT' target@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCheckFramebufferStatus'.
+
+
+glCheckFramebufferStatusEXT :: MonadIO m => GLenum -> m GLenum
+glCheckFramebufferStatusEXT = ffienumIOenum glCheckFramebufferStatusEXTFunPtr
+
+glCheckFramebufferStatusEXTFunPtr :: FunPtr (GLenum -> IO GLenum)
+glCheckFramebufferStatusEXTFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatusEXT")
+
+{-# NOINLINE glCheckFramebufferStatusEXTFunPtr #-}
+
+-- | Usage: @'glDeleteFramebuffersEXT' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteFramebuffers'.
+
+
+glDeleteFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFramebuffersEXT = ffisizeiPtruintIOV glDeleteFramebuffersEXTFunPtr
+
+glDeleteFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFramebuffersEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffersEXT")
+
+{-# NOINLINE glDeleteFramebuffersEXTFunPtr #-}
+
+-- | Usage: @'glDeleteRenderbuffersEXT' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteRenderbuffers'.
+
+
+glDeleteRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteRenderbuffersEXT = ffisizeiPtruintIOV glDeleteRenderbuffersEXTFunPtr
+
+glDeleteRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteRenderbuffersEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffersEXT")
+
+{-# NOINLINE glDeleteRenderbuffersEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferRenderbufferEXT' target attachment renderbuffertarget renderbuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferRenderbuffer'.
+
+
+glFramebufferRenderbufferEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glFramebufferRenderbufferEXT = ffienumenumenumuintIOV glFramebufferRenderbufferEXTFunPtr
+
+glFramebufferRenderbufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glFramebufferRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbufferEXT")
+
+{-# NOINLINE glFramebufferRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture1DEXT' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture1D'.
+
+
+glFramebufferTexture1DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture1DEXT = ffienumenumenumuintintIOV glFramebufferTexture1DEXTFunPtr
+
+glFramebufferTexture1DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture1DEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1DEXT")
+
+{-# NOINLINE glFramebufferTexture1DEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture2DEXT' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture2D'.
+
+
+glFramebufferTexture2DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture2DEXT = ffienumenumenumuintintIOV glFramebufferTexture2DEXTFunPtr
+
+glFramebufferTexture2DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture2DEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DEXT")
+
+{-# NOINLINE glFramebufferTexture2DEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture3DEXT' target attachment textarget texture level zoffset@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture3D'.
+
+
+glFramebufferTexture3DEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTexture3DEXT = ffienumenumenumuintintintIOV glFramebufferTexture3DEXTFunPtr
+
+glFramebufferTexture3DEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTexture3DEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3DEXT")
+
+{-# NOINLINE glFramebufferTexture3DEXTFunPtr #-}
+
+-- | Usage: @'glGenFramebuffersEXT' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenFramebuffers'.
+
+
+glGenFramebuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFramebuffersEXT = ffisizeiPtruintIOV glGenFramebuffersEXTFunPtr
+
+glGenFramebuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFramebuffersEXTFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffersEXT")
+
+{-# NOINLINE glGenFramebuffersEXTFunPtr #-}
+
+-- | Usage: @'glGenRenderbuffersEXT' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenRenderbuffers'.
+
+
+glGenRenderbuffersEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenRenderbuffersEXT = ffisizeiPtruintIOV glGenRenderbuffersEXTFunPtr
+
+glGenRenderbuffersEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenRenderbuffersEXTFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffersEXT")
+
+{-# NOINLINE glGenRenderbuffersEXTFunPtr #-}
+
+-- | Usage: @'glGenerateMipmapEXT' target@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenerateMipmap'.
+
+
+glGenerateMipmapEXT :: MonadIO m => GLenum -> m ()
+glGenerateMipmapEXT = ffienumIOV glGenerateMipmapEXTFunPtr
+
+glGenerateMipmapEXTFunPtr :: FunPtr (GLenum -> IO ())
+glGenerateMipmapEXTFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmapEXT")
+
+{-# NOINLINE glGenerateMipmapEXTFunPtr #-}
+
+-- | Usage: @'glGetFramebufferAttachmentParameterivEXT' target attachment pname params@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFramebufferAttachmentParameteriv'.
+
+
+glGetFramebufferAttachmentParameterivEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferAttachmentParameterivEXT = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivEXTFunPtr
+
+glGetFramebufferAttachmentParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferAttachmentParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameterivEXT")
+
+{-# NOINLINE glGetFramebufferAttachmentParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetRenderbufferParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetRenderbufferParameteriv'.
+
+
+glGetRenderbufferParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetRenderbufferParameterivEXT = ffienumenumPtrintIOV glGetRenderbufferParameterivEXTFunPtr
+
+glGetRenderbufferParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetRenderbufferParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameterivEXT")
+
+{-# NOINLINE glGetRenderbufferParameterivEXTFunPtr #-}
+
+-- | Usage: @'glIsFramebufferEXT' framebuffer@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsFramebuffer'.
+
+
+glIsFramebufferEXT :: MonadIO m => GLuint -> m GLboolean
+glIsFramebufferEXT = ffiuintIOboolean glIsFramebufferEXTFunPtr
+
+glIsFramebufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFramebufferEXTFunPtr = unsafePerformIO (getProcAddress "glIsFramebufferEXT")
+
+{-# NOINLINE glIsFramebufferEXTFunPtr #-}
+
+-- | Usage: @'glIsRenderbufferEXT' renderbuffer@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsRenderbuffer'.
+
+
+glIsRenderbufferEXT :: MonadIO m => GLuint -> m GLboolean
+glIsRenderbufferEXT = ffiuintIOboolean glIsRenderbufferEXTFunPtr
+
+glIsRenderbufferEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsRenderbufferEXTFunPtr = unsafePerformIO (getProcAddress "glIsRenderbufferEXT")
+
+{-# NOINLINE glIsRenderbufferEXTFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageEXT' target internalformat width height@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorage'.
+
+
+glRenderbufferStorageEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageEXT = ffienumenumsizeisizeiIOV glRenderbufferStorageEXTFunPtr
+
+glRenderbufferStorageEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageEXT")
+
+{-# NOINLINE glRenderbufferStorageEXTFunPtr #-}
+
+pattern GL_DEPTH_ATTACHMENT_EXT = 0x8D00
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2
+
+pattern GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6
+
+pattern GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5
+
+pattern GL_FRAMEBUFFER_EXT = 0x8D40
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506
+
+pattern GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53
+
+pattern GL_RENDERBUFFER_BINDING_EXT = 0x8CA7
+
+pattern GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54
+
+pattern GL_RENDERBUFFER_EXT = 0x8D41
+
+pattern GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51
+
+pattern GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44
+
+pattern GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55
+
+pattern GL_RENDERBUFFER_WIDTH_EXT = 0x8D42
+
+pattern GL_STENCIL_ATTACHMENT_EXT = 0x8D20
+
+pattern GL_STENCIL_INDEX16_EXT = 0x8D49
+
+pattern GL_STENCIL_INDEX1_EXT = 0x8D46
+
+pattern GL_STENCIL_INDEX4_EXT = 0x8D47
+
+pattern GL_STENCIL_INDEX8_EXT = 0x8D48
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferSRGB.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferSRGB.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferSRGB.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FramebufferSRGB (
+  -- * Extension Support
+    gl_EXT_framebuffer_sRGB
+
+  -- * GL_EXT_framebuffer_sRGB
+  , pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
+  , pattern GL_FRAMEBUFFER_SRGB_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/framebuffer_sRGB.txt GL_EXT_framebuffer_sRGB> extension is available.
+
+gl_EXT_framebuffer_sRGB :: Bool
+gl_EXT_framebuffer_sRGB = member "GL_EXT_framebuffer_sRGB" extensions
+{-# NOINLINE gl_EXT_framebuffer_sRGB #-}
+
+pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA
diff --git a/generated-src/Graphics/GL/Ext/EXT/GeometryPointSize.hs b/generated-src/Graphics/GL/Ext/EXT/GeometryPointSize.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/GeometryPointSize.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.GeometryPointSize (
+  -- * Extension Support
+    gl_EXT_geometry_point_size
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_geometry_point_size.txt GL_EXT_geometry_point_size> extension is available.
+
+gl_EXT_geometry_point_size :: Bool
+gl_EXT_geometry_point_size = member "GL_EXT_geometry_point_size" extensions
+{-# NOINLINE gl_EXT_geometry_point_size #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/GeometryShader.hs b/generated-src/Graphics/GL/Ext/EXT/GeometryShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/GeometryShader.hs
@@ -0,0 +1,90 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.GeometryShader (
+  -- * Extension Support
+    gl_EXT_geometry_shader
+
+  -- * GL_EXT_geometry_shader
+  , glFramebufferTextureEXT
+  , pattern GL_FIRST_VERTEX_CONVENTION_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
+  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
+  , pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT
+  , pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT
+  , pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT
+  , pattern GL_GEOMETRY_SHADER_BIT_EXT
+  , pattern GL_GEOMETRY_SHADER_EXT
+  , pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT
+  , pattern GL_LAST_VERTEX_CONVENTION_EXT
+  , pattern GL_LAYER_PROVOKING_VERTEX_EXT
+  , pattern GL_LINES_ADJACENCY_EXT
+  , pattern GL_LINE_STRIP_ADJACENCY_EXT
+  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT
+  , pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT
+  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT
+  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT
+  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT
+  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
+  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT
+  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT
+  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
+  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
+  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT
+  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
+  , pattern GL_PRIMITIVES_GENERATED_EXT
+  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT
+  , pattern GL_TRIANGLES_ADJACENCY_EXT
+  , pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT
+  , pattern GL_UNDEFINED_VERTEX_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_geometry_shader.txt GL_EXT_geometry_shader> extension is available.
+
+gl_EXT_geometry_shader :: Bool
+gl_EXT_geometry_shader = member "GL_EXT_geometry_shader" extensions
+{-# NOINLINE gl_EXT_geometry_shader #-}
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312
+
+pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917
+
+pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918
+
+pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916
+
+pattern GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F
+
+pattern GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309
+
+pattern GL_UNDEFINED_VERTEX_EXT = 0x8260
diff --git a/generated-src/Graphics/GL/Ext/EXT/GeometryShader4.hs b/generated-src/Graphics/GL/Ext/EXT/GeometryShader4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/GeometryShader4.hs
@@ -0,0 +1,45 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.GeometryShader4 (
+  -- * Extension Support
+    gl_EXT_geometry_shader4
+
+  -- * GL_EXT_geometry_shader4
+  , glProgramParameteriEXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
+  , pattern GL_GEOMETRY_INPUT_TYPE_EXT
+  , pattern GL_GEOMETRY_OUTPUT_TYPE_EXT
+  , pattern GL_GEOMETRY_SHADER_EXT
+  , pattern GL_GEOMETRY_VERTICES_OUT_EXT
+  , pattern GL_LINES_ADJACENCY_EXT
+  , pattern GL_LINE_STRIP_ADJACENCY_EXT
+  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT
+  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
+  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT
+  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT
+  , pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT
+  , pattern GL_MAX_VARYING_COMPONENTS_EXT
+  , pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT
+  , pattern GL_PROGRAM_POINT_SIZE_EXT
+  , pattern GL_TRIANGLES_ADJACENCY_EXT
+  , pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/geometry_shader4.txt GL_EXT_geometry_shader4> extension is available.
+
+gl_EXT_geometry_shader4 :: Bool
+gl_EXT_geometry_shader4 = member "GL_EXT_geometry_shader4" extensions
+{-# NOINLINE gl_EXT_geometry_shader4 #-}
+
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD
+
+pattern GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B
+
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE
diff --git a/generated-src/Graphics/GL/Ext/EXT/GpuProgramParameters.hs b/generated-src/Graphics/GL/Ext/EXT/GpuProgramParameters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/GpuProgramParameters.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.GpuProgramParameters (
+  -- * Extension Support
+    gl_EXT_gpu_program_parameters
+
+  -- * GL_EXT_gpu_program_parameters
+  , glProgramEnvParameters4fvEXT
+  , glProgramLocalParameters4fvEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/gpu_program_parameters.txt GL_EXT_gpu_program_parameters> extension is available.
+
+gl_EXT_gpu_program_parameters :: Bool
+gl_EXT_gpu_program_parameters = member "GL_EXT_gpu_program_parameters" extensions
+{-# NOINLINE gl_EXT_gpu_program_parameters #-}
+
+-- | Usage: @'glProgramEnvParameters4fvEXT' target index count params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glProgramEnvParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramEnvParameters4fvEXT = ffienumuintsizeiPtrfloatIOV glProgramEnvParameters4fvEXTFunPtr
+
+glProgramEnvParameters4fvEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramEnvParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameters4fvEXT")
+
+{-# NOINLINE glProgramEnvParameters4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameters4fvEXT' target index count params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glProgramLocalParameters4fvEXT :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramLocalParameters4fvEXT = ffienumuintsizeiPtrfloatIOV glProgramLocalParameters4fvEXTFunPtr
+
+glProgramLocalParameters4fvEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramLocalParameters4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameters4fvEXT")
+
+{-# NOINLINE glProgramLocalParameters4fvEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/GpuShader4.hs b/generated-src/Graphics/GL/Ext/EXT/GpuShader4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/GpuShader4.hs
@@ -0,0 +1,254 @@
+-- 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 = member "GL_EXT_gpu_shader4" 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 = ffiuintPtrcharIOint glGetFragDataLocationEXTFunPtr
+
+glGetFragDataLocationEXTFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataLocationEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiuintintPtruintIOV glGetUniformuivEXTFunPtr
+
+glGetUniformuivEXTFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+glGetUniformuivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintIOV glUniform1uiEXTFunPtr
+
+glUniform1uiEXTFunPtr :: FunPtr (GLint -> GLuint -> IO ())
+glUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform1uivEXTFunPtr
+
+glUniform1uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintuintIOV glUniform2uiEXTFunPtr
+
+glUniform2uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+glUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform2uivEXTFunPtr
+
+glUniform2uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintuintuintIOV glUniform3uiEXTFunPtr
+
+glUniform3uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform3uivEXTFunPtr
+
+glUniform3uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintuintuintuintuintIOV glUniform4uiEXTFunPtr
+
+glUniform4uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "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 = ffiintsizeiPtruintIOV glUniform4uivEXTFunPtr
+
+glUniform4uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glUniform4uivEXT")
+
+{-# NOINLINE glUniform4uivEXTFunPtr #-}
+
+pattern GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE
+
+pattern GL_INT_SAMPLER_1D_EXT = 0x8DC9
+
+pattern GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF
+
+pattern GL_INT_SAMPLER_2D_EXT = 0x8DCA
+
+pattern GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD
+
+pattern GL_INT_SAMPLER_3D_EXT = 0x8DCB
+
+pattern GL_INT_SAMPLER_CUBE_EXT = 0x8DCC
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904
+
+pattern GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3
+
+pattern GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4
+
+pattern GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4
+
+pattern GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6
+
+pattern GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7
+
+pattern GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD
diff --git a/generated-src/Graphics/GL/Ext/EXT/GpuShader5.hs b/generated-src/Graphics/GL/Ext/EXT/GpuShader5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/GpuShader5.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.GpuShader5 (
+  -- * Extension Support
+    gl_EXT_gpu_shader5
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_gpu_shader5.txt GL_EXT_gpu_shader5> extension is available.
+
+gl_EXT_gpu_shader5 :: Bool
+gl_EXT_gpu_shader5 = member "GL_EXT_gpu_shader5" extensions
+{-# NOINLINE gl_EXT_gpu_shader5 #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/Histogram.hs b/generated-src/Graphics/GL/Ext/EXT/Histogram.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Histogram.hs
@@ -0,0 +1,252 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Histogram (
+  -- * Extension Support
+    gl_EXT_histogram
+
+  -- * GL_EXT_histogram
+  , glGetHistogramEXT
+  , glGetHistogramParameterfvEXT
+  , glGetHistogramParameterivEXT
+  , glGetMinmaxEXT
+  , glGetMinmaxParameterfvEXT
+  , glGetMinmaxParameterivEXT
+  , glHistogramEXT
+  , glMinmaxEXT
+  , glResetHistogramEXT
+  , glResetMinmaxEXT
+  , pattern GL_HISTOGRAM_ALPHA_SIZE_EXT
+  , pattern GL_HISTOGRAM_BLUE_SIZE_EXT
+  , pattern GL_HISTOGRAM_EXT
+  , pattern GL_HISTOGRAM_FORMAT_EXT
+  , pattern GL_HISTOGRAM_GREEN_SIZE_EXT
+  , pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT
+  , pattern GL_HISTOGRAM_RED_SIZE_EXT
+  , pattern GL_HISTOGRAM_SINK_EXT
+  , pattern GL_HISTOGRAM_WIDTH_EXT
+  , pattern GL_MINMAX_EXT
+  , pattern GL_MINMAX_FORMAT_EXT
+  , pattern GL_MINMAX_SINK_EXT
+  , pattern GL_PROXY_HISTOGRAM_EXT
+  , pattern GL_TABLE_TOO_LARGE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/histogram.txt GL_EXT_histogram> extension is available.
+
+gl_EXT_histogram :: Bool
+gl_EXT_histogram = member "GL_EXT_histogram" extensions
+{-# NOINLINE gl_EXT_histogram #-}
+
+-- | Usage: @'glGetHistogramEXT' target reset format type values@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetHistogramEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
+glGetHistogramEXT = ffienumbooleanenumenumPtrVIOV glGetHistogramEXTFunPtr
+
+glGetHistogramEXTFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetHistogramEXTFunPtr = unsafePerformIO (getProcAddress "glGetHistogramEXT")
+
+{-# NOINLINE glGetHistogramEXTFunPtr #-}
+
+-- | Usage: @'glGetHistogramParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPNameEXT@, one of: 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_ALPHA_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_BLUE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_FORMAT_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_GREEN_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_LUMINANCE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_RED_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_SINK_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_WIDTH_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetHistogramParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetHistogramParameterfvEXT = ffienumenumPtrfloatIOV glGetHistogramParameterfvEXTFunPtr
+
+glGetHistogramParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetHistogramParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterfvEXT")
+
+{-# NOINLINE glGetHistogramParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetHistogramParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @pname@ is a @GetHistogramParameterPNameEXT@, one of: 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_ALPHA_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_BLUE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_FORMAT_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_GREEN_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_LUMINANCE_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_RED_SIZE_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_SINK_EXT', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_WIDTH_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetHistogramParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetHistogramParameterivEXT = ffienumenumPtrintIOV glGetHistogramParameterivEXTFunPtr
+
+glGetHistogramParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetHistogramParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterivEXT")
+
+{-# NOINLINE glGetHistogramParameterivEXTFunPtr #-}
+
+-- | Usage: @'glGetMinmaxEXT' target reset format type values@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @reset@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @values@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetMinmaxEXT :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
+glGetMinmaxEXT = ffienumbooleanenumenumPtrVIOV glGetMinmaxEXTFunPtr
+
+glGetMinmaxEXTFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetMinmaxEXTFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxEXT")
+
+{-# NOINLINE glGetMinmaxEXTFunPtr #-}
+
+-- | Usage: @'glGetMinmaxParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPNameEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_FORMAT', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_FORMAT_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_SINK', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_SINK_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMinmaxParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMinmaxParameterfvEXT = ffienumenumPtrfloatIOV glGetMinmaxParameterfvEXTFunPtr
+
+glGetMinmaxParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMinmaxParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameterfvEXT")
+
+{-# NOINLINE glGetMinmaxParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetMinmaxParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @pname@ is a @GetMinmaxParameterPNameEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_FORMAT', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_FORMAT_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX_SINK', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_SINK_EXT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMinmaxParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMinmaxParameterivEXT = ffienumenumPtrintIOV glGetMinmaxParameterivEXTFunPtr
+
+glGetMinmaxParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMinmaxParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetMinmaxParameterivEXT")
+
+{-# NOINLINE glGetMinmaxParameterivEXTFunPtr #-}
+
+-- | Usage: @'glHistogramEXT' target width internalformat sink@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glHistogram'.
+
+
+glHistogramEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
+glHistogramEXT = ffienumsizeienumbooleanIOV glHistogramEXTFunPtr
+
+glHistogramEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
+glHistogramEXTFunPtr = unsafePerformIO (getProcAddress "glHistogramEXT")
+
+{-# NOINLINE glHistogramEXTFunPtr #-}
+
+-- | Usage: @'glMinmaxEXT' target internalformat sink@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @sink@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glMinmax'.
+
+
+glMinmaxEXT :: MonadIO m => GLenum -> GLenum -> GLboolean -> m ()
+glMinmaxEXT = ffienumenumbooleanIOV glMinmaxEXTFunPtr
+
+glMinmaxEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ())
+glMinmaxEXTFunPtr = unsafePerformIO (getProcAddress "glMinmaxEXT")
+
+{-# NOINLINE glMinmaxEXTFunPtr #-}
+
+-- | Usage: @'glResetHistogramEXT' target@
+--
+-- The parameter @target@ is a @HistogramTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_HISTOGRAM', 'Graphics.GL.Ext.EXT.Histogram.GL_PROXY_HISTOGRAM_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glResetHistogram'.
+
+
+glResetHistogramEXT :: MonadIO m => GLenum -> m ()
+glResetHistogramEXT = ffienumIOV glResetHistogramEXTFunPtr
+
+glResetHistogramEXTFunPtr :: FunPtr (GLenum -> IO ())
+glResetHistogramEXTFunPtr = unsafePerformIO (getProcAddress "glResetHistogramEXT")
+
+{-# NOINLINE glResetHistogramEXTFunPtr #-}
+
+-- | Usage: @'glResetMinmaxEXT' target@
+--
+-- The parameter @target@ is a @MinmaxTargetEXT@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_MINMAX', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glResetMinmax'.
+
+
+glResetMinmaxEXT :: MonadIO m => GLenum -> m ()
+glResetMinmaxEXT = ffienumIOV glResetMinmaxEXTFunPtr
+
+glResetMinmaxEXTFunPtr :: FunPtr (GLenum -> IO ())
+glResetMinmaxEXTFunPtr = unsafePerformIO (getProcAddress "glResetMinmaxEXT")
+
+{-# NOINLINE glResetMinmaxEXTFunPtr #-}
+
+pattern GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B
+
+pattern GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A
+
+pattern GL_HISTOGRAM_EXT = 0x8024
+
+pattern GL_HISTOGRAM_FORMAT_EXT = 0x8027
+
+pattern GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029
+
+pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C
+
+pattern GL_HISTOGRAM_RED_SIZE_EXT = 0x8028
+
+pattern GL_HISTOGRAM_SINK_EXT = 0x802D
+
+pattern GL_HISTOGRAM_WIDTH_EXT = 0x8026
+
+pattern GL_MINMAX_EXT = 0x802E
+
+pattern GL_MINMAX_FORMAT_EXT = 0x802F
+
+pattern GL_MINMAX_SINK_EXT = 0x8030
+
+pattern GL_PROXY_HISTOGRAM_EXT = 0x8025
+
+pattern GL_TABLE_TOO_LARGE_EXT = 0x8031
diff --git a/generated-src/Graphics/GL/Ext/EXT/IndexArrayFormats.hs b/generated-src/Graphics/GL/Ext/EXT/IndexArrayFormats.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/IndexArrayFormats.hs
@@ -0,0 +1,41 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.IndexArrayFormats (
+  -- * Extension Support
+    gl_EXT_index_array_formats
+
+  -- * GL_EXT_index_array_formats
+  , pattern GL_IUI_N3F_V2F_EXT
+  , pattern GL_IUI_N3F_V3F_EXT
+  , pattern GL_IUI_V2F_EXT
+  , pattern GL_IUI_V3F_EXT
+  , pattern GL_T2F_IUI_N3F_V2F_EXT
+  , pattern GL_T2F_IUI_N3F_V3F_EXT
+  , pattern GL_T2F_IUI_V2F_EXT
+  , pattern GL_T2F_IUI_V3F_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_array_formats.txt GL_EXT_index_array_formats> extension is available.
+
+gl_EXT_index_array_formats :: Bool
+gl_EXT_index_array_formats = member "GL_EXT_index_array_formats" extensions
+{-# NOINLINE gl_EXT_index_array_formats #-}
+
+pattern GL_IUI_N3F_V2F_EXT = 0x81AF
+
+pattern GL_IUI_N3F_V3F_EXT = 0x81B0
+
+pattern GL_IUI_V2F_EXT = 0x81AD
+
+pattern GL_IUI_V3F_EXT = 0x81AE
+
+pattern GL_T2F_IUI_N3F_V2F_EXT = 0x81B3
+
+pattern GL_T2F_IUI_N3F_V3F_EXT = 0x81B4
+
+pattern GL_T2F_IUI_V2F_EXT = 0x81B1
+
+pattern GL_T2F_IUI_V3F_EXT = 0x81B2
diff --git a/generated-src/Graphics/GL/Ext/EXT/IndexFunc.hs b/generated-src/Graphics/GL/Ext/EXT/IndexFunc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/IndexFunc.hs
@@ -0,0 +1,47 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.IndexFunc (
+  -- * Extension Support
+    gl_EXT_index_func
+
+  -- * GL_EXT_index_func
+  , glIndexFuncEXT
+  , pattern GL_INDEX_TEST_EXT
+  , pattern GL_INDEX_TEST_FUNC_EXT
+  , pattern GL_INDEX_TEST_REF_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_func.txt GL_EXT_index_func> extension is available.
+
+gl_EXT_index_func :: Bool
+gl_EXT_index_func = member "GL_EXT_index_func" extensions
+{-# NOINLINE gl_EXT_index_func #-}
+
+-- | Usage: @'glIndexFuncEXT' func ref@
+--
+-- The parameter @func@ is a @IndexFunctionEXT@.
+--
+-- The parameter @ref@ is a @ClampedFloat32@.
+
+
+glIndexFuncEXT :: MonadIO m => GLenum -> GLclampf -> m ()
+glIndexFuncEXT = ffienumclampfIOV glIndexFuncEXTFunPtr
+
+glIndexFuncEXTFunPtr :: FunPtr (GLenum -> GLclampf -> IO ())
+glIndexFuncEXTFunPtr = unsafePerformIO (getProcAddress "glIndexFuncEXT")
+
+{-# NOINLINE glIndexFuncEXTFunPtr #-}
+
+pattern GL_INDEX_TEST_EXT = 0x81B5
+
+pattern GL_INDEX_TEST_FUNC_EXT = 0x81B6
+
+pattern GL_INDEX_TEST_REF_EXT = 0x81B7
diff --git a/generated-src/Graphics/GL/Ext/EXT/IndexMaterial.hs b/generated-src/Graphics/GL/Ext/EXT/IndexMaterial.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/IndexMaterial.hs
@@ -0,0 +1,47 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.IndexMaterial (
+  -- * Extension Support
+    gl_EXT_index_material
+
+  -- * GL_EXT_index_material
+  , glIndexMaterialEXT
+  , pattern GL_INDEX_MATERIAL_EXT
+  , pattern GL_INDEX_MATERIAL_FACE_EXT
+  , pattern GL_INDEX_MATERIAL_PARAMETER_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_material.txt GL_EXT_index_material> extension is available.
+
+gl_EXT_index_material :: Bool
+gl_EXT_index_material = member "GL_EXT_index_material" extensions
+{-# NOINLINE gl_EXT_index_material #-}
+
+-- | Usage: @'glIndexMaterialEXT' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @IndexMaterialParameterEXT@.
+
+
+glIndexMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
+glIndexMaterialEXT = ffienumenumIOV glIndexMaterialEXTFunPtr
+
+glIndexMaterialEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glIndexMaterialEXTFunPtr = unsafePerformIO (getProcAddress "glIndexMaterialEXT")
+
+{-# NOINLINE glIndexMaterialEXTFunPtr #-}
+
+pattern GL_INDEX_MATERIAL_EXT = 0x81B8
+
+pattern GL_INDEX_MATERIAL_FACE_EXT = 0x81BA
+
+pattern GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9
diff --git a/generated-src/Graphics/GL/Ext/EXT/IndexTexture.hs b/generated-src/Graphics/GL/Ext/EXT/IndexTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/IndexTexture.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.IndexTexture (
+  -- * Extension Support
+    gl_EXT_index_texture
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/index_texture.txt GL_EXT_index_texture> extension is available.
+
+gl_EXT_index_texture :: Bool
+gl_EXT_index_texture = member "GL_EXT_index_texture" extensions
+{-# NOINLINE gl_EXT_index_texture #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/EXT/InstancedArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/InstancedArrays.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.InstancedArrays (
+  -- * Extension Support
+    gl_EXT_instanced_arrays
+
+  -- * GL_EXT_instanced_arrays
+  , glDrawArraysInstancedEXT
+  , glDrawElementsInstancedEXT
+  , glVertexAttribDivisorEXT
+  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_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://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt GL_EXT_instanced_arrays> extension is available.
+
+gl_EXT_instanced_arrays :: Bool
+gl_EXT_instanced_arrays = member "GL_EXT_instanced_arrays" extensions
+{-# NOINLINE gl_EXT_instanced_arrays #-}
+
+-- | Usage: @'glVertexAttribDivisorEXT' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
+
+
+glVertexAttribDivisorEXT :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribDivisorEXT = ffiuintuintIOV glVertexAttribDivisorEXTFunPtr
+
+glVertexAttribDivisorEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribDivisorEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorEXT")
+
+{-# NOINLINE glVertexAttribDivisorEXTFunPtr #-}
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/EXT/LightTexture.hs b/generated-src/Graphics/GL/Ext/EXT/LightTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/LightTexture.hs
@@ -0,0 +1,95 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.LightTexture (
+  -- * Extension Support
+    gl_EXT_light_texture
+
+  -- * GL_EXT_light_texture
+  , glApplyTextureEXT
+  , glTextureLightEXT
+  , glTextureMaterialEXT
+  , pattern GL_ATTENUATION_EXT
+  , pattern GL_FRAGMENT_COLOR_EXT
+  , pattern GL_FRAGMENT_DEPTH_EXT
+  , pattern GL_FRAGMENT_MATERIAL_EXT
+  , pattern GL_FRAGMENT_NORMAL_EXT
+  , pattern GL_SHADOW_ATTENUATION_EXT
+  , pattern GL_TEXTURE_APPLICATION_MODE_EXT
+  , pattern GL_TEXTURE_LIGHT_EXT
+  , pattern GL_TEXTURE_MATERIAL_FACE_EXT
+  , pattern GL_TEXTURE_MATERIAL_PARAMETER_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/light_texture.txt GL_EXT_light_texture> extension is available.
+
+gl_EXT_light_texture :: Bool
+gl_EXT_light_texture = member "GL_EXT_light_texture" extensions
+{-# NOINLINE gl_EXT_light_texture #-}
+
+-- | Usage: @'glApplyTextureEXT' mode@
+--
+-- The parameter @mode@ is a @LightTextureModeEXT@.
+
+
+glApplyTextureEXT :: MonadIO m => GLenum -> m ()
+glApplyTextureEXT = ffienumIOV glApplyTextureEXTFunPtr
+
+glApplyTextureEXTFunPtr :: FunPtr (GLenum -> IO ())
+glApplyTextureEXTFunPtr = unsafePerformIO (getProcAddress "glApplyTextureEXT")
+
+{-# NOINLINE glApplyTextureEXTFunPtr #-}
+
+-- | Usage: @'glTextureLightEXT' pname@
+--
+-- The parameter @pname@ is a @LightTexturePNameEXT@.
+
+
+glTextureLightEXT :: MonadIO m => GLenum -> m ()
+glTextureLightEXT = ffienumIOV glTextureLightEXTFunPtr
+
+glTextureLightEXTFunPtr :: FunPtr (GLenum -> IO ())
+glTextureLightEXTFunPtr = unsafePerformIO (getProcAddress "glTextureLightEXT")
+
+{-# NOINLINE glTextureLightEXTFunPtr #-}
+
+-- | Usage: @'glTextureMaterialEXT' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+
+
+glTextureMaterialEXT :: MonadIO m => GLenum -> GLenum -> m ()
+glTextureMaterialEXT = ffienumenumIOV glTextureMaterialEXTFunPtr
+
+glTextureMaterialEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glTextureMaterialEXTFunPtr = unsafePerformIO (getProcAddress "glTextureMaterialEXT")
+
+{-# NOINLINE glTextureMaterialEXTFunPtr #-}
+
+pattern GL_ATTENUATION_EXT = 0x834D
+
+pattern GL_FRAGMENT_COLOR_EXT = 0x834C
+
+pattern GL_FRAGMENT_MATERIAL_EXT = 0x8349
+
+pattern GL_FRAGMENT_NORMAL_EXT = 0x834A
+
+pattern GL_SHADOW_ATTENUATION_EXT = 0x834E
+
+pattern GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F
+
+pattern GL_TEXTURE_LIGHT_EXT = 0x8350
+
+pattern GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351
+
+pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352
diff --git a/generated-src/Graphics/GL/Ext/EXT/MapBufferRange.hs b/generated-src/Graphics/GL/Ext/EXT/MapBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/MapBufferRange.hs
@@ -0,0 +1,68 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.MapBufferRange (
+  -- * Extension Support
+    gl_EXT_map_buffer_range
+
+  -- * GL_EXT_map_buffer_range
+  , glFlushMappedBufferRangeEXT
+  , glMapBufferRangeEXT
+  , pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT
+  , pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT
+  , pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT
+  , pattern GL_MAP_READ_BIT_EXT
+  , pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT
+  , pattern GL_MAP_WRITE_BIT_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_map_buffer_range.txt GL_EXT_map_buffer_range> extension is available.
+
+gl_EXT_map_buffer_range :: Bool
+gl_EXT_map_buffer_range = member "GL_EXT_map_buffer_range" extensions
+{-# NOINLINE gl_EXT_map_buffer_range #-}
+
+-- | Usage: @'glFlushMappedBufferRangeEXT' target offset length@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFlushMappedBufferRange'.
+
+
+glFlushMappedBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedBufferRangeEXT = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeEXTFunPtr
+
+glFlushMappedBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRangeEXT")
+
+{-# NOINLINE glFlushMappedBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glMapBufferRangeEXT' target offset length access@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMapBufferRange'.
+
+
+glMapBufferRangeEXT :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapBufferRangeEXT = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeEXTFunPtr
+
+glMapBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glMapBufferRangeEXT")
+
+{-# NOINLINE glMapBufferRangeEXTFunPtr #-}
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004
+
+pattern GL_MAP_READ_BIT_EXT = 0x0001
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020
+
+pattern GL_MAP_WRITE_BIT_EXT = 0x0002
diff --git a/generated-src/Graphics/GL/Ext/EXT/MiscAttribute.hs b/generated-src/Graphics/GL/Ext/EXT/MiscAttribute.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/MiscAttribute.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.MiscAttribute (
+  -- * Extension Support
+    gl_EXT_misc_attribute
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/misc_attribute.txt GL_EXT_misc_attribute> extension is available.
+
+gl_EXT_misc_attribute :: Bool
+gl_EXT_misc_attribute = member "GL_EXT_misc_attribute" extensions
+{-# NOINLINE gl_EXT_misc_attribute #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/MultiDrawArrays.hs b/generated-src/Graphics/GL/Ext/EXT/MultiDrawArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/MultiDrawArrays.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.MultiDrawArrays (
+  -- * Extension Support
+    gl_EXT_multi_draw_arrays
+
+  -- * GL_EXT_multi_draw_arrays
+  , glMultiDrawArraysEXT
+  , glMultiDrawElementsEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/multi_draw_arrays.txt GL_EXT_multi_draw_arrays> extension is available.
+
+gl_EXT_multi_draw_arrays :: Bool
+gl_EXT_multi_draw_arrays = member "GL_EXT_multi_draw_arrays" extensions
+{-# NOINLINE gl_EXT_multi_draw_arrays #-}
+
+-- | Usage: @'glMultiDrawArraysEXT' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawArrays'.
+
+
+glMultiDrawArraysEXT :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+glMultiDrawArraysEXT = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysEXTFunPtr
+
+glMultiDrawArraysEXTFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysEXT")
+
+{-# NOINLINE glMultiDrawArraysEXTFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsEXT' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(primcount)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElements'.
+
+
+glMultiDrawElementsEXT :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
+glMultiDrawElementsEXT = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsEXTFunPtr
+
+glMultiDrawElementsEXTFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
+glMultiDrawElementsEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsEXT")
+
+{-# NOINLINE glMultiDrawElementsEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/MultiDrawIndirect.hs b/generated-src/Graphics/GL/Ext/EXT/MultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/MultiDrawIndirect.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.MultiDrawIndirect (
+  -- * Extension Support
+    gl_EXT_multi_draw_indirect
+
+  -- * GL_EXT_multi_draw_indirect
+  , glMultiDrawArraysIndirectEXT
+  , glMultiDrawElementsIndirectEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_EXT_multi_draw_indirect extension is available.
+
+gl_EXT_multi_draw_indirect :: Bool
+gl_EXT_multi_draw_indirect = member "GL_EXT_multi_draw_indirect" extensions
+{-# NOINLINE gl_EXT_multi_draw_indirect #-}
+
+-- | Usage: @'glMultiDrawArraysIndirectEXT' mode indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawArraysIndirect'.
+
+
+glMultiDrawArraysIndirectEXT :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawArraysIndirectEXT = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectEXTFunPtr
+
+glMultiDrawArraysIndirectEXTFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysIndirectEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectEXT")
+
+{-# NOINLINE glMultiDrawArraysIndirectEXTFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectEXT' mode type indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsIndirect'.
+
+
+glMultiDrawElementsIndirectEXT :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawElementsIndirectEXT = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectEXTFunPtr
+
+glMultiDrawElementsIndirectEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawElementsIndirectEXTFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectEXT")
+
+{-# NOINLINE glMultiDrawElementsIndirectEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/Multisample.hs b/generated-src/Graphics/GL/Ext/EXT/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Multisample.hs
@@ -0,0 +1,100 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Multisample (
+  -- * Extension Support
+    gl_EXT_multisample
+
+  -- * GL_EXT_multisample
+  , glSampleMaskEXT
+  , glSamplePatternEXT
+  , pattern GL_1PASS_EXT
+  , pattern GL_2PASS_0_EXT
+  , pattern GL_2PASS_1_EXT
+  , pattern GL_4PASS_0_EXT
+  , pattern GL_4PASS_1_EXT
+  , pattern GL_4PASS_2_EXT
+  , pattern GL_4PASS_3_EXT
+  , pattern GL_MULTISAMPLE_BIT_EXT
+  , pattern GL_MULTISAMPLE_EXT
+  , pattern GL_SAMPLES_EXT
+  , pattern GL_SAMPLE_ALPHA_TO_MASK_EXT
+  , pattern GL_SAMPLE_ALPHA_TO_ONE_EXT
+  , pattern GL_SAMPLE_BUFFERS_EXT
+  , pattern GL_SAMPLE_MASK_EXT
+  , pattern GL_SAMPLE_MASK_INVERT_EXT
+  , pattern GL_SAMPLE_MASK_VALUE_EXT
+  , pattern GL_SAMPLE_PATTERN_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 GL_EXT_multisample extension is available.
+
+gl_EXT_multisample :: Bool
+gl_EXT_multisample = member "GL_EXT_multisample" extensions
+{-# NOINLINE gl_EXT_multisample #-}
+
+-- | Usage: @'glSampleMaskEXT' value invert@
+--
+-- The parameter @value@ is a @ClampedFloat32@.
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glSampleMaskEXT :: MonadIO m => GLclampf -> GLboolean -> m ()
+glSampleMaskEXT = fficlampfbooleanIOV glSampleMaskEXTFunPtr
+
+glSampleMaskEXTFunPtr :: FunPtr (GLclampf -> GLboolean -> IO ())
+glSampleMaskEXTFunPtr = unsafePerformIO (getProcAddress "glSampleMaskEXT")
+
+{-# NOINLINE glSampleMaskEXTFunPtr #-}
+
+-- | Usage: @'glSamplePatternEXT' pattern@
+--
+-- The parameter @pattern@ is a @SamplePatternEXT@.
+
+
+glSamplePatternEXT :: MonadIO m => GLenum -> m ()
+glSamplePatternEXT = ffienumIOV glSamplePatternEXTFunPtr
+
+glSamplePatternEXTFunPtr :: FunPtr (GLenum -> IO ())
+glSamplePatternEXTFunPtr = unsafePerformIO (getProcAddress "glSamplePatternEXT")
+
+{-# NOINLINE glSamplePatternEXTFunPtr #-}
+
+pattern GL_1PASS_EXT = 0x80A1
+
+pattern GL_2PASS_0_EXT = 0x80A2
+
+pattern GL_2PASS_1_EXT = 0x80A3
+
+pattern GL_4PASS_0_EXT = 0x80A4
+
+pattern GL_4PASS_1_EXT = 0x80A5
+
+pattern GL_4PASS_2_EXT = 0x80A6
+
+pattern GL_4PASS_3_EXT = 0x80A7
+
+pattern GL_MULTISAMPLE_BIT_EXT = 0x20000000
+
+pattern GL_SAMPLES_EXT = 0x80A9
+
+pattern GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E
+
+pattern GL_SAMPLE_BUFFERS_EXT = 0x80A8
+
+pattern GL_SAMPLE_MASK_EXT = 0x80A0
+
+pattern GL_SAMPLE_MASK_INVERT_EXT = 0x80AB
+
+pattern GL_SAMPLE_MASK_VALUE_EXT = 0x80AA
+
+pattern GL_SAMPLE_PATTERN_EXT = 0x80AC
diff --git a/generated-src/Graphics/GL/Ext/EXT/MultisampleCompatibility.hs b/generated-src/Graphics/GL/Ext/EXT/MultisampleCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/MultisampleCompatibility.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.MultisampleCompatibility (
+  -- * Extension Support
+    gl_EXT_multisample_compatibility
+
+  -- * GL_EXT_multisample_compatibility
+  , pattern GL_MULTISAMPLE_EXT
+  , pattern GL_SAMPLE_ALPHA_TO_ONE_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisample_compatibility.txt GL_EXT_multisample_compatibility> extension is available.
+
+gl_EXT_multisample_compatibility :: Bool
+gl_EXT_multisample_compatibility = member "GL_EXT_multisample_compatibility" extensions
+{-# NOINLINE gl_EXT_multisample_compatibility #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs b/generated-src/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.MultisampledRenderToTexture (
+  -- * Extension Support
+    gl_EXT_multisampled_render_to_texture
+
+  -- * GL_EXT_multisampled_render_to_texture
+  , glFramebufferTexture2DMultisampleEXT
+  , glRenderbufferStorageMultisampleEXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
+  , pattern GL_MAX_SAMPLES_EXT
+  , pattern GL_RENDERBUFFER_SAMPLES_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://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt GL_EXT_multisampled_render_to_texture> extension is available.
+
+gl_EXT_multisampled_render_to_texture :: Bool
+gl_EXT_multisampled_render_to_texture = member "GL_EXT_multisampled_render_to_texture" extensions
+{-# NOINLINE gl_EXT_multisampled_render_to_texture #-}
+
+-- | Usage: @'glFramebufferTexture2DMultisampleEXT' target attachment textarget texture level samples@
+
+
+glFramebufferTexture2DMultisampleEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
+glFramebufferTexture2DMultisampleEXT = ffienumenumenumuintintsizeiIOV glFramebufferTexture2DMultisampleEXTFunPtr
+
+glFramebufferTexture2DMultisampleEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ())
+glFramebufferTexture2DMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DMultisampleEXT")
+
+{-# NOINLINE glFramebufferTexture2DMultisampleEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C
diff --git a/generated-src/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs b/generated-src/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs
@@ -0,0 +1,77 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.MultiviewDrawBuffers (
+  -- * Extension Support
+    gl_EXT_multiview_draw_buffers
+
+  -- * GL_EXT_multiview_draw_buffers
+  , glDrawBuffersIndexedEXT
+  , glGetIntegeri_vEXT
+  , glReadBufferIndexedEXT
+  , pattern GL_COLOR_ATTACHMENT_EXT
+  , pattern GL_DRAW_BUFFER_EXT
+  , pattern GL_MAX_MULTIVIEW_BUFFERS_EXT
+  , pattern GL_MULTIVIEW_EXT
+  , pattern GL_READ_BUFFER_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt GL_EXT_multiview_draw_buffers> extension is available.
+
+gl_EXT_multiview_draw_buffers :: Bool
+gl_EXT_multiview_draw_buffers = member "GL_EXT_multiview_draw_buffers" extensions
+{-# NOINLINE gl_EXT_multiview_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersIndexedEXT' n location indices@
+--
+-- The length of @location@ should be @n@.
+--
+-- The length of @indices@ should be @n@.
+
+
+glDrawBuffersIndexedEXT :: MonadIO m => GLint -> Ptr GLenum -> Ptr GLint -> m ()
+glDrawBuffersIndexedEXT = ffiintPtrenumPtrintIOV glDrawBuffersIndexedEXTFunPtr
+
+glDrawBuffersIndexedEXTFunPtr :: FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ())
+glDrawBuffersIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersIndexedEXT")
+
+{-# NOINLINE glDrawBuffersIndexedEXTFunPtr #-}
+
+-- | Usage: @'glGetIntegeri_vEXT' target index data@
+
+
+glGetIntegeri_vEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegeri_vEXT = ffienumuintPtrintIOV glGetIntegeri_vEXTFunPtr
+
+glGetIntegeri_vEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegeri_vEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_vEXT")
+
+{-# NOINLINE glGetIntegeri_vEXTFunPtr #-}
+
+-- | Usage: @'glReadBufferIndexedEXT' src index@
+
+
+glReadBufferIndexedEXT :: MonadIO m => GLenum -> GLint -> m ()
+glReadBufferIndexedEXT = ffienumintIOV glReadBufferIndexedEXTFunPtr
+
+glReadBufferIndexedEXTFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glReadBufferIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glReadBufferIndexedEXT")
+
+{-# NOINLINE glReadBufferIndexedEXTFunPtr #-}
+
+pattern GL_COLOR_ATTACHMENT_EXT = 0x90F0
+
+pattern GL_DRAW_BUFFER_EXT = 0x0C01
+
+pattern GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2
+
+pattern GL_MULTIVIEW_EXT = 0x90F1
+
+pattern GL_READ_BUFFER_EXT = 0x0C02
diff --git a/generated-src/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs b/generated-src/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs
@@ -0,0 +1,34 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.OcclusionQueryBoolean (
+  -- * Extension Support
+    gl_EXT_occlusion_query_boolean
+
+  -- * GL_EXT_occlusion_query_boolean
+  , glBeginQueryEXT
+  , glDeleteQueriesEXT
+  , glEndQueryEXT
+  , glGenQueriesEXT
+  , glGetQueryObjectuivEXT
+  , glGetQueryivEXT
+  , glIsQueryEXT
+  , pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
+  , pattern GL_ANY_SAMPLES_PASSED_EXT
+  , pattern GL_CURRENT_QUERY_EXT
+  , pattern GL_QUERY_RESULT_AVAILABLE_EXT
+  , pattern GL_QUERY_RESULT_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt GL_EXT_occlusion_query_boolean> extension is available.
+
+gl_EXT_occlusion_query_boolean :: Bool
+gl_EXT_occlusion_query_boolean = member "GL_EXT_occlusion_query_boolean" extensions
+{-# NOINLINE gl_EXT_occlusion_query_boolean #-}
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A
+
+pattern GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F
diff --git a/generated-src/Graphics/GL/Ext/EXT/PackedDepthStencil.hs b/generated-src/Graphics/GL/Ext/EXT/PackedDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PackedDepthStencil.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PackedDepthStencil (
+  -- * Extension Support
+    gl_EXT_packed_depth_stencil
+
+  -- * GL_EXT_packed_depth_stencil
+  , pattern GL_DEPTH24_STENCIL8_EXT
+  , pattern GL_DEPTH_STENCIL_EXT
+  , pattern GL_TEXTURE_STENCIL_SIZE_EXT
+  , pattern GL_UNSIGNED_INT_24_8_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_depth_stencil.txt GL_EXT_packed_depth_stencil> extension is available.
+
+gl_EXT_packed_depth_stencil :: Bool
+gl_EXT_packed_depth_stencil = member "GL_EXT_packed_depth_stencil" extensions
+{-# NOINLINE gl_EXT_packed_depth_stencil #-}
+
+pattern GL_DEPTH24_STENCIL8_EXT = 0x88F0
+
+pattern GL_DEPTH_STENCIL_EXT = 0x84F9
+
+pattern GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1
+
+pattern GL_UNSIGNED_INT_24_8_EXT = 0x84FA
diff --git a/generated-src/Graphics/GL/Ext/EXT/PackedFloat.hs b/generated-src/Graphics/GL/Ext/EXT/PackedFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PackedFloat.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PackedFloat (
+  -- * Extension Support
+    gl_EXT_packed_float
+
+  -- * GL_EXT_packed_float
+  , pattern GL_R11F_G11F_B10F_EXT
+  , pattern GL_RGBA_SIGNED_COMPONENTS_EXT
+  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_float.txt GL_EXT_packed_float> extension is available.
+
+gl_EXT_packed_float :: Bool
+gl_EXT_packed_float = member "GL_EXT_packed_float" extensions
+{-# NOINLINE gl_EXT_packed_float #-}
+
+pattern GL_R11F_G11F_B10F_EXT = 0x8C3A
+
+pattern GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B
diff --git a/generated-src/Graphics/GL/Ext/EXT/PackedPixels.hs b/generated-src/Graphics/GL/Ext/EXT/PackedPixels.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PackedPixels.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PackedPixels (
+  -- * Extension Support
+    gl_EXT_packed_pixels
+
+  -- * GL_EXT_packed_pixels
+  , pattern GL_UNSIGNED_BYTE_3_3_2_EXT
+  , pattern GL_UNSIGNED_INT_10_10_10_2_EXT
+  , pattern GL_UNSIGNED_INT_8_8_8_8_EXT
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT
+  , pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/packed_pixels.txt GL_EXT_packed_pixels> extension is available.
+
+gl_EXT_packed_pixels :: Bool
+gl_EXT_packed_pixels = member "GL_EXT_packed_pixels" extensions
+{-# NOINLINE gl_EXT_packed_pixels #-}
+
+pattern GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032
+
+pattern GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036
+
+pattern GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034
diff --git a/generated-src/Graphics/GL/Ext/EXT/PalettedTexture.hs b/generated-src/Graphics/GL/Ext/EXT/PalettedTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PalettedTexture.hs
@@ -0,0 +1,129 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PalettedTexture (
+  -- * Extension Support
+    gl_EXT_paletted_texture
+
+  -- * GL_EXT_paletted_texture
+  , glColorTableEXT
+  , glGetColorTableEXT
+  , glGetColorTableParameterfvEXT
+  , glGetColorTableParameterivEXT
+  , pattern GL_COLOR_INDEX12_EXT
+  , pattern GL_COLOR_INDEX16_EXT
+  , pattern GL_COLOR_INDEX1_EXT
+  , pattern GL_COLOR_INDEX2_EXT
+  , pattern GL_COLOR_INDEX4_EXT
+  , pattern GL_COLOR_INDEX8_EXT
+  , pattern GL_TEXTURE_INDEX_SIZE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/paletted_texture.txt GL_EXT_paletted_texture> extension is available.
+
+gl_EXT_paletted_texture :: Bool
+gl_EXT_paletted_texture = member "GL_EXT_paletted_texture" extensions
+{-# NOINLINE gl_EXT_paletted_texture #-}
+
+-- | Usage: @'glColorTableEXT' target internalFormat width format type table@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @internalFormat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTable'.
+
+
+glColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glColorTableEXT = ffienumenumsizeienumenumPtrVIOV glColorTableEXTFunPtr
+
+glColorTableEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glColorTableEXTFunPtr = unsafePerformIO (getProcAddress "glColorTableEXT")
+
+{-# NOINLINE glColorTableEXTFunPtr #-}
+
+-- | Usage: @'glGetColorTableEXT' target format type data@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @COMPSIZE(target,format,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glGetColorTable'.
+
+
+glGetColorTableEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glGetColorTableEXT = ffienumenumenumPtrVIOV glGetColorTableEXTFunPtr
+
+glGetColorTableEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetColorTableEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableEXT")
+
+{-# NOINLINE glGetColorTableEXTFunPtr #-}
+
+-- | Usage: @'glGetColorTableParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glGetColorTableParameterfv'.
+
+
+glGetColorTableParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetColorTableParameterfvEXT = ffienumenumPtrfloatIOV glGetColorTableParameterfvEXTFunPtr
+
+glGetColorTableParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetColorTableParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfvEXT")
+
+{-# NOINLINE glGetColorTableParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetColorTableParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTarget@.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPName@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glGetColorTableParameteriv'.
+
+
+glGetColorTableParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetColorTableParameterivEXT = ffienumenumPtrintIOV glGetColorTableParameterivEXTFunPtr
+
+glGetColorTableParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetColorTableParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterivEXT")
+
+{-# NOINLINE glGetColorTableParameterivEXTFunPtr #-}
+
+pattern GL_COLOR_INDEX12_EXT = 0x80E6
+
+pattern GL_COLOR_INDEX16_EXT = 0x80E7
+
+pattern GL_COLOR_INDEX1_EXT = 0x80E2
+
+pattern GL_COLOR_INDEX2_EXT = 0x80E3
+
+pattern GL_COLOR_INDEX4_EXT = 0x80E4
+
+pattern GL_COLOR_INDEX8_EXT = 0x80E5
+
+pattern GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED
diff --git a/generated-src/Graphics/GL/Ext/EXT/PixelBufferObject.hs b/generated-src/Graphics/GL/Ext/EXT/PixelBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PixelBufferObject.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PixelBufferObject (
+  -- * Extension Support
+    gl_EXT_pixel_buffer_object
+
+  -- * GL_EXT_pixel_buffer_object
+  , pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT
+  , pattern GL_PIXEL_PACK_BUFFER_EXT
+  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT
+  , pattern GL_PIXEL_UNPACK_BUFFER_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_buffer_object.txt GL_EXT_pixel_buffer_object> extension is available.
+
+gl_EXT_pixel_buffer_object :: Bool
+gl_EXT_pixel_buffer_object = member "GL_EXT_pixel_buffer_object" extensions
+{-# NOINLINE gl_EXT_pixel_buffer_object #-}
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED
+
+pattern GL_PIXEL_PACK_BUFFER_EXT = 0x88EB
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF
+
+pattern GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC
diff --git a/generated-src/Graphics/GL/Ext/EXT/PixelTransform.hs b/generated-src/Graphics/GL/Ext/EXT/PixelTransform.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PixelTransform.hs
@@ -0,0 +1,145 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PixelTransform (
+  -- * Extension Support
+    gl_EXT_pixel_transform
+
+  -- * GL_EXT_pixel_transform
+  , glGetPixelTransformParameterfvEXT
+  , glGetPixelTransformParameterivEXT
+  , glPixelTransformParameterfEXT
+  , glPixelTransformParameterfvEXT
+  , glPixelTransformParameteriEXT
+  , glPixelTransformParameterivEXT
+  , pattern GL_AVERAGE_EXT
+  , pattern GL_CUBIC_EXT
+  , pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT
+  , pattern GL_PIXEL_CUBIC_WEIGHT_EXT
+  , pattern GL_PIXEL_MAG_FILTER_EXT
+  , pattern GL_PIXEL_MIN_FILTER_EXT
+  , pattern GL_PIXEL_TRANSFORM_2D_EXT
+  , pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT
+  , pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform.txt GL_EXT_pixel_transform> extension is available.
+
+gl_EXT_pixel_transform :: Bool
+gl_EXT_pixel_transform = member "GL_EXT_pixel_transform" extensions
+{-# NOINLINE gl_EXT_pixel_transform #-}
+
+-- | Usage: @'glGetPixelTransformParameterfvEXT' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetPixelTransformParameterfvEXT = ffienumenumPtrfloatIOV glGetPixelTransformParameterfvEXTFunPtr
+
+glGetPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetPixelTransformParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetPixelTransformParameterfvEXT")
+
+{-# NOINLINE glGetPixelTransformParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glGetPixelTransformParameterivEXT' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetPixelTransformParameterivEXT = ffienumenumPtrintIOV glGetPixelTransformParameterivEXTFunPtr
+
+glGetPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetPixelTransformParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glGetPixelTransformParameterivEXT")
+
+{-# NOINLINE glGetPixelTransformParameterivEXTFunPtr #-}
+
+-- | Usage: @'glPixelTransformParameterfEXT' target pname param@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+
+
+glPixelTransformParameterfEXT :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glPixelTransformParameterfEXT = ffienumenumfloatIOV glPixelTransformParameterfEXTFunPtr
+
+glPixelTransformParameterfEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glPixelTransformParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameterfEXT")
+
+{-# NOINLINE glPixelTransformParameterfEXTFunPtr #-}
+
+-- | Usage: @'glPixelTransformParameterfvEXT' target pname params@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+--
+-- The length of @params@ should be @1@.
+
+
+glPixelTransformParameterfvEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glPixelTransformParameterfvEXT = ffienumenumPtrfloatIOV glPixelTransformParameterfvEXTFunPtr
+
+glPixelTransformParameterfvEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glPixelTransformParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameterfvEXT")
+
+{-# NOINLINE glPixelTransformParameterfvEXTFunPtr #-}
+
+-- | Usage: @'glPixelTransformParameteriEXT' target pname param@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+
+
+glPixelTransformParameteriEXT :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glPixelTransformParameteriEXT = ffienumenumintIOV glPixelTransformParameteriEXTFunPtr
+
+glPixelTransformParameteriEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glPixelTransformParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameteriEXT")
+
+{-# NOINLINE glPixelTransformParameteriEXTFunPtr #-}
+
+-- | Usage: @'glPixelTransformParameterivEXT' target pname params@
+--
+-- The parameter @target@ is a @PixelTransformTargetEXT@.
+--
+-- The parameter @pname@ is a @PixelTransformPNameEXT@.
+--
+-- The length of @params@ should be @1@.
+
+
+glPixelTransformParameterivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glPixelTransformParameterivEXT = ffienumenumPtrintIOV glPixelTransformParameterivEXTFunPtr
+
+glPixelTransformParameterivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glPixelTransformParameterivEXTFunPtr = unsafePerformIO (getProcAddress "glPixelTransformParameterivEXT")
+
+{-# NOINLINE glPixelTransformParameterivEXTFunPtr #-}
+
+pattern GL_AVERAGE_EXT = 0x8335
+
+pattern GL_CUBIC_EXT = 0x8334
+
+pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337
+
+pattern GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333
+
+pattern GL_PIXEL_MAG_FILTER_EXT = 0x8331
+
+pattern GL_PIXEL_MIN_FILTER_EXT = 0x8332
+
+pattern GL_PIXEL_TRANSFORM_2D_EXT = 0x8330
+
+pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338
+
+pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336
diff --git a/generated-src/Graphics/GL/Ext/EXT/PixelTransformColorTable.hs b/generated-src/Graphics/GL/Ext/EXT/PixelTransformColorTable.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PixelTransformColorTable.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PixelTransformColorTable (
+  -- * Extension Support
+    gl_EXT_pixel_transform_color_table
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/pixel_transform_color_table.txt GL_EXT_pixel_transform_color_table> extension is available.
+
+gl_EXT_pixel_transform_color_table :: Bool
+gl_EXT_pixel_transform_color_table = member "GL_EXT_pixel_transform_color_table" extensions
+{-# NOINLINE gl_EXT_pixel_transform_color_table #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/PointParameters.hs b/generated-src/Graphics/GL/Ext/EXT/PointParameters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PointParameters.hs
@@ -0,0 +1,72 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PointParameters (
+  -- * Extension Support
+    gl_EXT_point_parameters
+
+  -- * GL_EXT_point_parameters
+  , glPointParameterfEXT
+  , glPointParameterfvEXT
+  , pattern GL_DISTANCE_ATTENUATION_EXT
+  , pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT
+  , pattern GL_POINT_SIZE_MAX_EXT
+  , pattern GL_POINT_SIZE_MIN_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/point_parameters.txt GL_EXT_point_parameters> extension is available.
+
+gl_EXT_point_parameters :: Bool
+gl_EXT_point_parameters = member "GL_EXT_point_parameters" extensions
+{-# NOINLINE gl_EXT_point_parameters #-}
+
+-- | Usage: @'glPointParameterfEXT' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterf'.
+
+
+glPointParameterfEXT :: MonadIO m => GLenum -> GLfloat -> m ()
+glPointParameterfEXT = ffienumfloatIOV glPointParameterfEXTFunPtr
+
+glPointParameterfEXTFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPointParameterfEXTFunPtr = unsafePerformIO (getProcAddress "glPointParameterfEXT")
+
+{-# NOINLINE glPointParameterfEXTFunPtr #-}
+
+-- | Usage: @'glPointParameterfvEXT' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterfv'.
+
+
+glPointParameterfvEXT :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPointParameterfvEXT = ffienumPtrfloatIOV glPointParameterfvEXTFunPtr
+
+glPointParameterfvEXTFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPointParameterfvEXTFunPtr = unsafePerformIO (getProcAddress "glPointParameterfvEXT")
+
+{-# NOINLINE glPointParameterfvEXTFunPtr #-}
+
+pattern GL_DISTANCE_ATTENUATION_EXT = 0x8129
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128
+
+pattern GL_POINT_SIZE_MAX_EXT = 0x8127
+
+pattern GL_POINT_SIZE_MIN_EXT = 0x8126
diff --git a/generated-src/Graphics/GL/Ext/EXT/PolygonOffset.hs b/generated-src/Graphics/GL/Ext/EXT/PolygonOffset.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PolygonOffset.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PolygonOffset (
+  -- * Extension Support
+    gl_EXT_polygon_offset
+
+  -- * GL_EXT_polygon_offset
+  , glPolygonOffsetEXT
+  , pattern GL_POLYGON_OFFSET_BIAS_EXT
+  , pattern GL_POLYGON_OFFSET_EXT
+  , pattern GL_POLYGON_OFFSET_FACTOR_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset.txt GL_EXT_polygon_offset> extension is available.
+
+gl_EXT_polygon_offset :: Bool
+gl_EXT_polygon_offset = member "GL_EXT_polygon_offset" extensions
+{-# NOINLINE gl_EXT_polygon_offset #-}
+
+-- | Usage: @'glPolygonOffsetEXT' factor bias@
+
+
+glPolygonOffsetEXT :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPolygonOffsetEXT = ffifloatfloatIOV glPolygonOffsetEXTFunPtr
+
+glPolygonOffsetEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPolygonOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetEXT")
+
+{-# NOINLINE glPolygonOffsetEXTFunPtr #-}
+
+pattern GL_POLYGON_OFFSET_BIAS_EXT = 0x8039
+
+pattern GL_POLYGON_OFFSET_EXT = 0x8037
+
+pattern GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038
diff --git a/generated-src/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs b/generated-src/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs
@@ -0,0 +1,37 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PolygonOffsetClamp (
+  -- * Extension Support
+    gl_EXT_polygon_offset_clamp
+
+  -- * GL_EXT_polygon_offset_clamp
+  , glPolygonOffsetClampEXT
+  , pattern GL_POLYGON_OFFSET_CLAMP_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/polygon_offset_clamp.txt GL_EXT_polygon_offset_clamp> extension is available.
+
+gl_EXT_polygon_offset_clamp :: Bool
+gl_EXT_polygon_offset_clamp = member "GL_EXT_polygon_offset_clamp" extensions
+{-# NOINLINE gl_EXT_polygon_offset_clamp #-}
+
+-- | Usage: @'glPolygonOffsetClampEXT' factor units clamp@
+
+
+glPolygonOffsetClampEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glPolygonOffsetClampEXT = ffifloatfloatfloatIOV glPolygonOffsetClampEXTFunPtr
+
+glPolygonOffsetClampEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glPolygonOffsetClampEXTFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetClampEXT")
+
+{-# NOINLINE glPolygonOffsetClampEXTFunPtr #-}
+
+pattern GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B
diff --git a/generated-src/Graphics/GL/Ext/EXT/PostDepthCoverage.hs b/generated-src/Graphics/GL/Ext/EXT/PostDepthCoverage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PostDepthCoverage.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PostDepthCoverage (
+  -- * Extension Support
+    gl_EXT_post_depth_coverage
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/post_depth_coverage.txt GL_EXT_post_depth_coverage> extension is available.
+
+gl_EXT_post_depth_coverage :: Bool
+gl_EXT_post_depth_coverage = member "GL_EXT_post_depth_coverage" extensions
+{-# NOINLINE gl_EXT_post_depth_coverage #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs b/generated-src/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PrimitiveBoundingBox (
+  -- * Extension Support
+    gl_EXT_primitive_bounding_box
+
+  -- * GL_EXT_primitive_bounding_box
+  , glPrimitiveBoundingBoxEXT
+  , pattern GL_PRIMITIVE_BOUNDING_BOX_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_primitive_bounding_box.txt GL_EXT_primitive_bounding_box> extension is available.
+
+gl_EXT_primitive_bounding_box :: Bool
+gl_EXT_primitive_bounding_box = member "GL_EXT_primitive_bounding_box" extensions
+{-# NOINLINE gl_EXT_primitive_bounding_box #-}
+
+-- | Usage: @'glPrimitiveBoundingBoxEXT' minX minY minZ minW maxX maxY maxZ maxW@
+--
+-- This command is an alias for 'Graphics.GL.Embedded32.glPrimitiveBoundingBox'.
+
+
+glPrimitiveBoundingBoxEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glPrimitiveBoundingBoxEXT = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxEXTFunPtr
+
+glPrimitiveBoundingBoxEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glPrimitiveBoundingBoxEXTFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBoxEXT")
+
+{-# NOINLINE glPrimitiveBoundingBoxEXTFunPtr #-}
+
+pattern GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE
diff --git a/generated-src/Graphics/GL/Ext/EXT/ProtectedTextures.hs b/generated-src/Graphics/GL/Ext/EXT/ProtectedTextures.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ProtectedTextures.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ProtectedTextures (
+  -- * Extension Support
+    gl_EXT_protected_textures
+
+  -- * GL_EXT_protected_textures
+  , pattern GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT
+  , pattern GL_TEXTURE_PROTECTED_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_protected_textures.txt GL_EXT_protected_textures> extension is available.
+
+gl_EXT_protected_textures :: Bool
+gl_EXT_protected_textures = member "GL_EXT_protected_textures" extensions
+{-# NOINLINE gl_EXT_protected_textures #-}
+
+pattern GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT = 0x00000010
+
+pattern GL_TEXTURE_PROTECTED_EXT = 0x8BFA
diff --git a/generated-src/Graphics/GL/Ext/EXT/ProvokingVertex.hs b/generated-src/Graphics/GL/Ext/EXT/ProvokingVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ProvokingVertex.hs
@@ -0,0 +1,45 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ProvokingVertex (
+  -- * Extension Support
+    gl_EXT_provoking_vertex
+
+  -- * GL_EXT_provoking_vertex
+  , glProvokingVertexEXT
+  , pattern GL_FIRST_VERTEX_CONVENTION_EXT
+  , pattern GL_LAST_VERTEX_CONVENTION_EXT
+  , pattern GL_PROVOKING_VERTEX_EXT
+  , pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_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/provoking_vertex.txt GL_EXT_provoking_vertex> extension is available.
+
+gl_EXT_provoking_vertex :: Bool
+gl_EXT_provoking_vertex = member "GL_EXT_provoking_vertex" extensions
+{-# NOINLINE gl_EXT_provoking_vertex #-}
+
+-- | Usage: @'glProvokingVertexEXT' mode@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProvokingVertex'.
+
+
+glProvokingVertexEXT :: MonadIO m => GLenum -> m ()
+glProvokingVertexEXT = ffienumIOV glProvokingVertexEXTFunPtr
+
+glProvokingVertexEXTFunPtr :: FunPtr (GLenum -> IO ())
+glProvokingVertexEXTFunPtr = unsafePerformIO (getProcAddress "glProvokingVertexEXT")
+
+{-# NOINLINE glProvokingVertexEXTFunPtr #-}
+
+pattern GL_PROVOKING_VERTEX_EXT = 0x8E4F
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C
diff --git a/generated-src/Graphics/GL/Ext/EXT/PvrtcSRGB.hs b/generated-src/Graphics/GL/Ext/EXT/PvrtcSRGB.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/PvrtcSRGB.hs
@@ -0,0 +1,35 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.PvrtcSRGB (
+  -- * Extension Support
+    gl_EXT_pvrtc_sRGB
+
+  -- * GL_EXT_pvrtc_sRGB
+  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT
+  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG
+  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT
+  , pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG
+  , pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT
+  , pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_pvrtc_sRGB.txt GL_EXT_pvrtc_sRGB> extension is available.
+
+gl_EXT_pvrtc_sRGB :: Bool
+gl_EXT_pvrtc_sRGB = member "GL_EXT_pvrtc_sRGB" extensions
+{-# NOINLINE gl_EXT_pvrtc_sRGB #-}
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1
+
+pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54
+
+pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55
diff --git a/generated-src/Graphics/GL/Ext/EXT/RasterMultisample.hs b/generated-src/Graphics/GL/Ext/EXT/RasterMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/RasterMultisample.hs
@@ -0,0 +1,25 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.RasterMultisample (
+  -- * Extension Support
+    gl_EXT_raster_multisample
+
+  -- * GL_EXT_raster_multisample
+  , glRasterSamplesEXT
+  , pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT
+  , pattern GL_MAX_RASTER_SAMPLES_EXT
+  , pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
+  , pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
+  , pattern GL_RASTER_MULTISAMPLE_EXT
+  , pattern GL_RASTER_SAMPLES_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/raster_multisample.txt GL_EXT_raster_multisample> extension is available.
+
+gl_EXT_raster_multisample :: Bool
+gl_EXT_raster_multisample = member "GL_EXT_raster_multisample" extensions
+{-# NOINLINE gl_EXT_raster_multisample #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ReadFormatBgra.hs b/generated-src/Graphics/GL/Ext/EXT/ReadFormatBgra.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ReadFormatBgra.hs
@@ -0,0 +1,25 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ReadFormatBgra (
+  -- * Extension Support
+    gl_EXT_read_format_bgra
+
+  -- * GL_EXT_read_format_bgra
+  , pattern GL_BGRA_EXT
+  , pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_read_format_bgra.txt GL_EXT_read_format_bgra> extension is available.
+
+gl_EXT_read_format_bgra :: Bool
+gl_EXT_read_format_bgra = member "GL_EXT_read_format_bgra" extensions
+{-# NOINLINE gl_EXT_read_format_bgra #-}
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365
diff --git a/generated-src/Graphics/GL/Ext/EXT/RenderSnorm.hs b/generated-src/Graphics/GL/Ext/EXT/RenderSnorm.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/RenderSnorm.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.RenderSnorm (
+  -- * Extension Support
+    gl_EXT_render_snorm
+
+  -- * GL_EXT_render_snorm
+  , pattern GL_BYTE
+  , pattern GL_R16_SNORM_EXT
+  , pattern GL_R8_SNORM
+  , pattern GL_RG16_SNORM_EXT
+  , pattern GL_RG8_SNORM
+  , pattern GL_RGBA16_SNORM_EXT
+  , pattern GL_RGBA8_SNORM
+  , pattern GL_SHORT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the GL_EXT_render_snorm extension is available.
+
+gl_EXT_render_snorm :: Bool
+gl_EXT_render_snorm = member "GL_EXT_render_snorm" extensions
+{-# NOINLINE gl_EXT_render_snorm #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/RescaleNormal.hs b/generated-src/Graphics/GL/Ext/EXT/RescaleNormal.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/RescaleNormal.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.RescaleNormal (
+  -- * Extension Support
+    gl_EXT_rescale_normal
+
+  -- * GL_EXT_rescale_normal
+  , pattern GL_RESCALE_NORMAL_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/rescale_normal.txt GL_EXT_rescale_normal> extension is available.
+
+gl_EXT_rescale_normal :: Bool
+gl_EXT_rescale_normal = member "GL_EXT_rescale_normal" extensions
+{-# NOINLINE gl_EXT_rescale_normal #-}
+
+pattern GL_RESCALE_NORMAL_EXT = 0x803A
diff --git a/generated-src/Graphics/GL/Ext/EXT/Robustness.hs b/generated-src/Graphics/GL/Ext/EXT/Robustness.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Robustness.hs
@@ -0,0 +1,101 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Robustness (
+  -- * Extension Support
+    gl_EXT_robustness
+
+  -- * GL_EXT_robustness
+  , glGetGraphicsResetStatusEXT
+  , glGetnUniformfvEXT
+  , glGetnUniformivEXT
+  , glReadnPixelsEXT
+  , pattern GL_CONTEXT_ROBUST_ACCESS_EXT
+  , pattern GL_GUILTY_CONTEXT_RESET_EXT
+  , pattern GL_INNOCENT_CONTEXT_RESET_EXT
+  , pattern GL_LOSE_CONTEXT_ON_RESET_EXT
+  , pattern GL_NO_ERROR
+  , pattern GL_NO_RESET_NOTIFICATION_EXT
+  , pattern GL_RESET_NOTIFICATION_STRATEGY_EXT
+  , pattern GL_UNKNOWN_CONTEXT_RESET_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://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt GL_EXT_robustness> extension is available.
+
+gl_EXT_robustness :: Bool
+gl_EXT_robustness = member "GL_EXT_robustness" extensions
+{-# NOINLINE gl_EXT_robustness #-}
+
+-- | Usage: @'glGetGraphicsResetStatusEXT'@
+
+
+glGetGraphicsResetStatusEXT :: MonadIO m => m GLenum
+glGetGraphicsResetStatusEXT = ffiIOenum glGetGraphicsResetStatusEXTFunPtr
+
+glGetGraphicsResetStatusEXTFunPtr :: FunPtr (IO GLenum)
+glGetGraphicsResetStatusEXTFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusEXT")
+
+{-# NOINLINE glGetGraphicsResetStatusEXTFunPtr #-}
+
+-- | Usage: @'glGetnUniformfvEXT' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetnUniformfvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glGetnUniformfvEXT = ffiuintintsizeiPtrfloatIOV glGetnUniformfvEXTFunPtr
+
+glGetnUniformfvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnUniformfvEXTFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfvEXT")
+
+{-# NOINLINE glGetnUniformfvEXTFunPtr #-}
+
+-- | Usage: @'glGetnUniformivEXT' program location bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetnUniformivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glGetnUniformivEXT = ffiuintintsizeiPtrintIOV glGetnUniformivEXTFunPtr
+
+glGetnUniformivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glGetnUniformivEXTFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivEXT")
+
+{-# NOINLINE glGetnUniformivEXTFunPtr #-}
+
+-- | Usage: @'glReadnPixelsEXT' x y width height format type bufSize data@
+--
+-- The length of @data@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glReadnPixels'.
+
+
+glReadnPixelsEXT :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glReadnPixelsEXT = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsEXTFunPtr
+
+glReadnPixelsEXTFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glReadnPixelsEXTFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsEXT")
+
+{-# NOINLINE glReadnPixelsEXTFunPtr #-}
+
+pattern GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3
+
+pattern GL_GUILTY_CONTEXT_RESET_EXT = 0x8253
+
+pattern GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254
+
+pattern GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252
+
+pattern GL_NO_RESET_NOTIFICATION_EXT = 0x8261
+
+pattern GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255
diff --git a/generated-src/Graphics/GL/Ext/EXT/SRGB.hs b/generated-src/Graphics/GL/Ext/EXT/SRGB.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SRGB.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SRGB (
+  -- * Extension Support
+    gl_EXT_sRGB
+
+  -- * GL_EXT_sRGB
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT
+  , pattern GL_SRGB8_ALPHA8_EXT
+  , pattern GL_SRGB_ALPHA_EXT
+  , pattern GL_SRGB_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_sRGB.txt GL_EXT_sRGB> extension is available.
+
+gl_EXT_sRGB :: Bool
+gl_EXT_sRGB = member "GL_EXT_sRGB" extensions
+{-# NOINLINE gl_EXT_sRGB #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210
diff --git a/generated-src/Graphics/GL/Ext/EXT/SRGBWriteControl.hs b/generated-src/Graphics/GL/Ext/EXT/SRGBWriteControl.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SRGBWriteControl.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SRGBWriteControl (
+  -- * Extension Support
+    gl_EXT_sRGB_write_control
+
+  -- * GL_EXT_sRGB_write_control
+  , pattern GL_FRAMEBUFFER_SRGB_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_sRGB_write_control.txt GL_EXT_sRGB_write_control> extension is available.
+
+gl_EXT_sRGB_write_control :: Bool
+gl_EXT_sRGB_write_control = member "GL_EXT_sRGB_write_control" extensions
+{-# NOINLINE gl_EXT_sRGB_write_control #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/SecondaryColor.hs b/generated-src/Graphics/GL/Ext/EXT/SecondaryColor.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SecondaryColor.hs
@@ -0,0 +1,381 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SecondaryColor (
+  -- * Extension Support
+    gl_EXT_secondary_color
+
+  -- * GL_EXT_secondary_color
+  , glSecondaryColor3bEXT
+  , glSecondaryColor3bvEXT
+  , glSecondaryColor3dEXT
+  , glSecondaryColor3dvEXT
+  , glSecondaryColor3fEXT
+  , glSecondaryColor3fvEXT
+  , glSecondaryColor3iEXT
+  , glSecondaryColor3ivEXT
+  , glSecondaryColor3sEXT
+  , glSecondaryColor3svEXT
+  , glSecondaryColor3ubEXT
+  , glSecondaryColor3ubvEXT
+  , glSecondaryColor3uiEXT
+  , glSecondaryColor3uivEXT
+  , glSecondaryColor3usEXT
+  , glSecondaryColor3usvEXT
+  , glSecondaryColorPointerEXT
+  , pattern GL_COLOR_SUM_EXT
+  , pattern GL_CURRENT_SECONDARY_COLOR_EXT
+  , pattern GL_SECONDARY_COLOR_ARRAY_EXT
+  , pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT
+  , pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT
+  , pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT
+  , pattern GL_SECONDARY_COLOR_ARRAY_TYPE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/secondary_color.txt GL_EXT_secondary_color> extension is available.
+
+gl_EXT_secondary_color :: Bool
+gl_EXT_secondary_color = member "GL_EXT_secondary_color" extensions
+{-# NOINLINE gl_EXT_secondary_color #-}
+
+-- | Usage: @'glSecondaryColor3bEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3b'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3bvEXT'.
+
+
+glSecondaryColor3bEXT :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glSecondaryColor3bEXT = ffibytebytebyteIOV glSecondaryColor3bEXTFunPtr
+
+glSecondaryColor3bEXTFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glSecondaryColor3bEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bEXT")
+
+{-# NOINLINE glSecondaryColor3bEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3bvEXT' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3bv'.
+
+
+glSecondaryColor3bvEXT :: MonadIO m => Ptr GLbyte -> m ()
+glSecondaryColor3bvEXT = ffiPtrbyteIOV glSecondaryColor3bvEXTFunPtr
+
+glSecondaryColor3bvEXTFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glSecondaryColor3bvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bvEXT")
+
+{-# NOINLINE glSecondaryColor3bvEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3dEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3dvEXT'.
+
+
+glSecondaryColor3dEXT :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glSecondaryColor3dEXT = ffidoubledoubledoubleIOV glSecondaryColor3dEXTFunPtr
+
+glSecondaryColor3dEXTFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glSecondaryColor3dEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dEXT")
+
+{-# NOINLINE glSecondaryColor3dEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3dvEXT' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3dv'.
+
+
+glSecondaryColor3dvEXT :: MonadIO m => Ptr GLdouble -> m ()
+glSecondaryColor3dvEXT = ffiPtrdoubleIOV glSecondaryColor3dvEXTFunPtr
+
+glSecondaryColor3dvEXTFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glSecondaryColor3dvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dvEXT")
+
+{-# NOINLINE glSecondaryColor3dvEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3fEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3fvEXT'.
+
+
+glSecondaryColor3fEXT :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glSecondaryColor3fEXT = ffifloatfloatfloatIOV glSecondaryColor3fEXTFunPtr
+
+glSecondaryColor3fEXTFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glSecondaryColor3fEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fEXT")
+
+{-# NOINLINE glSecondaryColor3fEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3fvEXT' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3fv'.
+
+
+glSecondaryColor3fvEXT :: MonadIO m => Ptr GLfloat -> m ()
+glSecondaryColor3fvEXT = ffiPtrfloatIOV glSecondaryColor3fvEXTFunPtr
+
+glSecondaryColor3fvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glSecondaryColor3fvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fvEXT")
+
+{-# NOINLINE glSecondaryColor3fvEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3iEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3ivEXT'.
+
+
+glSecondaryColor3iEXT :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glSecondaryColor3iEXT = ffiintintintIOV glSecondaryColor3iEXTFunPtr
+
+glSecondaryColor3iEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glSecondaryColor3iEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iEXT")
+
+{-# NOINLINE glSecondaryColor3iEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ivEXT' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3iv'.
+
+
+glSecondaryColor3ivEXT :: MonadIO m => Ptr GLint -> m ()
+glSecondaryColor3ivEXT = ffiPtrintIOV glSecondaryColor3ivEXTFunPtr
+
+glSecondaryColor3ivEXTFunPtr :: FunPtr (Ptr GLint -> IO ())
+glSecondaryColor3ivEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ivEXT")
+
+{-# NOINLINE glSecondaryColor3ivEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3sEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3svEXT'.
+
+
+glSecondaryColor3sEXT :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glSecondaryColor3sEXT = ffishortshortshortIOV glSecondaryColor3sEXTFunPtr
+
+glSecondaryColor3sEXTFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glSecondaryColor3sEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sEXT")
+
+{-# NOINLINE glSecondaryColor3sEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3svEXT' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3sv'.
+
+
+glSecondaryColor3svEXT :: MonadIO m => Ptr GLshort -> m ()
+glSecondaryColor3svEXT = ffiPtrshortIOV glSecondaryColor3svEXTFunPtr
+
+glSecondaryColor3svEXTFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glSecondaryColor3svEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3svEXT")
+
+{-# NOINLINE glSecondaryColor3svEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ubEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ub'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3ubvEXT'.
+
+
+glSecondaryColor3ubEXT :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
+glSecondaryColor3ubEXT = ffiubyteubyteubyteIOV glSecondaryColor3ubEXTFunPtr
+
+glSecondaryColor3ubEXTFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+glSecondaryColor3ubEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubEXT")
+
+{-# NOINLINE glSecondaryColor3ubEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ubvEXT' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ubv'.
+
+
+glSecondaryColor3ubvEXT :: MonadIO m => Ptr GLubyte -> m ()
+glSecondaryColor3ubvEXT = ffiPtrubyteIOV glSecondaryColor3ubvEXTFunPtr
+
+glSecondaryColor3ubvEXTFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glSecondaryColor3ubvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubvEXT")
+
+{-# NOINLINE glSecondaryColor3ubvEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3uiEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3uivEXT'.
+
+
+glSecondaryColor3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glSecondaryColor3uiEXT = ffiuintuintuintIOV glSecondaryColor3uiEXTFunPtr
+
+glSecondaryColor3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glSecondaryColor3uiEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiEXT")
+
+{-# NOINLINE glSecondaryColor3uiEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3uivEXT' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3uiv'.
+
+
+glSecondaryColor3uivEXT :: MonadIO m => Ptr GLuint -> m ()
+glSecondaryColor3uivEXT = ffiPtruintIOV glSecondaryColor3uivEXTFunPtr
+
+glSecondaryColor3uivEXTFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glSecondaryColor3uivEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uivEXT")
+
+{-# NOINLINE glSecondaryColor3uivEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3usEXT' red green blue@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3us'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.SecondaryColor.glSecondaryColor3usvEXT'.
+
+
+glSecondaryColor3usEXT :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
+glSecondaryColor3usEXT = ffiushortushortushortIOV glSecondaryColor3usEXTFunPtr
+
+glSecondaryColor3usEXTFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+glSecondaryColor3usEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usEXT")
+
+{-# NOINLINE glSecondaryColor3usEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3usvEXT' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColor3usv'.
+
+
+glSecondaryColor3usvEXT :: MonadIO m => Ptr GLushort -> m ()
+glSecondaryColor3usvEXT = ffiPtrushortIOV glSecondaryColor3usvEXTFunPtr
+
+glSecondaryColor3usvEXTFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glSecondaryColor3usvEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usvEXT")
+
+{-# NOINLINE glSecondaryColor3usvEXTFunPtr #-}
+
+-- | Usage: @'glSecondaryColorPointerEXT' size type stride pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSecondaryColorPointer'.
+
+
+glSecondaryColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glSecondaryColorPointerEXT = ffiintenumsizeiPtrVIOV glSecondaryColorPointerEXTFunPtr
+
+glSecondaryColorPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glSecondaryColorPointerEXTFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointerEXT")
+
+{-# NOINLINE glSecondaryColorPointerEXTFunPtr #-}
+
+pattern GL_COLOR_SUM_EXT = 0x8458
+
+pattern GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459
+
+pattern GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B
diff --git a/generated-src/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs b/generated-src/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs
@@ -0,0 +1,241 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SeparateShaderObjects (
+  -- * Extension Support
+    gl_EXT_separate_shader_objects
+
+  -- * GL_EXT_separate_shader_objects
+  , glActiveProgramEXT
+  , glActiveShaderProgramEXT
+  , glBindProgramPipelineEXT
+  , glCreateShaderProgramEXT
+  , glCreateShaderProgramvEXT
+  , glDeleteProgramPipelinesEXT
+  , glGenProgramPipelinesEXT
+  , glGetProgramPipelineInfoLogEXT
+  , glGetProgramPipelineivEXT
+  , glIsProgramPipelineEXT
+  , glProgramParameteriEXT
+  , glProgramUniform1fEXT
+  , glProgramUniform1fvEXT
+  , glProgramUniform1iEXT
+  , glProgramUniform1ivEXT
+  , glProgramUniform1uiEXT
+  , glProgramUniform1uivEXT
+  , glProgramUniform2fEXT
+  , glProgramUniform2fvEXT
+  , glProgramUniform2iEXT
+  , glProgramUniform2ivEXT
+  , glProgramUniform2uiEXT
+  , glProgramUniform2uivEXT
+  , glProgramUniform3fEXT
+  , glProgramUniform3fvEXT
+  , glProgramUniform3iEXT
+  , glProgramUniform3ivEXT
+  , glProgramUniform3uiEXT
+  , glProgramUniform3uivEXT
+  , glProgramUniform4fEXT
+  , glProgramUniform4fvEXT
+  , glProgramUniform4iEXT
+  , glProgramUniform4ivEXT
+  , glProgramUniform4uiEXT
+  , glProgramUniform4uivEXT
+  , glProgramUniformMatrix2fvEXT
+  , glProgramUniformMatrix2x3fvEXT
+  , glProgramUniformMatrix2x4fvEXT
+  , glProgramUniformMatrix3fvEXT
+  , glProgramUniformMatrix3x2fvEXT
+  , glProgramUniformMatrix3x4fvEXT
+  , glProgramUniformMatrix4fvEXT
+  , glProgramUniformMatrix4x2fvEXT
+  , glProgramUniformMatrix4x3fvEXT
+  , glUseProgramStagesEXT
+  , glUseShaderProgramEXT
+  , glValidateProgramPipelineEXT
+  , pattern GL_ACTIVE_PROGRAM_EXT
+  , pattern GL_ALL_SHADER_BITS_EXT
+  , pattern GL_FRAGMENT_SHADER_BIT_EXT
+  , pattern GL_PROGRAM_PIPELINE_BINDING_EXT
+  , pattern GL_PROGRAM_SEPARABLE_EXT
+  , pattern GL_VERTEX_SHADER_BIT_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://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt GL_EXT_separate_shader_objects> extension is available.
+
+gl_EXT_separate_shader_objects :: Bool
+gl_EXT_separate_shader_objects = member "GL_EXT_separate_shader_objects" extensions
+{-# NOINLINE gl_EXT_separate_shader_objects #-}
+
+-- | Usage: @'glActiveProgramEXT' program@
+
+
+glActiveProgramEXT :: MonadIO m => GLuint -> m ()
+glActiveProgramEXT = ffiuintIOV glActiveProgramEXTFunPtr
+
+glActiveProgramEXTFunPtr :: FunPtr (GLuint -> IO ())
+glActiveProgramEXTFunPtr = unsafePerformIO (getProcAddress "glActiveProgramEXT")
+
+{-# NOINLINE glActiveProgramEXTFunPtr #-}
+
+-- | Usage: @'glActiveShaderProgramEXT' pipeline program@
+
+
+glActiveShaderProgramEXT :: MonadIO m => GLuint -> GLuint -> m ()
+glActiveShaderProgramEXT = ffiuintuintIOV glActiveShaderProgramEXTFunPtr
+
+glActiveShaderProgramEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glActiveShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgramEXT")
+
+{-# NOINLINE glActiveShaderProgramEXTFunPtr #-}
+
+-- | Usage: @'glBindProgramPipelineEXT' pipeline@
+
+
+glBindProgramPipelineEXT :: MonadIO m => GLuint -> m ()
+glBindProgramPipelineEXT = ffiuintIOV glBindProgramPipelineEXTFunPtr
+
+glBindProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO ())
+glBindProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipelineEXT")
+
+{-# NOINLINE glBindProgramPipelineEXTFunPtr #-}
+
+-- | Usage: @'glCreateShaderProgramEXT' type string@
+
+
+glCreateShaderProgramEXT :: MonadIO m => GLenum -> Ptr GLchar -> m GLuint
+glCreateShaderProgramEXT = ffienumPtrcharIOuint glCreateShaderProgramEXTFunPtr
+
+glCreateShaderProgramEXTFunPtr :: FunPtr (GLenum -> Ptr GLchar -> IO GLuint)
+glCreateShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramEXT")
+
+{-# NOINLINE glCreateShaderProgramEXTFunPtr #-}
+
+-- | Usage: @'glCreateShaderProgramvEXT' type count strings@
+--
+-- The length of @strings@ should be @count@.
+
+
+glCreateShaderProgramvEXT :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
+glCreateShaderProgramvEXT = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvEXTFunPtr
+
+glCreateShaderProgramvEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
+glCreateShaderProgramvEXTFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramvEXT")
+
+{-# NOINLINE glCreateShaderProgramvEXTFunPtr #-}
+
+-- | Usage: @'glDeleteProgramPipelinesEXT' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+
+
+glDeleteProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramPipelinesEXT = ffisizeiPtruintIOV glDeleteProgramPipelinesEXTFunPtr
+
+glDeleteProgramPipelinesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramPipelinesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelinesEXT")
+
+{-# NOINLINE glDeleteProgramPipelinesEXTFunPtr #-}
+
+-- | Usage: @'glGenProgramPipelinesEXT' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+
+
+glGenProgramPipelinesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramPipelinesEXT = ffisizeiPtruintIOV glGenProgramPipelinesEXTFunPtr
+
+glGenProgramPipelinesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramPipelinesEXTFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelinesEXT")
+
+{-# NOINLINE glGenProgramPipelinesEXTFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineInfoLogEXT' pipeline bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+
+
+glGetProgramPipelineInfoLogEXT :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramPipelineInfoLogEXT = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogEXTFunPtr
+
+glGetProgramPipelineInfoLogEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramPipelineInfoLogEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLogEXT")
+
+{-# NOINLINE glGetProgramPipelineInfoLogEXTFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineivEXT' pipeline pname params@
+
+
+glGetProgramPipelineivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramPipelineivEXT = ffiuintenumPtrintIOV glGetProgramPipelineivEXTFunPtr
+
+glGetProgramPipelineivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramPipelineivEXTFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineivEXT")
+
+{-# NOINLINE glGetProgramPipelineivEXTFunPtr #-}
+
+-- | Usage: @'glIsProgramPipelineEXT' pipeline@
+
+
+glIsProgramPipelineEXT :: MonadIO m => GLuint -> m GLboolean
+glIsProgramPipelineEXT = ffiuintIOboolean glIsProgramPipelineEXTFunPtr
+
+glIsProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipelineEXT")
+
+{-# NOINLINE glIsProgramPipelineEXTFunPtr #-}
+
+-- | Usage: @'glUseProgramStagesEXT' pipeline stages program@
+
+
+glUseProgramStagesEXT :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
+glUseProgramStagesEXT = ffiuintbitfielduintIOV glUseProgramStagesEXTFunPtr
+
+glUseProgramStagesEXTFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+glUseProgramStagesEXTFunPtr = unsafePerformIO (getProcAddress "glUseProgramStagesEXT")
+
+{-# NOINLINE glUseProgramStagesEXTFunPtr #-}
+
+-- | Usage: @'glUseShaderProgramEXT' type program@
+
+
+glUseShaderProgramEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glUseShaderProgramEXT = ffienumuintIOV glUseShaderProgramEXTFunPtr
+
+glUseShaderProgramEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glUseShaderProgramEXTFunPtr = unsafePerformIO (getProcAddress "glUseShaderProgramEXT")
+
+{-# NOINLINE glUseShaderProgramEXTFunPtr #-}
+
+-- | Usage: @'glValidateProgramPipelineEXT' pipeline@
+
+
+glValidateProgramPipelineEXT :: MonadIO m => GLuint -> m ()
+glValidateProgramPipelineEXT = ffiuintIOV glValidateProgramPipelineEXTFunPtr
+
+glValidateProgramPipelineEXTFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramPipelineEXTFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipelineEXT")
+
+{-# NOINLINE glValidateProgramPipelineEXTFunPtr #-}
+
+pattern GL_ACTIVE_PROGRAM_EXT = 0x8B8D
+
+pattern GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF
+
+pattern GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002
+
+pattern GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A
+
+pattern GL_PROGRAM_SEPARABLE_EXT = 0x8258
+
+pattern GL_VERTEX_SHADER_BIT_EXT = 0x00000001
diff --git a/generated-src/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs b/generated-src/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SeparateSpecularColor (
+  -- * Extension Support
+    gl_EXT_separate_specular_color
+
+  -- * GL_EXT_separate_specular_color
+  , pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT
+  , pattern GL_SEPARATE_SPECULAR_COLOR_EXT
+  , pattern GL_SINGLE_COLOR_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/separate_specular_color.txt GL_EXT_separate_specular_color> extension is available.
+
+gl_EXT_separate_specular_color :: Bool
+gl_EXT_separate_specular_color = member "GL_EXT_separate_specular_color" extensions
+{-# NOINLINE gl_EXT_separate_specular_color #-}
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8
+
+pattern GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA
+
+pattern GL_SINGLE_COLOR_EXT = 0x81F9
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderFramebufferFetch (
+  -- * Extension Support
+    gl_EXT_shader_framebuffer_fetch
+
+  -- * GL_EXT_shader_framebuffer_fetch
+  , pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_framebuffer_fetch.txt GL_EXT_shader_framebuffer_fetch> extension is available.
+
+gl_EXT_shader_framebuffer_fetch :: Bool
+gl_EXT_shader_framebuffer_fetch = member "GL_EXT_shader_framebuffer_fetch" extensions
+{-# NOINLINE gl_EXT_shader_framebuffer_fetch #-}
+
+pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderGroupVote.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderGroupVote.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderGroupVote.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderGroupVote (
+  -- * Extension Support
+    gl_EXT_shader_group_vote
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_group_vote.txt GL_EXT_shader_group_vote> extension is available.
+
+gl_EXT_shader_group_vote :: Bool
+gl_EXT_shader_group_vote = member "GL_EXT_shader_group_vote" extensions
+{-# NOINLINE gl_EXT_shader_group_vote #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadFormatted.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadFormatted.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadFormatted.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderImageLoadFormatted (
+  -- * Extension Support
+    gl_EXT_shader_image_load_formatted
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shader_image_load_formatted.txt GL_EXT_shader_image_load_formatted> extension is available.
+
+gl_EXT_shader_image_load_formatted :: Bool
+gl_EXT_shader_image_load_formatted = member "GL_EXT_shader_image_load_formatted" extensions
+{-# NOINLINE gl_EXT_shader_image_load_formatted #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs
@@ -0,0 +1,204 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderImageLoadStore (
+  -- * Extension Support
+    gl_EXT_shader_image_load_store
+
+  -- * GL_EXT_shader_image_load_store
+  , glBindImageTextureEXT
+  , glMemoryBarrierEXT
+  , pattern GL_ALL_BARRIER_BITS_EXT
+  , pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT
+  , pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT
+  , pattern GL_COMMAND_BARRIER_BIT_EXT
+  , pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT
+  , pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT
+  , pattern GL_IMAGE_1D_ARRAY_EXT
+  , pattern GL_IMAGE_1D_EXT
+  , pattern GL_IMAGE_2D_ARRAY_EXT
+  , pattern GL_IMAGE_2D_EXT
+  , pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
+  , pattern GL_IMAGE_2D_MULTISAMPLE_EXT
+  , pattern GL_IMAGE_2D_RECT_EXT
+  , pattern GL_IMAGE_3D_EXT
+  , pattern GL_IMAGE_BINDING_ACCESS_EXT
+  , pattern GL_IMAGE_BINDING_FORMAT_EXT
+  , pattern GL_IMAGE_BINDING_LAYERED_EXT
+  , pattern GL_IMAGE_BINDING_LAYER_EXT
+  , pattern GL_IMAGE_BINDING_LEVEL_EXT
+  , pattern GL_IMAGE_BINDING_NAME_EXT
+  , pattern GL_IMAGE_BUFFER_EXT
+  , pattern GL_IMAGE_CUBE_EXT
+  , pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT
+  , pattern GL_INT_IMAGE_1D_ARRAY_EXT
+  , pattern GL_INT_IMAGE_1D_EXT
+  , pattern GL_INT_IMAGE_2D_ARRAY_EXT
+  , pattern GL_INT_IMAGE_2D_EXT
+  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
+  , pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT
+  , pattern GL_INT_IMAGE_2D_RECT_EXT
+  , pattern GL_INT_IMAGE_3D_EXT
+  , pattern GL_INT_IMAGE_BUFFER_EXT
+  , pattern GL_INT_IMAGE_CUBE_EXT
+  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
+  , pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT
+  , pattern GL_MAX_IMAGE_SAMPLES_EXT
+  , pattern GL_MAX_IMAGE_UNITS_EXT
+  , pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT
+  , pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT
+  , pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT
+  , pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT
+  , pattern GL_UNIFORM_BARRIER_BIT_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_1D_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_3D_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_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/shader_image_load_store.txt GL_EXT_shader_image_load_store> extension is available.
+
+gl_EXT_shader_image_load_store :: Bool
+gl_EXT_shader_image_load_store = member "GL_EXT_shader_image_load_store" extensions
+{-# NOINLINE gl_EXT_shader_image_load_store #-}
+
+-- | Usage: @'glBindImageTextureEXT' index texture level layered layer access format@
+--
+-- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glBindImageTextureEXT :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()
+glBindImageTextureEXT = ffiuintuintintbooleanintenumintIOV glBindImageTextureEXTFunPtr
+
+glBindImageTextureEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ())
+glBindImageTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindImageTextureEXT")
+
+{-# NOINLINE glBindImageTextureEXTFunPtr #-}
+
+-- | Usage: @'glMemoryBarrierEXT' barriers@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMemoryBarrier'.
+
+
+glMemoryBarrierEXT :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrierEXT = ffibitfieldIOV glMemoryBarrierEXTFunPtr
+
+glMemoryBarrierEXTFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierEXTFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierEXT")
+
+{-# NOINLINE glMemoryBarrierEXTFunPtr #-}
+
+pattern GL_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200
+
+pattern GL_COMMAND_BARRIER_BIT_EXT = 0x00000040
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400
+
+pattern GL_IMAGE_1D_ARRAY_EXT = 0x9052
+
+pattern GL_IMAGE_1D_EXT = 0x904C
+
+pattern GL_IMAGE_2D_ARRAY_EXT = 0x9053
+
+pattern GL_IMAGE_2D_EXT = 0x904D
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056
+
+pattern GL_IMAGE_2D_MULTISAMPLE_EXT = 0x9055
+
+pattern GL_IMAGE_2D_RECT_EXT = 0x904F
+
+pattern GL_IMAGE_3D_EXT = 0x904E
+
+pattern GL_IMAGE_BINDING_ACCESS_EXT = 0x8F3E
+
+pattern GL_IMAGE_BINDING_FORMAT_EXT = 0x906E
+
+pattern GL_IMAGE_BINDING_LAYERED_EXT = 0x8F3C
+
+pattern GL_IMAGE_BINDING_LAYER_EXT = 0x8F3D
+
+pattern GL_IMAGE_BINDING_LEVEL_EXT = 0x8F3B
+
+pattern GL_IMAGE_BINDING_NAME_EXT = 0x8F3A
+
+pattern GL_IMAGE_CUBE_EXT = 0x9050
+
+pattern GL_INT_IMAGE_1D_ARRAY_EXT = 0x905D
+
+pattern GL_INT_IMAGE_1D_EXT = 0x9057
+
+pattern GL_INT_IMAGE_2D_ARRAY_EXT = 0x905E
+
+pattern GL_INT_IMAGE_2D_EXT = 0x9058
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060
+
+pattern GL_INT_IMAGE_2D_RECT_EXT = 0x905A
+
+pattern GL_INT_IMAGE_3D_EXT = 0x9059
+
+pattern GL_INT_IMAGE_CUBE_EXT = 0x905B
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39
+
+pattern GL_MAX_IMAGE_SAMPLES_EXT = 0x906D
+
+pattern GL_MAX_IMAGE_UNITS_EXT = 0x8F38
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800
+
+pattern GL_UNIFORM_BARRIER_BIT_EXT = 0x00000004
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065
+
+pattern GL_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderImplicitConversions.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderImplicitConversions.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderImplicitConversions.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderImplicitConversions (
+  -- * Extension Support
+    gl_EXT_shader_implicit_conversions
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_implicit_conversions.txt GL_EXT_shader_implicit_conversions> extension is available.
+
+gl_EXT_shader_implicit_conversions :: Bool
+gl_EXT_shader_implicit_conversions = member "GL_EXT_shader_implicit_conversions" extensions
+{-# NOINLINE gl_EXT_shader_implicit_conversions #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderIntegerMix.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderIntegerMix.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderIntegerMix.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderIntegerMix (
+  -- * Extension Support
+    gl_EXT_shader_integer_mix
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_integer_mix.txt GL_EXT_shader_integer_mix> extension is available.
+
+gl_EXT_shader_integer_mix :: Bool
+gl_EXT_shader_integer_mix = member "GL_EXT_shader_integer_mix" extensions
+{-# NOINLINE gl_EXT_shader_integer_mix #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderIoBlocks.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderIoBlocks.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderIoBlocks.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderIoBlocks (
+  -- * Extension Support
+    gl_EXT_shader_io_blocks
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_io_blocks.txt GL_EXT_shader_io_blocks> extension is available.
+
+gl_EXT_shader_io_blocks :: Bool
+gl_EXT_shader_io_blocks = member "GL_EXT_shader_io_blocks" extensions
+{-# NOINLINE gl_EXT_shader_io_blocks #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderNonConstantGlobalInitializers.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderNonConstantGlobalInitializers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderNonConstantGlobalInitializers.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderNonConstantGlobalInitializers (
+  -- * Extension Support
+    gl_EXT_shader_non_constant_global_initializers
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_non_constant_global_initializers.txt GL_EXT_shader_non_constant_global_initializers> extension is available.
+
+gl_EXT_shader_non_constant_global_initializers :: Bool
+gl_EXT_shader_non_constant_global_initializers = member "GL_EXT_shader_non_constant_global_initializers" extensions
+{-# NOINLINE gl_EXT_shader_non_constant_global_initializers #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage (
+  -- * Extension Support
+    gl_EXT_shader_pixel_local_storage
+
+  -- * GL_EXT_shader_pixel_local_storage
+  , pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT
+  , pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT
+  , pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_pixel_local_storage.txt GL_EXT_shader_pixel_local_storage> extension is available.
+
+gl_EXT_shader_pixel_local_storage :: Bool
+gl_EXT_shader_pixel_local_storage = member "GL_EXT_shader_pixel_local_storage" extensions
+{-# NOINLINE gl_EXT_shader_pixel_local_storage #-}
+
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63
+
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67
+
+pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs
@@ -0,0 +1,67 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderPixelLocalStorage2 (
+  -- * Extension Support
+    gl_EXT_shader_pixel_local_storage2
+
+  -- * GL_EXT_shader_pixel_local_storage2
+  , glClearPixelLocalStorageuiEXT
+  , glFramebufferPixelLocalStorageSizeEXT
+  , glGetFramebufferPixelLocalStorageSizeEXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT
+  , pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT
+  , pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_pixel_local_storage2.txt GL_EXT_shader_pixel_local_storage2> extension is available.
+
+gl_EXT_shader_pixel_local_storage2 :: Bool
+gl_EXT_shader_pixel_local_storage2 = member "GL_EXT_shader_pixel_local_storage2" extensions
+{-# NOINLINE gl_EXT_shader_pixel_local_storage2 #-}
+
+-- | Usage: @'glClearPixelLocalStorageuiEXT' offset n values@
+
+
+glClearPixelLocalStorageuiEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLuint -> m ()
+glClearPixelLocalStorageuiEXT = ffisizeisizeiPtruintIOV glClearPixelLocalStorageuiEXTFunPtr
+
+glClearPixelLocalStorageuiEXTFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ())
+glClearPixelLocalStorageuiEXTFunPtr = unsafePerformIO (getProcAddress "glClearPixelLocalStorageuiEXT")
+
+{-# NOINLINE glClearPixelLocalStorageuiEXTFunPtr #-}
+
+-- | Usage: @'glFramebufferPixelLocalStorageSizeEXT' target size@
+
+
+glFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> GLsizei -> m ()
+glFramebufferPixelLocalStorageSizeEXT = ffiuintsizeiIOV glFramebufferPixelLocalStorageSizeEXTFunPtr
+
+glFramebufferPixelLocalStorageSizeEXTFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
+glFramebufferPixelLocalStorageSizeEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferPixelLocalStorageSizeEXT")
+
+{-# NOINLINE glFramebufferPixelLocalStorageSizeEXTFunPtr #-}
+
+-- | Usage: @'glGetFramebufferPixelLocalStorageSizeEXT' target@
+
+
+glGetFramebufferPixelLocalStorageSizeEXT :: MonadIO m => GLuint -> m GLsizei
+glGetFramebufferPixelLocalStorageSizeEXT = ffiuintIOsizei glGetFramebufferPixelLocalStorageSizeEXTFunPtr
+
+glGetFramebufferPixelLocalStorageSizeEXTFunPtr :: FunPtr (GLuint -> IO GLsizei)
+glGetFramebufferPixelLocalStorageSizeEXTFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferPixelLocalStorageSizeEXT")
+
+{-# NOINLINE glGetFramebufferPixelLocalStorageSizeEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT = 0x9652
+
+pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT = 0x9650
+
+pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT = 0x9651
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderTextureLod.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderTextureLod.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderTextureLod.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShaderTextureLod (
+  -- * Extension Support
+    gl_EXT_shader_texture_lod
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shader_texture_lod.txt GL_EXT_shader_texture_lod> extension is available.
+
+gl_EXT_shader_texture_lod :: Bool
+gl_EXT_shader_texture_lod = member "GL_EXT_shader_texture_lod" extensions
+{-# NOINLINE gl_EXT_shader_texture_lod #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShadowFuncs.hs b/generated-src/Graphics/GL/Ext/EXT/ShadowFuncs.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShadowFuncs.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShadowFuncs (
+  -- * Extension Support
+    gl_EXT_shadow_funcs
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shadow_funcs.txt GL_EXT_shadow_funcs> extension is available.
+
+gl_EXT_shadow_funcs :: Bool
+gl_EXT_shadow_funcs = member "GL_EXT_shadow_funcs" extensions
+{-# NOINLINE gl_EXT_shadow_funcs #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShadowSamplers.hs b/generated-src/Graphics/GL/Ext/EXT/ShadowSamplers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/ShadowSamplers.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.ShadowSamplers (
+  -- * Extension Support
+    gl_EXT_shadow_samplers
+
+  -- * GL_EXT_shadow_samplers
+  , pattern GL_COMPARE_REF_TO_TEXTURE_EXT
+  , pattern GL_SAMPLER_2D_SHADOW_EXT
+  , pattern GL_TEXTURE_COMPARE_FUNC_EXT
+  , pattern GL_TEXTURE_COMPARE_MODE_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_shadow_samplers.txt GL_EXT_shadow_samplers> extension is available.
+
+gl_EXT_shadow_samplers :: Bool
+gl_EXT_shadow_samplers = member "GL_EXT_shadow_samplers" extensions
+{-# NOINLINE gl_EXT_shadow_samplers #-}
+
+pattern GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E
+
+pattern GL_SAMPLER_2D_SHADOW_EXT = 0x8B62
+
+pattern GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE_EXT = 0x884C
diff --git a/generated-src/Graphics/GL/Ext/EXT/SharedTexturePalette.hs b/generated-src/Graphics/GL/Ext/EXT/SharedTexturePalette.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SharedTexturePalette.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SharedTexturePalette (
+  -- * Extension Support
+    gl_EXT_shared_texture_palette
+
+  -- * GL_EXT_shared_texture_palette
+  , pattern GL_SHARED_TEXTURE_PALETTE_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/shared_texture_palette.txt GL_EXT_shared_texture_palette> extension is available.
+
+gl_EXT_shared_texture_palette :: Bool
+gl_EXT_shared_texture_palette = member "GL_EXT_shared_texture_palette" extensions
+{-# NOINLINE gl_EXT_shared_texture_palette #-}
+
+pattern GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB
diff --git a/generated-src/Graphics/GL/Ext/EXT/SparseTexture.hs b/generated-src/Graphics/GL/Ext/EXT/SparseTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SparseTexture.hs
@@ -0,0 +1,75 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SparseTexture (
+  -- * Extension Support
+    gl_EXT_sparse_texture
+
+  -- * GL_EXT_sparse_texture
+  , glTexPageCommitmentEXT
+  , pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT
+  , pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT
+  , pattern GL_MAX_SPARSE_TEXTURE_SIZE_EXT
+  , pattern GL_NUM_SPARSE_LEVELS_EXT
+  , pattern GL_NUM_VIRTUAL_PAGE_SIZES_EXT
+  , pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_2D_ARRAY
+  , pattern GL_TEXTURE_3D
+  , pattern GL_TEXTURE_CUBE_MAP
+  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES
+  , pattern GL_TEXTURE_SPARSE_EXT
+  , pattern GL_VIRTUAL_PAGE_SIZE_INDEX_EXT
+  , pattern GL_VIRTUAL_PAGE_SIZE_X_EXT
+  , pattern GL_VIRTUAL_PAGE_SIZE_Y_EXT
+  , pattern GL_VIRTUAL_PAGE_SIZE_Z_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://www.khronos.org/registry/gles/extensions/EXT/EXT_sparse_texture.txt GL_EXT_sparse_texture> extension is available.
+
+gl_EXT_sparse_texture :: Bool
+gl_EXT_sparse_texture = member "GL_EXT_sparse_texture" extensions
+{-# NOINLINE gl_EXT_sparse_texture #-}
+
+-- | Usage: @'glTexPageCommitmentEXT' target level xoffset yoffset zoffset width height depth commit@
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.SparseTexture.glTexPageCommitmentARB'.
+
+
+glTexPageCommitmentEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexPageCommitmentEXT = ffienumintintintintsizeisizeisizeibooleanIOV glTexPageCommitmentEXTFunPtr
+
+glTexPageCommitmentEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexPageCommitmentEXTFunPtr = unsafePerformIO (getProcAddress "glTexPageCommitmentEXT")
+
+{-# NOINLINE glTexPageCommitmentEXTFunPtr #-}
+
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT = 0x9199
+
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT = 0x919A
+
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_EXT = 0x9198
+
+pattern GL_NUM_SPARSE_LEVELS_EXT = 0x91AA
+
+pattern GL_NUM_VIRTUAL_PAGE_SIZES_EXT = 0x91A8
+
+pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT = 0x91A9
+
+pattern GL_TEXTURE_SPARSE_EXT = 0x91A6
+
+pattern GL_VIRTUAL_PAGE_SIZE_INDEX_EXT = 0x91A7
+
+pattern GL_VIRTUAL_PAGE_SIZE_X_EXT = 0x9195
+
+pattern GL_VIRTUAL_PAGE_SIZE_Y_EXT = 0x9196
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_EXT = 0x9197
diff --git a/generated-src/Graphics/GL/Ext/EXT/SparseTexture2.hs b/generated-src/Graphics/GL/Ext/EXT/SparseTexture2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/SparseTexture2.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.SparseTexture2 (
+  -- * Extension Support
+    gl_EXT_sparse_texture2
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/sparse_texture2.txt GL_EXT_sparse_texture2> extension is available.
+
+gl_EXT_sparse_texture2 :: Bool
+gl_EXT_sparse_texture2 = member "GL_EXT_sparse_texture2" extensions
+{-# NOINLINE gl_EXT_sparse_texture2 #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/StencilClearTag.hs b/generated-src/Graphics/GL/Ext/EXT/StencilClearTag.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/StencilClearTag.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.StencilClearTag (
+  -- * Extension Support
+    gl_EXT_stencil_clear_tag
+
+  -- * GL_EXT_stencil_clear_tag
+  , glStencilClearTagEXT
+  , pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT
+  , pattern GL_STENCIL_TAG_BITS_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_clear_tag.txt GL_EXT_stencil_clear_tag> extension is available.
+
+gl_EXT_stencil_clear_tag :: Bool
+gl_EXT_stencil_clear_tag = member "GL_EXT_stencil_clear_tag" extensions
+{-# NOINLINE gl_EXT_stencil_clear_tag #-}
+
+-- | Usage: @'glStencilClearTagEXT' stencilTagBits stencilClearTag@
+
+
+glStencilClearTagEXT :: MonadIO m => GLsizei -> GLuint -> m ()
+glStencilClearTagEXT = ffisizeiuintIOV glStencilClearTagEXTFunPtr
+
+glStencilClearTagEXTFunPtr :: FunPtr (GLsizei -> GLuint -> IO ())
+glStencilClearTagEXTFunPtr = unsafePerformIO (getProcAddress "glStencilClearTagEXT")
+
+{-# NOINLINE glStencilClearTagEXTFunPtr #-}
+
+pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3
+
+pattern GL_STENCIL_TAG_BITS_EXT = 0x88F2
diff --git a/generated-src/Graphics/GL/Ext/EXT/StencilTwoSide.hs b/generated-src/Graphics/GL/Ext/EXT/StencilTwoSide.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/StencilTwoSide.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.StencilTwoSide (
+  -- * Extension Support
+    gl_EXT_stencil_two_side
+
+  -- * GL_EXT_stencil_two_side
+  , glActiveStencilFaceEXT
+  , pattern GL_ACTIVE_STENCIL_FACE_EXT
+  , pattern GL_STENCIL_TEST_TWO_SIDE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_two_side.txt GL_EXT_stencil_two_side> extension is available.
+
+gl_EXT_stencil_two_side :: Bool
+gl_EXT_stencil_two_side = member "GL_EXT_stencil_two_side" extensions
+{-# NOINLINE gl_EXT_stencil_two_side #-}
+
+-- | Usage: @'glActiveStencilFaceEXT' face@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+
+
+glActiveStencilFaceEXT :: MonadIO m => GLenum -> m ()
+glActiveStencilFaceEXT = ffienumIOV glActiveStencilFaceEXTFunPtr
+
+glActiveStencilFaceEXTFunPtr :: FunPtr (GLenum -> IO ())
+glActiveStencilFaceEXTFunPtr = unsafePerformIO (getProcAddress "glActiveStencilFaceEXT")
+
+{-# NOINLINE glActiveStencilFaceEXTFunPtr #-}
+
+pattern GL_ACTIVE_STENCIL_FACE_EXT = 0x8911
+
+pattern GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910
diff --git a/generated-src/Graphics/GL/Ext/EXT/StencilWrap.hs b/generated-src/Graphics/GL/Ext/EXT/StencilWrap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/StencilWrap.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.StencilWrap (
+  -- * Extension Support
+    gl_EXT_stencil_wrap
+
+  -- * GL_EXT_stencil_wrap
+  , pattern GL_DECR_WRAP_EXT
+  , pattern GL_INCR_WRAP_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/stencil_wrap.txt GL_EXT_stencil_wrap> extension is available.
+
+gl_EXT_stencil_wrap :: Bool
+gl_EXT_stencil_wrap = member "GL_EXT_stencil_wrap" extensions
+{-# NOINLINE gl_EXT_stencil_wrap #-}
+
+pattern GL_DECR_WRAP_EXT = 0x8508
+
+pattern GL_INCR_WRAP_EXT = 0x8507
diff --git a/generated-src/Graphics/GL/Ext/EXT/Subtexture.hs b/generated-src/Graphics/GL/Ext/EXT/Subtexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Subtexture.hs
@@ -0,0 +1,76 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Subtexture (
+  -- * Extension Support
+    gl_EXT_subtexture
+
+  -- * GL_EXT_subtexture
+  , glTexSubImage1DEXT
+  , glTexSubImage2DEXT
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/subtexture.txt GL_EXT_subtexture> extension is available.
+
+gl_EXT_subtexture :: Bool
+gl_EXT_subtexture = member "GL_EXT_subtexture" extensions
+{-# NOINLINE gl_EXT_subtexture #-}
+
+-- | Usage: @'glTexSubImage1DEXT' target level xoffset width format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage1D'.
+
+
+glTexSubImage1DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage1DEXT = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DEXTFunPtr
+
+glTexSubImage1DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1DEXT")
+
+{-# NOINLINE glTexSubImage1DEXTFunPtr #-}
+
+-- | Usage: @'glTexSubImage2DEXT' target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage2D'.
+
+
+glTexSubImage2DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage2DEXT = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DEXTFunPtr
+
+glTexSubImage2DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2DEXT")
+
+{-# NOINLINE glTexSubImage2DEXTFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/TessellationPointSize.hs b/generated-src/Graphics/GL/Ext/EXT/TessellationPointSize.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TessellationPointSize.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TessellationPointSize (
+  -- * Extension Support
+    gl_EXT_tessellation_point_size
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_tessellation_point_size.txt GL_EXT_tessellation_point_size> extension is available.
+
+gl_EXT_tessellation_point_size :: Bool
+gl_EXT_tessellation_point_size = member "GL_EXT_tessellation_point_size" extensions
+{-# NOINLINE gl_EXT_tessellation_point_size #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/TessellationShader.hs b/generated-src/Graphics/GL/Ext/EXT/TessellationShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TessellationShader.hs
@@ -0,0 +1,168 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TessellationShader (
+  -- * Extension Support
+    gl_EXT_tessellation_shader
+
+  -- * GL_EXT_tessellation_shader
+  , glPatchParameteriEXT
+  , pattern GL_CCW
+  , pattern GL_CW
+  , pattern GL_EQUAL
+  , pattern GL_FRACTIONAL_EVEN_EXT
+  , pattern GL_FRACTIONAL_ODD_EXT
+  , pattern GL_ISOLINES_EXT
+  , pattern GL_IS_PER_PATCH_EXT
+  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
+  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
+  , pattern GL_MAX_PATCH_VERTICES_EXT
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT
+  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT
+  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT
+  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT
+  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT
+  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT
+  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT
+  , pattern GL_MAX_TESS_GEN_LEVEL_EXT
+  , pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT
+  , pattern GL_PATCHES_EXT
+  , pattern GL_PATCH_VERTICES_EXT
+  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED
+  , pattern GL_QUADS_EXT
+  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT
+  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT
+  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT
+  , pattern GL_TESS_CONTROL_SHADER_BIT_EXT
+  , pattern GL_TESS_CONTROL_SHADER_EXT
+  , pattern GL_TESS_EVALUATION_SHADER_BIT_EXT
+  , pattern GL_TESS_EVALUATION_SHADER_EXT
+  , pattern GL_TESS_GEN_MODE_EXT
+  , pattern GL_TESS_GEN_POINT_MODE_EXT
+  , pattern GL_TESS_GEN_SPACING_EXT
+  , pattern GL_TESS_GEN_VERTEX_ORDER_EXT
+  , pattern GL_TRIANGLES
+) 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://www.khronos.org/registry/gles/extensions/EXT/EXT_tessellation_shader.txt GL_EXT_tessellation_shader> extension is available.
+
+gl_EXT_tessellation_shader :: Bool
+gl_EXT_tessellation_shader = member "GL_EXT_tessellation_shader" extensions
+{-# NOINLINE gl_EXT_tessellation_shader #-}
+
+-- | Usage: @'glPatchParameteriEXT' pname value@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPatchParameteri'.
+
+
+glPatchParameteriEXT :: MonadIO m => GLenum -> GLint -> m ()
+glPatchParameteriEXT = ffienumintIOV glPatchParameteriEXTFunPtr
+
+glPatchParameteriEXTFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPatchParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glPatchParameteriEXT")
+
+{-# NOINLINE glPatchParameteriEXTFunPtr #-}
+
+pattern GL_FRACTIONAL_EVEN_EXT = 0x8E7C
+
+pattern GL_FRACTIONAL_ODD_EXT = 0x8E7B
+
+pattern GL_ISOLINES_EXT = 0x8E7A
+
+pattern GL_IS_PER_PATCH_EXT = 0x92E7
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F
+
+pattern GL_MAX_PATCH_VERTICES_EXT = 0x8E7D
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80
+
+pattern GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84
+
+pattern GL_PATCHES_EXT = 0x000E
+
+pattern GL_PATCH_VERTICES_EXT = 0x8E72
+
+pattern GL_QUADS_EXT = 0x0007
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75
+
+pattern GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008
+
+pattern GL_TESS_CONTROL_SHADER_EXT = 0x8E88
+
+pattern GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010
+
+pattern GL_TESS_EVALUATION_SHADER_EXT = 0x8E87
+
+pattern GL_TESS_GEN_MODE_EXT = 0x8E76
+
+pattern GL_TESS_GEN_POINT_MODE_EXT = 0x8E79
+
+pattern GL_TESS_GEN_SPACING_EXT = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78
diff --git a/generated-src/Graphics/GL/Ext/EXT/Texture.hs b/generated-src/Graphics/GL/Ext/EXT/Texture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Texture.hs
@@ -0,0 +1,133 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Texture (
+  -- * Extension Support
+    gl_EXT_texture
+
+  -- * GL_EXT_texture
+  , pattern GL_ALPHA12_EXT
+  , pattern GL_ALPHA16_EXT
+  , pattern GL_ALPHA4_EXT
+  , pattern GL_ALPHA8_EXT
+  , pattern GL_INTENSITY12_EXT
+  , pattern GL_INTENSITY16_EXT
+  , pattern GL_INTENSITY4_EXT
+  , pattern GL_INTENSITY8_EXT
+  , pattern GL_INTENSITY_EXT
+  , pattern GL_LUMINANCE12_ALPHA12_EXT
+  , pattern GL_LUMINANCE12_ALPHA4_EXT
+  , pattern GL_LUMINANCE12_EXT
+  , pattern GL_LUMINANCE16_ALPHA16_EXT
+  , pattern GL_LUMINANCE16_EXT
+  , pattern GL_LUMINANCE4_ALPHA4_EXT
+  , pattern GL_LUMINANCE4_EXT
+  , pattern GL_LUMINANCE6_ALPHA2_EXT
+  , pattern GL_LUMINANCE8_ALPHA8_EXT
+  , pattern GL_LUMINANCE8_EXT
+  , pattern GL_PROXY_TEXTURE_1D_EXT
+  , pattern GL_PROXY_TEXTURE_2D_EXT
+  , pattern GL_REPLACE_EXT
+  , pattern GL_RGB10_A2_EXT
+  , pattern GL_RGB10_EXT
+  , pattern GL_RGB12_EXT
+  , pattern GL_RGB16_EXT
+  , pattern GL_RGB2_EXT
+  , pattern GL_RGB4_EXT
+  , pattern GL_RGB5_A1_EXT
+  , pattern GL_RGB5_EXT
+  , pattern GL_RGB8_EXT
+  , pattern GL_RGBA12_EXT
+  , pattern GL_RGBA16_EXT
+  , pattern GL_RGBA2_EXT
+  , pattern GL_RGBA4_EXT
+  , pattern GL_RGBA8_EXT
+  , pattern GL_TEXTURE_ALPHA_SIZE_EXT
+  , pattern GL_TEXTURE_BLUE_SIZE_EXT
+  , pattern GL_TEXTURE_GREEN_SIZE_EXT
+  , pattern GL_TEXTURE_INTENSITY_SIZE_EXT
+  , pattern GL_TEXTURE_LUMINANCE_SIZE_EXT
+  , pattern GL_TEXTURE_RED_SIZE_EXT
+  , pattern GL_TEXTURE_TOO_LARGE_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture.txt GL_EXT_texture> extension is available.
+
+gl_EXT_texture :: Bool
+gl_EXT_texture = member "GL_EXT_texture" extensions
+{-# NOINLINE gl_EXT_texture #-}
+
+pattern GL_ALPHA12_EXT = 0x803D
+
+pattern GL_ALPHA16_EXT = 0x803E
+
+pattern GL_ALPHA4_EXT = 0x803B
+
+pattern GL_INTENSITY12_EXT = 0x804C
+
+pattern GL_INTENSITY16_EXT = 0x804D
+
+pattern GL_INTENSITY4_EXT = 0x804A
+
+pattern GL_INTENSITY8_EXT = 0x804B
+
+pattern GL_INTENSITY_EXT = 0x8049
+
+pattern GL_LUMINANCE12_ALPHA12_EXT = 0x8047
+
+pattern GL_LUMINANCE12_ALPHA4_EXT = 0x8046
+
+pattern GL_LUMINANCE12_EXT = 0x8041
+
+pattern GL_LUMINANCE16_ALPHA16_EXT = 0x8048
+
+pattern GL_LUMINANCE16_EXT = 0x8042
+
+pattern GL_LUMINANCE4_ALPHA4_EXT = 0x8043
+
+pattern GL_LUMINANCE4_EXT = 0x803F
+
+pattern GL_LUMINANCE6_ALPHA2_EXT = 0x8044
+
+pattern GL_PROXY_TEXTURE_1D_EXT = 0x8063
+
+pattern GL_PROXY_TEXTURE_2D_EXT = 0x8064
+
+pattern GL_REPLACE_EXT = 0x8062
+
+pattern GL_RGB12_EXT = 0x8053
+
+pattern GL_RGB2_EXT = 0x804E
+
+pattern GL_RGB4_EXT = 0x804F
+
+pattern GL_RGB5_A1_EXT = 0x8057
+
+pattern GL_RGB5_EXT = 0x8050
+
+pattern GL_RGB8_EXT = 0x8051
+
+pattern GL_RGBA12_EXT = 0x805A
+
+pattern GL_RGBA2_EXT = 0x8055
+
+pattern GL_RGBA4_EXT = 0x8056
+
+pattern GL_RGBA8_EXT = 0x8058
+
+pattern GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F
+
+pattern GL_TEXTURE_BLUE_SIZE_EXT = 0x805E
+
+pattern GL_TEXTURE_GREEN_SIZE_EXT = 0x805D
+
+pattern GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061
+
+pattern GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060
+
+pattern GL_TEXTURE_RED_SIZE_EXT = 0x805C
+
+pattern GL_TEXTURE_TOO_LARGE_EXT = 0x8065
diff --git a/generated-src/Graphics/GL/Ext/EXT/Texture3D.hs b/generated-src/Graphics/GL/Ext/EXT/Texture3D.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/Texture3D.hs
@@ -0,0 +1,107 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.Texture3D (
+  -- * Extension Support
+    gl_EXT_texture3D
+
+  -- * GL_EXT_texture3D
+  , glTexImage3DEXT
+  , glTexSubImage3DEXT
+  , pattern GL_MAX_3D_TEXTURE_SIZE_EXT
+  , pattern GL_PACK_IMAGE_HEIGHT_EXT
+  , pattern GL_PACK_SKIP_IMAGES_EXT
+  , pattern GL_PROXY_TEXTURE_3D_EXT
+  , pattern GL_TEXTURE_3D_EXT
+  , pattern GL_TEXTURE_DEPTH_EXT
+  , pattern GL_TEXTURE_WRAP_R_EXT
+  , pattern GL_UNPACK_IMAGE_HEIGHT_EXT
+  , pattern GL_UNPACK_SKIP_IMAGES_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture3D.txt GL_EXT_texture3D> extension is available.
+
+gl_EXT_texture3D :: Bool
+gl_EXT_texture3D = member "GL_EXT_texture3D" extensions
+{-# NOINLINE gl_EXT_texture3D #-}
+
+-- | Usage: @'glTexImage3DEXT' target level internalformat width height depth border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexImage3D'.
+
+
+glTexImage3DEXT :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage3DEXT = ffienumintenumsizeisizeisizeiintenumenumPtrVIOV glTexImage3DEXTFunPtr
+
+glTexImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexImage3DEXT")
+
+{-# NOINLINE glTexImage3DEXTFunPtr #-}
+
+-- | Usage: @'glTexSubImage3DEXT' target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage3D'.
+
+
+glTexSubImage3DEXT :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage3DEXT = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DEXTFunPtr
+
+glTexSubImage3DEXTFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3DEXT")
+
+{-# NOINLINE glTexSubImage3DEXTFunPtr #-}
+
+pattern GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073
+
+pattern GL_PACK_IMAGE_HEIGHT_EXT = 0x806C
+
+pattern GL_PACK_SKIP_IMAGES_EXT = 0x806B
+
+pattern GL_PROXY_TEXTURE_3D_EXT = 0x8070
+
+pattern GL_TEXTURE_3D_EXT = 0x806F
+
+pattern GL_TEXTURE_DEPTH_EXT = 0x8071
+
+pattern GL_TEXTURE_WRAP_R_EXT = 0x8072
+
+pattern GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E
+
+pattern GL_UNPACK_SKIP_IMAGES_EXT = 0x806D
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureArray.hs b/generated-src/Graphics/GL/Ext/EXT/TextureArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureArray.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureArray (
+  -- * Extension Support
+    gl_EXT_texture_array
+
+  -- * GL_EXT_texture_array
+  , glFramebufferTextureLayerEXT
+  , pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
+  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT
+  , pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT
+  , pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT
+  , pattern GL_TEXTURE_1D_ARRAY_EXT
+  , pattern GL_TEXTURE_2D_ARRAY_EXT
+  , pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT
+  , pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_array.txt GL_EXT_texture_array> extension is available.
+
+gl_EXT_texture_array :: Bool
+gl_EXT_texture_array = member "GL_EXT_texture_array" extensions
+{-# NOINLINE gl_EXT_texture_array #-}
+
+pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B
+
+pattern GL_TEXTURE_1D_ARRAY_EXT = 0x8C18
+
+pattern GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/EXT/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureBorderClamp.hs
@@ -0,0 +1,97 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureBorderClamp (
+  -- * Extension Support
+    gl_EXT_texture_border_clamp
+
+  -- * GL_EXT_texture_border_clamp
+  , glGetSamplerParameterIivEXT
+  , glGetSamplerParameterIuivEXT
+  , glGetTexParameterIivEXT
+  , glGetTexParameterIuivEXT
+  , glSamplerParameterIivEXT
+  , glSamplerParameterIuivEXT
+  , glTexParameterIivEXT
+  , glTexParameterIuivEXT
+  , pattern GL_CLAMP_TO_BORDER_EXT
+  , pattern GL_TEXTURE_BORDER_COLOR_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_border_clamp.txt GL_EXT_texture_border_clamp> extension is available.
+
+gl_EXT_texture_border_clamp :: Bool
+gl_EXT_texture_border_clamp = member "GL_EXT_texture_border_clamp" extensions
+{-# NOINLINE gl_EXT_texture_border_clamp #-}
+
+-- | Usage: @'glGetSamplerParameterIivEXT' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIiv'.
+
+
+glGetSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameterIivEXT = ffiuintenumPtrintIOV glGetSamplerParameterIivEXTFunPtr
+
+glGetSamplerParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIivEXT")
+
+{-# NOINLINE glGetSamplerParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIuivEXT' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIuiv'.
+
+
+glGetSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetSamplerParameterIuivEXT = ffiuintenumPtruintIOV glGetSamplerParameterIuivEXTFunPtr
+
+glGetSamplerParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetSamplerParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuivEXT")
+
+{-# NOINLINE glGetSamplerParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIivEXT' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIiv'.
+
+
+glSamplerParameterIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameterIivEXT = ffiuintenumPtrintIOV glSamplerParameterIivEXTFunPtr
+
+glSamplerParameterIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIivEXT")
+
+{-# NOINLINE glSamplerParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIuivEXT' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIuiv'.
+
+
+glSamplerParameterIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glSamplerParameterIuivEXT = ffiuintenumPtruintIOV glSamplerParameterIuivEXTFunPtr
+
+glSamplerParameterIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glSamplerParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuivEXT")
+
+{-# NOINLINE glSamplerParameterIuivEXTFunPtr #-}
+
+pattern GL_CLAMP_TO_BORDER_EXT = 0x812D
+
+pattern GL_TEXTURE_BORDER_COLOR_EXT = 0x1004
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureBuffer.hs b/generated-src/Graphics/GL/Ext/EXT/TextureBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureBuffer.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureBuffer (
+  -- * Extension Support
+    gl_EXT_texture_buffer
+
+  -- * GL_EXT_texture_buffer
+  , glTexBufferEXT
+  , glTexBufferRangeEXT
+  , pattern GL_IMAGE_BUFFER_EXT
+  , pattern GL_INT_IMAGE_BUFFER_EXT
+  , pattern GL_INT_SAMPLER_BUFFER_EXT
+  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT
+  , pattern GL_SAMPLER_BUFFER_EXT
+  , pattern GL_TEXTURE_BINDING_BUFFER_EXT
+  , pattern GL_TEXTURE_BUFFER_BINDING_EXT
+  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
+  , pattern GL_TEXTURE_BUFFER_EXT
+  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT
+  , pattern GL_TEXTURE_BUFFER_OFFSET_EXT
+  , pattern GL_TEXTURE_BUFFER_SIZE_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT
+  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_buffer.txt GL_EXT_texture_buffer> extension is available.
+
+gl_EXT_texture_buffer :: Bool
+gl_EXT_texture_buffer = member "GL_EXT_texture_buffer" extensions
+{-# NOINLINE gl_EXT_texture_buffer #-}
+
+-- | Usage: @'glTexBufferRangeEXT' target internalformat buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBufferRange'.
+
+
+glTexBufferRangeEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTexBufferRangeEXT = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeEXTFunPtr
+
+glTexBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTexBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferRangeEXT")
+
+{-# NOINLINE glTexBufferRangeEXTFunPtr #-}
+
+pattern GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F
+
+pattern GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D
+
+pattern GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureBufferObject.hs b/generated-src/Graphics/GL/Ext/EXT/TextureBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureBufferObject.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureBufferObject (
+  -- * Extension Support
+    gl_EXT_texture_buffer_object
+
+  -- * GL_EXT_texture_buffer_object
+  , glTexBufferEXT
+  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT
+  , pattern GL_TEXTURE_BINDING_BUFFER_EXT
+  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT
+  , pattern GL_TEXTURE_BUFFER_EXT
+  , pattern GL_TEXTURE_BUFFER_FORMAT_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_buffer_object.txt GL_EXT_texture_buffer_object> extension is available.
+
+gl_EXT_texture_buffer_object :: Bool
+gl_EXT_texture_buffer_object = member "GL_EXT_texture_buffer_object" extensions
+{-# NOINLINE gl_EXT_texture_buffer_object #-}
+
+pattern GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionDxt1.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionDxt1.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionDxt1.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureCompressionDxt1 (
+  -- * Extension Support
+    gl_EXT_texture_compression_dxt1
+
+  -- * GL_EXT_texture_compression_dxt1
+  , pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
+  , pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_compression_dxt1.txt GL_EXT_texture_compression_dxt1> extension is available.
+
+gl_EXT_texture_compression_dxt1 :: Bool
+gl_EXT_texture_compression_dxt1 = member "GL_EXT_texture_compression_dxt1" extensions
+{-# NOINLINE gl_EXT_texture_compression_dxt1 #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureCompressionLatc (
+  -- * Extension Support
+    gl_EXT_texture_compression_latc
+
+  -- * GL_EXT_texture_compression_latc
+  , pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT
+  , pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT
+  , pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT
+  , pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_latc.txt GL_EXT_texture_compression_latc> extension is available.
+
+gl_EXT_texture_compression_latc :: Bool
+gl_EXT_texture_compression_latc = member "GL_EXT_texture_compression_latc" extensions
+{-# NOINLINE gl_EXT_texture_compression_latc #-}
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72
+
+pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70
+
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73
+
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureCompressionRgtc (
+  -- * Extension Support
+    gl_EXT_texture_compression_rgtc
+
+  -- * GL_EXT_texture_compression_rgtc
+  , pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT
+  , pattern GL_COMPRESSED_RED_RGTC1_EXT
+  , pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
+  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_compression_rgtc.txt GL_EXT_texture_compression_rgtc> extension is available.
+
+gl_EXT_texture_compression_rgtc :: Bool
+gl_EXT_texture_compression_rgtc = member "GL_EXT_texture_compression_rgtc" extensions
+{-# NOINLINE gl_EXT_texture_compression_rgtc #-}
+
+pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD
+
+pattern GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB
+
+pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureCompressionS3tc (
+  -- * Extension Support
+    gl_EXT_texture_compression_s3tc
+
+  -- * GL_EXT_texture_compression_s3tc
+  , pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
+  , pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
+  , pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
+  , pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_compression_s3tc.txt GL_EXT_texture_compression_s3tc> extension is available.
+
+gl_EXT_texture_compression_s3tc :: Bool
+gl_EXT_texture_compression_s3tc = member "GL_EXT_texture_compression_s3tc" extensions
+{-# NOINLINE gl_EXT_texture_compression_s3tc #-}
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCubeMap.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMap.hs
@@ -0,0 +1,53 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureCubeMap (
+  -- * Extension Support
+    gl_EXT_texture_cube_map
+
+  -- * GL_EXT_texture_cube_map
+  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT
+  , pattern GL_NORMAL_MAP_EXT
+  , pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT
+  , pattern GL_REFLECTION_MAP_EXT
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_EXT_texture_cube_map extension is available.
+
+gl_EXT_texture_cube_map :: Bool
+gl_EXT_texture_cube_map = member "GL_EXT_texture_cube_map" extensions
+{-# NOINLINE gl_EXT_texture_cube_map #-}
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C
+
+pattern GL_NORMAL_MAP_EXT = 0x8511
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B
+
+pattern GL_REFLECTION_MAP_EXT = 0x8512
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514
+
+pattern GL_TEXTURE_CUBE_MAP_EXT = 0x8513
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureCubeMapArray (
+  -- * Extension Support
+    gl_EXT_texture_cube_map_array
+
+  -- * GL_EXT_texture_cube_map_array
+  , pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT
+  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT
+  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT
+  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_cube_map_array.txt GL_EXT_texture_cube_map_array> extension is available.
+
+gl_EXT_texture_cube_map_array :: Bool
+gl_EXT_texture_cube_map_array = member "GL_EXT_texture_cube_map_array" extensions
+{-# NOINLINE gl_EXT_texture_cube_map_array #-}
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureEnvAdd.hs b/generated-src/Graphics/GL/Ext/EXT/TextureEnvAdd.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureEnvAdd.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureEnvAdd (
+  -- * Extension Support
+    gl_EXT_texture_env_add
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_add.txt GL_EXT_texture_env_add> extension is available.
+
+gl_EXT_texture_env_add :: Bool
+gl_EXT_texture_env_add = member "GL_EXT_texture_env_add" extensions
+{-# NOINLINE gl_EXT_texture_env_add #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureEnvCombine.hs b/generated-src/Graphics/GL/Ext/EXT/TextureEnvCombine.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureEnvCombine.hs
@@ -0,0 +1,80 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureEnvCombine (
+  -- * Extension Support
+    gl_EXT_texture_env_combine
+
+  -- * GL_EXT_texture_env_combine
+  , pattern GL_ADD_SIGNED_EXT
+  , pattern GL_COMBINE_ALPHA_EXT
+  , pattern GL_COMBINE_EXT
+  , pattern GL_COMBINE_RGB_EXT
+  , pattern GL_CONSTANT_EXT
+  , pattern GL_INTERPOLATE_EXT
+  , pattern GL_OPERAND0_ALPHA_EXT
+  , pattern GL_OPERAND0_RGB_EXT
+  , pattern GL_OPERAND1_ALPHA_EXT
+  , pattern GL_OPERAND1_RGB_EXT
+  , pattern GL_OPERAND2_ALPHA_EXT
+  , pattern GL_OPERAND2_RGB_EXT
+  , pattern GL_PREVIOUS_EXT
+  , pattern GL_PRIMARY_COLOR_EXT
+  , pattern GL_RGB_SCALE_EXT
+  , pattern GL_SOURCE0_ALPHA_EXT
+  , pattern GL_SOURCE0_RGB_EXT
+  , pattern GL_SOURCE1_ALPHA_EXT
+  , pattern GL_SOURCE1_RGB_EXT
+  , pattern GL_SOURCE2_ALPHA_EXT
+  , pattern GL_SOURCE2_RGB_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_combine.txt GL_EXT_texture_env_combine> extension is available.
+
+gl_EXT_texture_env_combine :: Bool
+gl_EXT_texture_env_combine = member "GL_EXT_texture_env_combine" extensions
+{-# NOINLINE gl_EXT_texture_env_combine #-}
+
+pattern GL_ADD_SIGNED_EXT = 0x8574
+
+pattern GL_COMBINE_ALPHA_EXT = 0x8572
+
+pattern GL_COMBINE_EXT = 0x8570
+
+pattern GL_COMBINE_RGB_EXT = 0x8571
+
+pattern GL_CONSTANT_EXT = 0x8576
+
+pattern GL_INTERPOLATE_EXT = 0x8575
+
+pattern GL_OPERAND0_ALPHA_EXT = 0x8598
+
+pattern GL_OPERAND0_RGB_EXT = 0x8590
+
+pattern GL_OPERAND1_ALPHA_EXT = 0x8599
+
+pattern GL_OPERAND1_RGB_EXT = 0x8591
+
+pattern GL_OPERAND2_ALPHA_EXT = 0x859A
+
+pattern GL_OPERAND2_RGB_EXT = 0x8592
+
+pattern GL_PREVIOUS_EXT = 0x8578
+
+pattern GL_PRIMARY_COLOR_EXT = 0x8577
+
+pattern GL_RGB_SCALE_EXT = 0x8573
+
+pattern GL_SOURCE0_ALPHA_EXT = 0x8588
+
+pattern GL_SOURCE0_RGB_EXT = 0x8580
+
+pattern GL_SOURCE1_ALPHA_EXT = 0x8589
+
+pattern GL_SOURCE1_RGB_EXT = 0x8581
+
+pattern GL_SOURCE2_ALPHA_EXT = 0x858A
+
+pattern GL_SOURCE2_RGB_EXT = 0x8582
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureEnvDot3.hs b/generated-src/Graphics/GL/Ext/EXT/TextureEnvDot3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureEnvDot3.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureEnvDot3 (
+  -- * Extension Support
+    gl_EXT_texture_env_dot3
+
+  -- * GL_EXT_texture_env_dot3
+  , pattern GL_DOT3_RGBA_EXT
+  , pattern GL_DOT3_RGB_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_env_dot3.txt GL_EXT_texture_env_dot3> extension is available.
+
+gl_EXT_texture_env_dot3 :: Bool
+gl_EXT_texture_env_dot3 = member "GL_EXT_texture_env_dot3" extensions
+{-# NOINLINE gl_EXT_texture_env_dot3 #-}
+
+pattern GL_DOT3_RGBA_EXT = 0x8741
+
+pattern GL_DOT3_RGB_EXT = 0x8740
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs b/generated-src/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureFilterAnisotropic (
+  -- * Extension Support
+    gl_EXT_texture_filter_anisotropic
+
+  -- * GL_EXT_texture_filter_anisotropic
+  , pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
+  , pattern GL_TEXTURE_MAX_ANISOTROPY_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_filter_anisotropic.txt GL_EXT_texture_filter_anisotropic> extension is available.
+
+gl_EXT_texture_filter_anisotropic :: Bool
+gl_EXT_texture_filter_anisotropic = member "GL_EXT_texture_filter_anisotropic" extensions
+{-# NOINLINE gl_EXT_texture_filter_anisotropic #-}
+
+pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF
+
+pattern GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureFilterMinmax.hs b/generated-src/Graphics/GL/Ext/EXT/TextureFilterMinmax.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureFilterMinmax.hs
@@ -0,0 +1,25 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureFilterMinmax (
+  -- * Extension Support
+    gl_EXT_texture_filter_minmax
+
+  -- * GL_EXT_texture_filter_minmax
+  , glRasterSamplesEXT
+  , pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT
+  , pattern GL_MAX_RASTER_SAMPLES_EXT
+  , pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
+  , pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
+  , pattern GL_RASTER_MULTISAMPLE_EXT
+  , pattern GL_RASTER_SAMPLES_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_filter_minmax.txt GL_EXT_texture_filter_minmax> extension is available.
+
+gl_EXT_texture_filter_minmax :: Bool
+gl_EXT_texture_filter_minmax = member "GL_EXT_texture_filter_minmax" extensions
+{-# NOINLINE gl_EXT_texture_filter_minmax #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureFormatBGRA8888.hs b/generated-src/Graphics/GL/Ext/EXT/TextureFormatBGRA8888.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureFormatBGRA8888.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureFormatBGRA8888 (
+  -- * Extension Support
+    gl_EXT_texture_format_BGRA8888
+
+  -- * GL_EXT_texture_format_BGRA8888
+  , pattern GL_BGRA_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_format_BGRA8888.txt GL_EXT_texture_format_BGRA8888> extension is available.
+
+gl_EXT_texture_format_BGRA8888 :: Bool
+gl_EXT_texture_format_BGRA8888 = member "GL_EXT_texture_format_BGRA8888" extensions
+{-# NOINLINE gl_EXT_texture_format_BGRA8888 #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureInteger.hs b/generated-src/Graphics/GL/Ext/EXT/TextureInteger.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureInteger.hs
@@ -0,0 +1,192 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureInteger (
+  -- * Extension Support
+    gl_EXT_texture_integer
+
+  -- * GL_EXT_texture_integer
+  , glClearColorIiEXT
+  , glClearColorIuiEXT
+  , glGetTexParameterIivEXT
+  , glGetTexParameterIuivEXT
+  , glTexParameterIivEXT
+  , glTexParameterIuivEXT
+  , pattern GL_ALPHA16I_EXT
+  , pattern GL_ALPHA16UI_EXT
+  , pattern GL_ALPHA32I_EXT
+  , pattern GL_ALPHA32UI_EXT
+  , pattern GL_ALPHA8I_EXT
+  , pattern GL_ALPHA8UI_EXT
+  , pattern GL_ALPHA_INTEGER_EXT
+  , pattern GL_BGRA_INTEGER_EXT
+  , pattern GL_BGR_INTEGER_EXT
+  , pattern GL_BLUE_INTEGER_EXT
+  , pattern GL_GREEN_INTEGER_EXT
+  , pattern GL_INTENSITY16I_EXT
+  , pattern GL_INTENSITY16UI_EXT
+  , pattern GL_INTENSITY32I_EXT
+  , pattern GL_INTENSITY32UI_EXT
+  , pattern GL_INTENSITY8I_EXT
+  , pattern GL_INTENSITY8UI_EXT
+  , pattern GL_LUMINANCE16I_EXT
+  , pattern GL_LUMINANCE16UI_EXT
+  , pattern GL_LUMINANCE32I_EXT
+  , pattern GL_LUMINANCE32UI_EXT
+  , pattern GL_LUMINANCE8I_EXT
+  , pattern GL_LUMINANCE8UI_EXT
+  , pattern GL_LUMINANCE_ALPHA16I_EXT
+  , pattern GL_LUMINANCE_ALPHA16UI_EXT
+  , pattern GL_LUMINANCE_ALPHA32I_EXT
+  , pattern GL_LUMINANCE_ALPHA32UI_EXT
+  , pattern GL_LUMINANCE_ALPHA8I_EXT
+  , pattern GL_LUMINANCE_ALPHA8UI_EXT
+  , pattern GL_LUMINANCE_ALPHA_INTEGER_EXT
+  , pattern GL_LUMINANCE_INTEGER_EXT
+  , pattern GL_RED_INTEGER_EXT
+  , pattern GL_RGB16I_EXT
+  , pattern GL_RGB16UI_EXT
+  , pattern GL_RGB32I_EXT
+  , pattern GL_RGB32UI_EXT
+  , pattern GL_RGB8I_EXT
+  , pattern GL_RGB8UI_EXT
+  , pattern GL_RGBA16I_EXT
+  , pattern GL_RGBA16UI_EXT
+  , pattern GL_RGBA32I_EXT
+  , pattern GL_RGBA32UI_EXT
+  , pattern GL_RGBA8I_EXT
+  , pattern GL_RGBA8UI_EXT
+  , pattern GL_RGBA_INTEGER_EXT
+  , pattern GL_RGBA_INTEGER_MODE_EXT
+  , pattern GL_RGB_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/texture_integer.txt GL_EXT_texture_integer> extension is available.
+
+gl_EXT_texture_integer :: Bool
+gl_EXT_texture_integer = member "GL_EXT_texture_integer" extensions
+{-# NOINLINE gl_EXT_texture_integer #-}
+
+-- | Usage: @'glClearColorIiEXT' red green blue alpha@
+
+
+glClearColorIiEXT :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glClearColorIiEXT = ffiintintintintIOV glClearColorIiEXTFunPtr
+
+glClearColorIiEXTFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glClearColorIiEXTFunPtr = unsafePerformIO (getProcAddress "glClearColorIiEXT")
+
+{-# NOINLINE glClearColorIiEXTFunPtr #-}
+
+-- | Usage: @'glClearColorIuiEXT' red green blue alpha@
+
+
+glClearColorIuiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glClearColorIuiEXT = ffiuintuintuintuintIOV glClearColorIuiEXTFunPtr
+
+glClearColorIuiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glClearColorIuiEXTFunPtr = unsafePerformIO (getProcAddress "glClearColorIuiEXT")
+
+{-# NOINLINE glClearColorIuiEXTFunPtr #-}
+
+pattern GL_ALPHA16I_EXT = 0x8D8A
+
+pattern GL_ALPHA16UI_EXT = 0x8D78
+
+pattern GL_ALPHA32I_EXT = 0x8D84
+
+pattern GL_ALPHA32UI_EXT = 0x8D72
+
+pattern GL_ALPHA8I_EXT = 0x8D90
+
+pattern GL_ALPHA8UI_EXT = 0x8D7E
+
+pattern GL_ALPHA_INTEGER_EXT = 0x8D97
+
+pattern GL_BGRA_INTEGER_EXT = 0x8D9B
+
+pattern GL_BGR_INTEGER_EXT = 0x8D9A
+
+pattern GL_BLUE_INTEGER_EXT = 0x8D96
+
+pattern GL_GREEN_INTEGER_EXT = 0x8D95
+
+pattern GL_INTENSITY16I_EXT = 0x8D8B
+
+pattern GL_INTENSITY16UI_EXT = 0x8D79
+
+pattern GL_INTENSITY32I_EXT = 0x8D85
+
+pattern GL_INTENSITY32UI_EXT = 0x8D73
+
+pattern GL_INTENSITY8I_EXT = 0x8D91
+
+pattern GL_INTENSITY8UI_EXT = 0x8D7F
+
+pattern GL_LUMINANCE16I_EXT = 0x8D8C
+
+pattern GL_LUMINANCE16UI_EXT = 0x8D7A
+
+pattern GL_LUMINANCE32I_EXT = 0x8D86
+
+pattern GL_LUMINANCE32UI_EXT = 0x8D74
+
+pattern GL_LUMINANCE8I_EXT = 0x8D92
+
+pattern GL_LUMINANCE8UI_EXT = 0x8D80
+
+pattern GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D
+
+pattern GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B
+
+pattern GL_LUMINANCE_ALPHA32I_EXT = 0x8D87
+
+pattern GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75
+
+pattern GL_LUMINANCE_ALPHA8I_EXT = 0x8D93
+
+pattern GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81
+
+pattern GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D
+
+pattern GL_LUMINANCE_INTEGER_EXT = 0x8D9C
+
+pattern GL_RED_INTEGER_EXT = 0x8D94
+
+pattern GL_RGB16I_EXT = 0x8D89
+
+pattern GL_RGB16UI_EXT = 0x8D77
+
+pattern GL_RGB32I_EXT = 0x8D83
+
+pattern GL_RGB32UI_EXT = 0x8D71
+
+pattern GL_RGB8I_EXT = 0x8D8F
+
+pattern GL_RGB8UI_EXT = 0x8D7D
+
+pattern GL_RGBA16I_EXT = 0x8D88
+
+pattern GL_RGBA16UI_EXT = 0x8D76
+
+pattern GL_RGBA32I_EXT = 0x8D82
+
+pattern GL_RGBA32UI_EXT = 0x8D70
+
+pattern GL_RGBA8I_EXT = 0x8D8E
+
+pattern GL_RGBA8UI_EXT = 0x8D7C
+
+pattern GL_RGBA_INTEGER_EXT = 0x8D99
+
+pattern GL_RGBA_INTEGER_MODE_EXT = 0x8D9E
+
+pattern GL_RGB_INTEGER_EXT = 0x8D98
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureLodBias.hs b/generated-src/Graphics/GL/Ext/EXT/TextureLodBias.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureLodBias.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureLodBias (
+  -- * Extension Support
+    gl_EXT_texture_lod_bias
+
+  -- * GL_EXT_texture_lod_bias
+  , pattern GL_MAX_TEXTURE_LOD_BIAS_EXT
+  , pattern GL_TEXTURE_FILTER_CONTROL_EXT
+  , pattern GL_TEXTURE_LOD_BIAS_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_lod_bias.txt GL_EXT_texture_lod_bias> extension is available.
+
+gl_EXT_texture_lod_bias :: Bool
+gl_EXT_texture_lod_bias = member "GL_EXT_texture_lod_bias" extensions
+{-# NOINLINE gl_EXT_texture_lod_bias #-}
+
+pattern GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD
+
+pattern GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500
+
+pattern GL_TEXTURE_LOD_BIAS_EXT = 0x8501
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs b/generated-src/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureMirrorClamp (
+  -- * Extension Support
+    gl_EXT_texture_mirror_clamp
+
+  -- * GL_EXT_texture_mirror_clamp
+  , pattern GL_MIRROR_CLAMP_EXT
+  , pattern GL_MIRROR_CLAMP_TO_BORDER_EXT
+  , pattern GL_MIRROR_CLAMP_TO_EDGE_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_mirror_clamp.txt GL_EXT_texture_mirror_clamp> extension is available.
+
+gl_EXT_texture_mirror_clamp :: Bool
+gl_EXT_texture_mirror_clamp = member "GL_EXT_texture_mirror_clamp" extensions
+{-# NOINLINE gl_EXT_texture_mirror_clamp #-}
+
+pattern GL_MIRROR_CLAMP_EXT = 0x8742
+
+pattern GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912
+
+pattern GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureNorm16.hs b/generated-src/Graphics/GL/Ext/EXT/TextureNorm16.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureNorm16.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureNorm16 (
+  -- * Extension Support
+    gl_EXT_texture_norm16
+
+  -- * GL_EXT_texture_norm16
+  , pattern GL_R16_EXT
+  , pattern GL_R16_SNORM_EXT
+  , pattern GL_RG16_EXT
+  , pattern GL_RG16_SNORM_EXT
+  , pattern GL_RGB16_EXT
+  , pattern GL_RGB16_SNORM_EXT
+  , pattern GL_RGBA16_EXT
+  , pattern GL_RGBA16_SNORM_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the GL_EXT_texture_norm16 extension is available.
+
+gl_EXT_texture_norm16 :: Bool
+gl_EXT_texture_norm16 = member "GL_EXT_texture_norm16" extensions
+{-# NOINLINE gl_EXT_texture_norm16 #-}
+
+pattern GL_R16_EXT = 0x822A
+
+pattern GL_RG16_EXT = 0x822C
+
+pattern GL_RGB16_SNORM_EXT = 0x8F9A
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureObject.hs b/generated-src/Graphics/GL/Ext/EXT/TextureObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureObject.hs
@@ -0,0 +1,143 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureObject (
+  -- * Extension Support
+    gl_EXT_texture_object
+
+  -- * GL_EXT_texture_object
+  , glAreTexturesResidentEXT
+  , glBindTextureEXT
+  , glDeleteTexturesEXT
+  , glGenTexturesEXT
+  , glIsTextureEXT
+  , glPrioritizeTexturesEXT
+  , pattern GL_TEXTURE_1D_BINDING_EXT
+  , pattern GL_TEXTURE_2D_BINDING_EXT
+  , pattern GL_TEXTURE_3D_BINDING_EXT
+  , pattern GL_TEXTURE_PRIORITY_EXT
+  , pattern GL_TEXTURE_RESIDENT_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_object.txt GL_EXT_texture_object> extension is available.
+
+gl_EXT_texture_object :: Bool
+gl_EXT_texture_object = member "GL_EXT_texture_object" extensions
+{-# NOINLINE gl_EXT_texture_object #-}
+
+-- | Usage: @'glAreTexturesResidentEXT' n textures residences@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @residences@ should be @n@.
+
+
+glAreTexturesResidentEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
+glAreTexturesResidentEXT = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentEXTFunPtr
+
+glAreTexturesResidentEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+glAreTexturesResidentEXTFunPtr = unsafePerformIO (getProcAddress "glAreTexturesResidentEXT")
+
+{-# NOINLINE glAreTexturesResidentEXTFunPtr #-}
+
+-- | Usage: @'glBindTextureEXT' target texture@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindTexture'.
+
+
+glBindTextureEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTextureEXT = ffienumuintIOV glBindTextureEXTFunPtr
+
+glBindTextureEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTextureEXTFunPtr = unsafePerformIO (getProcAddress "glBindTextureEXT")
+
+{-# NOINLINE glBindTextureEXTFunPtr #-}
+
+-- | Usage: @'glDeleteTexturesEXT' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+
+
+glDeleteTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTexturesEXT = ffisizeiPtruintIOV glDeleteTexturesEXTFunPtr
+
+glDeleteTexturesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTexturesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteTexturesEXT")
+
+{-# NOINLINE glDeleteTexturesEXTFunPtr #-}
+
+-- | Usage: @'glGenTexturesEXT' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+
+
+glGenTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTexturesEXT = ffisizeiPtruintIOV glGenTexturesEXTFunPtr
+
+glGenTexturesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTexturesEXTFunPtr = unsafePerformIO (getProcAddress "glGenTexturesEXT")
+
+{-# NOINLINE glGenTexturesEXTFunPtr #-}
+
+-- | Usage: @'glIsTextureEXT' texture@
+--
+-- The parameter @texture@ is a @Texture@.
+
+
+glIsTextureEXT :: MonadIO m => GLuint -> m GLboolean
+glIsTextureEXT = ffiuintIOboolean glIsTextureEXTFunPtr
+
+glIsTextureEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTextureEXTFunPtr = unsafePerformIO (getProcAddress "glIsTextureEXT")
+
+{-# NOINLINE glIsTextureEXTFunPtr #-}
+
+-- | Usage: @'glPrioritizeTexturesEXT' n textures priorities@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The parameter @priorities@ is a @ClampedFloat32@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @priorities@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPrioritizeTextures'.
+
+
+glPrioritizeTexturesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()
+glPrioritizeTexturesEXT = ffisizeiPtruintPtrclampfIOV glPrioritizeTexturesEXTFunPtr
+
+glPrioritizeTexturesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ())
+glPrioritizeTexturesEXTFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTexturesEXT")
+
+{-# NOINLINE glPrioritizeTexturesEXTFunPtr #-}
+
+pattern GL_TEXTURE_1D_BINDING_EXT = 0x8068
+
+pattern GL_TEXTURE_2D_BINDING_EXT = 0x8069
+
+pattern GL_TEXTURE_3D_BINDING_EXT = 0x806A
+
+pattern GL_TEXTURE_PRIORITY_EXT = 0x8066
+
+pattern GL_TEXTURE_RESIDENT_EXT = 0x8067
diff --git a/generated-src/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs b/generated-src/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TexturePerturbNormal (
+  -- * Extension Support
+    gl_EXT_texture_perturb_normal
+
+  -- * GL_EXT_texture_perturb_normal
+  , glTextureNormalEXT
+  , pattern GL_PERTURB_EXT
+  , pattern GL_TEXTURE_NORMAL_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_perturb_normal.txt GL_EXT_texture_perturb_normal> extension is available.
+
+gl_EXT_texture_perturb_normal :: Bool
+gl_EXT_texture_perturb_normal = member "GL_EXT_texture_perturb_normal" extensions
+{-# NOINLINE gl_EXT_texture_perturb_normal #-}
+
+-- | Usage: @'glTextureNormalEXT' mode@
+--
+-- The parameter @mode@ is a @TextureNormalModeEXT@.
+
+
+glTextureNormalEXT :: MonadIO m => GLenum -> m ()
+glTextureNormalEXT = ffienumIOV glTextureNormalEXTFunPtr
+
+glTextureNormalEXTFunPtr :: FunPtr (GLenum -> IO ())
+glTextureNormalEXTFunPtr = unsafePerformIO (getProcAddress "glTextureNormalEXT")
+
+{-# NOINLINE glTextureNormalEXTFunPtr #-}
+
+pattern GL_PERTURB_EXT = 0x85AE
+
+pattern GL_TEXTURE_NORMAL_EXT = 0x85AF
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureRg.hs b/generated-src/Graphics/GL/Ext/EXT/TextureRg.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureRg.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureRg (
+  -- * Extension Support
+    gl_EXT_texture_rg
+
+  -- * GL_EXT_texture_rg
+  , pattern GL_R8_EXT
+  , pattern GL_RED_EXT
+  , pattern GL_RG8_EXT
+  , pattern GL_RG_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_rg.txt GL_EXT_texture_rg> extension is available.
+
+gl_EXT_texture_rg :: Bool
+gl_EXT_texture_rg = member "GL_EXT_texture_rg" extensions
+{-# NOINLINE gl_EXT_texture_rg #-}
+
+pattern GL_RED_EXT = 0x1903
+
+pattern GL_RG_EXT = 0x8227
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGB.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGB.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGB.hs
@@ -0,0 +1,60 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureSRGB (
+  -- * Extension Support
+    gl_EXT_texture_sRGB
+
+  -- * GL_EXT_texture_sRGB
+  , pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
+  , pattern GL_COMPRESSED_SLUMINANCE_EXT
+  , pattern GL_COMPRESSED_SRGB_ALPHA_EXT
+  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
+  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
+  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
+  , pattern GL_COMPRESSED_SRGB_EXT
+  , pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
+  , pattern GL_SLUMINANCE8_ALPHA8_EXT
+  , pattern GL_SLUMINANCE8_EXT
+  , pattern GL_SLUMINANCE_ALPHA_EXT
+  , pattern GL_SLUMINANCE_EXT
+  , pattern GL_SRGB8_ALPHA8_EXT
+  , pattern GL_SRGB8_EXT
+  , pattern GL_SRGB_ALPHA_EXT
+  , pattern GL_SRGB_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB.txt GL_EXT_texture_sRGB> extension is available.
+
+gl_EXT_texture_sRGB :: Bool
+gl_EXT_texture_sRGB = member "GL_EXT_texture_sRGB" extensions
+{-# NOINLINE gl_EXT_texture_sRGB #-}
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B
+
+pattern GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A
+
+pattern GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F
+
+pattern GL_COMPRESSED_SRGB_EXT = 0x8C48
+
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C
+
+pattern GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45
+
+pattern GL_SLUMINANCE8_EXT = 0x8C47
+
+pattern GL_SLUMINANCE_ALPHA_EXT = 0x8C44
+
+pattern GL_SLUMINANCE_EXT = 0x8C46
+
+pattern GL_SRGB8_EXT = 0x8C41
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureSRGBDecode (
+  -- * Extension Support
+    gl_EXT_texture_sRGB_decode
+
+  -- * GL_EXT_texture_sRGB_decode
+  , pattern GL_DECODE_EXT
+  , pattern GL_SKIP_DECODE_EXT
+  , pattern GL_TEXTURE_SRGB_DECODE_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_sRGB_decode.txt GL_EXT_texture_sRGB_decode> extension is available.
+
+gl_EXT_texture_sRGB_decode :: Bool
+gl_EXT_texture_sRGB_decode = member "GL_EXT_texture_sRGB_decode" extensions
+{-# NOINLINE gl_EXT_texture_sRGB_decode #-}
+
+pattern GL_DECODE_EXT = 0x8A49
+
+pattern GL_SKIP_DECODE_EXT = 0x8A4A
+
+pattern GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBR8.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBR8.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBR8.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureSRGBR8 (
+  -- * Extension Support
+    gl_EXT_texture_sRGB_R8
+
+  -- * GL_EXT_texture_sRGB_R8
+  , pattern GL_SR8_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_sRGB_R8.txt GL_EXT_texture_sRGB_R8> extension is available.
+
+gl_EXT_texture_sRGB_R8 :: Bool
+gl_EXT_texture_sRGB_R8 = member "GL_EXT_texture_sRGB_R8" extensions
+{-# NOINLINE gl_EXT_texture_sRGB_R8 #-}
+
+pattern GL_SR8_EXT = 0x8FBD
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureSRGBRG8 (
+  -- * Extension Support
+    gl_EXT_texture_sRGB_RG8
+
+  -- * GL_EXT_texture_sRGB_RG8
+  , pattern GL_SRG8_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_sRGB_RG8.txt GL_EXT_texture_sRGB_RG8> extension is available.
+
+gl_EXT_texture_sRGB_RG8 :: Bool
+gl_EXT_texture_sRGB_RG8 = member "GL_EXT_texture_sRGB_RG8" extensions
+{-# NOINLINE gl_EXT_texture_sRGB_RG8 #-}
+
+pattern GL_SRG8_EXT = 0x8FBE
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSharedExponent.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSharedExponent.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSharedExponent.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureSharedExponent (
+  -- * Extension Support
+    gl_EXT_texture_shared_exponent
+
+  -- * GL_EXT_texture_shared_exponent
+  , pattern GL_RGB9_E5_EXT
+  , pattern GL_TEXTURE_SHARED_SIZE_EXT
+  , pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_shared_exponent.txt GL_EXT_texture_shared_exponent> extension is available.
+
+gl_EXT_texture_shared_exponent :: Bool
+gl_EXT_texture_shared_exponent = member "GL_EXT_texture_shared_exponent" extensions
+{-# NOINLINE gl_EXT_texture_shared_exponent #-}
+
+pattern GL_RGB9_E5_EXT = 0x8C3D
+
+pattern GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSnorm.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSnorm.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSnorm.hs
@@ -0,0 +1,75 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureSnorm (
+  -- * Extension Support
+    gl_EXT_texture_snorm
+
+  -- * GL_EXT_texture_snorm
+  , pattern GL_ALPHA16_SNORM
+  , pattern GL_ALPHA8_SNORM
+  , pattern GL_ALPHA_SNORM
+  , pattern GL_INTENSITY16_SNORM
+  , pattern GL_INTENSITY8_SNORM
+  , pattern GL_INTENSITY_SNORM
+  , pattern GL_LUMINANCE16_ALPHA16_SNORM
+  , pattern GL_LUMINANCE16_SNORM
+  , pattern GL_LUMINANCE8_ALPHA8_SNORM
+  , pattern GL_LUMINANCE8_SNORM
+  , pattern GL_LUMINANCE_ALPHA_SNORM
+  , pattern GL_LUMINANCE_SNORM
+  , pattern GL_R16_SNORM
+  , pattern GL_R8_SNORM
+  , pattern GL_RED_SNORM
+  , pattern GL_RG16_SNORM
+  , pattern GL_RG8_SNORM
+  , pattern GL_RGB16_SNORM
+  , pattern GL_RGB8_SNORM
+  , pattern GL_RGBA16_SNORM
+  , pattern GL_RGBA8_SNORM
+  , pattern GL_RGBA_SNORM
+  , pattern GL_RGB_SNORM
+  , pattern GL_RG_SNORM
+  , pattern GL_SIGNED_NORMALIZED
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_snorm.txt GL_EXT_texture_snorm> extension is available.
+
+gl_EXT_texture_snorm :: Bool
+gl_EXT_texture_snorm = member "GL_EXT_texture_snorm" extensions
+{-# NOINLINE gl_EXT_texture_snorm #-}
+
+pattern GL_ALPHA16_SNORM = 0x9018
+
+pattern GL_ALPHA8_SNORM = 0x9014
+
+pattern GL_ALPHA_SNORM = 0x9010
+
+pattern GL_INTENSITY16_SNORM = 0x901B
+
+pattern GL_INTENSITY8_SNORM = 0x9017
+
+pattern GL_INTENSITY_SNORM = 0x9013
+
+pattern GL_LUMINANCE16_ALPHA16_SNORM = 0x901A
+
+pattern GL_LUMINANCE16_SNORM = 0x9019
+
+pattern GL_LUMINANCE8_ALPHA8_SNORM = 0x9016
+
+pattern GL_LUMINANCE8_SNORM = 0x9015
+
+pattern GL_LUMINANCE_ALPHA_SNORM = 0x9012
+
+pattern GL_LUMINANCE_SNORM = 0x9011
+
+pattern GL_RED_SNORM = 0x8F90
+
+pattern GL_RGBA_SNORM = 0x8F93
+
+pattern GL_RGB_SNORM = 0x8F92
+
+pattern GL_RG_SNORM = 0x8F91
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureStorage.hs b/generated-src/Graphics/GL/Ext/EXT/TextureStorage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureStorage.hs
@@ -0,0 +1,113 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureStorage (
+  -- * Extension Support
+    gl_EXT_texture_storage
+
+  -- * GL_EXT_texture_storage
+  , glTexStorage1DEXT
+  , glTexStorage2DEXT
+  , glTexStorage3DEXT
+  , glTextureStorage1DEXT
+  , glTextureStorage2DEXT
+  , glTextureStorage3DEXT
+  , pattern GL_ALPHA16F_EXT
+  , pattern GL_ALPHA32F_EXT
+  , pattern GL_ALPHA8_EXT
+  , pattern GL_BGRA8_EXT
+  , pattern GL_LUMINANCE16F_EXT
+  , pattern GL_LUMINANCE32F_EXT
+  , pattern GL_LUMINANCE8_ALPHA8_EXT
+  , pattern GL_LUMINANCE8_EXT
+  , pattern GL_LUMINANCE_ALPHA16F_EXT
+  , pattern GL_LUMINANCE_ALPHA32F_EXT
+  , pattern GL_R16F_EXT
+  , pattern GL_R32F_EXT
+  , pattern GL_R8_EXT
+  , pattern GL_RG16F_EXT
+  , pattern GL_RG32F_EXT
+  , pattern GL_RG8_EXT
+  , pattern GL_RGB10_A2_EXT
+  , pattern GL_RGB10_EXT
+  , pattern GL_RGB16F_EXT
+  , pattern GL_RGB32F_EXT
+  , pattern GL_RGBA16F_EXT
+  , pattern GL_RGBA32F_EXT
+  , pattern GL_TEXTURE_IMMUTABLE_FORMAT_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt GL_EXT_texture_storage> extension is available.
+
+gl_EXT_texture_storage :: Bool
+gl_EXT_texture_storage = member "GL_EXT_texture_storage" extensions
+{-# NOINLINE gl_EXT_texture_storage #-}
+
+-- | Usage: @'glTexStorage1DEXT' target levels internalformat width@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage1D'.
+
+
+glTexStorage1DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTexStorage1DEXT = ffienumsizeienumsizeiIOV glTexStorage1DEXTFunPtr
+
+glTexStorage1DEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTexStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTexStorage1DEXT")
+
+{-# NOINLINE glTexStorage1DEXTFunPtr #-}
+
+-- | Usage: @'glTexStorage2DEXT' target levels internalformat width height@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage2D'.
+
+
+glTexStorage2DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTexStorage2DEXT = ffienumsizeienumsizeisizeiIOV glTexStorage2DEXTFunPtr
+
+glTexStorage2DEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTexStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DEXT")
+
+{-# NOINLINE glTexStorage2DEXTFunPtr #-}
+
+-- | Usage: @'glTexStorage3DEXT' target levels internalformat width height depth@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage3D'.
+
+
+glTexStorage3DEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTexStorage3DEXT = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DEXTFunPtr
+
+glTexStorage3DEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTexStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DEXT")
+
+{-# NOINLINE glTexStorage3DEXTFunPtr #-}
+
+pattern GL_ALPHA16F_EXT = 0x881C
+
+pattern GL_ALPHA32F_EXT = 0x8816
+
+pattern GL_LUMINANCE16F_EXT = 0x881E
+
+pattern GL_LUMINANCE32F_EXT = 0x8818
+
+pattern GL_LUMINANCE_ALPHA16F_EXT = 0x881F
+
+pattern GL_LUMINANCE_ALPHA32F_EXT = 0x8819
+
+pattern GL_R32F_EXT = 0x822E
+
+pattern GL_RG32F_EXT = 0x8230
+
+pattern GL_RGB32F_EXT = 0x8815
+
+pattern GL_RGBA32F_EXT = 0x8814
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSwizzle.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSwizzle.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSwizzle.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureSwizzle (
+  -- * Extension Support
+    gl_EXT_texture_swizzle
+
+  -- * GL_EXT_texture_swizzle
+  , pattern GL_TEXTURE_SWIZZLE_A_EXT
+  , pattern GL_TEXTURE_SWIZZLE_B_EXT
+  , pattern GL_TEXTURE_SWIZZLE_G_EXT
+  , pattern GL_TEXTURE_SWIZZLE_RGBA_EXT
+  , pattern GL_TEXTURE_SWIZZLE_R_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/texture_swizzle.txt GL_EXT_texture_swizzle> extension is available.
+
+gl_EXT_texture_swizzle :: Bool
+gl_EXT_texture_swizzle = member "GL_EXT_texture_swizzle" extensions
+{-# NOINLINE gl_EXT_texture_swizzle #-}
+
+pattern GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45
+
+pattern GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44
+
+pattern GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43
+
+pattern GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46
+
+pattern GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureType2101010REV.hs b/generated-src/Graphics/GL/Ext/EXT/TextureType2101010REV.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureType2101010REV.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureType2101010REV (
+  -- * Extension Support
+    gl_EXT_texture_type_2_10_10_10_REV
+
+  -- * GL_EXT_texture_type_2_10_10_10_REV
+  , pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_type_2_10_10_10_REV.txt GL_EXT_texture_type_2_10_10_10_REV> extension is available.
+
+gl_EXT_texture_type_2_10_10_10_REV :: Bool
+gl_EXT_texture_type_2_10_10_10_REV = member "GL_EXT_texture_type_2_10_10_10_REV" extensions
+{-# NOINLINE gl_EXT_texture_type_2_10_10_10_REV #-}
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureView.hs b/generated-src/Graphics/GL/Ext/EXT/TextureView.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureView.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TextureView (
+  -- * Extension Support
+    gl_EXT_texture_view
+
+  -- * GL_EXT_texture_view
+  , glTextureViewEXT
+  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
+  , pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT
+  , pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT
+  , pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT
+  , pattern GL_TEXTURE_VIEW_NUM_LEVELS_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://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_view.txt GL_EXT_texture_view> extension is available.
+
+gl_EXT_texture_view :: Bool
+gl_EXT_texture_view = member "GL_EXT_texture_view" extensions
+{-# NOINLINE gl_EXT_texture_view #-}
+
+-- | Usage: @'glTextureViewEXT' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTextureView'.
+
+
+glTextureViewEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glTextureViewEXT = ffiuintenumuintenumuintuintuintuintIOV glTextureViewEXTFunPtr
+
+glTextureViewEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glTextureViewEXTFunPtr = unsafePerformIO (getProcAddress "glTextureViewEXT")
+
+{-# NOINLINE glTextureViewEXTFunPtr #-}
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC
diff --git a/generated-src/Graphics/GL/Ext/EXT/TimerQuery.hs b/generated-src/Graphics/GL/Ext/EXT/TimerQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TimerQuery.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TimerQuery (
+  -- * Extension Support
+    gl_EXT_timer_query
+
+  -- * GL_EXT_timer_query
+  , glGetQueryObjecti64vEXT
+  , glGetQueryObjectui64vEXT
+  , pattern GL_TIME_ELAPSED_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/timer_query.txt GL_EXT_timer_query> extension is available.
+
+gl_EXT_timer_query :: Bool
+gl_EXT_timer_query = member "GL_EXT_timer_query" extensions
+{-# NOINLINE gl_EXT_timer_query #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/TransformFeedback.hs b/generated-src/Graphics/GL/Ext/EXT/TransformFeedback.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/TransformFeedback.hs
@@ -0,0 +1,178 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.TransformFeedback (
+  -- * Extension Support
+    gl_EXT_transform_feedback
+
+  -- * GL_EXT_transform_feedback
+  , glBeginTransformFeedbackEXT
+  , glBindBufferBaseEXT
+  , glBindBufferOffsetEXT
+  , glBindBufferRangeEXT
+  , glEndTransformFeedbackEXT
+  , glGetTransformFeedbackVaryingEXT
+  , glTransformFeedbackVaryingsEXT
+  , pattern GL_INTERLEAVED_ATTRIBS_EXT
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
+  , pattern GL_PRIMITIVES_GENERATED_EXT
+  , pattern GL_RASTERIZER_DISCARD_EXT
+  , pattern GL_SEPARATE_ATTRIBS_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT
+  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_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/transform_feedback.txt GL_EXT_transform_feedback> extension is available.
+
+gl_EXT_transform_feedback :: Bool
+gl_EXT_transform_feedback = member "GL_EXT_transform_feedback" extensions
+{-# NOINLINE gl_EXT_transform_feedback #-}
+
+-- | Usage: @'glBeginTransformFeedbackEXT' primitiveMode@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginTransformFeedback'.
+
+
+glBeginTransformFeedbackEXT :: MonadIO m => GLenum -> m ()
+glBeginTransformFeedbackEXT = ffienumIOV glBeginTransformFeedbackEXTFunPtr
+
+glBeginTransformFeedbackEXTFunPtr :: FunPtr (GLenum -> IO ())
+glBeginTransformFeedbackEXTFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedbackEXT")
+
+{-# NOINLINE glBeginTransformFeedbackEXTFunPtr #-}
+
+-- | Usage: @'glBindBufferBaseEXT' target index buffer@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferBase'.
+
+
+glBindBufferBaseEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBindBufferBaseEXT = ffienumuintuintIOV glBindBufferBaseEXTFunPtr
+
+glBindBufferBaseEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBindBufferBaseEXTFunPtr = unsafePerformIO (getProcAddress "glBindBufferBaseEXT")
+
+{-# NOINLINE glBindBufferBaseEXTFunPtr #-}
+
+-- | Usage: @'glBindBufferOffsetEXT' target index buffer offset@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+
+
+glBindBufferOffsetEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()
+glBindBufferOffsetEXT = ffienumuintuintintptrIOV glBindBufferOffsetEXTFunPtr
+
+glBindBufferOffsetEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
+glBindBufferOffsetEXTFunPtr = unsafePerformIO (getProcAddress "glBindBufferOffsetEXT")
+
+{-# NOINLINE glBindBufferOffsetEXTFunPtr #-}
+
+-- | Usage: @'glBindBufferRangeEXT' target index buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferRange'.
+
+
+glBindBufferRangeEXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glBindBufferRangeEXT = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeEXTFunPtr
+
+glBindBufferRangeEXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glBindBufferRangeEXTFunPtr = unsafePerformIO (getProcAddress "glBindBufferRangeEXT")
+
+{-# NOINLINE glBindBufferRangeEXTFunPtr #-}
+
+-- | Usage: @'glEndTransformFeedbackEXT'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEndTransformFeedback'.
+
+
+glEndTransformFeedbackEXT :: MonadIO m => m ()
+glEndTransformFeedbackEXT = ffiIOV glEndTransformFeedbackEXTFunPtr
+
+glEndTransformFeedbackEXTFunPtr :: FunPtr (IO ())
+glEndTransformFeedbackEXTFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedbackEXT")
+
+{-# NOINLINE glEndTransformFeedbackEXTFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackVaryingEXT' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTransformFeedbackVarying'.
+
+
+glGetTransformFeedbackVaryingEXT :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetTransformFeedbackVaryingEXT = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingEXTFunPtr
+
+glGetTransformFeedbackVaryingEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetTransformFeedbackVaryingEXTFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVaryingEXT")
+
+{-# NOINLINE glGetTransformFeedbackVaryingEXTFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackVaryingsEXT' program count varyings bufferMode@
+--
+-- The length of @varyings@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTransformFeedbackVaryings'.
+
+
+glTransformFeedbackVaryingsEXT :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
+glTransformFeedbackVaryingsEXT = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsEXTFunPtr
+
+glTransformFeedbackVaryingsEXTFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
+glTransformFeedbackVaryingsEXTFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryingsEXT")
+
+{-# NOINLINE glTransformFeedbackVaryingsEXTFunPtr #-}
+
+pattern GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80
+
+pattern GL_RASTERIZER_DISCARD_EXT = 0x8C89
+
+pattern GL_SEPARATE_ATTRIBS_EXT = 0x8C8D
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76
diff --git a/generated-src/Graphics/GL/Ext/EXT/UnpackSubimage.hs b/generated-src/Graphics/GL/Ext/EXT/UnpackSubimage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/UnpackSubimage.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.UnpackSubimage (
+  -- * Extension Support
+    gl_EXT_unpack_subimage
+
+  -- * GL_EXT_unpack_subimage
+  , pattern GL_UNPACK_ROW_LENGTH_EXT
+  , pattern GL_UNPACK_SKIP_PIXELS_EXT
+  , pattern GL_UNPACK_SKIP_ROWS_EXT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_unpack_subimage.txt GL_EXT_unpack_subimage> extension is available.
+
+gl_EXT_unpack_subimage :: Bool
+gl_EXT_unpack_subimage = member "GL_EXT_unpack_subimage" extensions
+{-# NOINLINE gl_EXT_unpack_subimage #-}
+
+pattern GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2
+
+pattern GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4
+
+pattern GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexArray.hs b/generated-src/Graphics/GL/Ext/EXT/VertexArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexArray.hs
@@ -0,0 +1,262 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.VertexArray (
+  -- * Extension Support
+    gl_EXT_vertex_array
+
+  -- * GL_EXT_vertex_array
+  , glArrayElementEXT
+  , glColorPointerEXT
+  , glDrawArraysEXT
+  , glEdgeFlagPointerEXT
+  , glGetPointervEXT
+  , glIndexPointerEXT
+  , glNormalPointerEXT
+  , glTexCoordPointerEXT
+  , glVertexPointerEXT
+  , pattern GL_COLOR_ARRAY_COUNT_EXT
+  , pattern GL_COLOR_ARRAY_EXT
+  , pattern GL_COLOR_ARRAY_POINTER_EXT
+  , pattern GL_COLOR_ARRAY_SIZE_EXT
+  , pattern GL_COLOR_ARRAY_STRIDE_EXT
+  , pattern GL_COLOR_ARRAY_TYPE_EXT
+  , pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT
+  , pattern GL_EDGE_FLAG_ARRAY_EXT
+  , pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT
+  , pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT
+  , pattern GL_INDEX_ARRAY_COUNT_EXT
+  , pattern GL_INDEX_ARRAY_EXT
+  , pattern GL_INDEX_ARRAY_POINTER_EXT
+  , pattern GL_INDEX_ARRAY_STRIDE_EXT
+  , pattern GL_INDEX_ARRAY_TYPE_EXT
+  , pattern GL_NORMAL_ARRAY_COUNT_EXT
+  , pattern GL_NORMAL_ARRAY_EXT
+  , pattern GL_NORMAL_ARRAY_POINTER_EXT
+  , pattern GL_NORMAL_ARRAY_STRIDE_EXT
+  , pattern GL_NORMAL_ARRAY_TYPE_EXT
+  , pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT
+  , pattern GL_TEXTURE_COORD_ARRAY_EXT
+  , pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT
+  , pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT
+  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT
+  , pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT
+  , pattern GL_VERTEX_ARRAY_COUNT_EXT
+  , pattern GL_VERTEX_ARRAY_EXT
+  , pattern GL_VERTEX_ARRAY_POINTER_EXT
+  , pattern GL_VERTEX_ARRAY_SIZE_EXT
+  , pattern GL_VERTEX_ARRAY_STRIDE_EXT
+  , pattern GL_VERTEX_ARRAY_TYPE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array.txt GL_EXT_vertex_array> extension is available.
+
+gl_EXT_vertex_array :: Bool
+gl_EXT_vertex_array = member "GL_EXT_vertex_array" extensions
+{-# NOINLINE gl_EXT_vertex_array #-}
+
+-- | Usage: @'glArrayElementEXT' i@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glArrayElement'.
+
+
+glArrayElementEXT :: MonadIO m => GLint -> m ()
+glArrayElementEXT = ffiintIOV glArrayElementEXTFunPtr
+
+glArrayElementEXTFunPtr :: FunPtr (GLint -> IO ())
+glArrayElementEXTFunPtr = unsafePerformIO (getProcAddress "glArrayElementEXT")
+
+{-# NOINLINE glArrayElementEXTFunPtr #-}
+
+-- | Usage: @'glColorPointerEXT' size type stride count pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
+
+
+glColorPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
+glColorPointerEXT = ffiintenumsizeisizeiPtrVIOV glColorPointerEXTFunPtr
+
+glColorPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glColorPointerEXTFunPtr = unsafePerformIO (getProcAddress "glColorPointerEXT")
+
+{-# NOINLINE glColorPointerEXTFunPtr #-}
+
+-- | Usage: @'glDrawArraysEXT' mode first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArrays'.
+
+
+glDrawArraysEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
+glDrawArraysEXT = ffienumintsizeiIOV glDrawArraysEXTFunPtr
+
+glDrawArraysEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+glDrawArraysEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysEXT")
+
+{-# NOINLINE glDrawArraysEXTFunPtr #-}
+
+-- | Usage: @'glEdgeFlagPointerEXT' stride count pointer@
+--
+-- The parameter @pointer@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(stride,count)@.
+
+
+glEdgeFlagPointerEXT :: MonadIO m => GLsizei -> GLsizei -> Ptr GLboolean -> m ()
+glEdgeFlagPointerEXT = ffisizeisizeiPtrbooleanIOV glEdgeFlagPointerEXTFunPtr
+
+glEdgeFlagPointerEXTFunPtr :: FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ())
+glEdgeFlagPointerEXTFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointerEXT")
+
+{-# NOINLINE glEdgeFlagPointerEXTFunPtr #-}
+
+-- | Usage: @'glGetPointervEXT' pname params@
+--
+-- The parameter @pname@ is a @GetPointervPName@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_POINTER_EXT', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_BUFFER_POINTER_SGIX', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_POINTER_EXT'.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetPointerv'.
+
+
+glGetPointervEXT :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glGetPointervEXT = ffienumPtrPtrVIOV glGetPointervEXTFunPtr
+
+glGetPointervEXTFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
+glGetPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetPointervEXT")
+
+{-# NOINLINE glGetPointervEXTFunPtr #-}
+
+-- | Usage: @'glIndexPointerEXT' type stride count pointer@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride,count)@.
+
+
+glIndexPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
+glIndexPointerEXT = ffienumsizeisizeiPtrVIOV glIndexPointerEXTFunPtr
+
+glIndexPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glIndexPointerEXTFunPtr = unsafePerformIO (getProcAddress "glIndexPointerEXT")
+
+{-# NOINLINE glIndexPointerEXTFunPtr #-}
+
+-- | Usage: @'glNormalPointerEXT' type stride count pointer@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride,count)@.
+
+
+glNormalPointerEXT :: MonadIO m => GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
+glNormalPointerEXT = ffienumsizeisizeiPtrVIOV glNormalPointerEXTFunPtr
+
+glNormalPointerEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glNormalPointerEXTFunPtr = unsafePerformIO (getProcAddress "glNormalPointerEXT")
+
+{-# NOINLINE glNormalPointerEXTFunPtr #-}
+
+-- | Usage: @'glTexCoordPointerEXT' size type stride count pointer@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
+
+
+glTexCoordPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
+glTexCoordPointerEXT = ffiintenumsizeisizeiPtrVIOV glTexCoordPointerEXTFunPtr
+
+glTexCoordPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glTexCoordPointerEXTFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointerEXT")
+
+{-# NOINLINE glTexCoordPointerEXTFunPtr #-}
+
+-- | Usage: @'glVertexPointerEXT' size type stride count pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride,count)@.
+
+
+glVertexPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
+glVertexPointerEXT = ffiintenumsizeisizeiPtrVIOV glVertexPointerEXTFunPtr
+
+glVertexPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glVertexPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexPointerEXT")
+
+{-# NOINLINE glVertexPointerEXTFunPtr #-}
+
+pattern GL_COLOR_ARRAY_COUNT_EXT = 0x8084
+
+pattern GL_COLOR_ARRAY_EXT = 0x8076
+
+pattern GL_COLOR_ARRAY_POINTER_EXT = 0x8090
+
+pattern GL_COLOR_ARRAY_SIZE_EXT = 0x8081
+
+pattern GL_COLOR_ARRAY_STRIDE_EXT = 0x8083
+
+pattern GL_COLOR_ARRAY_TYPE_EXT = 0x8082
+
+pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D
+
+pattern GL_EDGE_FLAG_ARRAY_EXT = 0x8079
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C
+
+pattern GL_INDEX_ARRAY_COUNT_EXT = 0x8087
+
+pattern GL_INDEX_ARRAY_EXT = 0x8077
+
+pattern GL_INDEX_ARRAY_POINTER_EXT = 0x8091
+
+pattern GL_INDEX_ARRAY_STRIDE_EXT = 0x8086
+
+pattern GL_INDEX_ARRAY_TYPE_EXT = 0x8085
+
+pattern GL_NORMAL_ARRAY_COUNT_EXT = 0x8080
+
+pattern GL_NORMAL_ARRAY_EXT = 0x8075
+
+pattern GL_NORMAL_ARRAY_POINTER_EXT = 0x808F
+
+pattern GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F
+
+pattern GL_NORMAL_ARRAY_TYPE_EXT = 0x807E
+
+pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B
+
+pattern GL_TEXTURE_COORD_ARRAY_EXT = 0x8078
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089
+
+pattern GL_VERTEX_ARRAY_COUNT_EXT = 0x807D
+
+pattern GL_VERTEX_ARRAY_EXT = 0x8074
+
+pattern GL_VERTEX_ARRAY_POINTER_EXT = 0x808E
+
+pattern GL_VERTEX_ARRAY_SIZE_EXT = 0x807A
+
+pattern GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C
+
+pattern GL_VERTEX_ARRAY_TYPE_EXT = 0x807B
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexArrayBgra.hs b/generated-src/Graphics/GL/Ext/EXT/VertexArrayBgra.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexArrayBgra.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.VertexArrayBgra (
+  -- * Extension Support
+    gl_EXT_vertex_array_bgra
+
+  -- * GL_EXT_vertex_array_bgra
+  , pattern GL_BGRA
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_array_bgra.txt GL_EXT_vertex_array_bgra> extension is available.
+
+gl_EXT_vertex_array_bgra :: Bool
+gl_EXT_vertex_array_bgra = member "GL_EXT_vertex_array_bgra" extensions
+{-# NOINLINE gl_EXT_vertex_array_bgra #-}
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs b/generated-src/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs
@@ -0,0 +1,212 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.VertexAttrib64bit (
+  -- * Extension Support
+    gl_EXT_vertex_attrib_64bit
+
+  -- * GL_EXT_vertex_attrib_64bit
+  , glGetVertexAttribLdvEXT
+  , glVertexAttribL1dEXT
+  , glVertexAttribL1dvEXT
+  , glVertexAttribL2dEXT
+  , glVertexAttribL2dvEXT
+  , glVertexAttribL3dEXT
+  , glVertexAttribL3dvEXT
+  , glVertexAttribL4dEXT
+  , glVertexAttribL4dvEXT
+  , glVertexAttribLPointerEXT
+  , pattern GL_DOUBLE
+  , pattern GL_DOUBLE_MAT2_EXT
+  , pattern GL_DOUBLE_MAT2x3_EXT
+  , pattern GL_DOUBLE_MAT2x4_EXT
+  , pattern GL_DOUBLE_MAT3_EXT
+  , pattern GL_DOUBLE_MAT3x2_EXT
+  , pattern GL_DOUBLE_MAT3x4_EXT
+  , pattern GL_DOUBLE_MAT4_EXT
+  , pattern GL_DOUBLE_MAT4x2_EXT
+  , pattern GL_DOUBLE_MAT4x3_EXT
+  , pattern GL_DOUBLE_VEC2_EXT
+  , pattern GL_DOUBLE_VEC3_EXT
+  , pattern GL_DOUBLE_VEC4_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/vertex_attrib_64bit.txt GL_EXT_vertex_attrib_64bit> extension is available.
+
+gl_EXT_vertex_attrib_64bit :: Bool
+gl_EXT_vertex_attrib_64bit = member "GL_EXT_vertex_attrib_64bit" extensions
+{-# NOINLINE gl_EXT_vertex_attrib_64bit #-}
+
+-- | Usage: @'glGetVertexAttribLdvEXT' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribLdv'.
+
+
+glGetVertexAttribLdvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribLdvEXT = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvEXTFunPtr
+
+glGetVertexAttribLdvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribLdvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdvEXT")
+
+{-# NOINLINE glGetVertexAttribLdvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1dEXT' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL1d'.
+
+
+glVertexAttribL1dEXT :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttribL1dEXT = ffiuintdoubleIOV glVertexAttribL1dEXTFunPtr
+
+glVertexAttribL1dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttribL1dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dEXT")
+
+{-# NOINLINE glVertexAttribL1dEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1dvEXT' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL1dv'.
+
+
+glVertexAttribL1dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL1dvEXT = ffiuintPtrdoubleIOV glVertexAttribL1dvEXTFunPtr
+
+glVertexAttribL1dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL1dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dvEXT")
+
+{-# NOINLINE glVertexAttribL1dvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2dEXT' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL2d'.
+
+
+glVertexAttribL2dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttribL2dEXT = ffiuintdoubledoubleIOV glVertexAttribL2dEXTFunPtr
+
+glVertexAttribL2dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL2dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dEXT")
+
+{-# NOINLINE glVertexAttribL2dEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2dvEXT' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL2dv'.
+
+
+glVertexAttribL2dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL2dvEXT = ffiuintPtrdoubleIOV glVertexAttribL2dvEXTFunPtr
+
+glVertexAttribL2dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL2dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dvEXT")
+
+{-# NOINLINE glVertexAttribL2dvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3dEXT' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL3d'.
+
+
+glVertexAttribL3dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL3dEXT = ffiuintdoubledoubledoubleIOV glVertexAttribL3dEXTFunPtr
+
+glVertexAttribL3dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL3dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dEXT")
+
+{-# NOINLINE glVertexAttribL3dEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3dvEXT' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL3dv'.
+
+
+glVertexAttribL3dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL3dvEXT = ffiuintPtrdoubleIOV glVertexAttribL3dvEXTFunPtr
+
+glVertexAttribL3dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL3dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dvEXT")
+
+{-# NOINLINE glVertexAttribL3dvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4dEXT' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL4d'.
+
+
+glVertexAttribL4dEXT :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL4dEXT = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dEXTFunPtr
+
+glVertexAttribL4dEXTFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL4dEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dEXT")
+
+{-# NOINLINE glVertexAttribL4dEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4dvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribL4dv'.
+
+
+glVertexAttribL4dvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL4dvEXT = ffiuintPtrdoubleIOV glVertexAttribL4dvEXTFunPtr
+
+glVertexAttribL4dvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL4dvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dvEXT")
+
+{-# NOINLINE glVertexAttribL4dvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribLPointerEXT' index size type stride pointer@
+--
+-- The length of @pointer@ should be @size@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribLPointer'.
+
+
+glVertexAttribLPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribLPointerEXT = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerEXTFunPtr
+
+glVertexAttribLPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribLPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointerEXT")
+
+{-# NOINLINE glVertexAttribLPointerEXTFunPtr #-}
+
+pattern GL_DOUBLE_MAT2_EXT = 0x8F46
+
+pattern GL_DOUBLE_MAT2x3_EXT = 0x8F49
+
+pattern GL_DOUBLE_MAT2x4_EXT = 0x8F4A
+
+pattern GL_DOUBLE_MAT3_EXT = 0x8F47
+
+pattern GL_DOUBLE_MAT3x2_EXT = 0x8F4B
+
+pattern GL_DOUBLE_MAT3x4_EXT = 0x8F4C
+
+pattern GL_DOUBLE_MAT4_EXT = 0x8F48
+
+pattern GL_DOUBLE_MAT4x2_EXT = 0x8F4D
+
+pattern GL_DOUBLE_MAT4x3_EXT = 0x8F4E
+
+pattern GL_DOUBLE_VEC2_EXT = 0x8FFC
+
+pattern GL_DOUBLE_VEC3_EXT = 0x8FFD
+
+pattern GL_DOUBLE_VEC4_EXT = 0x8FFE
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexShader.hs b/generated-src/Graphics/GL/Ext/EXT/VertexShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexShader.hs
@@ -0,0 +1,980 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.VertexShader (
+  -- * Extension Support
+    gl_EXT_vertex_shader
+
+  -- * GL_EXT_vertex_shader
+  , glBeginVertexShaderEXT
+  , glBindLightParameterEXT
+  , glBindMaterialParameterEXT
+  , glBindParameterEXT
+  , glBindTexGenParameterEXT
+  , glBindTextureUnitParameterEXT
+  , glBindVertexShaderEXT
+  , glDeleteVertexShaderEXT
+  , glDisableVariantClientStateEXT
+  , glEnableVariantClientStateEXT
+  , glEndVertexShaderEXT
+  , glExtractComponentEXT
+  , glGenSymbolsEXT
+  , glGenVertexShadersEXT
+  , glGetInvariantBooleanvEXT
+  , glGetInvariantFloatvEXT
+  , glGetInvariantIntegervEXT
+  , glGetLocalConstantBooleanvEXT
+  , glGetLocalConstantFloatvEXT
+  , glGetLocalConstantIntegervEXT
+  , glGetVariantBooleanvEXT
+  , glGetVariantFloatvEXT
+  , glGetVariantIntegervEXT
+  , glGetVariantPointervEXT
+  , glInsertComponentEXT
+  , glIsVariantEnabledEXT
+  , glSetInvariantEXT
+  , glSetLocalConstantEXT
+  , glShaderOp1EXT
+  , glShaderOp2EXT
+  , glShaderOp3EXT
+  , glSwizzleEXT
+  , glVariantPointerEXT
+  , glVariantbvEXT
+  , glVariantdvEXT
+  , glVariantfvEXT
+  , glVariantivEXT
+  , glVariantsvEXT
+  , glVariantubvEXT
+  , glVariantuivEXT
+  , glVariantusvEXT
+  , glWriteMaskEXT
+  , pattern GL_CURRENT_VERTEX_EXT
+  , pattern GL_FULL_RANGE_EXT
+  , pattern GL_INVARIANT_DATATYPE_EXT
+  , pattern GL_INVARIANT_EXT
+  , pattern GL_INVARIANT_VALUE_EXT
+  , pattern GL_LOCAL_CONSTANT_DATATYPE_EXT
+  , pattern GL_LOCAL_CONSTANT_EXT
+  , pattern GL_LOCAL_CONSTANT_VALUE_EXT
+  , pattern GL_LOCAL_EXT
+  , pattern GL_MATRIX_EXT
+  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT
+  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT
+  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT
+  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
+  , pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT
+  , pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT
+  , pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT
+  , pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT
+  , pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
+  , pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT
+  , pattern GL_MVP_MATRIX_EXT
+  , pattern GL_NEGATIVE_ONE_EXT
+  , pattern GL_NEGATIVE_W_EXT
+  , pattern GL_NEGATIVE_X_EXT
+  , pattern GL_NEGATIVE_Y_EXT
+  , pattern GL_NEGATIVE_Z_EXT
+  , pattern GL_NORMALIZED_RANGE_EXT
+  , pattern GL_ONE_EXT
+  , pattern GL_OP_ADD_EXT
+  , pattern GL_OP_CLAMP_EXT
+  , pattern GL_OP_CROSS_PRODUCT_EXT
+  , pattern GL_OP_DOT3_EXT
+  , pattern GL_OP_DOT4_EXT
+  , pattern GL_OP_EXP_BASE_2_EXT
+  , pattern GL_OP_FLOOR_EXT
+  , pattern GL_OP_FRAC_EXT
+  , pattern GL_OP_INDEX_EXT
+  , pattern GL_OP_LOG_BASE_2_EXT
+  , pattern GL_OP_MADD_EXT
+  , pattern GL_OP_MAX_EXT
+  , pattern GL_OP_MIN_EXT
+  , pattern GL_OP_MOV_EXT
+  , pattern GL_OP_MULTIPLY_MATRIX_EXT
+  , pattern GL_OP_MUL_EXT
+  , pattern GL_OP_NEGATE_EXT
+  , pattern GL_OP_POWER_EXT
+  , pattern GL_OP_RECIP_EXT
+  , pattern GL_OP_RECIP_SQRT_EXT
+  , pattern GL_OP_ROUND_EXT
+  , pattern GL_OP_SET_GE_EXT
+  , pattern GL_OP_SET_LT_EXT
+  , pattern GL_OP_SUB_EXT
+  , pattern GL_OUTPUT_COLOR0_EXT
+  , pattern GL_OUTPUT_COLOR1_EXT
+  , pattern GL_OUTPUT_FOG_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD0_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD10_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD11_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD12_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD13_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD14_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD15_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD16_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD17_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD18_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD19_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD1_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD20_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD21_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD22_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD23_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD24_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD25_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD26_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD27_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD28_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD29_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD2_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD30_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD31_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD3_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD4_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD5_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD6_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD7_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD8_EXT
+  , pattern GL_OUTPUT_TEXTURE_COORD9_EXT
+  , pattern GL_OUTPUT_VERTEX_EXT
+  , pattern GL_SCALAR_EXT
+  , pattern GL_VARIANT_ARRAY_EXT
+  , pattern GL_VARIANT_ARRAY_POINTER_EXT
+  , pattern GL_VARIANT_ARRAY_STRIDE_EXT
+  , pattern GL_VARIANT_ARRAY_TYPE_EXT
+  , pattern GL_VARIANT_DATATYPE_EXT
+  , pattern GL_VARIANT_EXT
+  , pattern GL_VARIANT_VALUE_EXT
+  , pattern GL_VECTOR_EXT
+  , pattern GL_VERTEX_SHADER_BINDING_EXT
+  , pattern GL_VERTEX_SHADER_EXT
+  , pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT
+  , pattern GL_VERTEX_SHADER_INVARIANTS_EXT
+  , pattern GL_VERTEX_SHADER_LOCALS_EXT
+  , pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT
+  , pattern GL_VERTEX_SHADER_OPTIMIZED_EXT
+  , pattern GL_VERTEX_SHADER_VARIANTS_EXT
+  , pattern GL_W_EXT
+  , pattern GL_X_EXT
+  , pattern GL_Y_EXT
+  , pattern GL_ZERO_EXT
+  , pattern GL_Z_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_shader.txt GL_EXT_vertex_shader> extension is available.
+
+gl_EXT_vertex_shader :: Bool
+gl_EXT_vertex_shader = member "GL_EXT_vertex_shader" extensions
+{-# NOINLINE gl_EXT_vertex_shader #-}
+
+-- | Usage: @'glBeginVertexShaderEXT'@
+
+
+glBeginVertexShaderEXT :: MonadIO m => m ()
+glBeginVertexShaderEXT = ffiIOV glBeginVertexShaderEXTFunPtr
+
+glBeginVertexShaderEXTFunPtr :: FunPtr (IO ())
+glBeginVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glBeginVertexShaderEXT")
+
+{-# NOINLINE glBeginVertexShaderEXTFunPtr #-}
+
+-- | Usage: @'glBindLightParameterEXT' light value@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @value@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
+
+
+glBindLightParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
+glBindLightParameterEXT = ffienumenumIOuint glBindLightParameterEXTFunPtr
+
+glBindLightParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
+glBindLightParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindLightParameterEXT")
+
+{-# NOINLINE glBindLightParameterEXTFunPtr #-}
+
+-- | Usage: @'glBindMaterialParameterEXT' face value@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @value@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+
+
+glBindMaterialParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
+glBindMaterialParameterEXT = ffienumenumIOuint glBindMaterialParameterEXTFunPtr
+
+glBindMaterialParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
+glBindMaterialParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindMaterialParameterEXT")
+
+{-# NOINLINE glBindMaterialParameterEXTFunPtr #-}
+
+-- | Usage: @'glBindParameterEXT' value@
+--
+-- The parameter @value@ is a @VertexShaderParameterEXT@.
+
+
+glBindParameterEXT :: MonadIO m => GLenum -> m GLuint
+glBindParameterEXT = ffienumIOuint glBindParameterEXTFunPtr
+
+glBindParameterEXTFunPtr :: FunPtr (GLenum -> IO GLuint)
+glBindParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindParameterEXT")
+
+{-# NOINLINE glBindParameterEXTFunPtr #-}
+
+-- | Usage: @'glBindTexGenParameterEXT' unit coord value@
+--
+-- The parameter @unit@ is a @TextureUnit@.
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @value@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+
+
+glBindTexGenParameterEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> m GLuint
+glBindTexGenParameterEXT = ffienumenumenumIOuint glBindTexGenParameterEXTFunPtr
+
+glBindTexGenParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint)
+glBindTexGenParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindTexGenParameterEXT")
+
+{-# NOINLINE glBindTexGenParameterEXTFunPtr #-}
+
+-- | Usage: @'glBindTextureUnitParameterEXT' unit value@
+--
+-- The parameter @unit@ is a @TextureUnit@.
+--
+-- The parameter @value@ is a @VertexShaderTextureUnitParameter@.
+
+
+glBindTextureUnitParameterEXT :: MonadIO m => GLenum -> GLenum -> m GLuint
+glBindTextureUnitParameterEXT = ffienumenumIOuint glBindTextureUnitParameterEXTFunPtr
+
+glBindTextureUnitParameterEXTFunPtr :: FunPtr (GLenum -> GLenum -> IO GLuint)
+glBindTextureUnitParameterEXTFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnitParameterEXT")
+
+{-# NOINLINE glBindTextureUnitParameterEXTFunPtr #-}
+
+-- | Usage: @'glBindVertexShaderEXT' id@
+
+
+glBindVertexShaderEXT :: MonadIO m => GLuint -> m ()
+glBindVertexShaderEXT = ffiuintIOV glBindVertexShaderEXTFunPtr
+
+glBindVertexShaderEXTFunPtr :: FunPtr (GLuint -> IO ())
+glBindVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glBindVertexShaderEXT")
+
+{-# NOINLINE glBindVertexShaderEXTFunPtr #-}
+
+-- | Usage: @'glDeleteVertexShaderEXT' id@
+
+
+glDeleteVertexShaderEXT :: MonadIO m => GLuint -> m ()
+glDeleteVertexShaderEXT = ffiuintIOV glDeleteVertexShaderEXTFunPtr
+
+glDeleteVertexShaderEXTFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexShaderEXT")
+
+{-# NOINLINE glDeleteVertexShaderEXTFunPtr #-}
+
+-- | Usage: @'glDisableVariantClientStateEXT' id@
+
+
+glDisableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
+glDisableVariantClientStateEXT = ffiuintIOV glDisableVariantClientStateEXTFunPtr
+
+glDisableVariantClientStateEXTFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVariantClientStateEXTFunPtr = unsafePerformIO (getProcAddress "glDisableVariantClientStateEXT")
+
+{-# NOINLINE glDisableVariantClientStateEXTFunPtr #-}
+
+-- | Usage: @'glEnableVariantClientStateEXT' id@
+
+
+glEnableVariantClientStateEXT :: MonadIO m => GLuint -> m ()
+glEnableVariantClientStateEXT = ffiuintIOV glEnableVariantClientStateEXTFunPtr
+
+glEnableVariantClientStateEXTFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVariantClientStateEXTFunPtr = unsafePerformIO (getProcAddress "glEnableVariantClientStateEXT")
+
+{-# NOINLINE glEnableVariantClientStateEXTFunPtr #-}
+
+-- | Usage: @'glEndVertexShaderEXT'@
+
+
+glEndVertexShaderEXT :: MonadIO m => m ()
+glEndVertexShaderEXT = ffiIOV glEndVertexShaderEXTFunPtr
+
+glEndVertexShaderEXTFunPtr :: FunPtr (IO ())
+glEndVertexShaderEXTFunPtr = unsafePerformIO (getProcAddress "glEndVertexShaderEXT")
+
+{-# NOINLINE glEndVertexShaderEXTFunPtr #-}
+
+-- | Usage: @'glExtractComponentEXT' res src num@
+
+
+glExtractComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glExtractComponentEXT = ffiuintuintuintIOV glExtractComponentEXTFunPtr
+
+glExtractComponentEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glExtractComponentEXTFunPtr = unsafePerformIO (getProcAddress "glExtractComponentEXT")
+
+{-# NOINLINE glExtractComponentEXTFunPtr #-}
+
+-- | Usage: @'glGenSymbolsEXT' datatype storagetype range components@
+--
+-- The parameter @datatype@ is a @DataTypeEXT@.
+--
+-- The parameter @storagetype@ is a @VertexShaderStorageTypeEXT@.
+--
+-- The parameter @range@ is a @ParameterRangeEXT@.
+
+
+glGenSymbolsEXT :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
+glGenSymbolsEXT = ffienumenumenumuintIOuint glGenSymbolsEXTFunPtr
+
+glGenSymbolsEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint)
+glGenSymbolsEXTFunPtr = unsafePerformIO (getProcAddress "glGenSymbolsEXT")
+
+{-# NOINLINE glGenSymbolsEXTFunPtr #-}
+
+-- | Usage: @'glGenVertexShadersEXT' range@
+
+
+glGenVertexShadersEXT :: MonadIO m => GLuint -> m GLuint
+glGenVertexShadersEXT = ffiuintIOuint glGenVertexShadersEXTFunPtr
+
+glGenVertexShadersEXTFunPtr :: FunPtr (GLuint -> IO GLuint)
+glGenVertexShadersEXTFunPtr = unsafePerformIO (getProcAddress "glGenVertexShadersEXT")
+
+{-# NOINLINE glGenVertexShadersEXTFunPtr #-}
+
+-- | Usage: @'glGetInvariantBooleanvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetInvariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
+glGetInvariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetInvariantBooleanvEXTFunPtr
+
+glGetInvariantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
+glGetInvariantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantBooleanvEXT")
+
+{-# NOINLINE glGetInvariantBooleanvEXTFunPtr #-}
+
+-- | Usage: @'glGetInvariantFloatvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetInvariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetInvariantFloatvEXT = ffiuintenumPtrfloatIOV glGetInvariantFloatvEXTFunPtr
+
+glGetInvariantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetInvariantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantFloatvEXT")
+
+{-# NOINLINE glGetInvariantFloatvEXTFunPtr #-}
+
+-- | Usage: @'glGetInvariantIntegervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetInvariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetInvariantIntegervEXT = ffiuintenumPtrintIOV glGetInvariantIntegervEXTFunPtr
+
+glGetInvariantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetInvariantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetInvariantIntegervEXT")
+
+{-# NOINLINE glGetInvariantIntegervEXTFunPtr #-}
+
+-- | Usage: @'glGetLocalConstantBooleanvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetLocalConstantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
+glGetLocalConstantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetLocalConstantBooleanvEXTFunPtr
+
+glGetLocalConstantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
+glGetLocalConstantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantBooleanvEXT")
+
+{-# NOINLINE glGetLocalConstantBooleanvEXTFunPtr #-}
+
+-- | Usage: @'glGetLocalConstantFloatvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetLocalConstantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetLocalConstantFloatvEXT = ffiuintenumPtrfloatIOV glGetLocalConstantFloatvEXTFunPtr
+
+glGetLocalConstantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetLocalConstantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantFloatvEXT")
+
+{-# NOINLINE glGetLocalConstantFloatvEXTFunPtr #-}
+
+-- | Usage: @'glGetLocalConstantIntegervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetLocalConstantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetLocalConstantIntegervEXT = ffiuintenumPtrintIOV glGetLocalConstantIntegervEXTFunPtr
+
+glGetLocalConstantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetLocalConstantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetLocalConstantIntegervEXT")
+
+{-# NOINLINE glGetLocalConstantIntegervEXTFunPtr #-}
+
+-- | Usage: @'glGetVariantBooleanvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetVariantBooleanvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLboolean -> m ()
+glGetVariantBooleanvEXT = ffiuintenumPtrbooleanIOV glGetVariantBooleanvEXTFunPtr
+
+glGetVariantBooleanvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
+glGetVariantBooleanvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantBooleanvEXT")
+
+{-# NOINLINE glGetVariantBooleanvEXTFunPtr #-}
+
+-- | Usage: @'glGetVariantFloatvEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetVariantFloatvEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVariantFloatvEXT = ffiuintenumPtrfloatIOV glGetVariantFloatvEXTFunPtr
+
+glGetVariantFloatvEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVariantFloatvEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantFloatvEXT")
+
+{-# NOINLINE glGetVariantFloatvEXTFunPtr #-}
+
+-- | Usage: @'glGetVariantIntegervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetVariantIntegervEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVariantIntegervEXT = ffiuintenumPtrintIOV glGetVariantIntegervEXTFunPtr
+
+glGetVariantIntegervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVariantIntegervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantIntegervEXT")
+
+{-# NOINLINE glGetVariantIntegervEXTFunPtr #-}
+
+-- | Usage: @'glGetVariantPointervEXT' id value data@
+--
+-- The parameter @value@ is a @GetVariantValueEXT@.
+--
+-- The length of @data@ should be @COMPSIZE(id)@.
+
+
+glGetVariantPointervEXT :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVariantPointervEXT = ffiuintenumPtrPtrVIOV glGetVariantPointervEXTFunPtr
+
+glGetVariantPointervEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVariantPointervEXTFunPtr = unsafePerformIO (getProcAddress "glGetVariantPointervEXT")
+
+{-# NOINLINE glGetVariantPointervEXTFunPtr #-}
+
+-- | Usage: @'glInsertComponentEXT' res src num@
+
+
+glInsertComponentEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glInsertComponentEXT = ffiuintuintuintIOV glInsertComponentEXTFunPtr
+
+glInsertComponentEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glInsertComponentEXTFunPtr = unsafePerformIO (getProcAddress "glInsertComponentEXT")
+
+{-# NOINLINE glInsertComponentEXTFunPtr #-}
+
+-- | Usage: @'glIsVariantEnabledEXT' id cap@
+--
+-- The parameter @cap@ is a @VariantCapEXT@.
+
+
+glIsVariantEnabledEXT :: MonadIO m => GLuint -> GLenum -> m GLboolean
+glIsVariantEnabledEXT = ffiuintenumIOboolean glIsVariantEnabledEXTFunPtr
+
+glIsVariantEnabledEXTFunPtr :: FunPtr (GLuint -> GLenum -> IO GLboolean)
+glIsVariantEnabledEXTFunPtr = unsafePerformIO (getProcAddress "glIsVariantEnabledEXT")
+
+{-# NOINLINE glIsVariantEnabledEXTFunPtr #-}
+
+-- | Usage: @'glSetInvariantEXT' id type addr@
+--
+-- The parameter @type@ is a @ScalarType@.
+--
+-- The length of @addr@ should be @COMPSIZE(id,type)@.
+
+
+glSetInvariantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
+glSetInvariantEXT = ffiuintenumPtrVIOV glSetInvariantEXTFunPtr
+
+glSetInvariantEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
+glSetInvariantEXTFunPtr = unsafePerformIO (getProcAddress "glSetInvariantEXT")
+
+{-# NOINLINE glSetInvariantEXTFunPtr #-}
+
+-- | Usage: @'glSetLocalConstantEXT' id type addr@
+--
+-- The parameter @type@ is a @ScalarType@.
+--
+-- The length of @addr@ should be @COMPSIZE(id,type)@.
+
+
+glSetLocalConstantEXT :: MonadIO m => GLuint -> GLenum -> Ptr () -> m ()
+glSetLocalConstantEXT = ffiuintenumPtrVIOV glSetLocalConstantEXTFunPtr
+
+glSetLocalConstantEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ())
+glSetLocalConstantEXTFunPtr = unsafePerformIO (getProcAddress "glSetLocalConstantEXT")
+
+{-# NOINLINE glSetLocalConstantEXTFunPtr #-}
+
+-- | Usage: @'glShaderOp1EXT' op res arg1@
+--
+-- The parameter @op@ is a @VertexShaderOpEXT@.
+
+
+glShaderOp1EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glShaderOp1EXT = ffienumuintuintIOV glShaderOp1EXTFunPtr
+
+glShaderOp1EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glShaderOp1EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp1EXT")
+
+{-# NOINLINE glShaderOp1EXTFunPtr #-}
+
+-- | Usage: @'glShaderOp2EXT' op res arg1 arg2@
+--
+-- The parameter @op@ is a @VertexShaderOpEXT@.
+
+
+glShaderOp2EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> m ()
+glShaderOp2EXT = ffienumuintuintuintIOV glShaderOp2EXTFunPtr
+
+glShaderOp2EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ())
+glShaderOp2EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp2EXT")
+
+{-# NOINLINE glShaderOp2EXTFunPtr #-}
+
+-- | Usage: @'glShaderOp3EXT' op res arg1 arg2 arg3@
+--
+-- The parameter @op@ is a @VertexShaderOpEXT@.
+
+
+glShaderOp3EXT :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glShaderOp3EXT = ffienumuintuintuintuintIOV glShaderOp3EXTFunPtr
+
+glShaderOp3EXTFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glShaderOp3EXTFunPtr = unsafePerformIO (getProcAddress "glShaderOp3EXT")
+
+{-# NOINLINE glShaderOp3EXTFunPtr #-}
+
+-- | Usage: @'glSwizzleEXT' res in outX outY outZ outW@
+--
+-- The parameter @outX@ is a @VertexShaderCoordOutEXT@.
+--
+-- The parameter @outY@ is a @VertexShaderCoordOutEXT@.
+--
+-- The parameter @outZ@ is a @VertexShaderCoordOutEXT@.
+--
+-- The parameter @outW@ is a @VertexShaderCoordOutEXT@.
+
+
+glSwizzleEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glSwizzleEXT = ffiuintuintenumenumenumenumIOV glSwizzleEXTFunPtr
+
+glSwizzleEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glSwizzleEXTFunPtr = unsafePerformIO (getProcAddress "glSwizzleEXT")
+
+{-# NOINLINE glSwizzleEXTFunPtr #-}
+
+-- | Usage: @'glVariantPointerEXT' id type stride addr@
+--
+-- The parameter @type@ is a @ScalarType@.
+--
+-- The length of @addr@ should be @COMPSIZE(id,type,stride)@.
+
+
+glVariantPointerEXT :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr () -> m ()
+glVariantPointerEXT = ffiuintenumuintPtrVIOV glVariantPointerEXTFunPtr
+
+glVariantPointerEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ())
+glVariantPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVariantPointerEXT")
+
+{-# NOINLINE glVariantPointerEXTFunPtr #-}
+
+-- | Usage: @'glVariantbvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantbvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVariantbvEXT = ffiuintPtrbyteIOV glVariantbvEXTFunPtr
+
+glVariantbvEXTFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVariantbvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantbvEXT")
+
+{-# NOINLINE glVariantbvEXTFunPtr #-}
+
+-- | Usage: @'glVariantdvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantdvEXT :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVariantdvEXT = ffiuintPtrdoubleIOV glVariantdvEXTFunPtr
+
+glVariantdvEXTFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVariantdvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantdvEXT")
+
+{-# NOINLINE glVariantdvEXTFunPtr #-}
+
+-- | Usage: @'glVariantfvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantfvEXT :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVariantfvEXT = ffiuintPtrfloatIOV glVariantfvEXTFunPtr
+
+glVariantfvEXTFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVariantfvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantfvEXT")
+
+{-# NOINLINE glVariantfvEXTFunPtr #-}
+
+-- | Usage: @'glVariantivEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVariantivEXT = ffiuintPtrintIOV glVariantivEXTFunPtr
+
+glVariantivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVariantivEXTFunPtr = unsafePerformIO (getProcAddress "glVariantivEXT")
+
+{-# NOINLINE glVariantivEXTFunPtr #-}
+
+-- | Usage: @'glVariantsvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantsvEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVariantsvEXT = ffiuintPtrshortIOV glVariantsvEXTFunPtr
+
+glVariantsvEXTFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVariantsvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantsvEXT")
+
+{-# NOINLINE glVariantsvEXTFunPtr #-}
+
+-- | Usage: @'glVariantubvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVariantubvEXT = ffiuintPtrubyteIOV glVariantubvEXTFunPtr
+
+glVariantubvEXTFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVariantubvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantubvEXT")
+
+{-# NOINLINE glVariantubvEXTFunPtr #-}
+
+-- | Usage: @'glVariantuivEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantuivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVariantuivEXT = ffiuintPtruintIOV glVariantuivEXTFunPtr
+
+glVariantuivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVariantuivEXTFunPtr = unsafePerformIO (getProcAddress "glVariantuivEXT")
+
+{-# NOINLINE glVariantuivEXTFunPtr #-}
+
+-- | Usage: @'glVariantusvEXT' id addr@
+--
+-- The length of @addr@ should be @COMPSIZE(id)@.
+
+
+glVariantusvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVariantusvEXT = ffiuintPtrushortIOV glVariantusvEXTFunPtr
+
+glVariantusvEXTFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVariantusvEXTFunPtr = unsafePerformIO (getProcAddress "glVariantusvEXT")
+
+{-# NOINLINE glVariantusvEXTFunPtr #-}
+
+-- | Usage: @'glWriteMaskEXT' res in outX outY outZ outW@
+--
+-- The parameter @outX@ is a @VertexShaderWriteMaskEXT@.
+--
+-- The parameter @outY@ is a @VertexShaderWriteMaskEXT@.
+--
+-- The parameter @outZ@ is a @VertexShaderWriteMaskEXT@.
+--
+-- The parameter @outW@ is a @VertexShaderWriteMaskEXT@.
+
+
+glWriteMaskEXT :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glWriteMaskEXT = ffiuintuintenumenumenumenumIOV glWriteMaskEXTFunPtr
+
+glWriteMaskEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glWriteMaskEXTFunPtr = unsafePerformIO (getProcAddress "glWriteMaskEXT")
+
+{-# NOINLINE glWriteMaskEXTFunPtr #-}
+
+pattern GL_CURRENT_VERTEX_EXT = 0x87E2
+
+pattern GL_FULL_RANGE_EXT = 0x87E1
+
+pattern GL_INVARIANT_DATATYPE_EXT = 0x87EB
+
+pattern GL_INVARIANT_EXT = 0x87C2
+
+pattern GL_INVARIANT_VALUE_EXT = 0x87EA
+
+pattern GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED
+
+pattern GL_LOCAL_CONSTANT_EXT = 0x87C3
+
+pattern GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC
+
+pattern GL_LOCAL_EXT = 0x87C4
+
+pattern GL_MATRIX_EXT = 0x87C0
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB
+
+pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5
+
+pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7
+
+pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9
+
+pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8
+
+pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6
+
+pattern GL_MVP_MATRIX_EXT = 0x87E3
+
+pattern GL_NEGATIVE_ONE_EXT = 0x87DF
+
+pattern GL_NEGATIVE_W_EXT = 0x87DC
+
+pattern GL_NEGATIVE_X_EXT = 0x87D9
+
+pattern GL_NEGATIVE_Y_EXT = 0x87DA
+
+pattern GL_NEGATIVE_Z_EXT = 0x87DB
+
+pattern GL_NORMALIZED_RANGE_EXT = 0x87E0
+
+pattern GL_ONE_EXT = 0x87DE
+
+pattern GL_OP_ADD_EXT = 0x8787
+
+pattern GL_OP_CLAMP_EXT = 0x878E
+
+pattern GL_OP_CROSS_PRODUCT_EXT = 0x8797
+
+pattern GL_OP_DOT3_EXT = 0x8784
+
+pattern GL_OP_DOT4_EXT = 0x8785
+
+pattern GL_OP_EXP_BASE_2_EXT = 0x8791
+
+pattern GL_OP_FLOOR_EXT = 0x878F
+
+pattern GL_OP_FRAC_EXT = 0x8789
+
+pattern GL_OP_INDEX_EXT = 0x8782
+
+pattern GL_OP_LOG_BASE_2_EXT = 0x8792
+
+pattern GL_OP_MADD_EXT = 0x8788
+
+pattern GL_OP_MAX_EXT = 0x878A
+
+pattern GL_OP_MIN_EXT = 0x878B
+
+pattern GL_OP_MOV_EXT = 0x8799
+
+pattern GL_OP_MULTIPLY_MATRIX_EXT = 0x8798
+
+pattern GL_OP_MUL_EXT = 0x8786
+
+pattern GL_OP_NEGATE_EXT = 0x8783
+
+pattern GL_OP_POWER_EXT = 0x8793
+
+pattern GL_OP_RECIP_EXT = 0x8794
+
+pattern GL_OP_RECIP_SQRT_EXT = 0x8795
+
+pattern GL_OP_ROUND_EXT = 0x8790
+
+pattern GL_OP_SET_GE_EXT = 0x878C
+
+pattern GL_OP_SET_LT_EXT = 0x878D
+
+pattern GL_OP_SUB_EXT = 0x8796
+
+pattern GL_OUTPUT_COLOR0_EXT = 0x879B
+
+pattern GL_OUTPUT_COLOR1_EXT = 0x879C
+
+pattern GL_OUTPUT_FOG_EXT = 0x87BD
+
+pattern GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D
+
+pattern GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7
+
+pattern GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8
+
+pattern GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9
+
+pattern GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA
+
+pattern GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB
+
+pattern GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC
+
+pattern GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD
+
+pattern GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE
+
+pattern GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF
+
+pattern GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0
+
+pattern GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E
+
+pattern GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1
+
+pattern GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2
+
+pattern GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3
+
+pattern GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4
+
+pattern GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5
+
+pattern GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6
+
+pattern GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7
+
+pattern GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8
+
+pattern GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9
+
+pattern GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA
+
+pattern GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F
+
+pattern GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB
+
+pattern GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC
+
+pattern GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0
+
+pattern GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1
+
+pattern GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2
+
+pattern GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3
+
+pattern GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4
+
+pattern GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5
+
+pattern GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6
+
+pattern GL_OUTPUT_VERTEX_EXT = 0x879A
+
+pattern GL_SCALAR_EXT = 0x87BE
+
+pattern GL_VARIANT_ARRAY_EXT = 0x87E8
+
+pattern GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9
+
+pattern GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6
+
+pattern GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7
+
+pattern GL_VARIANT_DATATYPE_EXT = 0x87E5
+
+pattern GL_VARIANT_EXT = 0x87C1
+
+pattern GL_VARIANT_VALUE_EXT = 0x87E4
+
+pattern GL_VECTOR_EXT = 0x87BF
+
+pattern GL_VERTEX_SHADER_BINDING_EXT = 0x8781
+
+pattern GL_VERTEX_SHADER_EXT = 0x8780
+
+pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF
+
+pattern GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1
+
+pattern GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3
+
+pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2
+
+pattern GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4
+
+pattern GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0
+
+pattern GL_W_EXT = 0x87D8
+
+pattern GL_X_EXT = 0x87D5
+
+pattern GL_Y_EXT = 0x87D6
+
+pattern GL_ZERO_EXT = 0x87DD
+
+pattern GL_Z_EXT = 0x87D7
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexWeighting.hs b/generated-src/Graphics/GL/Ext/EXT/VertexWeighting.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexWeighting.hs
@@ -0,0 +1,105 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.VertexWeighting (
+  -- * Extension Support
+    gl_EXT_vertex_weighting
+
+  -- * GL_EXT_vertex_weighting
+  , glVertexWeightPointerEXT
+  , glVertexWeightfEXT
+  , glVertexWeightfvEXT
+  , pattern GL_CURRENT_VERTEX_WEIGHT_EXT
+  , pattern GL_MODELVIEW0_EXT
+  , pattern GL_MODELVIEW0_MATRIX_EXT
+  , pattern GL_MODELVIEW0_STACK_DEPTH_EXT
+  , pattern GL_MODELVIEW1_EXT
+  , pattern GL_MODELVIEW1_MATRIX_EXT
+  , pattern GL_MODELVIEW1_STACK_DEPTH_EXT
+  , pattern GL_VERTEX_WEIGHTING_EXT
+  , pattern GL_VERTEX_WEIGHT_ARRAY_EXT
+  , pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT
+  , pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT
+  , pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT
+  , pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/vertex_weighting.txt GL_EXT_vertex_weighting> extension is available.
+
+gl_EXT_vertex_weighting :: Bool
+gl_EXT_vertex_weighting = member "GL_EXT_vertex_weighting" extensions
+{-# NOINLINE gl_EXT_vertex_weighting #-}
+
+-- | Usage: @'glVertexWeightPointerEXT' size type stride pointer@
+--
+-- The parameter @type@ is a @VertexWeightPointerTypeEXT@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glVertexWeightPointerEXT :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexWeightPointerEXT = ffiintenumsizeiPtrVIOV glVertexWeightPointerEXTFunPtr
+
+glVertexWeightPointerEXTFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexWeightPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexWeightPointerEXT")
+
+{-# NOINLINE glVertexWeightPointerEXTFunPtr #-}
+
+-- | Usage: @'glVertexWeightfEXT' weight@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.EXT.VertexWeighting.glVertexWeightfvEXT'.
+
+
+glVertexWeightfEXT :: MonadIO m => GLfloat -> m ()
+glVertexWeightfEXT = ffifloatIOV glVertexWeightfEXTFunPtr
+
+glVertexWeightfEXTFunPtr :: FunPtr (GLfloat -> IO ())
+glVertexWeightfEXTFunPtr = unsafePerformIO (getProcAddress "glVertexWeightfEXT")
+
+{-# NOINLINE glVertexWeightfEXTFunPtr #-}
+
+-- | Usage: @'glVertexWeightfvEXT' weight@
+--
+-- The length of @weight@ should be @1@.
+
+
+glVertexWeightfvEXT :: MonadIO m => Ptr GLfloat -> m ()
+glVertexWeightfvEXT = ffiPtrfloatIOV glVertexWeightfvEXTFunPtr
+
+glVertexWeightfvEXTFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertexWeightfvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexWeightfvEXT")
+
+{-# NOINLINE glVertexWeightfvEXTFunPtr #-}
+
+pattern GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B
+
+pattern GL_MODELVIEW0_EXT = 0x1700
+
+pattern GL_MODELVIEW0_MATRIX_EXT = 0x0BA6
+
+pattern GL_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3
+
+pattern GL_MODELVIEW1_EXT = 0x850A
+
+pattern GL_MODELVIEW1_MATRIX_EXT = 0x8506
+
+pattern GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502
+
+pattern GL_VERTEX_WEIGHTING_EXT = 0x8509
+
+pattern GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C
+
+pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510
+
+pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D
+
+pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F
+
+pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E
diff --git a/generated-src/Graphics/GL/Ext/EXT/WindowRectangles.hs b/generated-src/Graphics/GL/Ext/EXT/WindowRectangles.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/WindowRectangles.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.WindowRectangles (
+  -- * Extension Support
+    gl_EXT_window_rectangles
+
+  -- * GL_EXT_window_rectangles
+  , glWindowRectanglesEXT
+  , pattern GL_EXCLUSIVE_EXT
+  , pattern GL_INCLUSIVE_EXT
+  , pattern GL_MAX_WINDOW_RECTANGLES_EXT
+  , pattern GL_NUM_WINDOW_RECTANGLES_EXT
+  , pattern GL_WINDOW_RECTANGLE_EXT
+  , pattern GL_WINDOW_RECTANGLE_MODE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/window_rectangles.txt GL_EXT_window_rectangles> extension is available.
+
+gl_EXT_window_rectangles :: Bool
+gl_EXT_window_rectangles = member "GL_EXT_window_rectangles" extensions
+{-# NOINLINE gl_EXT_window_rectangles #-}
+
+-- | Usage: @'glWindowRectanglesEXT' mode count box@
+--
+-- The length of @box@ should be @COMPSIZE(count)@.
+
+
+glWindowRectanglesEXT :: MonadIO m => GLenum -> GLsizei -> Ptr GLint -> m ()
+glWindowRectanglesEXT = ffienumsizeiPtrintIOV glWindowRectanglesEXTFunPtr
+
+glWindowRectanglesEXTFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ())
+glWindowRectanglesEXTFunPtr = unsafePerformIO (getProcAddress "glWindowRectanglesEXT")
+
+{-# NOINLINE glWindowRectanglesEXTFunPtr #-}
+
+pattern GL_EXCLUSIVE_EXT = 0x8F11
+
+pattern GL_INCLUSIVE_EXT = 0x8F10
+
+pattern GL_MAX_WINDOW_RECTANGLES_EXT = 0x8F14
+
+pattern GL_NUM_WINDOW_RECTANGLES_EXT = 0x8F15
+
+pattern GL_WINDOW_RECTANGLE_EXT = 0x8F12
+
+pattern GL_WINDOW_RECTANGLE_MODE_EXT = 0x8F13
diff --git a/generated-src/Graphics/GL/Ext/EXT/X11SyncObject.hs b/generated-src/Graphics/GL/Ext/EXT/X11SyncObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/X11SyncObject.hs
@@ -0,0 +1,37 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.X11SyncObject (
+  -- * Extension Support
+    gl_EXT_x11_sync_object
+
+  -- * GL_EXT_x11_sync_object
+  , glImportSyncEXT
+  , pattern GL_SYNC_X11_FENCE_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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/x11_sync_object.txt GL_EXT_x11_sync_object> extension is available.
+
+gl_EXT_x11_sync_object :: Bool
+gl_EXT_x11_sync_object = member "GL_EXT_x11_sync_object" extensions
+{-# NOINLINE gl_EXT_x11_sync_object #-}
+
+-- | Usage: @'glImportSyncEXT' external_sync_type external_sync flags@
+
+
+glImportSyncEXT :: MonadIO m => GLenum -> GLintptr -> GLbitfield -> m GLsync
+glImportSyncEXT = ffienumintptrbitfieldIOsync glImportSyncEXTFunPtr
+
+glImportSyncEXTFunPtr :: FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync)
+glImportSyncEXTFunPtr = unsafePerformIO (getProcAddress "glImportSyncEXT")
+
+{-# NOINLINE glImportSyncEXTFunPtr #-}
+
+pattern GL_SYNC_X11_FENCE_EXT = 0x90E1
diff --git a/generated-src/Graphics/GL/Ext/EXT/YUVTarget.hs b/generated-src/Graphics/GL/Ext/EXT/YUVTarget.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/EXT/YUVTarget.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.YUVTarget (
+  -- * Extension Support
+    gl_EXT_YUV_target
+
+  -- * GL_EXT_YUV_target
+  , pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
+  , pattern GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT
+  , pattern GL_TEXTURE_BINDING_EXTERNAL_OES
+  , pattern GL_TEXTURE_EXTERNAL_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_YUV_target.txt GL_EXT_YUV_target> extension is available.
+
+gl_EXT_YUV_target :: Bool
+gl_EXT_YUV_target = member "GL_EXT_YUV_target" extensions
+{-# NOINLINE gl_EXT_YUV_target #-}
+
+pattern GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT = 0x8BE7
diff --git a/generated-src/Graphics/GL/Ext/FJ.hs b/generated-src/Graphics/GL/Ext/FJ.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/FJ.hs
@@ -0,0 +1,8 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.FJ (
+  -- * FJ Extensions
+    module Graphics.GL.Ext.FJ.ShaderBinaryGCCSO
+) where
+
+import Graphics.GL.Ext.FJ.ShaderBinaryGCCSO
diff --git a/generated-src/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs b/generated-src/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.FJ.ShaderBinaryGCCSO (
+  -- * Extension Support
+    gl_FJ_shader_binary_GCCSO
+
+  -- * GL_FJ_shader_binary_GCCSO
+  , pattern GL_GCCSO_SHADER_BINARY_FJ
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/FJ/FJ_shader_binary_GCCSO.txt GL_FJ_shader_binary_GCCSO> extension is available.
+
+gl_FJ_shader_binary_GCCSO :: Bool
+gl_FJ_shader_binary_GCCSO = member "GL_FJ_shader_binary_GCCSO" extensions
+{-# NOINLINE gl_FJ_shader_binary_GCCSO #-}
+
+pattern GL_GCCSO_SHADER_BINARY_FJ = 0x9260
diff --git a/generated-src/Graphics/GL/Ext/GREMEDY.hs b/generated-src/Graphics/GL/Ext/GREMEDY.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/GREMEDY.hs
@@ -0,0 +1,10 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.GREMEDY (
+  -- * GREMEDY Extensions
+    module Graphics.GL.Ext.GREMEDY.FrameTerminator
+  , module Graphics.GL.Ext.GREMEDY.StringMarker
+) where
+
+import Graphics.GL.Ext.GREMEDY.FrameTerminator
+import Graphics.GL.Ext.GREMEDY.StringMarker
diff --git a/generated-src/Graphics/GL/Ext/GREMEDY/FrameTerminator.hs b/generated-src/Graphics/GL/Ext/GREMEDY/FrameTerminator.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/GREMEDY/FrameTerminator.hs
@@ -0,0 +1,33 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.GREMEDY.FrameTerminator (
+  -- * Extension Support
+    gl_GREMEDY_frame_terminator
+
+  -- * GL_GREMEDY_frame_terminator
+  , glFrameTerminatorGREMEDY
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/frame_terminator.txt GL_GREMEDY_frame_terminator> extension is available.
+
+gl_GREMEDY_frame_terminator :: Bool
+gl_GREMEDY_frame_terminator = member "GL_GREMEDY_frame_terminator" extensions
+{-# NOINLINE gl_GREMEDY_frame_terminator #-}
+
+-- | Usage: @'glFrameTerminatorGREMEDY'@
+
+
+glFrameTerminatorGREMEDY :: MonadIO m => m ()
+glFrameTerminatorGREMEDY = ffiIOV glFrameTerminatorGREMEDYFunPtr
+
+glFrameTerminatorGREMEDYFunPtr :: FunPtr (IO ())
+glFrameTerminatorGREMEDYFunPtr = unsafePerformIO (getProcAddress "glFrameTerminatorGREMEDY")
+
+{-# NOINLINE glFrameTerminatorGREMEDYFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/GREMEDY/StringMarker.hs b/generated-src/Graphics/GL/Ext/GREMEDY/StringMarker.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/GREMEDY/StringMarker.hs
@@ -0,0 +1,36 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.GREMEDY.StringMarker (
+  -- * Extension Support
+    gl_GREMEDY_string_marker
+
+  -- * GL_GREMEDY_string_marker
+  , glStringMarkerGREMEDY
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/GREMEDY/string_marker.txt GL_GREMEDY_string_marker> extension is available.
+
+gl_GREMEDY_string_marker :: Bool
+gl_GREMEDY_string_marker = member "GL_GREMEDY_string_marker" extensions
+{-# NOINLINE gl_GREMEDY_string_marker #-}
+
+-- | Usage: @'glStringMarkerGREMEDY' len string@
+--
+-- The length of @string@ should be @len@.
+
+
+glStringMarkerGREMEDY :: MonadIO m => GLsizei -> Ptr () -> m ()
+glStringMarkerGREMEDY = ffisizeiPtrVIOV glStringMarkerGREMEDYFunPtr
+
+glStringMarkerGREMEDYFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
+glStringMarkerGREMEDYFunPtr = unsafePerformIO (getProcAddress "glStringMarkerGREMEDY")
+
+{-# NOINLINE glStringMarkerGREMEDYFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/HP.hs b/generated-src/Graphics/GL/Ext/HP.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/HP.hs
@@ -0,0 +1,14 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.HP (
+  -- * HP Extensions
+    module Graphics.GL.Ext.HP.ConvolutionBorderModes
+  , module Graphics.GL.Ext.HP.ImageTransform
+  , module Graphics.GL.Ext.HP.OcclusionTest
+  , module Graphics.GL.Ext.HP.TextureLighting
+) where
+
+import Graphics.GL.Ext.HP.ConvolutionBorderModes
+import Graphics.GL.Ext.HP.ImageTransform
+import Graphics.GL.Ext.HP.OcclusionTest
+import Graphics.GL.Ext.HP.TextureLighting
diff --git a/generated-src/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs b/generated-src/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.HP.ConvolutionBorderModes (
+  -- * Extension Support
+    gl_HP_convolution_border_modes
+
+  -- * GL_HP_convolution_border_modes
+  , pattern GL_CONSTANT_BORDER_HP
+  , pattern GL_CONVOLUTION_BORDER_COLOR_HP
+  , pattern GL_IGNORE_BORDER_HP
+  , pattern GL_REPLICATE_BORDER_HP
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/convolution_border_modes.txt GL_HP_convolution_border_modes> extension is available.
+
+gl_HP_convolution_border_modes :: Bool
+gl_HP_convolution_border_modes = member "GL_HP_convolution_border_modes" extensions
+{-# NOINLINE gl_HP_convolution_border_modes #-}
+
+pattern GL_CONSTANT_BORDER_HP = 0x8151
+
+pattern GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154
+
+pattern GL_IGNORE_BORDER_HP = 0x8150
+
+pattern GL_REPLICATE_BORDER_HP = 0x8153
diff --git a/generated-src/Graphics/GL/Ext/HP/ImageTransform.hs b/generated-src/Graphics/GL/Ext/HP/ImageTransform.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/HP/ImageTransform.hs
@@ -0,0 +1,171 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.HP.ImageTransform (
+  -- * Extension Support
+    gl_HP_image_transform
+
+  -- * GL_HP_image_transform
+  , glGetImageTransformParameterfvHP
+  , glGetImageTransformParameterivHP
+  , glImageTransformParameterfHP
+  , glImageTransformParameterfvHP
+  , glImageTransformParameteriHP
+  , glImageTransformParameterivHP
+  , pattern GL_AVERAGE_HP
+  , pattern GL_CUBIC_HP
+  , pattern GL_IMAGE_CUBIC_WEIGHT_HP
+  , pattern GL_IMAGE_MAG_FILTER_HP
+  , pattern GL_IMAGE_MIN_FILTER_HP
+  , pattern GL_IMAGE_ROTATE_ANGLE_HP
+  , pattern GL_IMAGE_ROTATE_ORIGIN_X_HP
+  , pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP
+  , pattern GL_IMAGE_SCALE_X_HP
+  , pattern GL_IMAGE_SCALE_Y_HP
+  , pattern GL_IMAGE_TRANSFORM_2D_HP
+  , pattern GL_IMAGE_TRANSLATE_X_HP
+  , pattern GL_IMAGE_TRANSLATE_Y_HP
+  , pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
+  , pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/image_transform.txt GL_HP_image_transform> extension is available.
+
+gl_HP_image_transform :: Bool
+gl_HP_image_transform = member "GL_HP_image_transform" extensions
+{-# NOINLINE gl_HP_image_transform #-}
+
+-- | Usage: @'glGetImageTransformParameterfvHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetImageTransformParameterfvHP = ffienumenumPtrfloatIOV glGetImageTransformParameterfvHPFunPtr
+
+glGetImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetImageTransformParameterfvHPFunPtr = unsafePerformIO (getProcAddress "glGetImageTransformParameterfvHP")
+
+{-# NOINLINE glGetImageTransformParameterfvHPFunPtr #-}
+
+-- | Usage: @'glGetImageTransformParameterivHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetImageTransformParameterivHP = ffienumenumPtrintIOV glGetImageTransformParameterivHPFunPtr
+
+glGetImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetImageTransformParameterivHPFunPtr = unsafePerformIO (getProcAddress "glGetImageTransformParameterivHP")
+
+{-# NOINLINE glGetImageTransformParameterivHPFunPtr #-}
+
+-- | Usage: @'glImageTransformParameterfHP' target pname param@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+
+
+glImageTransformParameterfHP :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glImageTransformParameterfHP = ffienumenumfloatIOV glImageTransformParameterfHPFunPtr
+
+glImageTransformParameterfHPFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glImageTransformParameterfHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameterfHP")
+
+{-# NOINLINE glImageTransformParameterfHPFunPtr #-}
+
+-- | Usage: @'glImageTransformParameterfvHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glImageTransformParameterfvHP :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glImageTransformParameterfvHP = ffienumenumPtrfloatIOV glImageTransformParameterfvHPFunPtr
+
+glImageTransformParameterfvHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glImageTransformParameterfvHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameterfvHP")
+
+{-# NOINLINE glImageTransformParameterfvHPFunPtr #-}
+
+-- | Usage: @'glImageTransformParameteriHP' target pname param@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+
+
+glImageTransformParameteriHP :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glImageTransformParameteriHP = ffienumenumintIOV glImageTransformParameteriHPFunPtr
+
+glImageTransformParameteriHPFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glImageTransformParameteriHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameteriHP")
+
+{-# NOINLINE glImageTransformParameteriHPFunPtr #-}
+
+-- | Usage: @'glImageTransformParameterivHP' target pname params@
+--
+-- The parameter @target@ is a @ImageTransformTargetHP@.
+--
+-- The parameter @pname@ is a @ImageTransformPNameHP@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glImageTransformParameterivHP :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glImageTransformParameterivHP = ffienumenumPtrintIOV glImageTransformParameterivHPFunPtr
+
+glImageTransformParameterivHPFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glImageTransformParameterivHPFunPtr = unsafePerformIO (getProcAddress "glImageTransformParameterivHP")
+
+{-# NOINLINE glImageTransformParameterivHPFunPtr #-}
+
+pattern GL_AVERAGE_HP = 0x8160
+
+pattern GL_CUBIC_HP = 0x815F
+
+pattern GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E
+
+pattern GL_IMAGE_MAG_FILTER_HP = 0x815C
+
+pattern GL_IMAGE_MIN_FILTER_HP = 0x815D
+
+pattern GL_IMAGE_ROTATE_ANGLE_HP = 0x8159
+
+pattern GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A
+
+pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B
+
+pattern GL_IMAGE_SCALE_X_HP = 0x8155
+
+pattern GL_IMAGE_SCALE_Y_HP = 0x8156
+
+pattern GL_IMAGE_TRANSFORM_2D_HP = 0x8161
+
+pattern GL_IMAGE_TRANSLATE_X_HP = 0x8157
+
+pattern GL_IMAGE_TRANSLATE_Y_HP = 0x8158
+
+pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162
+
+pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163
diff --git a/generated-src/Graphics/GL/Ext/HP/OcclusionTest.hs b/generated-src/Graphics/GL/Ext/HP/OcclusionTest.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/HP/OcclusionTest.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.HP.OcclusionTest (
+  -- * Extension Support
+    gl_HP_occlusion_test
+
+  -- * GL_HP_occlusion_test
+  , pattern GL_OCCLUSION_TEST_HP
+  , pattern GL_OCCLUSION_TEST_RESULT_HP
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/occlusion_test.txt GL_HP_occlusion_test> extension is available.
+
+gl_HP_occlusion_test :: Bool
+gl_HP_occlusion_test = member "GL_HP_occlusion_test" extensions
+{-# NOINLINE gl_HP_occlusion_test #-}
+
+pattern GL_OCCLUSION_TEST_HP = 0x8165
+
+pattern GL_OCCLUSION_TEST_RESULT_HP = 0x8166
diff --git a/generated-src/Graphics/GL/Ext/HP/TextureLighting.hs b/generated-src/Graphics/GL/Ext/HP/TextureLighting.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/HP/TextureLighting.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.HP.TextureLighting (
+  -- * Extension Support
+    gl_HP_texture_lighting
+
+  -- * GL_HP_texture_lighting
+  , pattern GL_TEXTURE_LIGHTING_MODE_HP
+  , pattern GL_TEXTURE_POST_SPECULAR_HP
+  , pattern GL_TEXTURE_PRE_SPECULAR_HP
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/HP/texture_lighting.txt GL_HP_texture_lighting> extension is available.
+
+gl_HP_texture_lighting :: Bool
+gl_HP_texture_lighting = member "GL_HP_texture_lighting" extensions
+{-# NOINLINE gl_HP_texture_lighting #-}
+
+pattern GL_TEXTURE_LIGHTING_MODE_HP = 0x8167
+
+pattern GL_TEXTURE_POST_SPECULAR_HP = 0x8168
+
+pattern GL_TEXTURE_PRE_SPECULAR_HP = 0x8169
diff --git a/generated-src/Graphics/GL/Ext/IBM.hs b/generated-src/Graphics/GL/Ext/IBM.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IBM.hs
@@ -0,0 +1,18 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IBM (
+  -- * IBM Extensions
+    module Graphics.GL.Ext.IBM.CullVertex
+  , module Graphics.GL.Ext.IBM.MultimodeDrawArrays
+  , module Graphics.GL.Ext.IBM.RasterposClip
+  , module Graphics.GL.Ext.IBM.StaticData
+  , module Graphics.GL.Ext.IBM.TextureMirroredRepeat
+  , module Graphics.GL.Ext.IBM.VertexArrayLists
+) where
+
+import Graphics.GL.Ext.IBM.CullVertex
+import Graphics.GL.Ext.IBM.MultimodeDrawArrays
+import Graphics.GL.Ext.IBM.RasterposClip
+import Graphics.GL.Ext.IBM.StaticData
+import Graphics.GL.Ext.IBM.TextureMirroredRepeat
+import Graphics.GL.Ext.IBM.VertexArrayLists
diff --git a/generated-src/Graphics/GL/Ext/IBM/CullVertex.hs b/generated-src/Graphics/GL/Ext/IBM/CullVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IBM/CullVertex.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IBM.CullVertex (
+  -- * Extension Support
+    gl_IBM_cull_vertex
+
+  -- * GL_IBM_cull_vertex
+  , pattern GL_CULL_VERTEX_IBM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/cull_vertex.txt GL_IBM_cull_vertex> extension is available.
+
+gl_IBM_cull_vertex :: Bool
+gl_IBM_cull_vertex = member "GL_IBM_cull_vertex" extensions
+{-# NOINLINE gl_IBM_cull_vertex #-}
+
+pattern GL_CULL_VERTEX_IBM = 103050
diff --git a/generated-src/Graphics/GL/Ext/IBM/MultimodeDrawArrays.hs b/generated-src/Graphics/GL/Ext/IBM/MultimodeDrawArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IBM/MultimodeDrawArrays.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IBM.MultimodeDrawArrays (
+  -- * Extension Support
+    gl_IBM_multimode_draw_arrays
+
+  -- * GL_IBM_multimode_draw_arrays
+  , glMultiModeDrawArraysIBM
+  , glMultiModeDrawElementsIBM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/multimode_draw_arrays.txt GL_IBM_multimode_draw_arrays> extension is available.
+
+gl_IBM_multimode_draw_arrays :: Bool
+gl_IBM_multimode_draw_arrays = member "GL_IBM_multimode_draw_arrays" extensions
+{-# NOINLINE gl_IBM_multimode_draw_arrays #-}
+
+-- | Usage: @'glMultiModeDrawArraysIBM' mode first count primcount modestride@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @mode@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @first@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+
+
+glMultiModeDrawArraysIBM :: MonadIO m => Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
+glMultiModeDrawArraysIBM = ffiPtrenumPtrintPtrsizeisizeiintIOV glMultiModeDrawArraysIBMFunPtr
+
+glMultiModeDrawArraysIBMFunPtr :: FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ())
+glMultiModeDrawArraysIBMFunPtr = unsafePerformIO (getProcAddress "glMultiModeDrawArraysIBM")
+
+{-# NOINLINE glMultiModeDrawArraysIBMFunPtr #-}
+
+-- | Usage: @'glMultiModeDrawElementsIBM' mode count type indices primcount modestride@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @mode@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @count@ should be @COMPSIZE(primcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(primcount)@.
+
+
+glMultiModeDrawElementsIBM :: MonadIO m => Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()
+glMultiModeDrawElementsIBM = ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV glMultiModeDrawElementsIBMFunPtr
+
+glMultiModeDrawElementsIBMFunPtr :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ())
+glMultiModeDrawElementsIBMFunPtr = unsafePerformIO (getProcAddress "glMultiModeDrawElementsIBM")
+
+{-# NOINLINE glMultiModeDrawElementsIBMFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/IBM/RasterposClip.hs b/generated-src/Graphics/GL/Ext/IBM/RasterposClip.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IBM/RasterposClip.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IBM.RasterposClip (
+  -- * Extension Support
+    gl_IBM_rasterpos_clip
+
+  -- * GL_IBM_rasterpos_clip
+  , pattern GL_RASTER_POSITION_UNCLIPPED_IBM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/rasterpos_clip.txt GL_IBM_rasterpos_clip> extension is available.
+
+gl_IBM_rasterpos_clip :: Bool
+gl_IBM_rasterpos_clip = member "GL_IBM_rasterpos_clip" extensions
+{-# NOINLINE gl_IBM_rasterpos_clip #-}
+
+pattern GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262
diff --git a/generated-src/Graphics/GL/Ext/IBM/StaticData.hs b/generated-src/Graphics/GL/Ext/IBM/StaticData.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IBM/StaticData.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IBM.StaticData (
+  -- * Extension Support
+    gl_IBM_static_data
+
+  -- * GL_IBM_static_data
+  , glFlushStaticDataIBM
+  , pattern GL_ALL_STATIC_DATA_IBM
+  , pattern GL_STATIC_VERTEX_ARRAY_IBM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/static_data.txt GL_IBM_static_data> extension is available.
+
+gl_IBM_static_data :: Bool
+gl_IBM_static_data = member "GL_IBM_static_data" extensions
+{-# NOINLINE gl_IBM_static_data #-}
+
+-- | Usage: @'glFlushStaticDataIBM' target@
+
+
+glFlushStaticDataIBM :: MonadIO m => GLenum -> m ()
+glFlushStaticDataIBM = ffienumIOV glFlushStaticDataIBMFunPtr
+
+glFlushStaticDataIBMFunPtr :: FunPtr (GLenum -> IO ())
+glFlushStaticDataIBMFunPtr = unsafePerformIO (getProcAddress "glFlushStaticDataIBM")
+
+{-# NOINLINE glFlushStaticDataIBMFunPtr #-}
+
+pattern GL_ALL_STATIC_DATA_IBM = 103060
+
+pattern GL_STATIC_VERTEX_ARRAY_IBM = 103061
diff --git a/generated-src/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs b/generated-src/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IBM.TextureMirroredRepeat (
+  -- * Extension Support
+    gl_IBM_texture_mirrored_repeat
+
+  -- * GL_IBM_texture_mirrored_repeat
+  , pattern GL_MIRRORED_REPEAT_IBM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/texture_mirrored_repeat.txt GL_IBM_texture_mirrored_repeat> extension is available.
+
+gl_IBM_texture_mirrored_repeat :: Bool
+gl_IBM_texture_mirrored_repeat = member "GL_IBM_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_IBM_texture_mirrored_repeat #-}
+
+pattern GL_MIRRORED_REPEAT_IBM = 0x8370
diff --git a/generated-src/Graphics/GL/Ext/IBM/VertexArrayLists.hs b/generated-src/Graphics/GL/Ext/IBM/VertexArrayLists.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IBM/VertexArrayLists.hs
@@ -0,0 +1,198 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IBM.VertexArrayLists (
+  -- * Extension Support
+    gl_IBM_vertex_array_lists
+
+  -- * GL_IBM_vertex_array_lists
+  , glColorPointerListIBM
+  , glEdgeFlagPointerListIBM
+  , glFogCoordPointerListIBM
+  , glIndexPointerListIBM
+  , glNormalPointerListIBM
+  , glSecondaryColorPointerListIBM
+  , glTexCoordPointerListIBM
+  , glVertexPointerListIBM
+  , pattern GL_COLOR_ARRAY_LIST_IBM
+  , pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM
+  , pattern GL_EDGE_FLAG_ARRAY_LIST_IBM
+  , pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM
+  , pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM
+  , pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM
+  , pattern GL_INDEX_ARRAY_LIST_IBM
+  , pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM
+  , pattern GL_NORMAL_ARRAY_LIST_IBM
+  , pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM
+  , pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM
+  , pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM
+  , pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM
+  , pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM
+  , pattern GL_VERTEX_ARRAY_LIST_IBM
+  , pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/IBM/vertex_array_lists.txt GL_IBM_vertex_array_lists> extension is available.
+
+gl_IBM_vertex_array_lists :: Bool
+gl_IBM_vertex_array_lists = member "GL_IBM_vertex_array_lists" extensions
+{-# NOINLINE gl_IBM_vertex_array_lists #-}
+
+-- | Usage: @'glColorPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glColorPointerListIBM = ffiintenumintPtrPtrVintIOV glColorPointerListIBMFunPtr
+
+glColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
+glColorPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glColorPointerListIBM")
+
+{-# NOINLINE glColorPointerListIBMFunPtr #-}
+
+-- | Usage: @'glEdgeFlagPointerListIBM' stride pointer ptrstride@
+--
+-- The parameter @pointer@ is a @BooleanPointer@.
+--
+-- The length of @pointer@ should be @COMPSIZE(stride)@.
+
+
+glEdgeFlagPointerListIBM :: MonadIO m => GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
+glEdgeFlagPointerListIBM = ffiintPtrPtrbooleanintIOV glEdgeFlagPointerListIBMFunPtr
+
+glEdgeFlagPointerListIBMFunPtr :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ())
+glEdgeFlagPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointerListIBM")
+
+{-# NOINLINE glEdgeFlagPointerListIBMFunPtr #-}
+
+-- | Usage: @'glFogCoordPointerListIBM' type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @FogPointerTypeIBM@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glFogCoordPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glFogCoordPointerListIBM = ffienumintPtrPtrVintIOV glFogCoordPointerListIBMFunPtr
+
+glFogCoordPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
+glFogCoordPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointerListIBM")
+
+{-# NOINLINE glFogCoordPointerListIBMFunPtr #-}
+
+-- | Usage: @'glIndexPointerListIBM' type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glIndexPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glIndexPointerListIBM = ffienumintPtrPtrVintIOV glIndexPointerListIBMFunPtr
+
+glIndexPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
+glIndexPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glIndexPointerListIBM")
+
+{-# NOINLINE glIndexPointerListIBMFunPtr #-}
+
+-- | Usage: @'glNormalPointerListIBM' type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glNormalPointerListIBM :: MonadIO m => GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glNormalPointerListIBM = ffienumintPtrPtrVintIOV glNormalPointerListIBMFunPtr
+
+glNormalPointerListIBMFunPtr :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
+glNormalPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glNormalPointerListIBM")
+
+{-# NOINLINE glNormalPointerListIBMFunPtr #-}
+
+-- | Usage: @'glSecondaryColorPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @SecondaryColorPointerTypeIBM@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glSecondaryColorPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glSecondaryColorPointerListIBM = ffiintenumintPtrPtrVintIOV glSecondaryColorPointerListIBMFunPtr
+
+glSecondaryColorPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
+glSecondaryColorPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointerListIBM")
+
+{-# NOINLINE glSecondaryColorPointerListIBMFunPtr #-}
+
+-- | Usage: @'glTexCoordPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glTexCoordPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glTexCoordPointerListIBM = ffiintenumintPtrPtrVintIOV glTexCoordPointerListIBMFunPtr
+
+glTexCoordPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
+glTexCoordPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointerListIBM")
+
+{-# NOINLINE glTexCoordPointerListIBMFunPtr #-}
+
+-- | Usage: @'glVertexPointerListIBM' size type stride pointer ptrstride@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glVertexPointerListIBM :: MonadIO m => GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+glVertexPointerListIBM = ffiintenumintPtrPtrVintIOV glVertexPointerListIBMFunPtr
+
+glVertexPointerListIBMFunPtr :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ())
+glVertexPointerListIBMFunPtr = unsafePerformIO (getProcAddress "glVertexPointerListIBM")
+
+{-# NOINLINE glVertexPointerListIBMFunPtr #-}
+
+pattern GL_COLOR_ARRAY_LIST_IBM = 103072
+
+pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082
+
+pattern GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075
+
+pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085
+
+pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076
+
+pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086
+
+pattern GL_INDEX_ARRAY_LIST_IBM = 103073
+
+pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083
+
+pattern GL_NORMAL_ARRAY_LIST_IBM = 103071
+
+pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081
+
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077
+
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087
+
+pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074
+
+pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084
+
+pattern GL_VERTEX_ARRAY_LIST_IBM = 103070
+
+pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080
diff --git a/generated-src/Graphics/GL/Ext/IMG.hs b/generated-src/Graphics/GL/Ext/IMG.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG.hs
@@ -0,0 +1,28 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG (
+  -- * IMG Extensions
+    module Graphics.GL.Ext.IMG.BindlessTexture
+  , module Graphics.GL.Ext.IMG.FramebufferDownsample
+  , module Graphics.GL.Ext.IMG.MultisampledRenderToTexture
+  , module Graphics.GL.Ext.IMG.ProgramBinary
+  , module Graphics.GL.Ext.IMG.ReadFormat
+  , module Graphics.GL.Ext.IMG.ShaderBinary
+  , module Graphics.GL.Ext.IMG.TextureCompressionPvrtc
+  , module Graphics.GL.Ext.IMG.TextureCompressionPvrtc2
+  , module Graphics.GL.Ext.IMG.TextureEnvEnhancedFixedFunction
+  , module Graphics.GL.Ext.IMG.TextureFilterCubic
+  , module Graphics.GL.Ext.IMG.UserClipPlane
+) where
+
+import Graphics.GL.Ext.IMG.BindlessTexture
+import Graphics.GL.Ext.IMG.FramebufferDownsample
+import Graphics.GL.Ext.IMG.MultisampledRenderToTexture
+import Graphics.GL.Ext.IMG.ProgramBinary
+import Graphics.GL.Ext.IMG.ReadFormat
+import Graphics.GL.Ext.IMG.ShaderBinary
+import Graphics.GL.Ext.IMG.TextureCompressionPvrtc
+import Graphics.GL.Ext.IMG.TextureCompressionPvrtc2
+import Graphics.GL.Ext.IMG.TextureEnvEnhancedFixedFunction
+import Graphics.GL.Ext.IMG.TextureFilterCubic
+import Graphics.GL.Ext.IMG.UserClipPlane
diff --git a/generated-src/Graphics/GL/Ext/IMG/BindlessTexture.hs b/generated-src/Graphics/GL/Ext/IMG/BindlessTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/BindlessTexture.hs
@@ -0,0 +1,110 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.BindlessTexture (
+  -- * Extension Support
+    gl_IMG_bindless_texture
+
+  -- * GL_IMG_bindless_texture
+  , glGetTextureHandleIMG
+  , glGetTextureSamplerHandleIMG
+  , glProgramUniformHandleui64IMG
+  , glProgramUniformHandleui64vIMG
+  , glUniformHandleui64IMG
+  , glUniformHandleui64vIMG
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_bindless_texture.txt GL_IMG_bindless_texture> extension is available.
+
+gl_IMG_bindless_texture :: Bool
+gl_IMG_bindless_texture = member "GL_IMG_bindless_texture" extensions
+{-# NOINLINE gl_IMG_bindless_texture #-}
+
+-- | Usage: @'glGetTextureHandleIMG' texture@
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glGetTextureHandleARB'.
+
+
+glGetTextureHandleIMG :: MonadIO m => GLuint -> m GLuint64
+glGetTextureHandleIMG = ffiuintIOuint64 glGetTextureHandleIMGFunPtr
+
+glGetTextureHandleIMGFunPtr :: FunPtr (GLuint -> IO GLuint64)
+glGetTextureHandleIMGFunPtr = unsafePerformIO (getProcAddress "glGetTextureHandleIMG")
+
+{-# NOINLINE glGetTextureHandleIMGFunPtr #-}
+
+-- | Usage: @'glGetTextureSamplerHandleIMG' texture sampler@
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glGetTextureSamplerHandleARB'.
+
+
+glGetTextureSamplerHandleIMG :: MonadIO m => GLuint -> GLuint -> m GLuint64
+glGetTextureSamplerHandleIMG = ffiuintuintIOuint64 glGetTextureSamplerHandleIMGFunPtr
+
+glGetTextureSamplerHandleIMGFunPtr :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+glGetTextureSamplerHandleIMGFunPtr = unsafePerformIO (getProcAddress "glGetTextureSamplerHandleIMG")
+
+{-# NOINLINE glGetTextureSamplerHandleIMGFunPtr #-}
+
+-- | Usage: @'glProgramUniformHandleui64IMG' program location value@
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glProgramUniformHandleui64ARB'.
+
+
+glProgramUniformHandleui64IMG :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
+glProgramUniformHandleui64IMG = ffiuintintuint64IOV glProgramUniformHandleui64IMGFunPtr
+
+glProgramUniformHandleui64IMGFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+glProgramUniformHandleui64IMGFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64IMG")
+
+{-# NOINLINE glProgramUniformHandleui64IMGFunPtr #-}
+
+-- | Usage: @'glProgramUniformHandleui64vIMG' program location count values@
+--
+-- The length of @values@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glProgramUniformHandleui64vARB'.
+
+
+glProgramUniformHandleui64vIMG :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glProgramUniformHandleui64vIMG = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vIMGFunPtr
+
+glProgramUniformHandleui64vIMGFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glProgramUniformHandleui64vIMGFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64vIMG")
+
+{-# NOINLINE glProgramUniformHandleui64vIMGFunPtr #-}
+
+-- | Usage: @'glUniformHandleui64IMG' location value@
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glUniformHandleui64ARB'.
+
+
+glUniformHandleui64IMG :: MonadIO m => GLint -> GLuint64 -> m ()
+glUniformHandleui64IMG = ffiintuint64IOV glUniformHandleui64IMGFunPtr
+
+glUniformHandleui64IMGFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
+glUniformHandleui64IMGFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64IMG")
+
+{-# NOINLINE glUniformHandleui64IMGFunPtr #-}
+
+-- | Usage: @'glUniformHandleui64vIMG' location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.BindlessTexture.glUniformHandleui64vARB'.
+
+
+glUniformHandleui64vIMG :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glUniformHandleui64vIMG = ffiintsizeiPtruint64IOV glUniformHandleui64vIMGFunPtr
+
+glUniformHandleui64vIMGFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glUniformHandleui64vIMGFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64vIMG")
+
+{-# NOINLINE glUniformHandleui64vIMGFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/IMG/FramebufferDownsample.hs b/generated-src/Graphics/GL/Ext/IMG/FramebufferDownsample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/FramebufferDownsample.hs
@@ -0,0 +1,68 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.FramebufferDownsample (
+  -- * Extension Support
+    gl_IMG_framebuffer_downsample
+
+  -- * GL_IMG_framebuffer_downsample
+  , glFramebufferTexture2DDownsampleIMG
+  , glFramebufferTextureLayerDownsampleIMG
+  , pattern GL_DOWNSAMPLE_SCALES_IMG
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG
+  , pattern GL_NUM_DOWNSAMPLE_SCALES_IMG
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_framebuffer_downsample.txt GL_IMG_framebuffer_downsample> extension is available.
+
+gl_IMG_framebuffer_downsample :: Bool
+gl_IMG_framebuffer_downsample = member "GL_IMG_framebuffer_downsample" extensions
+{-# NOINLINE gl_IMG_framebuffer_downsample #-}
+
+-- | Usage: @'glFramebufferTexture2DDownsampleIMG' target attachment textarget texture level xscale yscale@
+
+
+glFramebufferTexture2DDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> m ()
+glFramebufferTexture2DDownsampleIMG = ffienumenumenumuintintintintIOV glFramebufferTexture2DDownsampleIMGFunPtr
+
+glFramebufferTexture2DDownsampleIMGFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ())
+glFramebufferTexture2DDownsampleIMGFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DDownsampleIMG")
+
+{-# NOINLINE glFramebufferTexture2DDownsampleIMGFunPtr #-}
+
+-- | Usage: @'glFramebufferTextureLayerDownsampleIMG' target attachment texture level layer xscale yscale@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+
+
+glFramebufferTextureLayerDownsampleIMG :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glFramebufferTextureLayerDownsampleIMG = ffienumenumuintintintintintIOV glFramebufferTextureLayerDownsampleIMGFunPtr
+
+glFramebufferTextureLayerDownsampleIMGFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerDownsampleIMGFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerDownsampleIMG")
+
+{-# NOINLINE glFramebufferTextureLayerDownsampleIMGFunPtr #-}
+
+pattern GL_DOWNSAMPLE_SCALES_IMG = 0x913E
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG = 0x913F
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG = 0x913C
+
+pattern GL_NUM_DOWNSAMPLE_SCALES_IMG = 0x913D
diff --git a/generated-src/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs b/generated-src/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.MultisampledRenderToTexture (
+  -- * Extension Support
+    gl_IMG_multisampled_render_to_texture
+
+  -- * GL_IMG_multisampled_render_to_texture
+  , glFramebufferTexture2DMultisampleIMG
+  , glRenderbufferStorageMultisampleIMG
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG
+  , pattern GL_MAX_SAMPLES_IMG
+  , pattern GL_RENDERBUFFER_SAMPLES_IMG
+  , pattern GL_TEXTURE_SAMPLES_IMG
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_multisampled_render_to_texture.txt GL_IMG_multisampled_render_to_texture> extension is available.
+
+gl_IMG_multisampled_render_to_texture :: Bool
+gl_IMG_multisampled_render_to_texture = member "GL_IMG_multisampled_render_to_texture" extensions
+{-# NOINLINE gl_IMG_multisampled_render_to_texture #-}
+
+-- | Usage: @'glFramebufferTexture2DMultisampleIMG' target attachment textarget texture level samples@
+
+
+glFramebufferTexture2DMultisampleIMG :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
+glFramebufferTexture2DMultisampleIMG = ffienumenumenumuintintsizeiIOV glFramebufferTexture2DMultisampleIMGFunPtr
+
+glFramebufferTexture2DMultisampleIMGFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ())
+glFramebufferTexture2DMultisampleIMGFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DMultisampleIMG")
+
+{-# NOINLINE glFramebufferTexture2DMultisampleIMGFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleIMG' target samples internalformat width height@
+
+
+glRenderbufferStorageMultisampleIMG :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleIMG = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleIMGFunPtr
+
+glRenderbufferStorageMultisampleIMGFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleIMGFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleIMG")
+
+{-# NOINLINE glRenderbufferStorageMultisampleIMGFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134
+
+pattern GL_MAX_SAMPLES_IMG = 0x9135
+
+pattern GL_RENDERBUFFER_SAMPLES_IMG = 0x9133
+
+pattern GL_TEXTURE_SAMPLES_IMG = 0x9136
diff --git a/generated-src/Graphics/GL/Ext/IMG/ProgramBinary.hs b/generated-src/Graphics/GL/Ext/IMG/ProgramBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/ProgramBinary.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.ProgramBinary (
+  -- * Extension Support
+    gl_IMG_program_binary
+
+  -- * GL_IMG_program_binary
+  , pattern GL_SGX_PROGRAM_BINARY_IMG
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_program_binary.txt GL_IMG_program_binary> extension is available.
+
+gl_IMG_program_binary :: Bool
+gl_IMG_program_binary = member "GL_IMG_program_binary" extensions
+{-# NOINLINE gl_IMG_program_binary #-}
+
+pattern GL_SGX_PROGRAM_BINARY_IMG = 0x9130
diff --git a/generated-src/Graphics/GL/Ext/IMG/ReadFormat.hs b/generated-src/Graphics/GL/Ext/IMG/ReadFormat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/ReadFormat.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.ReadFormat (
+  -- * Extension Support
+    gl_IMG_read_format
+
+  -- * GL_IMG_read_format
+  , pattern GL_BGRA_IMG
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_read_format.txt GL_IMG_read_format> extension is available.
+
+gl_IMG_read_format :: Bool
+gl_IMG_read_format = member "GL_IMG_read_format" extensions
+{-# NOINLINE gl_IMG_read_format #-}
+
+pattern GL_BGRA_IMG = 0x80E1
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365
diff --git a/generated-src/Graphics/GL/Ext/IMG/ShaderBinary.hs b/generated-src/Graphics/GL/Ext/IMG/ShaderBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/ShaderBinary.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.ShaderBinary (
+  -- * Extension Support
+    gl_IMG_shader_binary
+
+  -- * GL_IMG_shader_binary
+  , pattern GL_SGX_BINARY_IMG
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_shader_binary.txt GL_IMG_shader_binary> extension is available.
+
+gl_IMG_shader_binary :: Bool
+gl_IMG_shader_binary = member "GL_IMG_shader_binary" extensions
+{-# NOINLINE gl_IMG_shader_binary #-}
+
+pattern GL_SGX_BINARY_IMG = 0x8C0A
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.TextureCompressionPvrtc (
+  -- * Extension Support
+    gl_IMG_texture_compression_pvrtc
+
+  -- * GL_IMG_texture_compression_pvrtc
+  , pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
+  , pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
+  , pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
+  , pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc.txt GL_IMG_texture_compression_pvrtc> extension is available.
+
+gl_IMG_texture_compression_pvrtc :: Bool
+gl_IMG_texture_compression_pvrtc = member "GL_IMG_texture_compression_pvrtc" extensions
+{-# NOINLINE gl_IMG_texture_compression_pvrtc #-}
+
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03
+
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02
+
+pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01
+
+pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.TextureCompressionPvrtc2 (
+  -- * Extension Support
+    gl_IMG_texture_compression_pvrtc2
+
+  -- * GL_IMG_texture_compression_pvrtc2
+  , pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG
+  , pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_compression_pvrtc2.txt GL_IMG_texture_compression_pvrtc2> extension is available.
+
+gl_IMG_texture_compression_pvrtc2 :: Bool
+gl_IMG_texture_compression_pvrtc2 = member "GL_IMG_texture_compression_pvrtc2" extensions
+{-# NOINLINE gl_IMG_texture_compression_pvrtc2 #-}
+
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137
+
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs b/generated-src/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs
@@ -0,0 +1,38 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.TextureEnvEnhancedFixedFunction (
+  -- * Extension Support
+    gl_IMG_texture_env_enhanced_fixed_function
+
+  -- * GL_IMG_texture_env_enhanced_fixed_function
+  , pattern GL_ADD_BLEND_IMG
+  , pattern GL_DOT3_RGBA_IMG
+  , pattern GL_FACTOR_ALPHA_MODULATE_IMG
+  , pattern GL_FRAGMENT_ALPHA_MODULATE_IMG
+  , pattern GL_MODULATE_COLOR_IMG
+  , pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG
+  , pattern GL_TEXTURE_ALPHA_MODULATE_IMG
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_texture_env_enhanced_fixed_function.txt GL_IMG_texture_env_enhanced_fixed_function> extension is available.
+
+gl_IMG_texture_env_enhanced_fixed_function :: Bool
+gl_IMG_texture_env_enhanced_fixed_function = member "GL_IMG_texture_env_enhanced_fixed_function" extensions
+{-# NOINLINE gl_IMG_texture_env_enhanced_fixed_function #-}
+
+pattern GL_ADD_BLEND_IMG = 0x8C09
+
+pattern GL_DOT3_RGBA_IMG = 0x86AF
+
+pattern GL_FACTOR_ALPHA_MODULATE_IMG = 0x8C07
+
+pattern GL_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08
+
+pattern GL_MODULATE_COLOR_IMG = 0x8C04
+
+pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05
+
+pattern GL_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureFilterCubic.hs b/generated-src/Graphics/GL/Ext/IMG/TextureFilterCubic.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureFilterCubic.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.TextureFilterCubic (
+  -- * Extension Support
+    gl_IMG_texture_filter_cubic
+
+  -- * GL_IMG_texture_filter_cubic
+  , pattern GL_CUBIC_IMG
+  , pattern GL_CUBIC_MIPMAP_LINEAR_IMG
+  , pattern GL_CUBIC_MIPMAP_NEAREST_IMG
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_filter_cubic.txt GL_IMG_texture_filter_cubic> extension is available.
+
+gl_IMG_texture_filter_cubic :: Bool
+gl_IMG_texture_filter_cubic = member "GL_IMG_texture_filter_cubic" extensions
+{-# NOINLINE gl_IMG_texture_filter_cubic #-}
+
+pattern GL_CUBIC_IMG = 0x9139
+
+pattern GL_CUBIC_MIPMAP_LINEAR_IMG = 0x913B
+
+pattern GL_CUBIC_MIPMAP_NEAREST_IMG = 0x913A
diff --git a/generated-src/Graphics/GL/Ext/IMG/UserClipPlane.hs b/generated-src/Graphics/GL/Ext/IMG/UserClipPlane.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/IMG/UserClipPlane.hs
@@ -0,0 +1,71 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.IMG.UserClipPlane (
+  -- * Extension Support
+    gl_IMG_user_clip_plane
+
+  -- * GL_IMG_user_clip_plane
+  , glClipPlanefIMG
+  , glClipPlanexIMG
+  , pattern GL_CLIP_PLANE0_IMG
+  , pattern GL_CLIP_PLANE1_IMG
+  , pattern GL_CLIP_PLANE2_IMG
+  , pattern GL_CLIP_PLANE3_IMG
+  , pattern GL_CLIP_PLANE4_IMG
+  , pattern GL_CLIP_PLANE5_IMG
+  , pattern GL_MAX_CLIP_PLANES_IMG
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/IMG/IMG_user_clip_plane.txt GL_IMG_user_clip_plane> extension is available.
+
+gl_IMG_user_clip_plane :: Bool
+gl_IMG_user_clip_plane = member "GL_IMG_user_clip_plane" extensions
+{-# NOINLINE gl_IMG_user_clip_plane #-}
+
+-- | Usage: @'glClipPlanefIMG' p eqn@
+--
+-- The length of @eqn@ should be @4@.
+
+
+glClipPlanefIMG :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glClipPlanefIMG = ffienumPtrfloatIOV glClipPlanefIMGFunPtr
+
+glClipPlanefIMGFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glClipPlanefIMGFunPtr = unsafePerformIO (getProcAddress "glClipPlanefIMG")
+
+{-# NOINLINE glClipPlanefIMGFunPtr #-}
+
+-- | Usage: @'glClipPlanexIMG' p eqn@
+--
+-- The length of @eqn@ should be @4@.
+
+
+glClipPlanexIMG :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glClipPlanexIMG = ffienumPtrfixedIOV glClipPlanexIMGFunPtr
+
+glClipPlanexIMGFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glClipPlanexIMGFunPtr = unsafePerformIO (getProcAddress "glClipPlanexIMG")
+
+{-# NOINLINE glClipPlanexIMGFunPtr #-}
+
+pattern GL_CLIP_PLANE0_IMG = 0x3000
+
+pattern GL_CLIP_PLANE1_IMG = 0x3001
+
+pattern GL_CLIP_PLANE2_IMG = 0x3002
+
+pattern GL_CLIP_PLANE3_IMG = 0x3003
+
+pattern GL_CLIP_PLANE4_IMG = 0x3004
+
+pattern GL_CLIP_PLANE5_IMG = 0x3005
+
+pattern GL_MAX_CLIP_PLANES_IMG = 0x0D32
diff --git a/generated-src/Graphics/GL/Ext/INGR.hs b/generated-src/Graphics/GL/Ext/INGR.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INGR.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INGR (
+  -- * INGR Extensions
+    module Graphics.GL.Ext.INGR.BlendFuncSeparate
+  , module Graphics.GL.Ext.INGR.ColorClamp
+  , module Graphics.GL.Ext.INGR.InterlaceRead
+) where
+
+import Graphics.GL.Ext.INGR.BlendFuncSeparate
+import Graphics.GL.Ext.INGR.ColorClamp
+import Graphics.GL.Ext.INGR.InterlaceRead
diff --git a/generated-src/Graphics/GL/Ext/INGR/BlendFuncSeparate.hs b/generated-src/Graphics/GL/Ext/INGR/BlendFuncSeparate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INGR/BlendFuncSeparate.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INGR.BlendFuncSeparate (
+  -- * Extension Support
+    gl_INGR_blend_func_separate
+
+  -- * GL_INGR_blend_func_separate
+  , glBlendFuncSeparateINGR
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_INGR_blend_func_separate extension is available.
+
+gl_INGR_blend_func_separate :: Bool
+gl_INGR_blend_func_separate = member "GL_INGR_blend_func_separate" extensions
+{-# NOINLINE gl_INGR_blend_func_separate #-}
+
+-- | Usage: @'glBlendFuncSeparateINGR' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
+--
+-- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparate'.
+
+
+glBlendFuncSeparateINGR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparateINGR = ffienumenumenumenumIOV glBlendFuncSeparateINGRFunPtr
+
+glBlendFuncSeparateINGRFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateINGRFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateINGR")
+
+{-# NOINLINE glBlendFuncSeparateINGRFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/INGR/ColorClamp.hs b/generated-src/Graphics/GL/Ext/INGR/ColorClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INGR/ColorClamp.hs
@@ -0,0 +1,41 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INGR.ColorClamp (
+  -- * Extension Support
+    gl_INGR_color_clamp
+
+  -- * GL_INGR_color_clamp
+  , pattern GL_ALPHA_MAX_CLAMP_INGR
+  , pattern GL_ALPHA_MIN_CLAMP_INGR
+  , pattern GL_BLUE_MAX_CLAMP_INGR
+  , pattern GL_BLUE_MIN_CLAMP_INGR
+  , pattern GL_GREEN_MAX_CLAMP_INGR
+  , pattern GL_GREEN_MIN_CLAMP_INGR
+  , pattern GL_RED_MAX_CLAMP_INGR
+  , pattern GL_RED_MIN_CLAMP_INGR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/color_clamp.txt GL_INGR_color_clamp> extension is available.
+
+gl_INGR_color_clamp :: Bool
+gl_INGR_color_clamp = member "GL_INGR_color_clamp" extensions
+{-# NOINLINE gl_INGR_color_clamp #-}
+
+pattern GL_ALPHA_MAX_CLAMP_INGR = 0x8567
+
+pattern GL_ALPHA_MIN_CLAMP_INGR = 0x8563
+
+pattern GL_BLUE_MAX_CLAMP_INGR = 0x8566
+
+pattern GL_BLUE_MIN_CLAMP_INGR = 0x8562
+
+pattern GL_GREEN_MAX_CLAMP_INGR = 0x8565
+
+pattern GL_GREEN_MIN_CLAMP_INGR = 0x8561
+
+pattern GL_RED_MAX_CLAMP_INGR = 0x8564
+
+pattern GL_RED_MIN_CLAMP_INGR = 0x8560
diff --git a/generated-src/Graphics/GL/Ext/INGR/InterlaceRead.hs b/generated-src/Graphics/GL/Ext/INGR/InterlaceRead.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INGR/InterlaceRead.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INGR.InterlaceRead (
+  -- * Extension Support
+    gl_INGR_interlace_read
+
+  -- * GL_INGR_interlace_read
+  , pattern GL_INTERLACE_READ_INGR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INGR/interlace_read.txt GL_INGR_interlace_read> extension is available.
+
+gl_INGR_interlace_read :: Bool
+gl_INGR_interlace_read = member "GL_INGR_interlace_read" extensions
+{-# NOINLINE gl_INGR_interlace_read #-}
+
+pattern GL_INTERLACE_READ_INGR = 0x8568
diff --git a/generated-src/Graphics/GL/Ext/INTEL.hs b/generated-src/Graphics/GL/Ext/INTEL.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INTEL.hs
@@ -0,0 +1,18 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INTEL (
+  -- * INTEL Extensions
+    module Graphics.GL.Ext.INTEL.ConservativeRasterization
+  , module Graphics.GL.Ext.INTEL.FragmentShaderOrdering
+  , module Graphics.GL.Ext.INTEL.FramebufferCMAA
+  , module Graphics.GL.Ext.INTEL.MapTexture
+  , module Graphics.GL.Ext.INTEL.ParallelArrays
+  , module Graphics.GL.Ext.INTEL.PerformanceQuery
+) where
+
+import Graphics.GL.Ext.INTEL.ConservativeRasterization
+import Graphics.GL.Ext.INTEL.FragmentShaderOrdering
+import Graphics.GL.Ext.INTEL.FramebufferCMAA
+import Graphics.GL.Ext.INTEL.MapTexture
+import Graphics.GL.Ext.INTEL.ParallelArrays
+import Graphics.GL.Ext.INTEL.PerformanceQuery
diff --git a/generated-src/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs b/generated-src/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INTEL.ConservativeRasterization (
+  -- * Extension Support
+    gl_INTEL_conservative_rasterization
+
+  -- * GL_INTEL_conservative_rasterization
+  , pattern GL_CONSERVATIVE_RASTERIZATION_INTEL
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/conservative_rasterization.txt GL_INTEL_conservative_rasterization> extension is available.
+
+gl_INTEL_conservative_rasterization :: Bool
+gl_INTEL_conservative_rasterization = member "GL_INTEL_conservative_rasterization" extensions
+{-# NOINLINE gl_INTEL_conservative_rasterization #-}
+
+pattern GL_CONSERVATIVE_RASTERIZATION_INTEL = 0x83FE
diff --git a/generated-src/Graphics/GL/Ext/INTEL/FragmentShaderOrdering.hs b/generated-src/Graphics/GL/Ext/INTEL/FragmentShaderOrdering.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INTEL/FragmentShaderOrdering.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INTEL.FragmentShaderOrdering (
+  -- * Extension Support
+    gl_INTEL_fragment_shader_ordering
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/fragment_shader_ordering.txt GL_INTEL_fragment_shader_ordering> extension is available.
+
+gl_INTEL_fragment_shader_ordering :: Bool
+gl_INTEL_fragment_shader_ordering = member "GL_INTEL_fragment_shader_ordering" extensions
+{-# NOINLINE gl_INTEL_fragment_shader_ordering #-}
diff --git a/generated-src/Graphics/GL/Ext/INTEL/FramebufferCMAA.hs b/generated-src/Graphics/GL/Ext/INTEL/FramebufferCMAA.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INTEL/FramebufferCMAA.hs
@@ -0,0 +1,33 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INTEL.FramebufferCMAA (
+  -- * Extension Support
+    gl_INTEL_framebuffer_CMAA
+
+  -- * GL_INTEL_framebuffer_CMAA
+  , glApplyFramebufferAttachmentCMAAINTEL
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/framebuffer_CMAA.txt GL_INTEL_framebuffer_CMAA> extension is available.
+
+gl_INTEL_framebuffer_CMAA :: Bool
+gl_INTEL_framebuffer_CMAA = member "GL_INTEL_framebuffer_CMAA" extensions
+{-# NOINLINE gl_INTEL_framebuffer_CMAA #-}
+
+-- | Usage: @'glApplyFramebufferAttachmentCMAAINTEL'@
+
+
+glApplyFramebufferAttachmentCMAAINTEL :: MonadIO m => m ()
+glApplyFramebufferAttachmentCMAAINTEL = ffiIOV glApplyFramebufferAttachmentCMAAINTELFunPtr
+
+glApplyFramebufferAttachmentCMAAINTELFunPtr :: FunPtr (IO ())
+glApplyFramebufferAttachmentCMAAINTELFunPtr = unsafePerformIO (getProcAddress "glApplyFramebufferAttachmentCMAAINTEL")
+
+{-# NOINLINE glApplyFramebufferAttachmentCMAAINTELFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/INTEL/MapTexture.hs b/generated-src/Graphics/GL/Ext/INTEL/MapTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INTEL/MapTexture.hs
@@ -0,0 +1,74 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INTEL.MapTexture (
+  -- * Extension Support
+    gl_INTEL_map_texture
+
+  -- * GL_INTEL_map_texture
+  , glMapTexture2DINTEL
+  , glSyncTextureINTEL
+  , glUnmapTexture2DINTEL
+  , pattern GL_LAYOUT_DEFAULT_INTEL
+  , pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL
+  , pattern GL_LAYOUT_LINEAR_INTEL
+  , pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/map_texture.txt GL_INTEL_map_texture> extension is available.
+
+gl_INTEL_map_texture :: Bool
+gl_INTEL_map_texture = member "GL_INTEL_map_texture" extensions
+{-# NOINLINE gl_INTEL_map_texture #-}
+
+-- | Usage: @'glMapTexture2DINTEL' texture level access stride layout@
+--
+-- The length of @stride@ should be @1@.
+--
+-- The length of @layout@ should be @1@.
+
+
+glMapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr ())
+glMapTexture2DINTEL = ffiuintintbitfieldPtrintPtrenumIOPtrV glMapTexture2DINTELFunPtr
+
+glMapTexture2DINTELFunPtr :: FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ()))
+glMapTexture2DINTELFunPtr = unsafePerformIO (getProcAddress "glMapTexture2DINTEL")
+
+{-# NOINLINE glMapTexture2DINTELFunPtr #-}
+
+-- | Usage: @'glSyncTextureINTEL' texture@
+
+
+glSyncTextureINTEL :: MonadIO m => GLuint -> m ()
+glSyncTextureINTEL = ffiuintIOV glSyncTextureINTELFunPtr
+
+glSyncTextureINTELFunPtr :: FunPtr (GLuint -> IO ())
+glSyncTextureINTELFunPtr = unsafePerformIO (getProcAddress "glSyncTextureINTEL")
+
+{-# NOINLINE glSyncTextureINTELFunPtr #-}
+
+-- | Usage: @'glUnmapTexture2DINTEL' texture level@
+
+
+glUnmapTexture2DINTEL :: MonadIO m => GLuint -> GLint -> m ()
+glUnmapTexture2DINTEL = ffiuintintIOV glUnmapTexture2DINTELFunPtr
+
+glUnmapTexture2DINTELFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glUnmapTexture2DINTELFunPtr = unsafePerformIO (getProcAddress "glUnmapTexture2DINTEL")
+
+{-# NOINLINE glUnmapTexture2DINTELFunPtr #-}
+
+pattern GL_LAYOUT_DEFAULT_INTEL = 0
+
+pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2
+
+pattern GL_LAYOUT_LINEAR_INTEL = 1
+
+pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF
diff --git a/generated-src/Graphics/GL/Ext/INTEL/ParallelArrays.hs b/generated-src/Graphics/GL/Ext/INTEL/ParallelArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INTEL/ParallelArrays.hs
@@ -0,0 +1,101 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INTEL.ParallelArrays (
+  -- * Extension Support
+    gl_INTEL_parallel_arrays
+
+  -- * GL_INTEL_parallel_arrays
+  , glColorPointervINTEL
+  , glNormalPointervINTEL
+  , glTexCoordPointervINTEL
+  , glVertexPointervINTEL
+  , pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL
+  , pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL
+  , pattern GL_PARALLEL_ARRAYS_INTEL
+  , pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL
+  , pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/INTEL/parallel_arrays.txt GL_INTEL_parallel_arrays> extension is available.
+
+gl_INTEL_parallel_arrays :: Bool
+gl_INTEL_parallel_arrays = member "GL_INTEL_parallel_arrays" extensions
+{-# NOINLINE gl_INTEL_parallel_arrays #-}
+
+-- | Usage: @'glColorPointervINTEL' size type pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
+
+
+glColorPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+glColorPointervINTEL = ffiintenumPtrPtrVIOV glColorPointervINTELFunPtr
+
+glColorPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glColorPointervINTELFunPtr = unsafePerformIO (getProcAddress "glColorPointervINTEL")
+
+{-# NOINLINE glColorPointervINTELFunPtr #-}
+
+-- | Usage: @'glNormalPointervINTEL' type pointer@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
+
+
+glNormalPointervINTEL :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glNormalPointervINTEL = ffienumPtrPtrVIOV glNormalPointervINTELFunPtr
+
+glNormalPointervINTELFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
+glNormalPointervINTELFunPtr = unsafePerformIO (getProcAddress "glNormalPointervINTEL")
+
+{-# NOINLINE glNormalPointervINTELFunPtr #-}
+
+-- | Usage: @'glTexCoordPointervINTEL' size type pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
+
+
+glTexCoordPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+glTexCoordPointervINTEL = ffiintenumPtrPtrVIOV glTexCoordPointervINTELFunPtr
+
+glTexCoordPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glTexCoordPointervINTELFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointervINTEL")
+
+{-# NOINLINE glTexCoordPointervINTELFunPtr #-}
+
+-- | Usage: @'glVertexPointervINTEL' size type pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @4@.
+
+
+glVertexPointervINTEL :: MonadIO m => GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+glVertexPointervINTEL = ffiintenumPtrPtrVIOV glVertexPointervINTELFunPtr
+
+glVertexPointervINTELFunPtr :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glVertexPointervINTELFunPtr = unsafePerformIO (getProcAddress "glVertexPointervINTEL")
+
+{-# NOINLINE glVertexPointervINTELFunPtr #-}
+
+pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7
+
+pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6
+
+pattern GL_PARALLEL_ARRAYS_INTEL = 0x83F4
+
+pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8
+
+pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5
diff --git a/generated-src/Graphics/GL/Ext/INTEL/PerformanceQuery.hs b/generated-src/Graphics/GL/Ext/INTEL/PerformanceQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/INTEL/PerformanceQuery.hs
@@ -0,0 +1,202 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.INTEL.PerformanceQuery (
+  -- * Extension Support
+    gl_INTEL_performance_query
+
+  -- * GL_INTEL_performance_query
+  , glBeginPerfQueryINTEL
+  , glCreatePerfQueryINTEL
+  , glDeletePerfQueryINTEL
+  , glEndPerfQueryINTEL
+  , glGetFirstPerfQueryIdINTEL
+  , glGetNextPerfQueryIdINTEL
+  , glGetPerfCounterInfoINTEL
+  , glGetPerfQueryDataINTEL
+  , glGetPerfQueryIdByNameINTEL
+  , glGetPerfQueryInfoINTEL
+  , pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL
+  , pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL
+  , pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL
+  , pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL
+  , pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL
+  , pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL
+  , pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL
+  , pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL
+  , pattern GL_PERFQUERY_COUNTER_EVENT_INTEL
+  , pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL
+  , pattern GL_PERFQUERY_COUNTER_RAW_INTEL
+  , pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL
+  , pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL
+  , pattern GL_PERFQUERY_DONOT_FLUSH_INTEL
+  , pattern GL_PERFQUERY_FLUSH_INTEL
+  , pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL
+  , pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL
+  , pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL
+  , pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL
+  , pattern GL_PERFQUERY_WAIT_INTEL
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/INTEL/INTEL_performance_query.txt GL_INTEL_performance_query> extension is available.
+
+gl_INTEL_performance_query :: Bool
+gl_INTEL_performance_query = member "GL_INTEL_performance_query" extensions
+{-# NOINLINE gl_INTEL_performance_query #-}
+
+-- | Usage: @'glBeginPerfQueryINTEL' queryHandle@
+
+
+glBeginPerfQueryINTEL :: MonadIO m => GLuint -> m ()
+glBeginPerfQueryINTEL = ffiuintIOV glBeginPerfQueryINTELFunPtr
+
+glBeginPerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
+glBeginPerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glBeginPerfQueryINTEL")
+
+{-# NOINLINE glBeginPerfQueryINTELFunPtr #-}
+
+-- | Usage: @'glCreatePerfQueryINTEL' queryId queryHandle@
+
+
+glCreatePerfQueryINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glCreatePerfQueryINTEL = ffiuintPtruintIOV glCreatePerfQueryINTELFunPtr
+
+glCreatePerfQueryINTELFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glCreatePerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glCreatePerfQueryINTEL")
+
+{-# NOINLINE glCreatePerfQueryINTELFunPtr #-}
+
+-- | Usage: @'glDeletePerfQueryINTEL' queryHandle@
+
+
+glDeletePerfQueryINTEL :: MonadIO m => GLuint -> m ()
+glDeletePerfQueryINTEL = ffiuintIOV glDeletePerfQueryINTELFunPtr
+
+glDeletePerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
+glDeletePerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glDeletePerfQueryINTEL")
+
+{-# NOINLINE glDeletePerfQueryINTELFunPtr #-}
+
+-- | Usage: @'glEndPerfQueryINTEL' queryHandle@
+
+
+glEndPerfQueryINTEL :: MonadIO m => GLuint -> m ()
+glEndPerfQueryINTEL = ffiuintIOV glEndPerfQueryINTELFunPtr
+
+glEndPerfQueryINTELFunPtr :: FunPtr (GLuint -> IO ())
+glEndPerfQueryINTELFunPtr = unsafePerformIO (getProcAddress "glEndPerfQueryINTEL")
+
+{-# NOINLINE glEndPerfQueryINTELFunPtr #-}
+
+-- | Usage: @'glGetFirstPerfQueryIdINTEL' queryId@
+
+
+glGetFirstPerfQueryIdINTEL :: MonadIO m => Ptr GLuint -> m ()
+glGetFirstPerfQueryIdINTEL = ffiPtruintIOV glGetFirstPerfQueryIdINTELFunPtr
+
+glGetFirstPerfQueryIdINTELFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glGetFirstPerfQueryIdINTELFunPtr = unsafePerformIO (getProcAddress "glGetFirstPerfQueryIdINTEL")
+
+{-# NOINLINE glGetFirstPerfQueryIdINTELFunPtr #-}
+
+-- | Usage: @'glGetNextPerfQueryIdINTEL' queryId nextQueryId@
+
+
+glGetNextPerfQueryIdINTEL :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glGetNextPerfQueryIdINTEL = ffiuintPtruintIOV glGetNextPerfQueryIdINTELFunPtr
+
+glGetNextPerfQueryIdINTELFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glGetNextPerfQueryIdINTELFunPtr = unsafePerformIO (getProcAddress "glGetNextPerfQueryIdINTEL")
+
+{-# NOINLINE glGetNextPerfQueryIdINTELFunPtr #-}
+
+-- | Usage: @'glGetPerfCounterInfoINTEL' queryId counterId counterNameLength counterName counterDescLength counterDesc counterOffset counterDataSize counterTypeEnum counterDataTypeEnum rawCounterMaxValue@
+
+
+glGetPerfCounterInfoINTEL :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
+glGetPerfCounterInfoINTEL = ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV glGetPerfCounterInfoINTELFunPtr
+
+glGetPerfCounterInfoINTELFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+glGetPerfCounterInfoINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfCounterInfoINTEL")
+
+{-# NOINLINE glGetPerfCounterInfoINTELFunPtr #-}
+
+-- | Usage: @'glGetPerfQueryDataINTEL' queryHandle flags dataSize data bytesWritten@
+
+
+glGetPerfQueryDataINTEL :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()
+glGetPerfQueryDataINTEL = ffiuintuintsizeiPtrVPtruintIOV glGetPerfQueryDataINTELFunPtr
+
+glGetPerfQueryDataINTELFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ())
+glGetPerfQueryDataINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryDataINTEL")
+
+{-# NOINLINE glGetPerfQueryDataINTELFunPtr #-}
+
+-- | Usage: @'glGetPerfQueryIdByNameINTEL' queryName queryId@
+
+
+glGetPerfQueryIdByNameINTEL :: MonadIO m => Ptr GLchar -> Ptr GLuint -> m ()
+glGetPerfQueryIdByNameINTEL = ffiPtrcharPtruintIOV glGetPerfQueryIdByNameINTELFunPtr
+
+glGetPerfQueryIdByNameINTELFunPtr :: FunPtr (Ptr GLchar -> Ptr GLuint -> IO ())
+glGetPerfQueryIdByNameINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryIdByNameINTEL")
+
+{-# NOINLINE glGetPerfQueryIdByNameINTELFunPtr #-}
+
+-- | Usage: @'glGetPerfQueryInfoINTEL' queryId queryNameLength queryName dataSize noCounters noInstances capsMask@
+
+
+glGetPerfQueryInfoINTEL :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
+glGetPerfQueryInfoINTEL = ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV glGetPerfQueryInfoINTELFunPtr
+
+glGetPerfQueryInfoINTELFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
+glGetPerfQueryInfoINTELFunPtr = unsafePerformIO (getProcAddress "glGetPerfQueryInfoINTEL")
+
+{-# NOINLINE glGetPerfQueryInfoINTELFunPtr #-}
+
+pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC
+
+pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB
+
+pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA
+
+pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8
+
+pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9
+
+pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF
+
+pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1
+
+pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2
+
+pattern GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0
+
+pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE
+
+pattern GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4
+
+pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3
+
+pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5
+
+pattern GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9
+
+pattern GL_PERFQUERY_FLUSH_INTEL = 0x83FA
+
+pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001
+
+pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500
+
+pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD
+
+pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000
+
+pattern GL_PERFQUERY_WAIT_INTEL = 0x83FB
diff --git a/generated-src/Graphics/GL/Ext/KHR.hs b/generated-src/Graphics/GL/Ext/KHR.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR (
+  -- * KHR Extensions
+    module Graphics.GL.Ext.KHR.BlendEquationAdvanced
+  , module Graphics.GL.Ext.KHR.BlendEquationAdvancedCoherent
+  , module Graphics.GL.Ext.KHR.ContextFlushControl
+  , module Graphics.GL.Ext.KHR.Debug
+  , module Graphics.GL.Ext.KHR.NoError
+  , module Graphics.GL.Ext.KHR.RobustBufferAccessBehavior
+  , module Graphics.GL.Ext.KHR.Robustness
+  , module Graphics.GL.Ext.KHR.TextureCompressionAstcHdr
+  , module Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
+  , module Graphics.GL.Ext.KHR.TextureCompressionAstcSliced3d
+) where
+
+import Graphics.GL.Ext.KHR.BlendEquationAdvanced
+import Graphics.GL.Ext.KHR.BlendEquationAdvancedCoherent
+import Graphics.GL.Ext.KHR.ContextFlushControl
+import Graphics.GL.Ext.KHR.Debug
+import Graphics.GL.Ext.KHR.NoError
+import Graphics.GL.Ext.KHR.RobustBufferAccessBehavior
+import Graphics.GL.Ext.KHR.Robustness
+import Graphics.GL.Ext.KHR.TextureCompressionAstcHdr
+import Graphics.GL.Ext.KHR.TextureCompressionAstcLdr
+import Graphics.GL.Ext.KHR.TextureCompressionAstcSliced3d
diff --git a/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs
@@ -0,0 +1,80 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.BlendEquationAdvanced (
+  -- * Extension Support
+    gl_KHR_blend_equation_advanced
+
+  -- * GL_KHR_blend_equation_advanced
+  , glBlendBarrierKHR
+  , pattern GL_COLORBURN_KHR
+  , pattern GL_COLORDODGE_KHR
+  , pattern GL_DARKEN_KHR
+  , pattern GL_DIFFERENCE_KHR
+  , pattern GL_EXCLUSION_KHR
+  , pattern GL_HARDLIGHT_KHR
+  , pattern GL_HSL_COLOR_KHR
+  , pattern GL_HSL_HUE_KHR
+  , pattern GL_HSL_LUMINOSITY_KHR
+  , pattern GL_HSL_SATURATION_KHR
+  , pattern GL_LIGHTEN_KHR
+  , pattern GL_MULTIPLY_KHR
+  , pattern GL_OVERLAY_KHR
+  , pattern GL_SCREEN_KHR
+  , pattern GL_SOFTLIGHT_KHR
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/blend_equation_advanced.txt GL_KHR_blend_equation_advanced> extension is available.
+
+gl_KHR_blend_equation_advanced :: Bool
+gl_KHR_blend_equation_advanced = member "GL_KHR_blend_equation_advanced" extensions
+{-# NOINLINE gl_KHR_blend_equation_advanced #-}
+
+-- | Usage: @'glBlendBarrierKHR'@
+--
+-- This command is an alias for 'Graphics.GL.Embedded32.glBlendBarrier'.
+
+
+glBlendBarrierKHR :: MonadIO m => m ()
+glBlendBarrierKHR = ffiIOV glBlendBarrierKHRFunPtr
+
+glBlendBarrierKHRFunPtr :: FunPtr (IO ())
+glBlendBarrierKHRFunPtr = unsafePerformIO (getProcAddress "glBlendBarrierKHR")
+
+{-# NOINLINE glBlendBarrierKHRFunPtr #-}
+
+pattern GL_COLORBURN_KHR = 0x929A
+
+pattern GL_COLORDODGE_KHR = 0x9299
+
+pattern GL_DARKEN_KHR = 0x9297
+
+pattern GL_DIFFERENCE_KHR = 0x929E
+
+pattern GL_EXCLUSION_KHR = 0x92A0
+
+pattern GL_HARDLIGHT_KHR = 0x929B
+
+pattern GL_HSL_COLOR_KHR = 0x92AF
+
+pattern GL_HSL_HUE_KHR = 0x92AD
+
+pattern GL_HSL_LUMINOSITY_KHR = 0x92B0
+
+pattern GL_HSL_SATURATION_KHR = 0x92AE
+
+pattern GL_LIGHTEN_KHR = 0x9298
+
+pattern GL_MULTIPLY_KHR = 0x9294
+
+pattern GL_OVERLAY_KHR = 0x9296
+
+pattern GL_SCREEN_KHR = 0x9295
+
+pattern GL_SOFTLIGHT_KHR = 0x929C
diff --git a/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.BlendEquationAdvancedCoherent (
+  -- * Extension Support
+    gl_KHR_blend_equation_advanced_coherent
+
+  -- * GL_KHR_blend_equation_advanced_coherent
+  , pattern GL_BLEND_ADVANCED_COHERENT_KHR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/KHR_blend_equation_advanced_coherent.txt GL_KHR_blend_equation_advanced_coherent> extension is available.
+
+gl_KHR_blend_equation_advanced_coherent :: Bool
+gl_KHR_blend_equation_advanced_coherent = member "GL_KHR_blend_equation_advanced_coherent" extensions
+{-# NOINLINE gl_KHR_blend_equation_advanced_coherent #-}
+
+pattern GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285
diff --git a/generated-src/Graphics/GL/Ext/KHR/ContextFlushControl.hs b/generated-src/Graphics/GL/Ext/KHR/ContextFlushControl.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/ContextFlushControl.hs
@@ -0,0 +1,27 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.ContextFlushControl (
+  -- * Extension Support
+    gl_KHR_context_flush_control
+
+  -- * GL_KHR_context_flush_control
+  , pattern GL_CONTEXT_RELEASE_BEHAVIOR
+  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH
+  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR
+  , pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR
+  , pattern GL_NONE
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/context_flush_control.txt GL_KHR_context_flush_control> extension is available.
+
+gl_KHR_context_flush_control :: Bool
+gl_KHR_context_flush_control = member "GL_KHR_context_flush_control" extensions
+{-# NOINLINE gl_KHR_context_flush_control #-}
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB
diff --git a/generated-src/Graphics/GL/Ext/KHR/Debug.hs b/generated-src/Graphics/GL/Ext/KHR/Debug.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/Debug.hs
@@ -0,0 +1,367 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.Debug (
+  -- * Extension Support
+    gl_KHR_debug
+
+  -- * GL_KHR_debug
+  , glDebugMessageCallback
+  , glDebugMessageCallbackKHR
+  , glDebugMessageControl
+  , glDebugMessageControlKHR
+  , glDebugMessageInsert
+  , glDebugMessageInsertKHR
+  , glGetDebugMessageLog
+  , glGetDebugMessageLogKHR
+  , glGetObjectLabel
+  , glGetObjectLabelKHR
+  , glGetObjectPtrLabel
+  , glGetObjectPtrLabelKHR
+  , glGetPointerv
+  , glGetPointervKHR
+  , glObjectLabel
+  , glObjectLabelKHR
+  , glObjectPtrLabel
+  , glObjectPtrLabelKHR
+  , glPopDebugGroup
+  , glPopDebugGroupKHR
+  , glPushDebugGroup
+  , glPushDebugGroupKHR
+  , pattern GL_BUFFER
+  , pattern GL_BUFFER_KHR
+  , pattern GL_CONTEXT_FLAG_DEBUG_BIT
+  , pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR
+  , pattern GL_DEBUG_CALLBACK_FUNCTION
+  , pattern GL_DEBUG_CALLBACK_FUNCTION_KHR
+  , pattern GL_DEBUG_CALLBACK_USER_PARAM
+  , pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR
+  , pattern GL_DEBUG_GROUP_STACK_DEPTH
+  , pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR
+  , pattern GL_DEBUG_LOGGED_MESSAGES
+  , pattern GL_DEBUG_LOGGED_MESSAGES_KHR
+  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
+  , pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR
+  , pattern GL_DEBUG_OUTPUT
+  , pattern GL_DEBUG_OUTPUT_KHR
+  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS
+  , pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR
+  , pattern GL_DEBUG_SEVERITY_HIGH
+  , pattern GL_DEBUG_SEVERITY_HIGH_KHR
+  , pattern GL_DEBUG_SEVERITY_LOW
+  , pattern GL_DEBUG_SEVERITY_LOW_KHR
+  , pattern GL_DEBUG_SEVERITY_MEDIUM
+  , pattern GL_DEBUG_SEVERITY_MEDIUM_KHR
+  , pattern GL_DEBUG_SEVERITY_NOTIFICATION
+  , pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR
+  , pattern GL_DEBUG_SOURCE_API
+  , pattern GL_DEBUG_SOURCE_API_KHR
+  , pattern GL_DEBUG_SOURCE_APPLICATION
+  , pattern GL_DEBUG_SOURCE_APPLICATION_KHR
+  , pattern GL_DEBUG_SOURCE_OTHER
+  , pattern GL_DEBUG_SOURCE_OTHER_KHR
+  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER
+  , pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR
+  , pattern GL_DEBUG_SOURCE_THIRD_PARTY
+  , pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR
+  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM
+  , pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR
+  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR
+  , pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR
+  , pattern GL_DEBUG_TYPE_ERROR
+  , pattern GL_DEBUG_TYPE_ERROR_KHR
+  , pattern GL_DEBUG_TYPE_MARKER
+  , pattern GL_DEBUG_TYPE_MARKER_KHR
+  , pattern GL_DEBUG_TYPE_OTHER
+  , pattern GL_DEBUG_TYPE_OTHER_KHR
+  , pattern GL_DEBUG_TYPE_PERFORMANCE
+  , pattern GL_DEBUG_TYPE_PERFORMANCE_KHR
+  , pattern GL_DEBUG_TYPE_POP_GROUP
+  , pattern GL_DEBUG_TYPE_POP_GROUP_KHR
+  , pattern GL_DEBUG_TYPE_PORTABILITY
+  , pattern GL_DEBUG_TYPE_PORTABILITY_KHR
+  , pattern GL_DEBUG_TYPE_PUSH_GROUP
+  , pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR
+  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR
+  , pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR
+  , pattern GL_DISPLAY_LIST
+  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH
+  , pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR
+  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES
+  , pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR
+  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH
+  , pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR
+  , pattern GL_MAX_LABEL_LENGTH
+  , pattern GL_MAX_LABEL_LENGTH_KHR
+  , pattern GL_PROGRAM
+  , pattern GL_PROGRAM_KHR
+  , pattern GL_PROGRAM_PIPELINE
+  , pattern GL_PROGRAM_PIPELINE_KHR
+  , pattern GL_QUERY
+  , pattern GL_QUERY_KHR
+  , pattern GL_SAMPLER
+  , pattern GL_SAMPLER_KHR
+  , pattern GL_SHADER
+  , pattern GL_SHADER_KHR
+  , pattern GL_STACK_OVERFLOW
+  , pattern GL_STACK_OVERFLOW_KHR
+  , pattern GL_STACK_UNDERFLOW
+  , pattern GL_STACK_UNDERFLOW_KHR
+  , pattern GL_VERTEX_ARRAY
+  , pattern GL_VERTEX_ARRAY_KHR
+) 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://www.khronos.org/registry/gles/extensions/KHR/debug.txt GL_KHR_debug> extension is available.
+
+gl_KHR_debug :: Bool
+gl_KHR_debug = member "GL_KHR_debug" extensions
+{-# NOINLINE gl_KHR_debug #-}
+
+-- | Usage: @'glDebugMessageCallbackKHR' callback userParam@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageCallback'.
+
+
+glDebugMessageCallbackKHR :: MonadIO m => GLDEBUGPROCKHR -> Ptr () -> m ()
+glDebugMessageCallbackKHR = ffiDEBUGPROCKHRPtrVIOV glDebugMessageCallbackKHRFunPtr
+
+glDebugMessageCallbackKHRFunPtr :: FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ())
+glDebugMessageCallbackKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallbackKHR")
+
+{-# NOINLINE glDebugMessageCallbackKHRFunPtr #-}
+
+-- | Usage: @'glDebugMessageControlKHR' source type severity count ids enabled@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageControl'.
+
+
+glDebugMessageControlKHR :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+glDebugMessageControlKHR = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlKHRFunPtr
+
+glDebugMessageControlKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+glDebugMessageControlKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControlKHR")
+
+{-# NOINLINE glDebugMessageControlKHRFunPtr #-}
+
+-- | Usage: @'glDebugMessageInsertKHR' source type id severity length buf@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDebugMessageInsert'.
+
+
+glDebugMessageInsertKHR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
+glDebugMessageInsertKHR = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertKHRFunPtr
+
+glDebugMessageInsertKHRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+glDebugMessageInsertKHRFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsertKHR")
+
+{-# NOINLINE glDebugMessageInsertKHRFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLogKHR' count bufSize sources types ids severities lengths messageLog@
+--
+-- The length of @sources@ should be @count@.
+--
+-- The length of @types@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @messageLog@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetDebugMessageLog'.
+
+
+glGetDebugMessageLogKHR :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+glGetDebugMessageLogKHR = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogKHRFunPtr
+
+glGetDebugMessageLogKHRFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+glGetDebugMessageLogKHRFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLogKHR")
+
+{-# NOINLINE glGetDebugMessageLogKHRFunPtr #-}
+
+-- | Usage: @'glGetObjectLabelKHR' identifier name bufSize length label@
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetObjectLabel'.
+
+
+glGetObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectLabelKHR = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelKHRFunPtr
+
+glGetObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectLabelKHRFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabelKHR")
+
+{-# NOINLINE glGetObjectLabelKHRFunPtr #-}
+
+-- | Usage: @'glGetObjectPtrLabelKHR' ptr bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetObjectPtrLabel'.
+
+
+glGetObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectPtrLabelKHR = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelKHRFunPtr
+
+glGetObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectPtrLabelKHRFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabelKHR")
+
+{-# NOINLINE glGetObjectPtrLabelKHRFunPtr #-}
+
+-- | Usage: @'glGetPointervKHR' pname params@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetPointerv'.
+
+
+glGetPointervKHR :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glGetPointervKHR = ffienumPtrPtrVIOV glGetPointervKHRFunPtr
+
+glGetPointervKHRFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
+glGetPointervKHRFunPtr = unsafePerformIO (getProcAddress "glGetPointervKHR")
+
+{-# NOINLINE glGetPointervKHRFunPtr #-}
+
+-- | Usage: @'glObjectLabelKHR' identifier name length label@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glObjectLabel'.
+
+
+glObjectLabelKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glObjectLabelKHR = ffienumuintsizeiPtrcharIOV glObjectLabelKHRFunPtr
+
+glObjectLabelKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glObjectLabelKHRFunPtr = unsafePerformIO (getProcAddress "glObjectLabelKHR")
+
+{-# NOINLINE glObjectLabelKHRFunPtr #-}
+
+-- | Usage: @'glObjectPtrLabelKHR' ptr length label@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glObjectPtrLabel'.
+
+
+glObjectPtrLabelKHR :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
+glObjectPtrLabelKHR = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelKHRFunPtr
+
+glObjectPtrLabelKHRFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
+glObjectPtrLabelKHRFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabelKHR")
+
+{-# NOINLINE glObjectPtrLabelKHRFunPtr #-}
+
+-- | Usage: @'glPopDebugGroupKHR'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPopDebugGroup'.
+
+
+glPopDebugGroupKHR :: MonadIO m => m ()
+glPopDebugGroupKHR = ffiIOV glPopDebugGroupKHRFunPtr
+
+glPopDebugGroupKHRFunPtr :: FunPtr (IO ())
+glPopDebugGroupKHRFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroupKHR")
+
+{-# NOINLINE glPopDebugGroupKHRFunPtr #-}
+
+-- | Usage: @'glPushDebugGroupKHR' source id length message@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPushDebugGroup'.
+
+
+glPushDebugGroupKHR :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glPushDebugGroupKHR = ffienumuintsizeiPtrcharIOV glPushDebugGroupKHRFunPtr
+
+glPushDebugGroupKHRFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glPushDebugGroupKHRFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroupKHR")
+
+{-# NOINLINE glPushDebugGroupKHRFunPtr #-}
+
+pattern GL_BUFFER_KHR = 0x82E0
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002
+
+pattern GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D
+
+pattern GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243
+
+pattern GL_DEBUG_OUTPUT_KHR = 0x92E0
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242
+
+pattern GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146
+
+pattern GL_DEBUG_SEVERITY_LOW_KHR = 0x9148
+
+pattern GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B
+
+pattern GL_DEBUG_SOURCE_API_KHR = 0x8246
+
+pattern GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A
+
+pattern GL_DEBUG_SOURCE_OTHER_KHR = 0x824B
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D
+
+pattern GL_DEBUG_TYPE_ERROR_KHR = 0x824C
+
+pattern GL_DEBUG_TYPE_MARKER_KHR = 0x8268
+
+pattern GL_DEBUG_TYPE_OTHER_KHR = 0x8251
+
+pattern GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250
+
+pattern GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A
+
+pattern GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143
+
+pattern GL_MAX_LABEL_LENGTH_KHR = 0x82E8
+
+pattern GL_PROGRAM_KHR = 0x82E2
+
+pattern GL_PROGRAM_PIPELINE_KHR = 0x82E4
+
+pattern GL_QUERY_KHR = 0x82E3
+
+pattern GL_SAMPLER_KHR = 0x82E6
+
+pattern GL_SHADER_KHR = 0x82E1
+
+pattern GL_STACK_OVERFLOW_KHR = 0x0503
+
+pattern GL_STACK_UNDERFLOW_KHR = 0x0504
+
+pattern GL_VERTEX_ARRAY_KHR = 0x8074
diff --git a/generated-src/Graphics/GL/Ext/KHR/NoError.hs b/generated-src/Graphics/GL/Ext/KHR/NoError.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/NoError.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.NoError (
+  -- * Extension Support
+    gl_KHR_no_error
+
+  -- * GL_KHR_no_error
+  , pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/no_error.txt GL_KHR_no_error> extension is available.
+
+gl_KHR_no_error :: Bool
+gl_KHR_no_error = member "GL_KHR_no_error" extensions
+{-# NOINLINE gl_KHR_no_error #-}
+
+pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008
diff --git a/generated-src/Graphics/GL/Ext/KHR/RobustBufferAccessBehavior.hs b/generated-src/Graphics/GL/Ext/KHR/RobustBufferAccessBehavior.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/RobustBufferAccessBehavior.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.RobustBufferAccessBehavior (
+  -- * Extension Support
+    gl_KHR_robust_buffer_access_behavior
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/robust_buffer_access_behavior.txt GL_KHR_robust_buffer_access_behavior> extension is available.
+
+gl_KHR_robust_buffer_access_behavior :: Bool
+gl_KHR_robust_buffer_access_behavior = member "GL_KHR_robust_buffer_access_behavior" extensions
+{-# NOINLINE gl_KHR_robust_buffer_access_behavior #-}
diff --git a/generated-src/Graphics/GL/Ext/KHR/Robustness.hs b/generated-src/Graphics/GL/Ext/KHR/Robustness.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/Robustness.hs
@@ -0,0 +1,141 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.Robustness (
+  -- * Extension Support
+    gl_KHR_robustness
+
+  -- * GL_KHR_robustness
+  , glGetGraphicsResetStatus
+  , glGetGraphicsResetStatusKHR
+  , glGetnUniformfv
+  , glGetnUniformfvKHR
+  , glGetnUniformiv
+  , glGetnUniformivKHR
+  , glGetnUniformuiv
+  , glGetnUniformuivKHR
+  , glReadnPixels
+  , glReadnPixelsKHR
+  , pattern GL_CONTEXT_LOST
+  , pattern GL_CONTEXT_LOST_KHR
+  , pattern GL_CONTEXT_ROBUST_ACCESS
+  , pattern GL_CONTEXT_ROBUST_ACCESS_KHR
+  , pattern GL_GUILTY_CONTEXT_RESET
+  , pattern GL_GUILTY_CONTEXT_RESET_KHR
+  , pattern GL_INNOCENT_CONTEXT_RESET
+  , pattern GL_INNOCENT_CONTEXT_RESET_KHR
+  , pattern GL_LOSE_CONTEXT_ON_RESET
+  , pattern GL_LOSE_CONTEXT_ON_RESET_KHR
+  , pattern GL_NO_ERROR
+  , pattern GL_NO_RESET_NOTIFICATION
+  , pattern GL_NO_RESET_NOTIFICATION_KHR
+  , pattern GL_RESET_NOTIFICATION_STRATEGY
+  , pattern GL_RESET_NOTIFICATION_STRATEGY_KHR
+  , pattern GL_UNKNOWN_CONTEXT_RESET
+  , pattern GL_UNKNOWN_CONTEXT_RESET_KHR
+) 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://www.khronos.org/registry/gles/extensions/KHR/robustness.txt GL_KHR_robustness> extension is available.
+
+gl_KHR_robustness :: Bool
+gl_KHR_robustness = member "GL_KHR_robustness" extensions
+{-# NOINLINE gl_KHR_robustness #-}
+
+-- | Usage: @'glGetGraphicsResetStatusKHR'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetGraphicsResetStatus'.
+
+
+glGetGraphicsResetStatusKHR :: MonadIO m => m GLenum
+glGetGraphicsResetStatusKHR = ffiIOenum glGetGraphicsResetStatusKHRFunPtr
+
+glGetGraphicsResetStatusKHRFunPtr :: FunPtr (IO GLenum)
+glGetGraphicsResetStatusKHRFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatusKHR")
+
+{-# NOINLINE glGetGraphicsResetStatusKHRFunPtr #-}
+
+-- | Usage: @'glGetnUniformfvKHR' program location bufSize params@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetnUniformfv'.
+
+
+glGetnUniformfvKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glGetnUniformfvKHR = ffiuintintsizeiPtrfloatIOV glGetnUniformfvKHRFunPtr
+
+glGetnUniformfvKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnUniformfvKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfvKHR")
+
+{-# NOINLINE glGetnUniformfvKHRFunPtr #-}
+
+-- | Usage: @'glGetnUniformivKHR' program location bufSize params@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetnUniformiv'.
+
+
+glGetnUniformivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glGetnUniformivKHR = ffiuintintsizeiPtrintIOV glGetnUniformivKHRFunPtr
+
+glGetnUniformivKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glGetnUniformivKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformivKHR")
+
+{-# NOINLINE glGetnUniformivKHRFunPtr #-}
+
+-- | Usage: @'glGetnUniformuivKHR' program location bufSize params@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetnUniformuiv'.
+
+
+glGetnUniformuivKHR :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetnUniformuivKHR = ffiuintintsizeiPtruintIOV glGetnUniformuivKHRFunPtr
+
+glGetnUniformuivKHRFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetnUniformuivKHRFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuivKHR")
+
+{-# NOINLINE glGetnUniformuivKHRFunPtr #-}
+
+-- | Usage: @'glReadnPixelsKHR' x y width height format type bufSize data@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @data@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glReadnPixels'.
+
+
+glReadnPixelsKHR :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glReadnPixelsKHR = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsKHRFunPtr
+
+glReadnPixelsKHRFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glReadnPixelsKHRFunPtr = unsafePerformIO (getProcAddress "glReadnPixelsKHR")
+
+{-# NOINLINE glReadnPixelsKHRFunPtr #-}
+
+pattern GL_CONTEXT_LOST_KHR = 0x0507
+
+pattern GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3
+
+pattern GL_GUILTY_CONTEXT_RESET_KHR = 0x8253
+
+pattern GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254
+
+pattern GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252
+
+pattern GL_NO_RESET_NOTIFICATION_KHR = 0x8261
+
+pattern GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255
diff --git a/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcHdr.hs b/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcHdr.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcHdr.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.TextureCompressionAstcHdr (
+  -- * Extension Support
+    gl_KHR_texture_compression_astc_hdr
+
+  -- * GL_KHR_texture_compression_astc_hdr
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/texture_compression_astc_hdr.txt GL_KHR_texture_compression_astc_hdr> extension is available.
+
+gl_KHR_texture_compression_astc_hdr :: Bool
+gl_KHR_texture_compression_astc_hdr = member "GL_KHR_texture_compression_astc_hdr" extensions
+{-# NOINLINE gl_KHR_texture_compression_astc_hdr #-}
diff --git a/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcLdr.hs b/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcLdr.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcLdr.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.TextureCompressionAstcLdr (
+  -- * Extension Support
+    gl_KHR_texture_compression_astc_ldr
+
+  -- * GL_KHR_texture_compression_astc_ldr
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/KHR/KHR_texture_compression_astc_ldr.txt GL_KHR_texture_compression_astc_ldr> extension is available.
+
+gl_KHR_texture_compression_astc_ldr :: Bool
+gl_KHR_texture_compression_astc_ldr = member "GL_KHR_texture_compression_astc_ldr" extensions
+{-# NOINLINE gl_KHR_texture_compression_astc_ldr #-}
diff --git a/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcSliced3d.hs b/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcSliced3d.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/KHR/TextureCompressionAstcSliced3d.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.KHR.TextureCompressionAstcSliced3d (
+  -- * Extension Support
+    gl_KHR_texture_compression_astc_sliced_3d
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/KHR/texture_compression_astc_sliced_3d.txt GL_KHR_texture_compression_astc_sliced_3d> extension is available.
+
+gl_KHR_texture_compression_astc_sliced_3d :: Bool
+gl_KHR_texture_compression_astc_sliced_3d = member "GL_KHR_texture_compression_astc_sliced_3d" extensions
+{-# NOINLINE gl_KHR_texture_compression_astc_sliced_3d #-}
diff --git a/generated-src/Graphics/GL/Ext/MESA.hs b/generated-src/Graphics/GL/Ext/MESA.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/MESA.hs
@@ -0,0 +1,14 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.MESA (
+  -- * MESA Extensions
+    module Graphics.GL.Ext.MESA.PackInvert
+  , module Graphics.GL.Ext.MESA.ResizeBuffers
+  , module Graphics.GL.Ext.MESA.WindowPos
+  , module Graphics.GL.Ext.MESA.YcbcrTexture
+) where
+
+import Graphics.GL.Ext.MESA.PackInvert
+import Graphics.GL.Ext.MESA.ResizeBuffers
+import Graphics.GL.Ext.MESA.WindowPos
+import Graphics.GL.Ext.MESA.YcbcrTexture
diff --git a/generated-src/Graphics/GL/Ext/MESA/PackInvert.hs b/generated-src/Graphics/GL/Ext/MESA/PackInvert.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/MESA/PackInvert.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.MESA.PackInvert (
+  -- * Extension Support
+    gl_MESA_pack_invert
+
+  -- * GL_MESA_pack_invert
+  , pattern GL_PACK_INVERT_MESA
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/pack_invert.txt GL_MESA_pack_invert> extension is available.
+
+gl_MESA_pack_invert :: Bool
+gl_MESA_pack_invert = member "GL_MESA_pack_invert" extensions
+{-# NOINLINE gl_MESA_pack_invert #-}
+
+pattern GL_PACK_INVERT_MESA = 0x8758
diff --git a/generated-src/Graphics/GL/Ext/MESA/ResizeBuffers.hs b/generated-src/Graphics/GL/Ext/MESA/ResizeBuffers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/MESA/ResizeBuffers.hs
@@ -0,0 +1,33 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.MESA.ResizeBuffers (
+  -- * Extension Support
+    gl_MESA_resize_buffers
+
+  -- * GL_MESA_resize_buffers
+  , glResizeBuffersMESA
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/resize_buffers.txt GL_MESA_resize_buffers> extension is available.
+
+gl_MESA_resize_buffers :: Bool
+gl_MESA_resize_buffers = member "GL_MESA_resize_buffers" extensions
+{-# NOINLINE gl_MESA_resize_buffers #-}
+
+-- | Usage: @'glResizeBuffersMESA'@
+
+
+glResizeBuffersMESA :: MonadIO m => m ()
+glResizeBuffersMESA = ffiIOV glResizeBuffersMESAFunPtr
+
+glResizeBuffersMESAFunPtr :: FunPtr (IO ())
+glResizeBuffersMESAFunPtr = unsafePerformIO (getProcAddress "glResizeBuffersMESA")
+
+{-# NOINLINE glResizeBuffersMESAFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/MESA/WindowPos.hs b/generated-src/Graphics/GL/Ext/MESA/WindowPos.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/MESA/WindowPos.hs
@@ -0,0 +1,486 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.MESA.WindowPos (
+  -- * Extension Support
+    gl_MESA_window_pos
+
+  -- * GL_MESA_window_pos
+  , glWindowPos2dMESA
+  , glWindowPos2dvMESA
+  , glWindowPos2fMESA
+  , glWindowPos2fvMESA
+  , glWindowPos2iMESA
+  , glWindowPos2ivMESA
+  , glWindowPos2sMESA
+  , glWindowPos2svMESA
+  , glWindowPos3dMESA
+  , glWindowPos3dvMESA
+  , glWindowPos3fMESA
+  , glWindowPos3fvMESA
+  , glWindowPos3iMESA
+  , glWindowPos3ivMESA
+  , glWindowPos3sMESA
+  , glWindowPos3svMESA
+  , glWindowPos4dMESA
+  , glWindowPos4dvMESA
+  , glWindowPos4fMESA
+  , glWindowPos4fvMESA
+  , glWindowPos4iMESA
+  , glWindowPos4ivMESA
+  , glWindowPos4sMESA
+  , glWindowPos4svMESA
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/window_pos.txt GL_MESA_window_pos> extension is available.
+
+gl_MESA_window_pos :: Bool
+gl_MESA_window_pos = member "GL_MESA_window_pos" extensions
+{-# NOINLINE gl_MESA_window_pos #-}
+
+-- | Usage: @'glWindowPos2dMESA' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2dvMESA'.
+
+
+glWindowPos2dMESA :: MonadIO m => GLdouble -> GLdouble -> m ()
+glWindowPos2dMESA = ffidoubledoubleIOV glWindowPos2dMESAFunPtr
+
+glWindowPos2dMESAFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glWindowPos2dMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dMESA")
+
+{-# NOINLINE glWindowPos2dMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos2dvMESA' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2dv'.
+
+
+glWindowPos2dvMESA :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos2dvMESA = ffiPtrdoubleIOV glWindowPos2dvMESAFunPtr
+
+glWindowPos2dvMESAFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos2dvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dvMESA")
+
+{-# NOINLINE glWindowPos2dvMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos2fMESA' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2fvMESA'.
+
+
+glWindowPos2fMESA :: MonadIO m => GLfloat -> GLfloat -> m ()
+glWindowPos2fMESA = ffifloatfloatIOV glWindowPos2fMESAFunPtr
+
+glWindowPos2fMESAFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glWindowPos2fMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fMESA")
+
+{-# NOINLINE glWindowPos2fMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos2fvMESA' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2fv'.
+
+
+glWindowPos2fvMESA :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos2fvMESA = ffiPtrfloatIOV glWindowPos2fvMESAFunPtr
+
+glWindowPos2fvMESAFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos2fvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fvMESA")
+
+{-# NOINLINE glWindowPos2fvMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos2iMESA' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2ivMESA'.
+
+
+glWindowPos2iMESA :: MonadIO m => GLint -> GLint -> m ()
+glWindowPos2iMESA = ffiintintIOV glWindowPos2iMESAFunPtr
+
+glWindowPos2iMESAFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glWindowPos2iMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iMESA")
+
+{-# NOINLINE glWindowPos2iMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos2ivMESA' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2iv'.
+
+
+glWindowPos2ivMESA :: MonadIO m => Ptr GLint -> m ()
+glWindowPos2ivMESA = ffiPtrintIOV glWindowPos2ivMESAFunPtr
+
+glWindowPos2ivMESAFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos2ivMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2ivMESA")
+
+{-# NOINLINE glWindowPos2ivMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos2sMESA' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos2svMESA'.
+
+
+glWindowPos2sMESA :: MonadIO m => GLshort -> GLshort -> m ()
+glWindowPos2sMESA = ffishortshortIOV glWindowPos2sMESAFunPtr
+
+glWindowPos2sMESAFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glWindowPos2sMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sMESA")
+
+{-# NOINLINE glWindowPos2sMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos2svMESA' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos2sv'.
+
+
+glWindowPos2svMESA :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos2svMESA = ffiPtrshortIOV glWindowPos2svMESAFunPtr
+
+glWindowPos2svMESAFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos2svMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos2svMESA")
+
+{-# NOINLINE glWindowPos2svMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3dMESA' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3dvMESA'.
+
+
+glWindowPos3dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glWindowPos3dMESA = ffidoubledoubledoubleIOV glWindowPos3dMESAFunPtr
+
+glWindowPos3dMESAFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glWindowPos3dMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dMESA")
+
+{-# NOINLINE glWindowPos3dMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3dvMESA' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3dv'.
+
+
+glWindowPos3dvMESA :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos3dvMESA = ffiPtrdoubleIOV glWindowPos3dvMESAFunPtr
+
+glWindowPos3dvMESAFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos3dvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dvMESA")
+
+{-# NOINLINE glWindowPos3dvMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3fMESA' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3fvMESA'.
+
+
+glWindowPos3fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glWindowPos3fMESA = ffifloatfloatfloatIOV glWindowPos3fMESAFunPtr
+
+glWindowPos3fMESAFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glWindowPos3fMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fMESA")
+
+{-# NOINLINE glWindowPos3fMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3fvMESA' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3fv'.
+
+
+glWindowPos3fvMESA :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos3fvMESA = ffiPtrfloatIOV glWindowPos3fvMESAFunPtr
+
+glWindowPos3fvMESAFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos3fvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fvMESA")
+
+{-# NOINLINE glWindowPos3fvMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3iMESA' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3ivMESA'.
+
+
+glWindowPos3iMESA :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glWindowPos3iMESA = ffiintintintIOV glWindowPos3iMESAFunPtr
+
+glWindowPos3iMESAFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glWindowPos3iMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iMESA")
+
+{-# NOINLINE glWindowPos3iMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3ivMESA' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3iv'.
+
+
+glWindowPos3ivMESA :: MonadIO m => Ptr GLint -> m ()
+glWindowPos3ivMESA = ffiPtrintIOV glWindowPos3ivMESAFunPtr
+
+glWindowPos3ivMESAFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos3ivMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3ivMESA")
+
+{-# NOINLINE glWindowPos3ivMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3sMESA' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos3svMESA'.
+
+
+glWindowPos3sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glWindowPos3sMESA = ffishortshortshortIOV glWindowPos3sMESAFunPtr
+
+glWindowPos3sMESAFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glWindowPos3sMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sMESA")
+
+{-# NOINLINE glWindowPos3sMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos3svMESA' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glWindowPos3sv'.
+
+
+glWindowPos3svMESA :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos3svMESA = ffiPtrshortIOV glWindowPos3svMESAFunPtr
+
+glWindowPos3svMESAFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos3svMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos3svMESA")
+
+{-# NOINLINE glWindowPos3svMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4dMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The parameter @w@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4dvMESA'.
+
+
+glWindowPos4dMESA :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glWindowPos4dMESA = ffidoubledoubledoubledoubleIOV glWindowPos4dMESAFunPtr
+
+glWindowPos4dMESAFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glWindowPos4dMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4dMESA")
+
+{-# NOINLINE glWindowPos4dMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4dvMESA' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glWindowPos4dvMESA :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos4dvMESA = ffiPtrdoubleIOV glWindowPos4dvMESAFunPtr
+
+glWindowPos4dvMESAFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos4dvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4dvMESA")
+
+{-# NOINLINE glWindowPos4dvMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4fMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The parameter @w@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4fvMESA'.
+
+
+glWindowPos4fMESA :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glWindowPos4fMESA = ffifloatfloatfloatfloatIOV glWindowPos4fMESAFunPtr
+
+glWindowPos4fMESAFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glWindowPos4fMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4fMESA")
+
+{-# NOINLINE glWindowPos4fMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4fvMESA' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glWindowPos4fvMESA :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos4fvMESA = ffiPtrfloatIOV glWindowPos4fvMESAFunPtr
+
+glWindowPos4fvMESAFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos4fvMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4fvMESA")
+
+{-# NOINLINE glWindowPos4fvMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4iMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The parameter @w@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4ivMESA'.
+
+
+glWindowPos4iMESA :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glWindowPos4iMESA = ffiintintintintIOV glWindowPos4iMESAFunPtr
+
+glWindowPos4iMESAFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glWindowPos4iMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4iMESA")
+
+{-# NOINLINE glWindowPos4iMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4ivMESA' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glWindowPos4ivMESA :: MonadIO m => Ptr GLint -> m ()
+glWindowPos4ivMESA = ffiPtrintIOV glWindowPos4ivMESAFunPtr
+
+glWindowPos4ivMESAFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos4ivMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4ivMESA")
+
+{-# NOINLINE glWindowPos4ivMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4sMESA' x y z w@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The parameter @w@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.MESA.WindowPos.glWindowPos4svMESA'.
+
+
+glWindowPos4sMESA :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glWindowPos4sMESA = ffishortshortshortshortIOV glWindowPos4sMESAFunPtr
+
+glWindowPos4sMESAFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glWindowPos4sMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4sMESA")
+
+{-# NOINLINE glWindowPos4sMESAFunPtr #-}
+
+-- | Usage: @'glWindowPos4svMESA' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glWindowPos4svMESA :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos4svMESA = ffiPtrshortIOV glWindowPos4svMESAFunPtr
+
+glWindowPos4svMESAFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos4svMESAFunPtr = unsafePerformIO (getProcAddress "glWindowPos4svMESA")
+
+{-# NOINLINE glWindowPos4svMESAFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/MESA/YcbcrTexture.hs b/generated-src/Graphics/GL/Ext/MESA/YcbcrTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/MESA/YcbcrTexture.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.MESA.YcbcrTexture (
+  -- * Extension Support
+    gl_MESA_ycbcr_texture
+
+  -- * GL_MESA_ycbcr_texture
+  , pattern GL_UNSIGNED_SHORT_8_8_MESA
+  , pattern GL_UNSIGNED_SHORT_8_8_REV_MESA
+  , pattern GL_YCBCR_MESA
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESA/ycbcr_texture.txt GL_MESA_ycbcr_texture> extension is available.
+
+gl_MESA_ycbcr_texture :: Bool
+gl_MESA_ycbcr_texture = member "GL_MESA_ycbcr_texture" extensions
+{-# NOINLINE gl_MESA_ycbcr_texture #-}
+
+pattern GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB
+
+pattern GL_YCBCR_MESA = 0x8757
diff --git a/generated-src/Graphics/GL/Ext/MESAX.hs b/generated-src/Graphics/GL/Ext/MESAX.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/MESAX.hs
@@ -0,0 +1,8 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.MESAX (
+  -- * MESAX Extensions
+    module Graphics.GL.Ext.MESAX.TextureStack
+) where
+
+import Graphics.GL.Ext.MESAX.TextureStack
diff --git a/generated-src/Graphics/GL/Ext/MESAX/TextureStack.hs b/generated-src/Graphics/GL/Ext/MESAX/TextureStack.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/MESAX/TextureStack.hs
@@ -0,0 +1,35 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.MESAX.TextureStack (
+  -- * Extension Support
+    gl_MESAX_texture_stack
+
+  -- * GL_MESAX_texture_stack
+  , pattern GL_PROXY_TEXTURE_1D_STACK_MESAX
+  , pattern GL_PROXY_TEXTURE_2D_STACK_MESAX
+  , pattern GL_TEXTURE_1D_STACK_BINDING_MESAX
+  , pattern GL_TEXTURE_1D_STACK_MESAX
+  , pattern GL_TEXTURE_2D_STACK_BINDING_MESAX
+  , pattern GL_TEXTURE_2D_STACK_MESAX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/MESAX/texture_stack.txt GL_MESAX_texture_stack> extension is available.
+
+gl_MESAX_texture_stack :: Bool
+gl_MESAX_texture_stack = member "GL_MESAX_texture_stack" extensions
+{-# NOINLINE gl_MESAX_texture_stack #-}
+
+pattern GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B
+
+pattern GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C
+
+pattern GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D
+
+pattern GL_TEXTURE_1D_STACK_MESAX = 0x8759
+
+pattern GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E
+
+pattern GL_TEXTURE_2D_STACK_MESAX = 0x875A
diff --git a/generated-src/Graphics/GL/Ext/NV.hs b/generated-src/Graphics/GL/Ext/NV.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV.hs
@@ -0,0 +1,260 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV (
+  -- * NV Extensions
+    module Graphics.GL.Ext.NV.BindlessMultiDrawIndirect
+  , module Graphics.GL.Ext.NV.BindlessMultiDrawIndirectCount
+  , module Graphics.GL.Ext.NV.BindlessTexture
+  , module Graphics.GL.Ext.NV.BlendEquationAdvanced
+  , module Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent
+  , module Graphics.GL.Ext.NV.BlendSquare
+  , module Graphics.GL.Ext.NV.ClipSpaceWScaling
+  , module Graphics.GL.Ext.NV.CommandList
+  , module Graphics.GL.Ext.NV.ComputeProgram5
+  , module Graphics.GL.Ext.NV.ConditionalRender
+  , module Graphics.GL.Ext.NV.ConservativeRaster
+  , module Graphics.GL.Ext.NV.ConservativeRasterDilate
+  , module Graphics.GL.Ext.NV.ConservativeRasterPreSnapTriangles
+  , module Graphics.GL.Ext.NV.CopyBuffer
+  , module Graphics.GL.Ext.NV.CopyDepthToColor
+  , module Graphics.GL.Ext.NV.CopyImage
+  , module Graphics.GL.Ext.NV.CoverageSample
+  , module Graphics.GL.Ext.NV.DeepTexture3D
+  , module Graphics.GL.Ext.NV.DepthBufferFloat
+  , module Graphics.GL.Ext.NV.DepthClamp
+  , module Graphics.GL.Ext.NV.DepthNonlinear
+  , module Graphics.GL.Ext.NV.DrawBuffers
+  , module Graphics.GL.Ext.NV.DrawInstanced
+  , module Graphics.GL.Ext.NV.DrawTexture
+  , module Graphics.GL.Ext.NV.Evaluators
+  , module Graphics.GL.Ext.NV.ExplicitAttribLocation
+  , module Graphics.GL.Ext.NV.ExplicitMultisample
+  , module Graphics.GL.Ext.NV.FboColorAttachments
+  , module Graphics.GL.Ext.NV.Fence
+  , module Graphics.GL.Ext.NV.FillRectangle
+  , module Graphics.GL.Ext.NV.FloatBuffer
+  , module Graphics.GL.Ext.NV.FogDistance
+  , module Graphics.GL.Ext.NV.FragmentCoverageToColor
+  , module Graphics.GL.Ext.NV.FragmentProgram
+  , module Graphics.GL.Ext.NV.FragmentProgram2
+  , module Graphics.GL.Ext.NV.FragmentProgram4
+  , module Graphics.GL.Ext.NV.FragmentProgramOption
+  , module Graphics.GL.Ext.NV.FragmentShaderInterlock
+  , module Graphics.GL.Ext.NV.FramebufferBlit
+  , module Graphics.GL.Ext.NV.FramebufferMixedSamples
+  , module Graphics.GL.Ext.NV.FramebufferMultisample
+  , module Graphics.GL.Ext.NV.FramebufferMultisampleCoverage
+  , module Graphics.GL.Ext.NV.GenerateMipmapSRGB
+  , module Graphics.GL.Ext.NV.GeometryProgram4
+  , module Graphics.GL.Ext.NV.GeometryShader4
+  , module Graphics.GL.Ext.NV.GeometryShaderPassthrough
+  , module Graphics.GL.Ext.NV.GpuProgram4
+  , module Graphics.GL.Ext.NV.GpuProgram5
+  , module Graphics.GL.Ext.NV.GpuProgram5MemExtended
+  , module Graphics.GL.Ext.NV.GpuShader5
+  , module Graphics.GL.Ext.NV.HalfFloat
+  , module Graphics.GL.Ext.NV.ImageFormats
+  , module Graphics.GL.Ext.NV.InstancedArrays
+  , module Graphics.GL.Ext.NV.InternalformatSampleQuery
+  , module Graphics.GL.Ext.NV.LightMaxExponent
+  , module Graphics.GL.Ext.NV.MultisampleCoverage
+  , module Graphics.GL.Ext.NV.MultisampleFilterHint
+  , module Graphics.GL.Ext.NV.NonSquareMatrices
+  , module Graphics.GL.Ext.NV.OcclusionQuery
+  , module Graphics.GL.Ext.NV.PackedDepthStencil
+  , module Graphics.GL.Ext.NV.ParameterBufferObject
+  , module Graphics.GL.Ext.NV.ParameterBufferObject2
+  , module Graphics.GL.Ext.NV.PathRendering
+  , module Graphics.GL.Ext.NV.PathRenderingSharedEdge
+  , module Graphics.GL.Ext.NV.PixelDataRange
+  , module Graphics.GL.Ext.NV.PointSprite
+  , module Graphics.GL.Ext.NV.PolygonMode
+  , module Graphics.GL.Ext.NV.PresentVideo
+  , module Graphics.GL.Ext.NV.PrimitiveRestart
+  , module Graphics.GL.Ext.NV.ReadBuffer
+  , module Graphics.GL.Ext.NV.ReadBufferFront
+  , module Graphics.GL.Ext.NV.ReadDepth
+  , module Graphics.GL.Ext.NV.ReadDepthStencil
+  , module Graphics.GL.Ext.NV.ReadStencil
+  , module Graphics.GL.Ext.NV.RegisterCombiners
+  , module Graphics.GL.Ext.NV.RegisterCombiners2
+  , module Graphics.GL.Ext.NV.RobustnessVideoMemoryPurge
+  , module Graphics.GL.Ext.NV.SRGBFormats
+  , module Graphics.GL.Ext.NV.SampleLocations
+  , module Graphics.GL.Ext.NV.SampleMaskOverrideCoverage
+  , module Graphics.GL.Ext.NV.ShaderAtomicCounters
+  , module Graphics.GL.Ext.NV.ShaderAtomicFloat
+  , module Graphics.GL.Ext.NV.ShaderAtomicFloat64
+  , module Graphics.GL.Ext.NV.ShaderAtomicFp16Vector
+  , module Graphics.GL.Ext.NV.ShaderAtomicInt64
+  , module Graphics.GL.Ext.NV.ShaderBufferLoad
+  , module Graphics.GL.Ext.NV.ShaderBufferStore
+  , module Graphics.GL.Ext.NV.ShaderNoperspectiveInterpolation
+  , module Graphics.GL.Ext.NV.ShaderStorageBufferObject
+  , module Graphics.GL.Ext.NV.ShaderThreadGroup
+  , module Graphics.GL.Ext.NV.ShaderThreadShuffle
+  , module Graphics.GL.Ext.NV.ShadowSamplersArray
+  , module Graphics.GL.Ext.NV.ShadowSamplersCube
+  , module Graphics.GL.Ext.NV.StereoViewRendering
+  , module Graphics.GL.Ext.NV.TessellationProgram5
+  , module Graphics.GL.Ext.NV.TexgenEmboss
+  , module Graphics.GL.Ext.NV.TexgenReflection
+  , module Graphics.GL.Ext.NV.TextureBarrier
+  , module Graphics.GL.Ext.NV.TextureBorderClamp
+  , module Graphics.GL.Ext.NV.TextureCompressionS3tcUpdate
+  , module Graphics.GL.Ext.NV.TextureCompressionVtc
+  , module Graphics.GL.Ext.NV.TextureEnvCombine4
+  , module Graphics.GL.Ext.NV.TextureExpandNormal
+  , module Graphics.GL.Ext.NV.TextureMultisample
+  , module Graphics.GL.Ext.NV.TextureNpot2DMipmap
+  , module Graphics.GL.Ext.NV.TextureRectangle
+  , module Graphics.GL.Ext.NV.TextureShader
+  , module Graphics.GL.Ext.NV.TextureShader2
+  , module Graphics.GL.Ext.NV.TextureShader3
+  , module Graphics.GL.Ext.NV.TransformFeedback
+  , module Graphics.GL.Ext.NV.TransformFeedback2
+  , module Graphics.GL.Ext.NV.UniformBufferUnifiedMemory
+  , module Graphics.GL.Ext.NV.VdpauInterop
+  , module Graphics.GL.Ext.NV.VertexArrayRange
+  , module Graphics.GL.Ext.NV.VertexArrayRange2
+  , module Graphics.GL.Ext.NV.VertexAttribInteger64bit
+  , module Graphics.GL.Ext.NV.VertexBufferUnifiedMemory
+  , module Graphics.GL.Ext.NV.VertexProgram
+  , module Graphics.GL.Ext.NV.VertexProgram11
+  , module Graphics.GL.Ext.NV.VertexProgram2
+  , module Graphics.GL.Ext.NV.VertexProgram2Option
+  , module Graphics.GL.Ext.NV.VertexProgram3
+  , module Graphics.GL.Ext.NV.VertexProgram4
+  , module Graphics.GL.Ext.NV.VideoCapture
+  , module Graphics.GL.Ext.NV.ViewportArray
+  , module Graphics.GL.Ext.NV.ViewportArray2
+  , module Graphics.GL.Ext.NV.ViewportSwizzle
+) where
+
+import Graphics.GL.Ext.NV.BindlessMultiDrawIndirect
+import Graphics.GL.Ext.NV.BindlessMultiDrawIndirectCount
+import Graphics.GL.Ext.NV.BindlessTexture
+import Graphics.GL.Ext.NV.BlendEquationAdvanced
+import Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent
+import Graphics.GL.Ext.NV.BlendSquare
+import Graphics.GL.Ext.NV.ClipSpaceWScaling
+import Graphics.GL.Ext.NV.CommandList
+import Graphics.GL.Ext.NV.ComputeProgram5
+import Graphics.GL.Ext.NV.ConditionalRender
+import Graphics.GL.Ext.NV.ConservativeRaster
+import Graphics.GL.Ext.NV.ConservativeRasterDilate
+import Graphics.GL.Ext.NV.ConservativeRasterPreSnapTriangles
+import Graphics.GL.Ext.NV.CopyBuffer
+import Graphics.GL.Ext.NV.CopyDepthToColor
+import Graphics.GL.Ext.NV.CopyImage
+import Graphics.GL.Ext.NV.CoverageSample
+import Graphics.GL.Ext.NV.DeepTexture3D
+import Graphics.GL.Ext.NV.DepthBufferFloat
+import Graphics.GL.Ext.NV.DepthClamp
+import Graphics.GL.Ext.NV.DepthNonlinear
+import Graphics.GL.Ext.NV.DrawBuffers
+import Graphics.GL.Ext.NV.DrawInstanced
+import Graphics.GL.Ext.NV.DrawTexture
+import Graphics.GL.Ext.NV.Evaluators
+import Graphics.GL.Ext.NV.ExplicitAttribLocation
+import Graphics.GL.Ext.NV.ExplicitMultisample
+import Graphics.GL.Ext.NV.FboColorAttachments
+import Graphics.GL.Ext.NV.Fence
+import Graphics.GL.Ext.NV.FillRectangle
+import Graphics.GL.Ext.NV.FloatBuffer
+import Graphics.GL.Ext.NV.FogDistance
+import Graphics.GL.Ext.NV.FragmentCoverageToColor
+import Graphics.GL.Ext.NV.FragmentProgram
+import Graphics.GL.Ext.NV.FragmentProgram2
+import Graphics.GL.Ext.NV.FragmentProgram4
+import Graphics.GL.Ext.NV.FragmentProgramOption
+import Graphics.GL.Ext.NV.FragmentShaderInterlock
+import Graphics.GL.Ext.NV.FramebufferBlit
+import Graphics.GL.Ext.NV.FramebufferMixedSamples
+import Graphics.GL.Ext.NV.FramebufferMultisample
+import Graphics.GL.Ext.NV.FramebufferMultisampleCoverage
+import Graphics.GL.Ext.NV.GenerateMipmapSRGB
+import Graphics.GL.Ext.NV.GeometryProgram4
+import Graphics.GL.Ext.NV.GeometryShader4
+import Graphics.GL.Ext.NV.GeometryShaderPassthrough
+import Graphics.GL.Ext.NV.GpuProgram4
+import Graphics.GL.Ext.NV.GpuProgram5
+import Graphics.GL.Ext.NV.GpuProgram5MemExtended
+import Graphics.GL.Ext.NV.GpuShader5
+import Graphics.GL.Ext.NV.HalfFloat
+import Graphics.GL.Ext.NV.ImageFormats
+import Graphics.GL.Ext.NV.InstancedArrays
+import Graphics.GL.Ext.NV.InternalformatSampleQuery
+import Graphics.GL.Ext.NV.LightMaxExponent
+import Graphics.GL.Ext.NV.MultisampleCoverage
+import Graphics.GL.Ext.NV.MultisampleFilterHint
+import Graphics.GL.Ext.NV.NonSquareMatrices
+import Graphics.GL.Ext.NV.OcclusionQuery
+import Graphics.GL.Ext.NV.PackedDepthStencil
+import Graphics.GL.Ext.NV.ParameterBufferObject
+import Graphics.GL.Ext.NV.ParameterBufferObject2
+import Graphics.GL.Ext.NV.PathRendering
+import Graphics.GL.Ext.NV.PathRenderingSharedEdge
+import Graphics.GL.Ext.NV.PixelDataRange
+import Graphics.GL.Ext.NV.PointSprite
+import Graphics.GL.Ext.NV.PolygonMode
+import Graphics.GL.Ext.NV.PresentVideo
+import Graphics.GL.Ext.NV.PrimitiveRestart
+import Graphics.GL.Ext.NV.ReadBuffer
+import Graphics.GL.Ext.NV.ReadBufferFront
+import Graphics.GL.Ext.NV.ReadDepth
+import Graphics.GL.Ext.NV.ReadDepthStencil
+import Graphics.GL.Ext.NV.ReadStencil
+import Graphics.GL.Ext.NV.RegisterCombiners
+import Graphics.GL.Ext.NV.RegisterCombiners2
+import Graphics.GL.Ext.NV.RobustnessVideoMemoryPurge
+import Graphics.GL.Ext.NV.SRGBFormats
+import Graphics.GL.Ext.NV.SampleLocations
+import Graphics.GL.Ext.NV.SampleMaskOverrideCoverage
+import Graphics.GL.Ext.NV.ShaderAtomicCounters
+import Graphics.GL.Ext.NV.ShaderAtomicFloat
+import Graphics.GL.Ext.NV.ShaderAtomicFloat64
+import Graphics.GL.Ext.NV.ShaderAtomicFp16Vector
+import Graphics.GL.Ext.NV.ShaderAtomicInt64
+import Graphics.GL.Ext.NV.ShaderBufferLoad
+import Graphics.GL.Ext.NV.ShaderBufferStore
+import Graphics.GL.Ext.NV.ShaderNoperspectiveInterpolation
+import Graphics.GL.Ext.NV.ShaderStorageBufferObject
+import Graphics.GL.Ext.NV.ShaderThreadGroup
+import Graphics.GL.Ext.NV.ShaderThreadShuffle
+import Graphics.GL.Ext.NV.ShadowSamplersArray
+import Graphics.GL.Ext.NV.ShadowSamplersCube
+import Graphics.GL.Ext.NV.StereoViewRendering
+import Graphics.GL.Ext.NV.TessellationProgram5
+import Graphics.GL.Ext.NV.TexgenEmboss
+import Graphics.GL.Ext.NV.TexgenReflection
+import Graphics.GL.Ext.NV.TextureBarrier
+import Graphics.GL.Ext.NV.TextureBorderClamp
+import Graphics.GL.Ext.NV.TextureCompressionS3tcUpdate
+import Graphics.GL.Ext.NV.TextureCompressionVtc
+import Graphics.GL.Ext.NV.TextureEnvCombine4
+import Graphics.GL.Ext.NV.TextureExpandNormal
+import Graphics.GL.Ext.NV.TextureMultisample
+import Graphics.GL.Ext.NV.TextureNpot2DMipmap
+import Graphics.GL.Ext.NV.TextureRectangle
+import Graphics.GL.Ext.NV.TextureShader
+import Graphics.GL.Ext.NV.TextureShader2
+import Graphics.GL.Ext.NV.TextureShader3
+import Graphics.GL.Ext.NV.TransformFeedback
+import Graphics.GL.Ext.NV.TransformFeedback2
+import Graphics.GL.Ext.NV.UniformBufferUnifiedMemory
+import Graphics.GL.Ext.NV.VdpauInterop
+import Graphics.GL.Ext.NV.VertexArrayRange
+import Graphics.GL.Ext.NV.VertexArrayRange2
+import Graphics.GL.Ext.NV.VertexAttribInteger64bit
+import Graphics.GL.Ext.NV.VertexBufferUnifiedMemory
+import Graphics.GL.Ext.NV.VertexProgram
+import Graphics.GL.Ext.NV.VertexProgram11
+import Graphics.GL.Ext.NV.VertexProgram2
+import Graphics.GL.Ext.NV.VertexProgram2Option
+import Graphics.GL.Ext.NV.VertexProgram3
+import Graphics.GL.Ext.NV.VertexProgram4
+import Graphics.GL.Ext.NV.VideoCapture
+import Graphics.GL.Ext.NV.ViewportArray
+import Graphics.GL.Ext.NV.ViewportArray2
+import Graphics.GL.Ext.NV.ViewportSwizzle
diff --git a/generated-src/Graphics/GL/Ext/NV/BindlessMultiDrawIndirect.hs b/generated-src/Graphics/GL/Ext/NV/BindlessMultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/BindlessMultiDrawIndirect.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.BindlessMultiDrawIndirect (
+  -- * Extension Support
+    gl_NV_bindless_multi_draw_indirect
+
+  -- * GL_NV_bindless_multi_draw_indirect
+  , glMultiDrawArraysIndirectBindlessNV
+  , glMultiDrawElementsIndirectBindlessNV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect.txt GL_NV_bindless_multi_draw_indirect> extension is available.
+
+gl_NV_bindless_multi_draw_indirect :: Bool
+gl_NV_bindless_multi_draw_indirect = member "GL_NV_bindless_multi_draw_indirect" extensions
+{-# NOINLINE gl_NV_bindless_multi_draw_indirect #-}
+
+-- | Usage: @'glMultiDrawArraysIndirectBindlessNV' mode indirect drawCount stride vertexBufferCount@
+
+
+glMultiDrawArraysIndirectBindlessNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
+glMultiDrawArraysIndirectBindlessNV = ffienumPtrVsizeisizeiintIOV glMultiDrawArraysIndirectBindlessNVFunPtr
+
+glMultiDrawArraysIndirectBindlessNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ())
+glMultiDrawArraysIndirectBindlessNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectBindlessNV")
+
+{-# NOINLINE glMultiDrawArraysIndirectBindlessNVFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectBindlessNV' mode type indirect drawCount stride vertexBufferCount@
+
+
+glMultiDrawElementsIndirectBindlessNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
+glMultiDrawElementsIndirectBindlessNV = ffienumenumPtrVsizeisizeiintIOV glMultiDrawElementsIndirectBindlessNVFunPtr
+
+glMultiDrawElementsIndirectBindlessNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ())
+glMultiDrawElementsIndirectBindlessNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectBindlessNV")
+
+{-# NOINLINE glMultiDrawElementsIndirectBindlessNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/BindlessMultiDrawIndirectCount.hs b/generated-src/Graphics/GL/Ext/NV/BindlessMultiDrawIndirectCount.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/BindlessMultiDrawIndirectCount.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.BindlessMultiDrawIndirectCount (
+  -- * Extension Support
+    gl_NV_bindless_multi_draw_indirect_count
+
+  -- * GL_NV_bindless_multi_draw_indirect_count
+  , glMultiDrawArraysIndirectBindlessCountNV
+  , glMultiDrawElementsIndirectBindlessCountNV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_multi_draw_indirect_count.txt GL_NV_bindless_multi_draw_indirect_count> extension is available.
+
+gl_NV_bindless_multi_draw_indirect_count :: Bool
+gl_NV_bindless_multi_draw_indirect_count = member "GL_NV_bindless_multi_draw_indirect_count" extensions
+{-# NOINLINE gl_NV_bindless_multi_draw_indirect_count #-}
+
+-- | Usage: @'glMultiDrawArraysIndirectBindlessCountNV' mode indirect drawCount maxDrawCount stride vertexBufferCount@
+
+
+glMultiDrawArraysIndirectBindlessCountNV :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
+glMultiDrawArraysIndirectBindlessCountNV = ffienumPtrVsizeisizeisizeiintIOV glMultiDrawArraysIndirectBindlessCountNVFunPtr
+
+glMultiDrawArraysIndirectBindlessCountNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
+glMultiDrawArraysIndirectBindlessCountNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirectBindlessCountNV")
+
+{-# NOINLINE glMultiDrawArraysIndirectBindlessCountNVFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirectBindlessCountNV' mode type indirect drawCount maxDrawCount stride vertexBufferCount@
+
+
+glMultiDrawElementsIndirectBindlessCountNV :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
+glMultiDrawElementsIndirectBindlessCountNV = ffienumenumPtrVsizeisizeisizeiintIOV glMultiDrawElementsIndirectBindlessCountNVFunPtr
+
+glMultiDrawElementsIndirectBindlessCountNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
+glMultiDrawElementsIndirectBindlessCountNVFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirectBindlessCountNV")
+
+{-# NOINLINE glMultiDrawElementsIndirectBindlessCountNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/BindlessTexture.hs b/generated-src/Graphics/GL/Ext/NV/BindlessTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/BindlessTexture.hs
@@ -0,0 +1,184 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.BindlessTexture (
+  -- * Extension Support
+    gl_NV_bindless_texture
+
+  -- * GL_NV_bindless_texture
+  , glGetImageHandleNV
+  , glGetTextureHandleNV
+  , glGetTextureSamplerHandleNV
+  , glIsImageHandleResidentNV
+  , glIsTextureHandleResidentNV
+  , glMakeImageHandleNonResidentNV
+  , glMakeImageHandleResidentNV
+  , glMakeTextureHandleNonResidentNV
+  , glMakeTextureHandleResidentNV
+  , glProgramUniformHandleui64NV
+  , glProgramUniformHandleui64vNV
+  , glUniformHandleui64NV
+  , glUniformHandleui64vNV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/bindless_texture.txt GL_NV_bindless_texture> extension is available.
+
+gl_NV_bindless_texture :: Bool
+gl_NV_bindless_texture = member "GL_NV_bindless_texture" extensions
+{-# NOINLINE gl_NV_bindless_texture #-}
+
+-- | Usage: @'glGetImageHandleNV' texture level layered layer format@
+--
+-- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glGetImageHandleNV :: MonadIO m => GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
+glGetImageHandleNV = ffiuintintbooleanintenumIOuint64 glGetImageHandleNVFunPtr
+
+glGetImageHandleNVFunPtr :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64)
+glGetImageHandleNVFunPtr = unsafePerformIO (getProcAddress "glGetImageHandleNV")
+
+{-# NOINLINE glGetImageHandleNVFunPtr #-}
+
+-- | Usage: @'glGetTextureHandleNV' texture@
+
+
+glGetTextureHandleNV :: MonadIO m => GLuint -> m GLuint64
+glGetTextureHandleNV = ffiuintIOuint64 glGetTextureHandleNVFunPtr
+
+glGetTextureHandleNVFunPtr :: FunPtr (GLuint -> IO GLuint64)
+glGetTextureHandleNVFunPtr = unsafePerformIO (getProcAddress "glGetTextureHandleNV")
+
+{-# NOINLINE glGetTextureHandleNVFunPtr #-}
+
+-- | Usage: @'glGetTextureSamplerHandleNV' texture sampler@
+
+
+glGetTextureSamplerHandleNV :: MonadIO m => GLuint -> GLuint -> m GLuint64
+glGetTextureSamplerHandleNV = ffiuintuintIOuint64 glGetTextureSamplerHandleNVFunPtr
+
+glGetTextureSamplerHandleNVFunPtr :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+glGetTextureSamplerHandleNVFunPtr = unsafePerformIO (getProcAddress "glGetTextureSamplerHandleNV")
+
+{-# NOINLINE glGetTextureSamplerHandleNVFunPtr #-}
+
+-- | Usage: @'glIsImageHandleResidentNV' handle@
+
+
+glIsImageHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
+glIsImageHandleResidentNV = ffiuint64IOboolean glIsImageHandleResidentNVFunPtr
+
+glIsImageHandleResidentNVFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
+glIsImageHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsImageHandleResidentNV")
+
+{-# NOINLINE glIsImageHandleResidentNVFunPtr #-}
+
+-- | Usage: @'glIsTextureHandleResidentNV' handle@
+
+
+glIsTextureHandleResidentNV :: MonadIO m => GLuint64 -> m GLboolean
+glIsTextureHandleResidentNV = ffiuint64IOboolean glIsTextureHandleResidentNVFunPtr
+
+glIsTextureHandleResidentNVFunPtr :: FunPtr (GLuint64 -> IO GLboolean)
+glIsTextureHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsTextureHandleResidentNV")
+
+{-# NOINLINE glIsTextureHandleResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeImageHandleNonResidentNV' handle@
+
+
+glMakeImageHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
+glMakeImageHandleNonResidentNV = ffiuint64IOV glMakeImageHandleNonResidentNVFunPtr
+
+glMakeImageHandleNonResidentNVFunPtr :: FunPtr (GLuint64 -> IO ())
+glMakeImageHandleNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleNonResidentNV")
+
+{-# NOINLINE glMakeImageHandleNonResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeImageHandleResidentNV' handle access@
+
+
+glMakeImageHandleResidentNV :: MonadIO m => GLuint64 -> GLenum -> m ()
+glMakeImageHandleResidentNV = ffiuint64enumIOV glMakeImageHandleResidentNVFunPtr
+
+glMakeImageHandleResidentNVFunPtr :: FunPtr (GLuint64 -> GLenum -> IO ())
+glMakeImageHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeImageHandleResidentNV")
+
+{-# NOINLINE glMakeImageHandleResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeTextureHandleNonResidentNV' handle@
+
+
+glMakeTextureHandleNonResidentNV :: MonadIO m => GLuint64 -> m ()
+glMakeTextureHandleNonResidentNV = ffiuint64IOV glMakeTextureHandleNonResidentNVFunPtr
+
+glMakeTextureHandleNonResidentNVFunPtr :: FunPtr (GLuint64 -> IO ())
+glMakeTextureHandleNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleNonResidentNV")
+
+{-# NOINLINE glMakeTextureHandleNonResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeTextureHandleResidentNV' handle@
+
+
+glMakeTextureHandleResidentNV :: MonadIO m => GLuint64 -> m ()
+glMakeTextureHandleResidentNV = ffiuint64IOV glMakeTextureHandleResidentNVFunPtr
+
+glMakeTextureHandleResidentNVFunPtr :: FunPtr (GLuint64 -> IO ())
+glMakeTextureHandleResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeTextureHandleResidentNV")
+
+{-# NOINLINE glMakeTextureHandleResidentNVFunPtr #-}
+
+-- | Usage: @'glProgramUniformHandleui64NV' program location value@
+
+
+glProgramUniformHandleui64NV :: MonadIO m => GLuint -> GLint -> GLuint64 -> m ()
+glProgramUniformHandleui64NV = ffiuintintuint64IOV glProgramUniformHandleui64NVFunPtr
+
+glProgramUniformHandleui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+glProgramUniformHandleui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64NV")
+
+{-# NOINLINE glProgramUniformHandleui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniformHandleui64vNV' program location count values@
+--
+-- The length of @values@ should be @count@.
+
+
+glProgramUniformHandleui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glProgramUniformHandleui64vNV = ffiuintintsizeiPtruint64IOV glProgramUniformHandleui64vNVFunPtr
+
+glProgramUniformHandleui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glProgramUniformHandleui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformHandleui64vNV")
+
+{-# NOINLINE glProgramUniformHandleui64vNVFunPtr #-}
+
+-- | Usage: @'glUniformHandleui64NV' location value@
+
+
+glUniformHandleui64NV :: MonadIO m => GLint -> GLuint64 -> m ()
+glUniformHandleui64NV = ffiintuint64IOV glUniformHandleui64NVFunPtr
+
+glUniformHandleui64NVFunPtr :: FunPtr (GLint -> GLuint64 -> IO ())
+glUniformHandleui64NVFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64NV")
+
+{-# NOINLINE glUniformHandleui64NVFunPtr #-}
+
+-- | Usage: @'glUniformHandleui64vNV' location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glUniformHandleui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64 -> m ()
+glUniformHandleui64vNV = ffiintsizeiPtruint64IOV glUniformHandleui64vNVFunPtr
+
+glUniformHandleui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+glUniformHandleui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniformHandleui64vNV")
+
+{-# NOINLINE glUniformHandleui64vNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs
@@ -0,0 +1,198 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.BlendEquationAdvanced (
+  -- * Extension Support
+    gl_NV_blend_equation_advanced
+
+  -- * GL_NV_blend_equation_advanced
+  , glBlendBarrierNV
+  , glBlendParameteriNV
+  , pattern GL_BLEND_OVERLAP_NV
+  , pattern GL_BLEND_PREMULTIPLIED_SRC_NV
+  , pattern GL_BLUE_NV
+  , pattern GL_COLORBURN_NV
+  , pattern GL_COLORDODGE_NV
+  , pattern GL_CONJOINT_NV
+  , pattern GL_CONTRAST_NV
+  , pattern GL_DARKEN_NV
+  , pattern GL_DIFFERENCE_NV
+  , pattern GL_DISJOINT_NV
+  , pattern GL_DST_ATOP_NV
+  , pattern GL_DST_IN_NV
+  , pattern GL_DST_NV
+  , pattern GL_DST_OUT_NV
+  , pattern GL_DST_OVER_NV
+  , pattern GL_EXCLUSION_NV
+  , pattern GL_GREEN_NV
+  , pattern GL_HARDLIGHT_NV
+  , pattern GL_HARDMIX_NV
+  , pattern GL_HSL_COLOR_NV
+  , pattern GL_HSL_HUE_NV
+  , pattern GL_HSL_LUMINOSITY_NV
+  , pattern GL_HSL_SATURATION_NV
+  , pattern GL_INVERT
+  , pattern GL_INVERT_OVG_NV
+  , pattern GL_INVERT_RGB_NV
+  , pattern GL_LIGHTEN_NV
+  , pattern GL_LINEARBURN_NV
+  , pattern GL_LINEARDODGE_NV
+  , pattern GL_LINEARLIGHT_NV
+  , pattern GL_MINUS_CLAMPED_NV
+  , pattern GL_MINUS_NV
+  , pattern GL_MULTIPLY_NV
+  , pattern GL_OVERLAY_NV
+  , pattern GL_PINLIGHT_NV
+  , pattern GL_PLUS_CLAMPED_ALPHA_NV
+  , pattern GL_PLUS_CLAMPED_NV
+  , pattern GL_PLUS_DARKER_NV
+  , pattern GL_PLUS_NV
+  , pattern GL_RED_NV
+  , pattern GL_SCREEN_NV
+  , pattern GL_SOFTLIGHT_NV
+  , pattern GL_SRC_ATOP_NV
+  , pattern GL_SRC_IN_NV
+  , pattern GL_SRC_NV
+  , pattern GL_SRC_OUT_NV
+  , pattern GL_SRC_OVER_NV
+  , pattern GL_UNCORRELATED_NV
+  , pattern GL_VIVIDLIGHT_NV
+  , pattern GL_XOR_NV
+  , pattern GL_ZERO
+) 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/NV/blend_equation_advanced.txt GL_NV_blend_equation_advanced> extension is available.
+
+gl_NV_blend_equation_advanced :: Bool
+gl_NV_blend_equation_advanced = member "GL_NV_blend_equation_advanced" extensions
+{-# NOINLINE gl_NV_blend_equation_advanced #-}
+
+-- | Usage: @'glBlendBarrierNV'@
+--
+-- This command is an alias for 'Graphics.GL.Embedded32.glBlendBarrier'.
+
+
+glBlendBarrierNV :: MonadIO m => m ()
+glBlendBarrierNV = ffiIOV glBlendBarrierNVFunPtr
+
+glBlendBarrierNVFunPtr :: FunPtr (IO ())
+glBlendBarrierNVFunPtr = unsafePerformIO (getProcAddress "glBlendBarrierNV")
+
+{-# NOINLINE glBlendBarrierNVFunPtr #-}
+
+-- | Usage: @'glBlendParameteriNV' pname value@
+
+
+glBlendParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
+glBlendParameteriNV = ffienumintIOV glBlendParameteriNVFunPtr
+
+glBlendParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glBlendParameteriNVFunPtr = unsafePerformIO (getProcAddress "glBlendParameteriNV")
+
+{-# NOINLINE glBlendParameteriNVFunPtr #-}
+
+pattern GL_BLEND_OVERLAP_NV = 0x9281
+
+pattern GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280
+
+pattern GL_BLUE_NV = 0x1905
+
+pattern GL_COLORBURN_NV = 0x929A
+
+pattern GL_COLORDODGE_NV = 0x9299
+
+pattern GL_CONJOINT_NV = 0x9284
+
+pattern GL_CONTRAST_NV = 0x92A1
+
+pattern GL_DARKEN_NV = 0x9297
+
+pattern GL_DIFFERENCE_NV = 0x929E
+
+pattern GL_DISJOINT_NV = 0x9283
+
+pattern GL_DST_ATOP_NV = 0x928F
+
+pattern GL_DST_IN_NV = 0x928B
+
+pattern GL_DST_NV = 0x9287
+
+pattern GL_DST_OUT_NV = 0x928D
+
+pattern GL_DST_OVER_NV = 0x9289
+
+pattern GL_EXCLUSION_NV = 0x92A0
+
+pattern GL_GREEN_NV = 0x1904
+
+pattern GL_HARDLIGHT_NV = 0x929B
+
+pattern GL_HARDMIX_NV = 0x92A9
+
+pattern GL_HSL_COLOR_NV = 0x92AF
+
+pattern GL_HSL_HUE_NV = 0x92AD
+
+pattern GL_HSL_LUMINOSITY_NV = 0x92B0
+
+pattern GL_HSL_SATURATION_NV = 0x92AE
+
+pattern GL_INVERT_OVG_NV = 0x92B4
+
+pattern GL_INVERT_RGB_NV = 0x92A3
+
+pattern GL_LIGHTEN_NV = 0x9298
+
+pattern GL_LINEARBURN_NV = 0x92A5
+
+pattern GL_LINEARDODGE_NV = 0x92A4
+
+pattern GL_LINEARLIGHT_NV = 0x92A7
+
+pattern GL_MINUS_CLAMPED_NV = 0x92B3
+
+pattern GL_MINUS_NV = 0x929F
+
+pattern GL_MULTIPLY_NV = 0x9294
+
+pattern GL_OVERLAY_NV = 0x9296
+
+pattern GL_PINLIGHT_NV = 0x92A8
+
+pattern GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2
+
+pattern GL_PLUS_CLAMPED_NV = 0x92B1
+
+pattern GL_PLUS_DARKER_NV = 0x9292
+
+pattern GL_PLUS_NV = 0x9291
+
+pattern GL_RED_NV = 0x1903
+
+pattern GL_SCREEN_NV = 0x9295
+
+pattern GL_SOFTLIGHT_NV = 0x929C
+
+pattern GL_SRC_ATOP_NV = 0x928E
+
+pattern GL_SRC_IN_NV = 0x928A
+
+pattern GL_SRC_NV = 0x9286
+
+pattern GL_SRC_OUT_NV = 0x928C
+
+pattern GL_SRC_OVER_NV = 0x9288
+
+pattern GL_UNCORRELATED_NV = 0x9282
+
+pattern GL_VIVIDLIGHT_NV = 0x92A6
+
+pattern GL_XOR_NV = 0x1506
diff --git a/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent (
+  -- * Extension Support
+    gl_NV_blend_equation_advanced_coherent
+
+  -- * GL_NV_blend_equation_advanced_coherent
+  , pattern GL_BLEND_ADVANCED_COHERENT_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_blend_equation_advanced_coherent.txt GL_NV_blend_equation_advanced_coherent> extension is available.
+
+gl_NV_blend_equation_advanced_coherent :: Bool
+gl_NV_blend_equation_advanced_coherent = member "GL_NV_blend_equation_advanced_coherent" extensions
+{-# NOINLINE gl_NV_blend_equation_advanced_coherent #-}
+
+pattern GL_BLEND_ADVANCED_COHERENT_NV = 0x9285
diff --git a/generated-src/Graphics/GL/Ext/NV/BlendSquare.hs b/generated-src/Graphics/GL/Ext/NV/BlendSquare.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/BlendSquare.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.BlendSquare (
+  -- * Extension Support
+    gl_NV_blend_square
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_square.txt GL_NV_blend_square> extension is available.
+
+gl_NV_blend_square :: Bool
+gl_NV_blend_square = member "GL_NV_blend_square" extensions
+{-# NOINLINE gl_NV_blend_square #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs b/generated-src/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ClipSpaceWScaling (
+  -- * Extension Support
+    gl_NV_clip_space_w_scaling
+
+  -- * GL_NV_clip_space_w_scaling
+  , glViewportPositionWScaleNV
+  , pattern GL_VIEWPORT_POSITION_W_SCALE_NV
+  , pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV
+  , pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/clip_space_w_scaling.txt GL_NV_clip_space_w_scaling> extension is available.
+
+gl_NV_clip_space_w_scaling :: Bool
+gl_NV_clip_space_w_scaling = member "GL_NV_clip_space_w_scaling" extensions
+{-# NOINLINE gl_NV_clip_space_w_scaling #-}
+
+-- | Usage: @'glViewportPositionWScaleNV' index xcoeff ycoeff@
+
+
+glViewportPositionWScaleNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glViewportPositionWScaleNV = ffiuintfloatfloatIOV glViewportPositionWScaleNVFunPtr
+
+glViewportPositionWScaleNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glViewportPositionWScaleNVFunPtr = unsafePerformIO (getProcAddress "glViewportPositionWScaleNV")
+
+{-# NOINLINE glViewportPositionWScaleNVFunPtr #-}
+
+pattern GL_VIEWPORT_POSITION_W_SCALE_NV = 0x937C
+
+pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV = 0x937D
+
+pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV = 0x937E
diff --git a/generated-src/Graphics/GL/Ext/NV/CommandList.hs b/generated-src/Graphics/GL/Ext/NV/CommandList.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/CommandList.hs
@@ -0,0 +1,283 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.CommandList (
+  -- * Extension Support
+    gl_NV_command_list
+
+  -- * GL_NV_command_list
+  , glCallCommandListNV
+  , glCommandListSegmentsNV
+  , glCompileCommandListNV
+  , glCreateCommandListsNV
+  , glCreateStatesNV
+  , glDeleteCommandListsNV
+  , glDeleteStatesNV
+  , glDrawCommandsAddressNV
+  , glDrawCommandsNV
+  , glDrawCommandsStatesAddressNV
+  , glDrawCommandsStatesNV
+  , glGetCommandHeaderNV
+  , glGetStageIndexNV
+  , glIsCommandListNV
+  , glIsStateNV
+  , glListDrawCommandsStatesClientNV
+  , glStateCaptureNV
+  , pattern GL_ALPHA_REF_COMMAND_NV
+  , pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV
+  , pattern GL_BLEND_COLOR_COMMAND_NV
+  , pattern GL_DRAW_ARRAYS_COMMAND_NV
+  , pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV
+  , pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV
+  , pattern GL_DRAW_ELEMENTS_COMMAND_NV
+  , pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV
+  , pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV
+  , pattern GL_ELEMENT_ADDRESS_COMMAND_NV
+  , pattern GL_FRONT_FACE_COMMAND_NV
+  , pattern GL_LINE_WIDTH_COMMAND_NV
+  , pattern GL_NOP_COMMAND_NV
+  , pattern GL_POLYGON_OFFSET_COMMAND_NV
+  , pattern GL_SCISSOR_COMMAND_NV
+  , pattern GL_STENCIL_REF_COMMAND_NV
+  , pattern GL_TERMINATE_SEQUENCE_COMMAND_NV
+  , pattern GL_UNIFORM_ADDRESS_COMMAND_NV
+  , pattern GL_VIEWPORT_COMMAND_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/command_list.txt GL_NV_command_list> extension is available.
+
+gl_NV_command_list :: Bool
+gl_NV_command_list = member "GL_NV_command_list" extensions
+{-# NOINLINE gl_NV_command_list #-}
+
+-- | Usage: @'glCallCommandListNV' list@
+
+
+glCallCommandListNV :: MonadIO m => GLuint -> m ()
+glCallCommandListNV = ffiuintIOV glCallCommandListNVFunPtr
+
+glCallCommandListNVFunPtr :: FunPtr (GLuint -> IO ())
+glCallCommandListNVFunPtr = unsafePerformIO (getProcAddress "glCallCommandListNV")
+
+{-# NOINLINE glCallCommandListNVFunPtr #-}
+
+-- | Usage: @'glCommandListSegmentsNV' list segments@
+
+
+glCommandListSegmentsNV :: MonadIO m => GLuint -> GLuint -> m ()
+glCommandListSegmentsNV = ffiuintuintIOV glCommandListSegmentsNVFunPtr
+
+glCommandListSegmentsNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glCommandListSegmentsNVFunPtr = unsafePerformIO (getProcAddress "glCommandListSegmentsNV")
+
+{-# NOINLINE glCommandListSegmentsNVFunPtr #-}
+
+-- | Usage: @'glCompileCommandListNV' list@
+
+
+glCompileCommandListNV :: MonadIO m => GLuint -> m ()
+glCompileCommandListNV = ffiuintIOV glCompileCommandListNVFunPtr
+
+glCompileCommandListNVFunPtr :: FunPtr (GLuint -> IO ())
+glCompileCommandListNVFunPtr = unsafePerformIO (getProcAddress "glCompileCommandListNV")
+
+{-# NOINLINE glCompileCommandListNVFunPtr #-}
+
+-- | Usage: @'glCreateCommandListsNV' n lists@
+
+
+glCreateCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateCommandListsNV = ffisizeiPtruintIOV glCreateCommandListsNVFunPtr
+
+glCreateCommandListsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateCommandListsNVFunPtr = unsafePerformIO (getProcAddress "glCreateCommandListsNV")
+
+{-# NOINLINE glCreateCommandListsNVFunPtr #-}
+
+-- | Usage: @'glCreateStatesNV' n states@
+
+
+glCreateStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateStatesNV = ffisizeiPtruintIOV glCreateStatesNVFunPtr
+
+glCreateStatesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateStatesNVFunPtr = unsafePerformIO (getProcAddress "glCreateStatesNV")
+
+{-# NOINLINE glCreateStatesNVFunPtr #-}
+
+-- | Usage: @'glDeleteCommandListsNV' n lists@
+
+
+glDeleteCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteCommandListsNV = ffisizeiPtruintIOV glDeleteCommandListsNVFunPtr
+
+glDeleteCommandListsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteCommandListsNVFunPtr = unsafePerformIO (getProcAddress "glDeleteCommandListsNV")
+
+{-# NOINLINE glDeleteCommandListsNVFunPtr #-}
+
+-- | Usage: @'glDeleteStatesNV' n states@
+
+
+glDeleteStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteStatesNV = ffisizeiPtruintIOV glDeleteStatesNVFunPtr
+
+glDeleteStatesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteStatesNVFunPtr = unsafePerformIO (getProcAddress "glDeleteStatesNV")
+
+{-# NOINLINE glDeleteStatesNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsAddressNV' primitiveMode indirects sizes count@
+
+
+glDrawCommandsAddressNV :: MonadIO m => GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
+glDrawCommandsAddressNV = ffienumPtruint64PtrsizeiuintIOV glDrawCommandsAddressNVFunPtr
+
+glDrawCommandsAddressNVFunPtr :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ())
+glDrawCommandsAddressNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsAddressNV")
+
+{-# NOINLINE glDrawCommandsAddressNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsNV' primitiveMode buffer indirects sizes count@
+
+
+glDrawCommandsNV :: MonadIO m => GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
+glDrawCommandsNV = ffienumuintPtrintptrPtrsizeiuintIOV glDrawCommandsNVFunPtr
+
+glDrawCommandsNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ())
+glDrawCommandsNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsNV")
+
+{-# NOINLINE glDrawCommandsNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsStatesAddressNV' indirects sizes states fbos count@
+
+
+glDrawCommandsStatesAddressNV :: MonadIO m => Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+glDrawCommandsStatesAddressNV = ffiPtruint64PtrsizeiPtruintPtruintuintIOV glDrawCommandsStatesAddressNVFunPtr
+
+glDrawCommandsStatesAddressNVFunPtr :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+glDrawCommandsStatesAddressNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsStatesAddressNV")
+
+{-# NOINLINE glDrawCommandsStatesAddressNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsStatesNV' buffer indirects sizes states fbos count@
+
+
+glDrawCommandsStatesNV :: MonadIO m => GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+glDrawCommandsStatesNV = ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV glDrawCommandsStatesNVFunPtr
+
+glDrawCommandsStatesNVFunPtr :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+glDrawCommandsStatesNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsStatesNV")
+
+{-# NOINLINE glDrawCommandsStatesNVFunPtr #-}
+
+-- | Usage: @'glGetCommandHeaderNV' tokenID size@
+
+
+glGetCommandHeaderNV :: MonadIO m => GLenum -> GLuint -> m GLuint
+glGetCommandHeaderNV = ffienumuintIOuint glGetCommandHeaderNVFunPtr
+
+glGetCommandHeaderNVFunPtr :: FunPtr (GLenum -> GLuint -> IO GLuint)
+glGetCommandHeaderNVFunPtr = unsafePerformIO (getProcAddress "glGetCommandHeaderNV")
+
+{-# NOINLINE glGetCommandHeaderNVFunPtr #-}
+
+-- | Usage: @'glGetStageIndexNV' shadertype@
+
+
+glGetStageIndexNV :: MonadIO m => GLenum -> m GLushort
+glGetStageIndexNV = ffienumIOushort glGetStageIndexNVFunPtr
+
+glGetStageIndexNVFunPtr :: FunPtr (GLenum -> IO GLushort)
+glGetStageIndexNVFunPtr = unsafePerformIO (getProcAddress "glGetStageIndexNV")
+
+{-# NOINLINE glGetStageIndexNVFunPtr #-}
+
+-- | Usage: @'glIsCommandListNV' list@
+
+
+glIsCommandListNV :: MonadIO m => GLuint -> m GLboolean
+glIsCommandListNV = ffiuintIOboolean glIsCommandListNVFunPtr
+
+glIsCommandListNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsCommandListNVFunPtr = unsafePerformIO (getProcAddress "glIsCommandListNV")
+
+{-# NOINLINE glIsCommandListNVFunPtr #-}
+
+-- | Usage: @'glIsStateNV' state@
+
+
+glIsStateNV :: MonadIO m => GLuint -> m GLboolean
+glIsStateNV = ffiuintIOboolean glIsStateNVFunPtr
+
+glIsStateNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsStateNVFunPtr = unsafePerformIO (getProcAddress "glIsStateNV")
+
+{-# NOINLINE glIsStateNVFunPtr #-}
+
+-- | Usage: @'glListDrawCommandsStatesClientNV' list segment indirects sizes states fbos count@
+
+
+glListDrawCommandsStatesClientNV :: MonadIO m => GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+glListDrawCommandsStatesClientNV = ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV glListDrawCommandsStatesClientNVFunPtr
+
+glListDrawCommandsStatesClientNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+glListDrawCommandsStatesClientNVFunPtr = unsafePerformIO (getProcAddress "glListDrawCommandsStatesClientNV")
+
+{-# NOINLINE glListDrawCommandsStatesClientNVFunPtr #-}
+
+-- | Usage: @'glStateCaptureNV' state mode@
+
+
+glStateCaptureNV :: MonadIO m => GLuint -> GLenum -> m ()
+glStateCaptureNV = ffiuintenumIOV glStateCaptureNVFunPtr
+
+glStateCaptureNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glStateCaptureNVFunPtr = unsafePerformIO (getProcAddress "glStateCaptureNV")
+
+{-# NOINLINE glStateCaptureNVFunPtr #-}
+
+pattern GL_ALPHA_REF_COMMAND_NV = 0x000F
+
+pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV = 0x0009
+
+pattern GL_BLEND_COLOR_COMMAND_NV = 0x000B
+
+pattern GL_DRAW_ARRAYS_COMMAND_NV = 0x0003
+
+pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV = 0x0007
+
+pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV = 0x0005
+
+pattern GL_DRAW_ELEMENTS_COMMAND_NV = 0x0002
+
+pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV = 0x0006
+
+pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV = 0x0004
+
+pattern GL_ELEMENT_ADDRESS_COMMAND_NV = 0x0008
+
+pattern GL_FRONT_FACE_COMMAND_NV = 0x0012
+
+pattern GL_LINE_WIDTH_COMMAND_NV = 0x000D
+
+pattern GL_NOP_COMMAND_NV = 0x0001
+
+pattern GL_POLYGON_OFFSET_COMMAND_NV = 0x000E
+
+pattern GL_SCISSOR_COMMAND_NV = 0x0011
+
+pattern GL_STENCIL_REF_COMMAND_NV = 0x000C
+
+pattern GL_TERMINATE_SEQUENCE_COMMAND_NV = 0x0000
+
+pattern GL_UNIFORM_ADDRESS_COMMAND_NV = 0x000A
+
+pattern GL_VIEWPORT_COMMAND_NV = 0x0010
diff --git a/generated-src/Graphics/GL/Ext/NV/ComputeProgram5.hs b/generated-src/Graphics/GL/Ext/NV/ComputeProgram5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ComputeProgram5.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ComputeProgram5 (
+  -- * Extension Support
+    gl_NV_compute_program5
+
+  -- * GL_NV_compute_program5
+  , pattern GL_COMPUTE_PROGRAM_NV
+  , pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/compute_program5.txt GL_NV_compute_program5> extension is available.
+
+gl_NV_compute_program5 :: Bool
+gl_NV_compute_program5 = member "GL_NV_compute_program5" extensions
+{-# NOINLINE gl_NV_compute_program5 #-}
+
+pattern GL_COMPUTE_PROGRAM_NV = 0x90FB
+
+pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC
diff --git a/generated-src/Graphics/GL/Ext/NV/ConditionalRender.hs b/generated-src/Graphics/GL/Ext/NV/ConditionalRender.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ConditionalRender.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ConditionalRender (
+  -- * Extension Support
+    gl_NV_conditional_render
+
+  -- * GL_NV_conditional_render
+  , glBeginConditionalRenderNV
+  , glEndConditionalRenderNV
+  , pattern GL_QUERY_BY_REGION_NO_WAIT_NV
+  , pattern GL_QUERY_BY_REGION_WAIT_NV
+  , pattern GL_QUERY_NO_WAIT_NV
+  , pattern GL_QUERY_WAIT_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conditional_render.txt GL_NV_conditional_render> extension is available.
+
+gl_NV_conditional_render :: Bool
+gl_NV_conditional_render = member "GL_NV_conditional_render" extensions
+{-# NOINLINE gl_NV_conditional_render #-}
+
+-- | Usage: @'glBeginConditionalRenderNV' id mode@
+--
+-- The parameter @mode@ is a @TypeEnum@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginConditionalRender'.
+
+
+glBeginConditionalRenderNV :: MonadIO m => GLuint -> GLenum -> m ()
+glBeginConditionalRenderNV = ffiuintenumIOV glBeginConditionalRenderNVFunPtr
+
+glBeginConditionalRenderNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBeginConditionalRenderNVFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRenderNV")
+
+{-# NOINLINE glBeginConditionalRenderNVFunPtr #-}
+
+-- | Usage: @'glEndConditionalRenderNV'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEndConditionalRender'.
+
+
+glEndConditionalRenderNV :: MonadIO m => m ()
+glEndConditionalRenderNV = ffiIOV glEndConditionalRenderNVFunPtr
+
+glEndConditionalRenderNVFunPtr :: FunPtr (IO ())
+glEndConditionalRenderNVFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRenderNV")
+
+{-# NOINLINE glEndConditionalRenderNVFunPtr #-}
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16
+
+pattern GL_QUERY_BY_REGION_WAIT_NV = 0x8E15
+
+pattern GL_QUERY_NO_WAIT_NV = 0x8E14
+
+pattern GL_QUERY_WAIT_NV = 0x8E13
diff --git a/generated-src/Graphics/GL/Ext/NV/ConservativeRaster.hs b/generated-src/Graphics/GL/Ext/NV/ConservativeRaster.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ConservativeRaster.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ConservativeRaster (
+  -- * Extension Support
+    gl_NV_conservative_raster
+
+  -- * GL_NV_conservative_raster
+  , glSubpixelPrecisionBiasNV
+  , pattern GL_CONSERVATIVE_RASTERIZATION_NV
+  , pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV
+  , pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV
+  , pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster.txt GL_NV_conservative_raster> extension is available.
+
+gl_NV_conservative_raster :: Bool
+gl_NV_conservative_raster = member "GL_NV_conservative_raster" extensions
+{-# NOINLINE gl_NV_conservative_raster #-}
+
+-- | Usage: @'glSubpixelPrecisionBiasNV' xbits ybits@
+
+
+glSubpixelPrecisionBiasNV :: MonadIO m => GLuint -> GLuint -> m ()
+glSubpixelPrecisionBiasNV = ffiuintuintIOV glSubpixelPrecisionBiasNVFunPtr
+
+glSubpixelPrecisionBiasNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glSubpixelPrecisionBiasNVFunPtr = unsafePerformIO (getProcAddress "glSubpixelPrecisionBiasNV")
+
+{-# NOINLINE glSubpixelPrecisionBiasNVFunPtr #-}
+
+pattern GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346
+
+pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349
+
+pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347
+
+pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348
diff --git a/generated-src/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ConservativeRasterDilate (
+  -- * Extension Support
+    gl_NV_conservative_raster_dilate
+
+  -- * GL_NV_conservative_raster_dilate
+  , glConservativeRasterParameterfNV
+  , pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV
+  , pattern GL_CONSERVATIVE_RASTER_DILATE_NV
+  , pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster_dilate.txt GL_NV_conservative_raster_dilate> extension is available.
+
+gl_NV_conservative_raster_dilate :: Bool
+gl_NV_conservative_raster_dilate = member "GL_NV_conservative_raster_dilate" extensions
+{-# NOINLINE gl_NV_conservative_raster_dilate #-}
+
+-- | Usage: @'glConservativeRasterParameterfNV' pname value@
+
+
+glConservativeRasterParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
+glConservativeRasterParameterfNV = ffienumfloatIOV glConservativeRasterParameterfNVFunPtr
+
+glConservativeRasterParameterfNVFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glConservativeRasterParameterfNVFunPtr = unsafePerformIO (getProcAddress "glConservativeRasterParameterfNV")
+
+{-# NOINLINE glConservativeRasterParameterfNVFunPtr #-}
+
+pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV = 0x937B
+
+pattern GL_CONSERVATIVE_RASTER_DILATE_NV = 0x9379
+
+pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV = 0x937A
diff --git a/generated-src/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ConservativeRasterPreSnapTriangles (
+  -- * Extension Support
+    gl_NV_conservative_raster_pre_snap_triangles
+
+  -- * GL_NV_conservative_raster_pre_snap_triangles
+  , glConservativeRasterParameteriNV
+  , pattern GL_CONSERVATIVE_RASTER_MODE_NV
+  , pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV
+  , pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster_pre_snap_triangles.txt GL_NV_conservative_raster_pre_snap_triangles> extension is available.
+
+gl_NV_conservative_raster_pre_snap_triangles :: Bool
+gl_NV_conservative_raster_pre_snap_triangles = member "GL_NV_conservative_raster_pre_snap_triangles" extensions
+{-# NOINLINE gl_NV_conservative_raster_pre_snap_triangles #-}
+
+-- | Usage: @'glConservativeRasterParameteriNV' pname param@
+
+
+glConservativeRasterParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
+glConservativeRasterParameteriNV = ffienumintIOV glConservativeRasterParameteriNVFunPtr
+
+glConservativeRasterParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glConservativeRasterParameteriNVFunPtr = unsafePerformIO (getProcAddress "glConservativeRasterParameteriNV")
+
+{-# NOINLINE glConservativeRasterParameteriNVFunPtr #-}
+
+pattern GL_CONSERVATIVE_RASTER_MODE_NV = 0x954D
+
+pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV = 0x954E
+
+pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV = 0x954F
diff --git a/generated-src/Graphics/GL/Ext/NV/CopyBuffer.hs b/generated-src/Graphics/GL/Ext/NV/CopyBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/CopyBuffer.hs
@@ -0,0 +1,48 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.CopyBuffer (
+  -- * Extension Support
+    gl_NV_copy_buffer
+
+  -- * GL_NV_copy_buffer
+  , glCopyBufferSubDataNV
+  , pattern GL_COPY_READ_BUFFER_NV
+  , pattern GL_COPY_WRITE_BUFFER_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_copy_buffer.txt GL_NV_copy_buffer> extension is available.
+
+gl_NV_copy_buffer :: Bool
+gl_NV_copy_buffer = member "GL_NV_copy_buffer" extensions
+{-# NOINLINE gl_NV_copy_buffer #-}
+
+-- | Usage: @'glCopyBufferSubDataNV' readTarget writeTarget readOffset writeOffset size@
+--
+-- The parameter @readOffset@ is a @BufferOffset@.
+--
+-- The parameter @writeOffset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyBufferSubData'.
+
+
+glCopyBufferSubDataNV :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glCopyBufferSubDataNV = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataNVFunPtr
+
+glCopyBufferSubDataNVFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glCopyBufferSubDataNVFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubDataNV")
+
+{-# NOINLINE glCopyBufferSubDataNVFunPtr #-}
+
+pattern GL_COPY_READ_BUFFER_NV = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER_NV = 0x8F37
diff --git a/generated-src/Graphics/GL/Ext/NV/CopyDepthToColor.hs b/generated-src/Graphics/GL/Ext/NV/CopyDepthToColor.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/CopyDepthToColor.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.CopyDepthToColor (
+  -- * Extension Support
+    gl_NV_copy_depth_to_color
+
+  -- * GL_NV_copy_depth_to_color
+  , pattern GL_DEPTH_STENCIL_TO_BGRA_NV
+  , pattern GL_DEPTH_STENCIL_TO_RGBA_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_depth_to_color.txt GL_NV_copy_depth_to_color> extension is available.
+
+gl_NV_copy_depth_to_color :: Bool
+gl_NV_copy_depth_to_color = member "GL_NV_copy_depth_to_color" extensions
+{-# NOINLINE gl_NV_copy_depth_to_color #-}
+
+pattern GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F
+
+pattern GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E
diff --git a/generated-src/Graphics/GL/Ext/NV/CopyImage.hs b/generated-src/Graphics/GL/Ext/NV/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/CopyImage.hs
@@ -0,0 +1,34 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.CopyImage (
+  -- * Extension Support
+    gl_NV_copy_image
+
+  -- * GL_NV_copy_image
+  , glCopyImageSubDataNV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/copy_image.txt GL_NV_copy_image> extension is available.
+
+gl_NV_copy_image :: Bool
+gl_NV_copy_image = member "GL_NV_copy_image" extensions
+{-# NOINLINE gl_NV_copy_image #-}
+
+-- | Usage: @'glCopyImageSubDataNV' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ width height depth@
+
+
+glCopyImageSubDataNV :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glCopyImageSubDataNV = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataNVFunPtr
+
+glCopyImageSubDataNVFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glCopyImageSubDataNVFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubDataNV")
+
+{-# NOINLINE glCopyImageSubDataNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/CoverageSample.hs b/generated-src/Graphics/GL/Ext/NV/CoverageSample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/CoverageSample.hs
@@ -0,0 +1,73 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.CoverageSample (
+  -- * Extension Support
+    gl_NV_coverage_sample
+
+  -- * GL_NV_coverage_sample
+  , glCoverageMaskNV
+  , glCoverageOperationNV
+  , pattern GL_COVERAGE_ALL_FRAGMENTS_NV
+  , pattern GL_COVERAGE_ATTACHMENT_NV
+  , pattern GL_COVERAGE_AUTOMATIC_NV
+  , pattern GL_COVERAGE_BUFFERS_NV
+  , pattern GL_COVERAGE_BUFFER_BIT_NV
+  , pattern GL_COVERAGE_COMPONENT4_NV
+  , pattern GL_COVERAGE_COMPONENT_NV
+  , pattern GL_COVERAGE_EDGE_FRAGMENTS_NV
+  , pattern GL_COVERAGE_SAMPLES_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_coverage_sample.txt GL_NV_coverage_sample> extension is available.
+
+gl_NV_coverage_sample :: Bool
+gl_NV_coverage_sample = member "GL_NV_coverage_sample" extensions
+{-# NOINLINE gl_NV_coverage_sample #-}
+
+-- | Usage: @'glCoverageMaskNV' mask@
+
+
+glCoverageMaskNV :: MonadIO m => GLboolean -> m ()
+glCoverageMaskNV = ffibooleanIOV glCoverageMaskNVFunPtr
+
+glCoverageMaskNVFunPtr :: FunPtr (GLboolean -> IO ())
+glCoverageMaskNVFunPtr = unsafePerformIO (getProcAddress "glCoverageMaskNV")
+
+{-# NOINLINE glCoverageMaskNVFunPtr #-}
+
+-- | Usage: @'glCoverageOperationNV' operation@
+
+
+glCoverageOperationNV :: MonadIO m => GLenum -> m ()
+glCoverageOperationNV = ffienumIOV glCoverageOperationNVFunPtr
+
+glCoverageOperationNVFunPtr :: FunPtr (GLenum -> IO ())
+glCoverageOperationNVFunPtr = unsafePerformIO (getProcAddress "glCoverageOperationNV")
+
+{-# NOINLINE glCoverageOperationNVFunPtr #-}
+
+pattern GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5
+
+pattern GL_COVERAGE_ATTACHMENT_NV = 0x8ED2
+
+pattern GL_COVERAGE_AUTOMATIC_NV = 0x8ED7
+
+pattern GL_COVERAGE_BUFFERS_NV = 0x8ED3
+
+pattern GL_COVERAGE_BUFFER_BIT_NV = 0x00008000
+
+pattern GL_COVERAGE_COMPONENT4_NV = 0x8ED1
+
+pattern GL_COVERAGE_COMPONENT_NV = 0x8ED0
+
+pattern GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6
+
+pattern GL_COVERAGE_SAMPLES_NV = 0x8ED4
diff --git a/generated-src/Graphics/GL/Ext/NV/DeepTexture3D.hs b/generated-src/Graphics/GL/Ext/NV/DeepTexture3D.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/DeepTexture3D.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.DeepTexture3D (
+  -- * Extension Support
+    gl_NV_deep_texture3D
+
+  -- * GL_NV_deep_texture3D
+  , pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV
+  , pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/deep_texture3D.txt GL_NV_deep_texture3D> extension is available.
+
+gl_NV_deep_texture3D :: Bool
+gl_NV_deep_texture3D = member "GL_NV_deep_texture3D" extensions
+{-# NOINLINE gl_NV_deep_texture3D #-}
+
+pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1
+
+pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0
diff --git a/generated-src/Graphics/GL/Ext/NV/DepthBufferFloat.hs b/generated-src/Graphics/GL/Ext/NV/DepthBufferFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/DepthBufferFloat.hs
@@ -0,0 +1,70 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.DepthBufferFloat (
+  -- * Extension Support
+    gl_NV_depth_buffer_float
+
+  -- * GL_NV_depth_buffer_float
+  , glClearDepthdNV
+  , glDepthBoundsdNV
+  , glDepthRangedNV
+  , pattern GL_DEPTH32F_STENCIL8_NV
+  , pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV
+  , pattern GL_DEPTH_COMPONENT32F_NV
+  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_buffer_float.txt GL_NV_depth_buffer_float> extension is available.
+
+gl_NV_depth_buffer_float :: Bool
+gl_NV_depth_buffer_float = member "GL_NV_depth_buffer_float" extensions
+{-# NOINLINE gl_NV_depth_buffer_float #-}
+
+-- | Usage: @'glClearDepthdNV' depth@
+
+
+glClearDepthdNV :: MonadIO m => GLdouble -> m ()
+glClearDepthdNV = ffidoubleIOV glClearDepthdNVFunPtr
+
+glClearDepthdNVFunPtr :: FunPtr (GLdouble -> IO ())
+glClearDepthdNVFunPtr = unsafePerformIO (getProcAddress "glClearDepthdNV")
+
+{-# NOINLINE glClearDepthdNVFunPtr #-}
+
+-- | Usage: @'glDepthBoundsdNV' zmin zmax@
+
+
+glDepthBoundsdNV :: MonadIO m => GLdouble -> GLdouble -> m ()
+glDepthBoundsdNV = ffidoubledoubleIOV glDepthBoundsdNVFunPtr
+
+glDepthBoundsdNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glDepthBoundsdNVFunPtr = unsafePerformIO (getProcAddress "glDepthBoundsdNV")
+
+{-# NOINLINE glDepthBoundsdNVFunPtr #-}
+
+-- | Usage: @'glDepthRangedNV' zNear zFar@
+
+
+glDepthRangedNV :: MonadIO m => GLdouble -> GLdouble -> m ()
+glDepthRangedNV = ffidoubledoubleIOV glDepthRangedNVFunPtr
+
+glDepthRangedNVFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glDepthRangedNVFunPtr = unsafePerformIO (getProcAddress "glDepthRangedNV")
+
+{-# NOINLINE glDepthRangedNVFunPtr #-}
+
+pattern GL_DEPTH32F_STENCIL8_NV = 0x8DAC
+
+pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF
+
+pattern GL_DEPTH_COMPONENT32F_NV = 0x8DAB
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD
diff --git a/generated-src/Graphics/GL/Ext/NV/DepthClamp.hs b/generated-src/Graphics/GL/Ext/NV/DepthClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/DepthClamp.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.DepthClamp (
+  -- * Extension Support
+    gl_NV_depth_clamp
+
+  -- * GL_NV_depth_clamp
+  , pattern GL_DEPTH_CLAMP_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/depth_clamp.txt GL_NV_depth_clamp> extension is available.
+
+gl_NV_depth_clamp :: Bool
+gl_NV_depth_clamp = member "GL_NV_depth_clamp" extensions
+{-# NOINLINE gl_NV_depth_clamp #-}
+
+pattern GL_DEPTH_CLAMP_NV = 0x864F
diff --git a/generated-src/Graphics/GL/Ext/NV/DepthNonlinear.hs b/generated-src/Graphics/GL/Ext/NV/DepthNonlinear.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/DepthNonlinear.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.DepthNonlinear (
+  -- * Extension Support
+    gl_NV_depth_nonlinear
+
+  -- * GL_NV_depth_nonlinear
+  , pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_depth_nonlinear.txt GL_NV_depth_nonlinear> extension is available.
+
+gl_NV_depth_nonlinear :: Bool
+gl_NV_depth_nonlinear = member "GL_NV_depth_nonlinear" extensions
+{-# NOINLINE gl_NV_depth_nonlinear #-}
+
+pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C
diff --git a/generated-src/Graphics/GL/Ext/NV/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/NV/DrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/DrawBuffers.hs
@@ -0,0 +1,104 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.DrawBuffers (
+  -- * Extension Support
+    gl_NV_draw_buffers
+
+  -- * GL_NV_draw_buffers
+  , glDrawBuffersNV
+  , pattern GL_COLOR_ATTACHMENT0_NV
+  , pattern GL_COLOR_ATTACHMENT10_NV
+  , pattern GL_COLOR_ATTACHMENT11_NV
+  , pattern GL_COLOR_ATTACHMENT12_NV
+  , pattern GL_COLOR_ATTACHMENT13_NV
+  , pattern GL_COLOR_ATTACHMENT14_NV
+  , pattern GL_COLOR_ATTACHMENT15_NV
+  , pattern GL_COLOR_ATTACHMENT1_NV
+  , pattern GL_COLOR_ATTACHMENT2_NV
+  , pattern GL_COLOR_ATTACHMENT3_NV
+  , pattern GL_COLOR_ATTACHMENT4_NV
+  , pattern GL_COLOR_ATTACHMENT5_NV
+  , pattern GL_COLOR_ATTACHMENT6_NV
+  , pattern GL_COLOR_ATTACHMENT7_NV
+  , pattern GL_COLOR_ATTACHMENT8_NV
+  , pattern GL_COLOR_ATTACHMENT9_NV
+  , pattern GL_DRAW_BUFFER0_NV
+  , pattern GL_DRAW_BUFFER10_NV
+  , pattern GL_DRAW_BUFFER11_NV
+  , pattern GL_DRAW_BUFFER12_NV
+  , pattern GL_DRAW_BUFFER13_NV
+  , pattern GL_DRAW_BUFFER14_NV
+  , pattern GL_DRAW_BUFFER15_NV
+  , pattern GL_DRAW_BUFFER1_NV
+  , pattern GL_DRAW_BUFFER2_NV
+  , pattern GL_DRAW_BUFFER3_NV
+  , pattern GL_DRAW_BUFFER4_NV
+  , pattern GL_DRAW_BUFFER5_NV
+  , pattern GL_DRAW_BUFFER6_NV
+  , pattern GL_DRAW_BUFFER7_NV
+  , pattern GL_DRAW_BUFFER8_NV
+  , pattern GL_DRAW_BUFFER9_NV
+  , pattern GL_MAX_DRAW_BUFFERS_NV
+) 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://www.khronos.org/registry/gles/extensions/NV/NV_draw_buffers.txt GL_NV_draw_buffers> extension is available.
+
+gl_NV_draw_buffers :: Bool
+gl_NV_draw_buffers = member "GL_NV_draw_buffers" extensions
+{-# NOINLINE gl_NV_draw_buffers #-}
+
+-- | Usage: @'glDrawBuffersNV' n bufs@
+--
+-- The length of @bufs@ should be @n@.
+
+
+glDrawBuffersNV :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffersNV = ffisizeiPtrenumIOV glDrawBuffersNVFunPtr
+
+glDrawBuffersNVFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersNVFunPtr = unsafePerformIO (getProcAddress "glDrawBuffersNV")
+
+{-# NOINLINE glDrawBuffersNVFunPtr #-}
+
+pattern GL_DRAW_BUFFER0_NV = 0x8825
+
+pattern GL_DRAW_BUFFER10_NV = 0x882F
+
+pattern GL_DRAW_BUFFER11_NV = 0x8830
+
+pattern GL_DRAW_BUFFER12_NV = 0x8831
+
+pattern GL_DRAW_BUFFER13_NV = 0x8832
+
+pattern GL_DRAW_BUFFER14_NV = 0x8833
+
+pattern GL_DRAW_BUFFER15_NV = 0x8834
+
+pattern GL_DRAW_BUFFER1_NV = 0x8826
+
+pattern GL_DRAW_BUFFER2_NV = 0x8827
+
+pattern GL_DRAW_BUFFER3_NV = 0x8828
+
+pattern GL_DRAW_BUFFER4_NV = 0x8829
+
+pattern GL_DRAW_BUFFER5_NV = 0x882A
+
+pattern GL_DRAW_BUFFER6_NV = 0x882B
+
+pattern GL_DRAW_BUFFER7_NV = 0x882C
+
+pattern GL_DRAW_BUFFER8_NV = 0x882D
+
+pattern GL_DRAW_BUFFER9_NV = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_NV = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/NV/DrawInstanced.hs b/generated-src/Graphics/GL/Ext/NV/DrawInstanced.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/DrawInstanced.hs
@@ -0,0 +1,56 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.DrawInstanced (
+  -- * Extension Support
+    gl_NV_draw_instanced
+
+  -- * GL_NV_draw_instanced
+  , glDrawArraysInstancedNV
+  , glDrawElementsInstancedNV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_draw_instanced.txt GL_NV_draw_instanced> extension is available.
+
+gl_NV_draw_instanced :: Bool
+gl_NV_draw_instanced = member "GL_NV_draw_instanced" extensions
+{-# NOINLINE gl_NV_draw_instanced #-}
+
+-- | Usage: @'glDrawArraysInstancedNV' mode first count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
+
+
+glDrawArraysInstancedNV :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstancedNV = ffienumintsizeisizeiIOV glDrawArraysInstancedNVFunPtr
+
+glDrawArraysInstancedNVFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedNVFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedNV")
+
+{-# NOINLINE glDrawArraysInstancedNVFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedNV' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
+
+
+glDrawElementsInstancedNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstancedNV = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedNVFunPtr
+
+glDrawElementsInstancedNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedNVFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedNV")
+
+{-# NOINLINE glDrawElementsInstancedNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/DrawTexture.hs b/generated-src/Graphics/GL/Ext/NV/DrawTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/DrawTexture.hs
@@ -0,0 +1,34 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.DrawTexture (
+  -- * Extension Support
+    gl_NV_draw_texture
+
+  -- * GL_NV_draw_texture
+  , glDrawTextureNV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_draw_texture.txt GL_NV_draw_texture> extension is available.
+
+gl_NV_draw_texture :: Bool
+gl_NV_draw_texture = member "GL_NV_draw_texture" extensions
+{-# NOINLINE gl_NV_draw_texture #-}
+
+-- | Usage: @'glDrawTextureNV' texture sampler x0 y0 x1 y1 z s0 t0 s1 t1@
+
+
+glDrawTextureNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glDrawTextureNV = ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glDrawTextureNVFunPtr
+
+glDrawTextureNVFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glDrawTextureNVFunPtr = unsafePerformIO (getProcAddress "glDrawTextureNV")
+
+{-# NOINLINE glDrawTextureNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/Evaluators.hs b/generated-src/Graphics/GL/Ext/NV/Evaluators.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/Evaluators.hs
@@ -0,0 +1,266 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.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.Internal.FFI
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/evaluators.txt GL_NV_evaluators> extension is available.
+
+gl_NV_evaluators :: Bool
+gl_NV_evaluators = member "GL_NV_evaluators" extensions
+{-# NOINLINE gl_NV_evaluators #-}
+
+-- | Usage: @'glEvalMapsNV' target mode@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @mode@ is a @EvalMapsModeNV@.
+
+
+glEvalMapsNV :: MonadIO m => GLenum -> GLenum -> m ()
+glEvalMapsNV = ffienumenumIOV glEvalMapsNVFunPtr
+
+glEvalMapsNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glEvalMapsNVFunPtr = unsafePerformIO (getProcAddress "glEvalMapsNV")
+
+{-# NOINLINE glEvalMapsNVFunPtr #-}
+
+-- | Usage: @'glGetMapAttribParameterfvNV' target index pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapAttribParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+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 #-}
+
+-- | Usage: @'glGetMapAttribParameterivNV' target index pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapAttribParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+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 #-}
+
+-- | Usage: @'glGetMapControlPointsNV' target index type ustride vstride packed points@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @type@ is a @MapTypeNV@.
+--
+-- The parameter @packed@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @points@ should be @COMPSIZE(target)@.
+
+
+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 #-}
+
+-- | Usage: @'glGetMapParameterfvNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
+
+glGetMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMapParameterfvNV = ffienumenumPtrfloatIOV glGetMapParameterfvNVFunPtr
+
+glGetMapParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMapParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetMapParameterfvNV")
+
+{-# NOINLINE glGetMapParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetMapParameterivNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
+
+glGetMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMapParameterivNV = ffienumenumPtrintIOV glGetMapParameterivNVFunPtr
+
+glGetMapParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMapParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetMapParameterivNV")
+
+{-# NOINLINE glGetMapParameterivNVFunPtr #-}
+
+-- | Usage: @'glMapControlPointsNV' target index type ustride vstride uorder vorder packed points@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @type@ is a @MapTypeNV@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @packed@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @points@ should be @COMPSIZE(target,uorder,vorder)@.
+
+
+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 #-}
+
+-- | Usage: @'glMapParameterfvNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
+
+glMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMapParameterfvNV = ffienumenumPtrfloatIOV glMapParameterfvNVFunPtr
+
+glMapParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMapParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glMapParameterfvNV")
+
+{-# NOINLINE glMapParameterfvNVFunPtr #-}
+
+-- | Usage: @'glMapParameterivNV' target pname params@
+--
+-- The parameter @target@ is a @EvalTargetNV@.
+--
+-- The parameter @pname@ is a @MapParameterNV@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(target,pname)@.
+
+
+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
+
+pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5
+
+pattern GL_EVAL_TRIANGULAR_2D_NV = 0x86C1
+
+pattern GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6
+
+pattern GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0
+
+pattern GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1
+
+pattern GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2
+
+pattern GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3
+
+pattern GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4
+
+pattern GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5
+
+pattern GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7
+
+pattern GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8
+
+pattern GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9
+
+pattern GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA
+
+pattern GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB
+
+pattern GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC
+
+pattern GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD
+
+pattern GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE
+
+pattern GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF
+
+pattern GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3
+
+pattern GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4
+
+pattern GL_MAP_TESSELLATION_NV = 0x86C2
+
+pattern GL_MAX_MAP_TESSELLATION_NV = 0x86D6
+
+pattern GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7
diff --git a/generated-src/Graphics/GL/Ext/NV/ExplicitAttribLocation.hs b/generated-src/Graphics/GL/Ext/NV/ExplicitAttribLocation.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ExplicitAttribLocation.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ExplicitAttribLocation (
+  -- * Extension Support
+    gl_NV_explicit_attrib_location
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_explicit_attrib_location.txt GL_NV_explicit_attrib_location> extension is available.
+
+gl_NV_explicit_attrib_location :: Bool
+gl_NV_explicit_attrib_location = member "GL_NV_explicit_attrib_location" extensions
+{-# NOINLINE gl_NV_explicit_attrib_location #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ExplicitMultisample.hs b/generated-src/Graphics/GL/Ext/NV/ExplicitMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ExplicitMultisample.hs
@@ -0,0 +1,98 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ExplicitMultisample (
+  -- * Extension Support
+    gl_NV_explicit_multisample
+
+  -- * GL_NV_explicit_multisample
+  , glGetMultisamplefvNV
+  , glSampleMaskIndexedNV
+  , glTexRenderbufferNV
+  , pattern GL_INT_SAMPLER_RENDERBUFFER_NV
+  , pattern GL_MAX_SAMPLE_MASK_WORDS_NV
+  , pattern GL_SAMPLER_RENDERBUFFER_NV
+  , pattern GL_SAMPLE_MASK_NV
+  , pattern GL_SAMPLE_MASK_VALUE_NV
+  , pattern GL_SAMPLE_POSITION_NV
+  , pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV
+  , pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV
+  , pattern GL_TEXTURE_RENDERBUFFER_NV
+  , pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/explicit_multisample.txt GL_NV_explicit_multisample> extension is available.
+
+gl_NV_explicit_multisample :: Bool
+gl_NV_explicit_multisample = member "GL_NV_explicit_multisample" extensions
+{-# NOINLINE gl_NV_explicit_multisample #-}
+
+-- | Usage: @'glGetMultisamplefvNV' pname index val@
+--
+-- The parameter @pname@ is a @GetMultisamplePNameNV@.
+--
+-- The length of @val@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetMultisamplefv'.
+
+
+glGetMultisamplefvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetMultisamplefvNV = ffienumuintPtrfloatIOV glGetMultisamplefvNVFunPtr
+
+glGetMultisamplefvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetMultisamplefvNVFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefvNV")
+
+{-# NOINLINE glGetMultisamplefvNVFunPtr #-}
+
+-- | Usage: @'glSampleMaskIndexedNV' index mask@
+--
+-- The parameter @mask@ is a @SampleMaskNV@.
+
+
+glSampleMaskIndexedNV :: MonadIO m => GLuint -> GLbitfield -> m ()
+glSampleMaskIndexedNV = ffiuintbitfieldIOV glSampleMaskIndexedNVFunPtr
+
+glSampleMaskIndexedNVFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
+glSampleMaskIndexedNVFunPtr = unsafePerformIO (getProcAddress "glSampleMaskIndexedNV")
+
+{-# NOINLINE glSampleMaskIndexedNVFunPtr #-}
+
+-- | Usage: @'glTexRenderbufferNV' target renderbuffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+
+
+glTexRenderbufferNV :: MonadIO m => GLenum -> GLuint -> m ()
+glTexRenderbufferNV = ffienumuintIOV glTexRenderbufferNVFunPtr
+
+glTexRenderbufferNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexRenderbufferNVFunPtr = unsafePerformIO (getProcAddress "glTexRenderbufferNV")
+
+{-# NOINLINE glTexRenderbufferNVFunPtr #-}
+
+pattern GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57
+
+pattern GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59
+
+pattern GL_SAMPLER_RENDERBUFFER_NV = 0x8E56
+
+pattern GL_SAMPLE_MASK_NV = 0x8E51
+
+pattern GL_SAMPLE_MASK_VALUE_NV = 0x8E52
+
+pattern GL_SAMPLE_POSITION_NV = 0x8E50
+
+pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53
+
+pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54
+
+pattern GL_TEXTURE_RENDERBUFFER_NV = 0x8E55
+
+pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58
diff --git a/generated-src/Graphics/GL/Ext/NV/FboColorAttachments.hs b/generated-src/Graphics/GL/Ext/NV/FboColorAttachments.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FboColorAttachments.hs
@@ -0,0 +1,37 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FboColorAttachments (
+  -- * Extension Support
+    gl_NV_fbo_color_attachments
+
+  -- * GL_NV_fbo_color_attachments
+  , pattern GL_COLOR_ATTACHMENT0_NV
+  , pattern GL_COLOR_ATTACHMENT10_NV
+  , pattern GL_COLOR_ATTACHMENT11_NV
+  , pattern GL_COLOR_ATTACHMENT12_NV
+  , pattern GL_COLOR_ATTACHMENT13_NV
+  , pattern GL_COLOR_ATTACHMENT14_NV
+  , pattern GL_COLOR_ATTACHMENT15_NV
+  , pattern GL_COLOR_ATTACHMENT1_NV
+  , pattern GL_COLOR_ATTACHMENT2_NV
+  , pattern GL_COLOR_ATTACHMENT3_NV
+  , pattern GL_COLOR_ATTACHMENT4_NV
+  , pattern GL_COLOR_ATTACHMENT5_NV
+  , pattern GL_COLOR_ATTACHMENT6_NV
+  , pattern GL_COLOR_ATTACHMENT7_NV
+  , pattern GL_COLOR_ATTACHMENT8_NV
+  , pattern GL_COLOR_ATTACHMENT9_NV
+  , pattern GL_MAX_COLOR_ATTACHMENTS_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_fbo_color_attachments.txt GL_NV_fbo_color_attachments> extension is available.
+
+gl_NV_fbo_color_attachments :: Bool
+gl_NV_fbo_color_attachments = member "GL_NV_fbo_color_attachments" extensions
+{-# NOINLINE gl_NV_fbo_color_attachments #-}
+
+pattern GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF
diff --git a/generated-src/Graphics/GL/Ext/NV/Fence.hs b/generated-src/Graphics/GL/Ext/NV/Fence.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/Fence.hs
@@ -0,0 +1,139 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.Fence (
+  -- * Extension Support
+    gl_NV_fence
+
+  -- * GL_NV_fence
+  , glDeleteFencesNV
+  , glFinishFenceNV
+  , glGenFencesNV
+  , glGetFenceivNV
+  , glIsFenceNV
+  , glSetFenceNV
+  , glTestFenceNV
+  , pattern GL_ALL_COMPLETED_NV
+  , pattern GL_FENCE_CONDITION_NV
+  , pattern GL_FENCE_STATUS_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_fence.txt GL_NV_fence> extension is available.
+
+gl_NV_fence :: Bool
+gl_NV_fence = member "GL_NV_fence" extensions
+{-# NOINLINE gl_NV_fence #-}
+
+-- | Usage: @'glDeleteFencesNV' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
+glDeleteFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFencesNV = ffisizeiPtruintIOV glDeleteFencesNVFunPtr
+
+glDeleteFencesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFencesNVFunPtr = unsafePerformIO (getProcAddress "glDeleteFencesNV")
+
+{-# NOINLINE glDeleteFencesNVFunPtr #-}
+
+-- | Usage: @'glFinishFenceNV' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
+glFinishFenceNV :: MonadIO m => GLuint -> m ()
+glFinishFenceNV = ffiuintIOV glFinishFenceNVFunPtr
+
+glFinishFenceNVFunPtr :: FunPtr (GLuint -> IO ())
+glFinishFenceNVFunPtr = unsafePerformIO (getProcAddress "glFinishFenceNV")
+
+{-# NOINLINE glFinishFenceNVFunPtr #-}
+
+-- | Usage: @'glGenFencesNV' n fences@
+--
+-- The parameter @fences@ is a @FenceNV@.
+--
+-- The length of @fences@ should be @n@.
+
+
+glGenFencesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFencesNV = ffisizeiPtruintIOV glGenFencesNVFunPtr
+
+glGenFencesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFencesNVFunPtr = unsafePerformIO (getProcAddress "glGenFencesNV")
+
+{-# NOINLINE glGenFencesNVFunPtr #-}
+
+-- | Usage: @'glGetFenceivNV' fence pname params@
+--
+-- The parameter @fence@ is a @FenceNV@.
+--
+-- The parameter @pname@ is a @FenceParameterNameNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFenceivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetFenceivNV = ffiuintenumPtrintIOV glGetFenceivNVFunPtr
+
+glGetFenceivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetFenceivNVFunPtr = unsafePerformIO (getProcAddress "glGetFenceivNV")
+
+{-# NOINLINE glGetFenceivNVFunPtr #-}
+
+-- | Usage: @'glIsFenceNV' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
+glIsFenceNV :: MonadIO m => GLuint -> m GLboolean
+glIsFenceNV = ffiuintIOboolean glIsFenceNVFunPtr
+
+glIsFenceNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFenceNVFunPtr = unsafePerformIO (getProcAddress "glIsFenceNV")
+
+{-# NOINLINE glIsFenceNVFunPtr #-}
+
+-- | Usage: @'glSetFenceNV' fence condition@
+--
+-- The parameter @fence@ is a @FenceNV@.
+--
+-- The parameter @condition@ is a @FenceConditionNV@.
+
+
+glSetFenceNV :: MonadIO m => GLuint -> GLenum -> m ()
+glSetFenceNV = ffiuintenumIOV glSetFenceNVFunPtr
+
+glSetFenceNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glSetFenceNVFunPtr = unsafePerformIO (getProcAddress "glSetFenceNV")
+
+{-# NOINLINE glSetFenceNVFunPtr #-}
+
+-- | Usage: @'glTestFenceNV' fence@
+--
+-- The parameter @fence@ is a @FenceNV@.
+
+
+glTestFenceNV :: MonadIO m => GLuint -> m GLboolean
+glTestFenceNV = ffiuintIOboolean glTestFenceNVFunPtr
+
+glTestFenceNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glTestFenceNVFunPtr = unsafePerformIO (getProcAddress "glTestFenceNV")
+
+{-# NOINLINE glTestFenceNVFunPtr #-}
+
+pattern GL_ALL_COMPLETED_NV = 0x84F2
+
+pattern GL_FENCE_CONDITION_NV = 0x84F4
+
+pattern GL_FENCE_STATUS_NV = 0x84F3
diff --git a/generated-src/Graphics/GL/Ext/NV/FillRectangle.hs b/generated-src/Graphics/GL/Ext/NV/FillRectangle.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FillRectangle.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FillRectangle (
+  -- * Extension Support
+    gl_NV_fill_rectangle
+
+  -- * GL_NV_fill_rectangle
+  , pattern GL_FILL_RECTANGLE_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fill_rectangle.txt GL_NV_fill_rectangle> extension is available.
+
+gl_NV_fill_rectangle :: Bool
+gl_NV_fill_rectangle = member "GL_NV_fill_rectangle" extensions
+{-# NOINLINE gl_NV_fill_rectangle #-}
+
+pattern GL_FILL_RECTANGLE_NV = 0x933C
diff --git a/generated-src/Graphics/GL/Ext/NV/FloatBuffer.hs b/generated-src/Graphics/GL/Ext/NV/FloatBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FloatBuffer.hs
@@ -0,0 +1,62 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FloatBuffer (
+  -- * Extension Support
+    gl_NV_float_buffer
+
+  -- * GL_NV_float_buffer
+  , pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV
+  , pattern GL_FLOAT_R16_NV
+  , pattern GL_FLOAT_R32_NV
+  , pattern GL_FLOAT_RG16_NV
+  , pattern GL_FLOAT_RG32_NV
+  , pattern GL_FLOAT_RGB16_NV
+  , pattern GL_FLOAT_RGB32_NV
+  , pattern GL_FLOAT_RGBA16_NV
+  , pattern GL_FLOAT_RGBA32_NV
+  , pattern GL_FLOAT_RGBA_MODE_NV
+  , pattern GL_FLOAT_RGBA_NV
+  , pattern GL_FLOAT_RGB_NV
+  , pattern GL_FLOAT_RG_NV
+  , pattern GL_FLOAT_R_NV
+  , pattern GL_TEXTURE_FLOAT_COMPONENTS_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/float_buffer.txt GL_NV_float_buffer> extension is available.
+
+gl_NV_float_buffer :: Bool
+gl_NV_float_buffer = member "GL_NV_float_buffer" extensions
+{-# NOINLINE gl_NV_float_buffer #-}
+
+pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D
+
+pattern GL_FLOAT_R16_NV = 0x8884
+
+pattern GL_FLOAT_R32_NV = 0x8885
+
+pattern GL_FLOAT_RG16_NV = 0x8886
+
+pattern GL_FLOAT_RG32_NV = 0x8887
+
+pattern GL_FLOAT_RGB16_NV = 0x8888
+
+pattern GL_FLOAT_RGB32_NV = 0x8889
+
+pattern GL_FLOAT_RGBA16_NV = 0x888A
+
+pattern GL_FLOAT_RGBA32_NV = 0x888B
+
+pattern GL_FLOAT_RGBA_MODE_NV = 0x888E
+
+pattern GL_FLOAT_RGBA_NV = 0x8883
+
+pattern GL_FLOAT_RGB_NV = 0x8882
+
+pattern GL_FLOAT_RG_NV = 0x8881
+
+pattern GL_FLOAT_R_NV = 0x8880
+
+pattern GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C
diff --git a/generated-src/Graphics/GL/Ext/NV/FogDistance.hs b/generated-src/Graphics/GL/Ext/NV/FogDistance.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FogDistance.hs
@@ -0,0 +1,28 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FogDistance (
+  -- * Extension Support
+    gl_NV_fog_distance
+
+  -- * GL_NV_fog_distance
+  , pattern GL_EYE_PLANE
+  , pattern GL_EYE_PLANE_ABSOLUTE_NV
+  , pattern GL_EYE_RADIAL_NV
+  , pattern GL_FOG_DISTANCE_MODE_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fog_distance.txt GL_NV_fog_distance> extension is available.
+
+gl_NV_fog_distance :: Bool
+gl_NV_fog_distance = member "GL_NV_fog_distance" extensions
+{-# NOINLINE gl_NV_fog_distance #-}
+
+pattern GL_EYE_PLANE_ABSOLUTE_NV = 0x855C
+
+pattern GL_EYE_RADIAL_NV = 0x855B
+
+pattern GL_FOG_DISTANCE_MODE_NV = 0x855A
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs b/generated-src/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FragmentCoverageToColor (
+  -- * Extension Support
+    gl_NV_fragment_coverage_to_color
+
+  -- * GL_NV_fragment_coverage_to_color
+  , glFragmentCoverageColorNV
+  , pattern GL_FRAGMENT_COVERAGE_COLOR_NV
+  , pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_coverage_to_color.txt GL_NV_fragment_coverage_to_color> extension is available.
+
+gl_NV_fragment_coverage_to_color :: Bool
+gl_NV_fragment_coverage_to_color = member "GL_NV_fragment_coverage_to_color" extensions
+{-# NOINLINE gl_NV_fragment_coverage_to_color #-}
+
+-- | Usage: @'glFragmentCoverageColorNV' color@
+
+
+glFragmentCoverageColorNV :: MonadIO m => GLuint -> m ()
+glFragmentCoverageColorNV = ffiuintIOV glFragmentCoverageColorNVFunPtr
+
+glFragmentCoverageColorNVFunPtr :: FunPtr (GLuint -> IO ())
+glFragmentCoverageColorNVFunPtr = unsafePerformIO (getProcAddress "glFragmentCoverageColorNV")
+
+{-# NOINLINE glFragmentCoverageColorNVFunPtr #-}
+
+pattern GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE
+
+pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentProgram.hs b/generated-src/Graphics/GL/Ext/NV/FragmentProgram.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentProgram.hs
@@ -0,0 +1,136 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.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.Internal.FFI
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program.txt GL_NV_fragment_program> extension is available.
+
+gl_NV_fragment_program :: Bool
+gl_NV_fragment_program = member "GL_NV_fragment_program" extensions
+{-# NOINLINE gl_NV_fragment_program #-}
+
+-- | Usage: @'glGetProgramNamedParameterdvNV' id len name params@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @params@ should be @4@.
+
+
+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 #-}
+
+-- | Usage: @'glGetProgramNamedParameterfvNV' id len name params@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @params@ should be @4@.
+
+
+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 #-}
+
+-- | Usage: @'glProgramNamedParameter4dNV' id len name x y z w@
+--
+-- The length of @name@ should be @1@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.FragmentProgram.glProgramNamedParameter4dvNV'.
+
+
+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 #-}
+
+-- | Usage: @'glProgramNamedParameter4dvNV' id len name v@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @v@ should be @4@.
+
+
+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 #-}
+
+-- | Usage: @'glProgramNamedParameter4fNV' id len name x y z w@
+--
+-- The length of @name@ should be @1@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.FragmentProgram.glProgramNamedParameter4fvNV'.
+
+
+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 #-}
+
+-- | Usage: @'glProgramNamedParameter4fvNV' id len name v@
+--
+-- The length of @name@ should be @1@.
+--
+-- The length of @v@ should be @4@.
+
+
+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
+
+pattern GL_FRAGMENT_PROGRAM_NV = 0x8870
+
+pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868
+
+pattern GL_MAX_TEXTURE_COORDS_NV = 0x8871
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872
+
+pattern GL_PROGRAM_ERROR_STRING_NV = 0x8874
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentProgram2.hs b/generated-src/Graphics/GL/Ext/NV/FragmentProgram2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentProgram2.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FragmentProgram2 (
+  -- * Extension Support
+    gl_NV_fragment_program2
+
+  -- * GL_NV_fragment_program2
+  , pattern GL_MAX_PROGRAM_CALL_DEPTH_NV
+  , pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
+  , pattern GL_MAX_PROGRAM_IF_DEPTH_NV
+  , pattern GL_MAX_PROGRAM_LOOP_COUNT_NV
+  , pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program2.txt GL_NV_fragment_program2> extension is available.
+
+gl_NV_fragment_program2 :: Bool
+gl_NV_fragment_program2 = member "GL_NV_fragment_program2" extensions
+{-# NOINLINE gl_NV_fragment_program2 #-}
+
+pattern GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6
+
+pattern GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8
+
+pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentProgram4.hs b/generated-src/Graphics/GL/Ext/NV/FragmentProgram4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentProgram4.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FragmentProgram4 (
+  -- * Extension Support
+    gl_NV_fragment_program4
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program4.txt GL_NV_fragment_program4> extension is available.
+
+gl_NV_fragment_program4 :: Bool
+gl_NV_fragment_program4 = member "GL_NV_fragment_program4" extensions
+{-# NOINLINE gl_NV_fragment_program4 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentProgramOption.hs b/generated-src/Graphics/GL/Ext/NV/FragmentProgramOption.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentProgramOption.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FragmentProgramOption (
+  -- * Extension Support
+    gl_NV_fragment_program_option
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_program_option.txt GL_NV_fragment_program_option> extension is available.
+
+gl_NV_fragment_program_option :: Bool
+gl_NV_fragment_program_option = member "GL_NV_fragment_program_option" extensions
+{-# NOINLINE gl_NV_fragment_program_option #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentShaderInterlock.hs b/generated-src/Graphics/GL/Ext/NV/FragmentShaderInterlock.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentShaderInterlock.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FragmentShaderInterlock (
+  -- * Extension Support
+    gl_NV_fragment_shader_interlock
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/fragment_shader_interlock.txt GL_NV_fragment_shader_interlock> extension is available.
+
+gl_NV_fragment_shader_interlock :: Bool
+gl_NV_fragment_shader_interlock = member "GL_NV_fragment_shader_interlock" extensions
+{-# NOINLINE gl_NV_fragment_shader_interlock #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferBlit.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferBlit.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferBlit.hs
@@ -0,0 +1,48 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FramebufferBlit (
+  -- * Extension Support
+    gl_NV_framebuffer_blit
+
+  -- * GL_NV_framebuffer_blit
+  , glBlitFramebufferNV
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING_NV
+  , pattern GL_DRAW_FRAMEBUFFER_NV
+  , pattern GL_READ_FRAMEBUFFER_BINDING_NV
+  , pattern GL_READ_FRAMEBUFFER_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_blit.txt GL_NV_framebuffer_blit> extension is available.
+
+gl_NV_framebuffer_blit :: Bool
+gl_NV_framebuffer_blit = member "GL_NV_framebuffer_blit" extensions
+{-# NOINLINE gl_NV_framebuffer_blit #-}
+
+-- | Usage: @'glBlitFramebufferNV' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlitFramebuffer'.
+
+
+glBlitFramebufferNV :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitFramebufferNV = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferNVFunPtr
+
+glBlitFramebufferNVFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitFramebufferNVFunPtr = unsafePerformIO (getProcAddress "glBlitFramebufferNV")
+
+{-# NOINLINE glBlitFramebufferNVFunPtr #-}
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6
+
+pattern GL_DRAW_FRAMEBUFFER_NV = 0x8CA9
+
+pattern GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA
+
+pattern GL_READ_FRAMEBUFFER_NV = 0x8CA8
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs
@@ -0,0 +1,88 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FramebufferMixedSamples (
+  -- * Extension Support
+    gl_NV_framebuffer_mixed_samples
+
+  -- * GL_NV_framebuffer_mixed_samples
+  , glCoverageModulationNV
+  , glCoverageModulationTableNV
+  , glGetCoverageModulationTableNV
+  , glRasterSamplesEXT
+  , pattern GL_COLOR_SAMPLES_NV
+  , pattern GL_COVERAGE_MODULATION_NV
+  , pattern GL_COVERAGE_MODULATION_TABLE_NV
+  , pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV
+  , pattern GL_DEPTH_SAMPLES_NV
+  , pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT
+  , pattern GL_MAX_RASTER_SAMPLES_EXT
+  , pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV
+  , pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV
+  , pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT
+  , pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT
+  , pattern GL_RASTER_MULTISAMPLE_EXT
+  , pattern GL_RASTER_SAMPLES_EXT
+  , pattern GL_STENCIL_SAMPLES_NV
+) 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/NV/framebuffer_mixed_samples.txt GL_NV_framebuffer_mixed_samples> extension is available.
+
+gl_NV_framebuffer_mixed_samples :: Bool
+gl_NV_framebuffer_mixed_samples = member "GL_NV_framebuffer_mixed_samples" extensions
+{-# NOINLINE gl_NV_framebuffer_mixed_samples #-}
+
+-- | Usage: @'glCoverageModulationNV' components@
+
+
+glCoverageModulationNV :: MonadIO m => GLenum -> m ()
+glCoverageModulationNV = ffienumIOV glCoverageModulationNVFunPtr
+
+glCoverageModulationNVFunPtr :: FunPtr (GLenum -> IO ())
+glCoverageModulationNVFunPtr = unsafePerformIO (getProcAddress "glCoverageModulationNV")
+
+{-# NOINLINE glCoverageModulationNVFunPtr #-}
+
+-- | Usage: @'glCoverageModulationTableNV' n v@
+
+
+glCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
+glCoverageModulationTableNV = ffisizeiPtrfloatIOV glCoverageModulationTableNVFunPtr
+
+glCoverageModulationTableNVFunPtr :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
+glCoverageModulationTableNVFunPtr = unsafePerformIO (getProcAddress "glCoverageModulationTableNV")
+
+{-# NOINLINE glCoverageModulationTableNVFunPtr #-}
+
+-- | Usage: @'glGetCoverageModulationTableNV' bufsize v@
+
+
+glGetCoverageModulationTableNV :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
+glGetCoverageModulationTableNV = ffisizeiPtrfloatIOV glGetCoverageModulationTableNVFunPtr
+
+glGetCoverageModulationTableNVFunPtr :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
+glGetCoverageModulationTableNVFunPtr = unsafePerformIO (getProcAddress "glGetCoverageModulationTableNV")
+
+{-# NOINLINE glGetCoverageModulationTableNVFunPtr #-}
+
+pattern GL_COVERAGE_MODULATION_NV = 0x9332
+
+pattern GL_COVERAGE_MODULATION_TABLE_NV = 0x9331
+
+pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333
+
+pattern GL_DEPTH_SAMPLES_NV = 0x932D
+
+pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F
+
+pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330
+
+pattern GL_STENCIL_SAMPLES_NV = 0x932E
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferMultisample.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisample.hs
@@ -0,0 +1,45 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FramebufferMultisample (
+  -- * Extension Support
+    gl_NV_framebuffer_multisample
+
+  -- * GL_NV_framebuffer_multisample
+  , glRenderbufferStorageMultisampleNV
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV
+  , pattern GL_MAX_SAMPLES_NV
+  , pattern GL_RENDERBUFFER_SAMPLES_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_multisample.txt GL_NV_framebuffer_multisample> extension is available.
+
+gl_NV_framebuffer_multisample :: Bool
+gl_NV_framebuffer_multisample = member "GL_NV_framebuffer_multisample" extensions
+{-# NOINLINE gl_NV_framebuffer_multisample #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleNV' target samples internalformat width height@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorageMultisample'.
+
+
+glRenderbufferStorageMultisampleNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleNV = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleNVFunPtr
+
+glRenderbufferStorageMultisampleNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleNV")
+
+{-# NOINLINE glRenderbufferStorageMultisampleNVFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56
+
+pattern GL_MAX_SAMPLES_NV = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.FramebufferMultisampleCoverage (
+  -- * Extension Support
+    gl_NV_framebuffer_multisample_coverage
+
+  -- * GL_NV_framebuffer_multisample_coverage
+  , glRenderbufferStorageMultisampleCoverageNV
+  , pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV
+  , pattern GL_MULTISAMPLE_COVERAGE_MODES_NV
+  , pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV
+  , pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/framebuffer_multisample_coverage.txt GL_NV_framebuffer_multisample_coverage> extension is available.
+
+gl_NV_framebuffer_multisample_coverage :: Bool
+gl_NV_framebuffer_multisample_coverage = member "GL_NV_framebuffer_multisample_coverage" extensions
+{-# NOINLINE gl_NV_framebuffer_multisample_coverage #-}
+
+-- | Usage: @'glRenderbufferStorageMultisampleCoverageNV' target coverageSamples colorSamples internalformat width height@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+
+
+glRenderbufferStorageMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleCoverageNV = ffienumsizeisizeienumsizeisizeiIOV glRenderbufferStorageMultisampleCoverageNVFunPtr
+
+glRenderbufferStorageMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleCoverageNV")
+
+{-# NOINLINE glRenderbufferStorageMultisampleCoverageNVFunPtr #-}
+
+pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11
+
+pattern GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12
+
+pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10
+
+pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/NV/GenerateMipmapSRGB.hs b/generated-src/Graphics/GL/Ext/NV/GenerateMipmapSRGB.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GenerateMipmapSRGB.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GenerateMipmapSRGB (
+  -- * Extension Support
+    gl_NV_generate_mipmap_sRGB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_generate_mipmap_sRGB.txt GL_NV_generate_mipmap_sRGB> extension is available.
+
+gl_NV_generate_mipmap_sRGB :: Bool
+gl_NV_generate_mipmap_sRGB = member "GL_NV_generate_mipmap_sRGB" extensions
+{-# NOINLINE gl_NV_generate_mipmap_sRGB #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/GeometryProgram4.hs b/generated-src/Graphics/GL/Ext/NV/GeometryProgram4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GeometryProgram4.hs
@@ -0,0 +1,85 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GeometryProgram4 (
+  -- * Extension Support
+    gl_NV_geometry_program4
+
+  -- * GL_NV_geometry_program4
+  , glFramebufferTextureEXT
+  , glFramebufferTextureFaceEXT
+  , glFramebufferTextureLayerEXT
+  , glProgramVertexLimitNV
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT
+  , pattern GL_GEOMETRY_INPUT_TYPE_EXT
+  , pattern GL_GEOMETRY_OUTPUT_TYPE_EXT
+  , pattern GL_GEOMETRY_PROGRAM_NV
+  , pattern GL_GEOMETRY_VERTICES_OUT_EXT
+  , pattern GL_LINES_ADJACENCY_EXT
+  , pattern GL_LINE_STRIP_ADJACENCY_EXT
+  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT
+  , pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV
+  , pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV
+  , pattern GL_PROGRAM_POINT_SIZE_EXT
+  , pattern GL_TRIANGLES_ADJACENCY_EXT
+  , pattern GL_TRIANGLE_STRIP_ADJACENCY_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/NV/geometry_program4.txt GL_NV_geometry_program4> extension is available.
+
+gl_NV_geometry_program4 :: Bool
+gl_NV_geometry_program4 = member "GL_NV_geometry_program4" extensions
+{-# NOINLINE gl_NV_geometry_program4 #-}
+
+-- | Usage: @'glFramebufferTextureFaceEXT' target attachment texture level face@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @face@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.GeometryShader4.glFramebufferTextureFaceARB'.
+
+
+glFramebufferTextureFaceEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
+glFramebufferTextureFaceEXT = ffienumenumuintintenumIOV glFramebufferTextureFaceEXTFunPtr
+
+glFramebufferTextureFaceEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+glFramebufferTextureFaceEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureFaceEXT")
+
+{-# NOINLINE glFramebufferTextureFaceEXTFunPtr #-}
+
+-- | Usage: @'glProgramVertexLimitNV' target limit@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+
+
+glProgramVertexLimitNV :: MonadIO m => GLenum -> GLint -> m ()
+glProgramVertexLimitNV = ffienumintIOV glProgramVertexLimitNVFunPtr
+
+glProgramVertexLimitNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glProgramVertexLimitNVFunPtr = unsafePerformIO (getProcAddress "glProgramVertexLimitNV")
+
+{-# NOINLINE glProgramVertexLimitNVFunPtr #-}
+
+pattern GL_GEOMETRY_PROGRAM_NV = 0x8C26
+
+pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27
+
+pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28
diff --git a/generated-src/Graphics/GL/Ext/NV/GeometryShader4.hs b/generated-src/Graphics/GL/Ext/NV/GeometryShader4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GeometryShader4.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GeometryShader4 (
+  -- * Extension Support
+    gl_NV_geometry_shader4
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader4.txt GL_NV_geometry_shader4> extension is available.
+
+gl_NV_geometry_shader4 :: Bool
+gl_NV_geometry_shader4 = member "GL_NV_geometry_shader4" extensions
+{-# NOINLINE gl_NV_geometry_shader4 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/GeometryShaderPassthrough.hs b/generated-src/Graphics/GL/Ext/NV/GeometryShaderPassthrough.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GeometryShaderPassthrough.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GeometryShaderPassthrough (
+  -- * Extension Support
+    gl_NV_geometry_shader_passthrough
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/geometry_shader_passthrough.txt GL_NV_geometry_shader_passthrough> extension is available.
+
+gl_NV_geometry_shader_passthrough :: Bool
+gl_NV_geometry_shader_passthrough = member "GL_NV_geometry_shader_passthrough" extensions
+{-# NOINLINE gl_NV_geometry_shader_passthrough #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/GpuProgram4.hs b/generated-src/Graphics/GL/Ext/NV/GpuProgram4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GpuProgram4.hs
@@ -0,0 +1,302 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GpuProgram4 (
+  -- * Extension Support
+    gl_NV_gpu_program4
+
+  -- * GL_NV_gpu_program4
+  , glGetProgramEnvParameterIivNV
+  , glGetProgramEnvParameterIuivNV
+  , glGetProgramLocalParameterIivNV
+  , glGetProgramLocalParameterIuivNV
+  , glProgramEnvParameterI4iNV
+  , glProgramEnvParameterI4ivNV
+  , glProgramEnvParameterI4uiNV
+  , glProgramEnvParameterI4uivNV
+  , glProgramEnvParametersI4ivNV
+  , glProgramEnvParametersI4uivNV
+  , glProgramLocalParameterI4iNV
+  , glProgramLocalParameterI4ivNV
+  , glProgramLocalParameterI4uiNV
+  , glProgramLocalParameterI4uivNV
+  , glProgramLocalParametersI4ivNV
+  , glProgramLocalParametersI4uivNV
+  , pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV
+  , pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV
+  , pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV
+  , pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV
+  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV
+  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV
+  , pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV
+  , pattern GL_PROGRAM_RESULT_COMPONENTS_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program4.txt GL_NV_gpu_program4> extension is available.
+
+gl_NV_gpu_program4 :: Bool
+gl_NV_gpu_program4 = member "GL_NV_gpu_program4" extensions
+{-# NOINLINE gl_NV_gpu_program4 #-}
+
+-- | Usage: @'glGetProgramEnvParameterIivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetProgramEnvParameterIivNV = ffienumuintPtrintIOV glGetProgramEnvParameterIivNVFunPtr
+
+glGetProgramEnvParameterIivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetProgramEnvParameterIivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterIivNV")
+
+{-# NOINLINE glGetProgramEnvParameterIivNVFunPtr #-}
+
+-- | Usage: @'glGetProgramEnvParameterIuivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
+glGetProgramEnvParameterIuivNV = ffienumuintPtruintIOV glGetProgramEnvParameterIuivNVFunPtr
+
+glGetProgramEnvParameterIuivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+glGetProgramEnvParameterIuivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterIuivNV")
+
+{-# NOINLINE glGetProgramEnvParameterIuivNVFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterIivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterIivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetProgramLocalParameterIivNV = ffienumuintPtrintIOV glGetProgramLocalParameterIivNVFunPtr
+
+glGetProgramLocalParameterIivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetProgramLocalParameterIivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterIivNV")
+
+{-# NOINLINE glGetProgramLocalParameterIivNVFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterIuivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterIuivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
+glGetProgramLocalParameterIuivNV = ffienumuintPtruintIOV glGetProgramLocalParameterIuivNVFunPtr
+
+glGetProgramLocalParameterIuivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+glGetProgramLocalParameterIuivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterIuivNV")
+
+{-# NOINLINE glGetProgramLocalParameterIuivNVFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameterI4iNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramEnvParameterI4ivNV'.
+
+
+glProgramEnvParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramEnvParameterI4iNV = ffienumuintintintintintIOV glProgramEnvParameterI4iNVFunPtr
+
+glProgramEnvParameterI4iNVFunPtr :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramEnvParameterI4iNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4iNV")
+
+{-# NOINLINE glProgramEnvParameterI4iNVFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameterI4ivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glProgramEnvParameterI4ivNV = ffienumuintPtrintIOV glProgramEnvParameterI4ivNVFunPtr
+
+glProgramEnvParameterI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glProgramEnvParameterI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4ivNV")
+
+{-# NOINLINE glProgramEnvParameterI4ivNVFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameterI4uiNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramEnvParameterI4uivNV'.
+
+
+glProgramEnvParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramEnvParameterI4uiNV = ffienumuintuintuintuintuintIOV glProgramEnvParameterI4uiNVFunPtr
+
+glProgramEnvParameterI4uiNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramEnvParameterI4uiNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4uiNV")
+
+{-# NOINLINE glProgramEnvParameterI4uiNVFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameterI4uivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
+glProgramEnvParameterI4uivNV = ffienumuintPtruintIOV glProgramEnvParameterI4uivNVFunPtr
+
+glProgramEnvParameterI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+glProgramEnvParameterI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameterI4uivNV")
+
+{-# NOINLINE glProgramEnvParameterI4uivNVFunPtr #-}
+
+-- | Usage: @'glProgramEnvParametersI4ivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glProgramEnvParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
+glProgramEnvParametersI4ivNV = ffienumuintsizeiPtrintIOV glProgramEnvParametersI4ivNVFunPtr
+
+glProgramEnvParametersI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+glProgramEnvParametersI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParametersI4ivNV")
+
+{-# NOINLINE glProgramEnvParametersI4ivNVFunPtr #-}
+
+-- | Usage: @'glProgramEnvParametersI4uivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glProgramEnvParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glProgramEnvParametersI4uivNV = ffienumuintsizeiPtruintIOV glProgramEnvParametersI4uivNVFunPtr
+
+glProgramEnvParametersI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramEnvParametersI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParametersI4uivNV")
+
+{-# NOINLINE glProgramEnvParametersI4uivNVFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameterI4iNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramLocalParameterI4ivNV'.
+
+
+glProgramLocalParameterI4iNV :: MonadIO m => GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramLocalParameterI4iNV = ffienumuintintintintintIOV glProgramLocalParameterI4iNVFunPtr
+
+glProgramLocalParameterI4iNVFunPtr :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramLocalParameterI4iNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4iNV")
+
+{-# NOINLINE glProgramLocalParameterI4iNVFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameterI4ivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameterI4ivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glProgramLocalParameterI4ivNV = ffienumuintPtrintIOV glProgramLocalParameterI4ivNVFunPtr
+
+glProgramLocalParameterI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glProgramLocalParameterI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4ivNV")
+
+{-# NOINLINE glProgramLocalParameterI4ivNVFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameterI4uiNV' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.GpuProgram4.glProgramLocalParameterI4uivNV'.
+
+
+glProgramLocalParameterI4uiNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramLocalParameterI4uiNV = ffienumuintuintuintuintuintIOV glProgramLocalParameterI4uiNVFunPtr
+
+glProgramLocalParameterI4uiNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramLocalParameterI4uiNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4uiNV")
+
+{-# NOINLINE glProgramLocalParameterI4uiNVFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameterI4uivNV' target index params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameterI4uivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
+glProgramLocalParameterI4uivNV = ffienumuintPtruintIOV glProgramLocalParameterI4uivNVFunPtr
+
+glProgramLocalParameterI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+glProgramLocalParameterI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameterI4uivNV")
+
+{-# NOINLINE glProgramLocalParameterI4uivNVFunPtr #-}
+
+-- | Usage: @'glProgramLocalParametersI4ivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glProgramLocalParametersI4ivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
+glProgramLocalParametersI4ivNV = ffienumuintsizeiPtrintIOV glProgramLocalParametersI4ivNVFunPtr
+
+glProgramLocalParametersI4ivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+glProgramLocalParametersI4ivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParametersI4ivNV")
+
+{-# NOINLINE glProgramLocalParametersI4ivNVFunPtr #-}
+
+-- | Usage: @'glProgramLocalParametersI4uivNV' target index count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count*4@.
+
+
+glProgramLocalParametersI4uivNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glProgramLocalParametersI4uivNV = ffienumuintsizeiPtruintIOV glProgramLocalParametersI4uivNVFunPtr
+
+glProgramLocalParametersI4uivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramLocalParametersI4uivNVFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParametersI4uivNV")
+
+{-# NOINLINE glProgramLocalParametersI4uivNVFunPtr #-}
+
+pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908
+
+pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5
+
+pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6
+
+pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904
+
+pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906
+
+pattern GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907
diff --git a/generated-src/Graphics/GL/Ext/NV/GpuProgram5.hs b/generated-src/Graphics/GL/Ext/NV/GpuProgram5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GpuProgram5.hs
@@ -0,0 +1,74 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GpuProgram5 (
+  -- * Extension Support
+    gl_NV_gpu_program5
+
+  -- * GL_NV_gpu_program5
+  , glGetProgramSubroutineParameteruivNV
+  , glProgramSubroutineParametersuivNV
+  , pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV
+  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV
+  , pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV
+  , pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV
+  , pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV
+  , pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV
+  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV
+  , pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5.txt GL_NV_gpu_program5> extension is available.
+
+gl_NV_gpu_program5 :: Bool
+gl_NV_gpu_program5 = member "GL_NV_gpu_program5" extensions
+{-# NOINLINE gl_NV_gpu_program5 #-}
+
+-- | Usage: @'glGetProgramSubroutineParameteruivNV' target index param@
+--
+-- The length of @param@ should be @COMPSIZE(target)@.
+
+
+glGetProgramSubroutineParameteruivNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint -> m ()
+glGetProgramSubroutineParameteruivNV = ffienumuintPtruintIOV glGetProgramSubroutineParameteruivNVFunPtr
+
+glGetProgramSubroutineParameteruivNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+glGetProgramSubroutineParameteruivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramSubroutineParameteruivNV")
+
+{-# NOINLINE glGetProgramSubroutineParameteruivNVFunPtr #-}
+
+-- | Usage: @'glProgramSubroutineParametersuivNV' target count params@
+--
+-- The length of @params@ should be @count@.
+
+
+glProgramSubroutineParametersuivNV :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glProgramSubroutineParametersuivNV = ffienumsizeiPtruintIOV glProgramSubroutineParametersuivNVFunPtr
+
+glProgramSubroutineParametersuivNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glProgramSubroutineParametersuivNVFunPtr = unsafePerformIO (getProcAddress "glProgramSubroutineParametersuivNV")
+
+{-# NOINLINE glProgramSubroutineParametersuivNVFunPtr #-}
+
+pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C
+
+pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A
+
+pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45
+
+pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E
diff --git a/generated-src/Graphics/GL/Ext/NV/GpuProgram5MemExtended.hs b/generated-src/Graphics/GL/Ext/NV/GpuProgram5MemExtended.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GpuProgram5MemExtended.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GpuProgram5MemExtended (
+  -- * Extension Support
+    gl_NV_gpu_program5_mem_extended
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_program5_mem_extended.txt GL_NV_gpu_program5_mem_extended> extension is available.
+
+gl_NV_gpu_program5_mem_extended :: Bool
+gl_NV_gpu_program5_mem_extended = member "GL_NV_gpu_program5_mem_extended" extensions
+{-# NOINLINE gl_NV_gpu_program5_mem_extended #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/GpuShader5.hs b/generated-src/Graphics/GL/Ext/NV/GpuShader5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/GpuShader5.hs
@@ -0,0 +1,80 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.GpuShader5 (
+  -- * Extension Support
+    gl_NV_gpu_shader5
+
+  -- * GL_NV_gpu_shader5
+  , glGetUniformi64vNV
+  , glProgramUniform1i64NV
+  , glProgramUniform1i64vNV
+  , glProgramUniform1ui64NV
+  , glProgramUniform1ui64vNV
+  , glProgramUniform2i64NV
+  , glProgramUniform2i64vNV
+  , glProgramUniform2ui64NV
+  , glProgramUniform2ui64vNV
+  , glProgramUniform3i64NV
+  , glProgramUniform3i64vNV
+  , glProgramUniform3ui64NV
+  , glProgramUniform3ui64vNV
+  , glProgramUniform4i64NV
+  , glProgramUniform4i64vNV
+  , glProgramUniform4ui64NV
+  , glProgramUniform4ui64vNV
+  , glUniform1i64NV
+  , glUniform1i64vNV
+  , glUniform1ui64NV
+  , glUniform1ui64vNV
+  , glUniform2i64NV
+  , glUniform2i64vNV
+  , glUniform2ui64NV
+  , glUniform2ui64vNV
+  , glUniform3i64NV
+  , glUniform3i64vNV
+  , glUniform3ui64NV
+  , glUniform3ui64vNV
+  , glUniform4i64NV
+  , glUniform4i64vNV
+  , glUniform4ui64NV
+  , glUniform4ui64vNV
+  , pattern GL_FLOAT16_NV
+  , pattern GL_FLOAT16_VEC2_NV
+  , pattern GL_FLOAT16_VEC3_NV
+  , pattern GL_FLOAT16_VEC4_NV
+  , pattern GL_INT16_NV
+  , pattern GL_INT16_VEC2_NV
+  , pattern GL_INT16_VEC3_NV
+  , pattern GL_INT16_VEC4_NV
+  , pattern GL_INT64_NV
+  , pattern GL_INT64_VEC2_NV
+  , pattern GL_INT64_VEC3_NV
+  , pattern GL_INT64_VEC4_NV
+  , pattern GL_INT8_NV
+  , pattern GL_INT8_VEC2_NV
+  , pattern GL_INT8_VEC3_NV
+  , pattern GL_INT8_VEC4_NV
+  , pattern GL_PATCHES
+  , pattern GL_UNSIGNED_INT16_NV
+  , pattern GL_UNSIGNED_INT16_VEC2_NV
+  , pattern GL_UNSIGNED_INT16_VEC3_NV
+  , pattern GL_UNSIGNED_INT16_VEC4_NV
+  , pattern GL_UNSIGNED_INT64_NV
+  , pattern GL_UNSIGNED_INT64_VEC2_NV
+  , pattern GL_UNSIGNED_INT64_VEC3_NV
+  , pattern GL_UNSIGNED_INT64_VEC4_NV
+  , pattern GL_UNSIGNED_INT8_NV
+  , pattern GL_UNSIGNED_INT8_VEC2_NV
+  , pattern GL_UNSIGNED_INT8_VEC3_NV
+  , pattern GL_UNSIGNED_INT8_VEC4_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/gpu_shader5.txt GL_NV_gpu_shader5> extension is available.
+
+gl_NV_gpu_shader5 :: Bool
+gl_NV_gpu_shader5 = member "GL_NV_gpu_shader5" extensions
+{-# NOINLINE gl_NV_gpu_shader5 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/HalfFloat.hs b/generated-src/Graphics/GL/Ext/NV/HalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/HalfFloat.hs
@@ -0,0 +1,843 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.HalfFloat (
+  -- * Extension Support
+    gl_NV_half_float
+
+  -- * GL_NV_half_float
+  , glColor3hNV
+  , glColor3hvNV
+  , glColor4hNV
+  , glColor4hvNV
+  , glFogCoordhNV
+  , glFogCoordhvNV
+  , glMultiTexCoord1hNV
+  , glMultiTexCoord1hvNV
+  , glMultiTexCoord2hNV
+  , glMultiTexCoord2hvNV
+  , glMultiTexCoord3hNV
+  , glMultiTexCoord3hvNV
+  , glMultiTexCoord4hNV
+  , glMultiTexCoord4hvNV
+  , glNormal3hNV
+  , glNormal3hvNV
+  , glSecondaryColor3hNV
+  , glSecondaryColor3hvNV
+  , glTexCoord1hNV
+  , glTexCoord1hvNV
+  , glTexCoord2hNV
+  , glTexCoord2hvNV
+  , glTexCoord3hNV
+  , glTexCoord3hvNV
+  , glTexCoord4hNV
+  , glTexCoord4hvNV
+  , glVertex2hNV
+  , glVertex2hvNV
+  , glVertex3hNV
+  , glVertex3hvNV
+  , glVertex4hNV
+  , glVertex4hvNV
+  , glVertexAttrib1hNV
+  , glVertexAttrib1hvNV
+  , glVertexAttrib2hNV
+  , glVertexAttrib2hvNV
+  , glVertexAttrib3hNV
+  , glVertexAttrib3hvNV
+  , glVertexAttrib4hNV
+  , glVertexAttrib4hvNV
+  , glVertexAttribs1hvNV
+  , glVertexAttribs2hvNV
+  , glVertexAttribs3hvNV
+  , glVertexAttribs4hvNV
+  , glVertexWeighthNV
+  , glVertexWeighthvNV
+  , pattern GL_HALF_FLOAT_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/half_float.txt GL_NV_half_float> extension is available.
+
+gl_NV_half_float :: Bool
+gl_NV_half_float = member "GL_NV_half_float" extensions
+{-# NOINLINE gl_NV_half_float #-}
+
+-- | Usage: @'glColor3hNV' red green blue@
+--
+-- The parameter @red@ is a @Half16NV@.
+--
+-- The parameter @green@ is a @Half16NV@.
+--
+-- The parameter @blue@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glColor3hvNV'.
+
+
+glColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glColor3hNV = ffihalfNVhalfNVhalfNVIOV glColor3hNVFunPtr
+
+glColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glColor3hNVFunPtr = unsafePerformIO (getProcAddress "glColor3hNV")
+
+{-# NOINLINE glColor3hNVFunPtr #-}
+
+-- | Usage: @'glColor3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glColor3hvNV = ffiPtrhalfNVIOV glColor3hvNVFunPtr
+
+glColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glColor3hvNVFunPtr = unsafePerformIO (getProcAddress "glColor3hvNV")
+
+{-# NOINLINE glColor3hvNVFunPtr #-}
+
+-- | Usage: @'glColor4hNV' red green blue alpha@
+--
+-- The parameter @red@ is a @Half16NV@.
+--
+-- The parameter @green@ is a @Half16NV@.
+--
+-- The parameter @blue@ is a @Half16NV@.
+--
+-- The parameter @alpha@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glColor4hvNV'.
+
+
+glColor4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glColor4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glColor4hNVFunPtr
+
+glColor4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glColor4hNVFunPtr = unsafePerformIO (getProcAddress "glColor4hNV")
+
+{-# NOINLINE glColor4hNVFunPtr #-}
+
+-- | Usage: @'glColor4hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glColor4hvNV = ffiPtrhalfNVIOV glColor4hvNVFunPtr
+
+glColor4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glColor4hvNVFunPtr = unsafePerformIO (getProcAddress "glColor4hvNV")
+
+{-# NOINLINE glColor4hvNVFunPtr #-}
+
+-- | Usage: @'glFogCoordhNV' fog@
+--
+-- The parameter @fog@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glFogCoordhvNV'.
+
+
+glFogCoordhNV :: MonadIO m => GLhalfNV -> m ()
+glFogCoordhNV = ffihalfNVIOV glFogCoordhNVFunPtr
+
+glFogCoordhNVFunPtr :: FunPtr (GLhalfNV -> IO ())
+glFogCoordhNVFunPtr = unsafePerformIO (getProcAddress "glFogCoordhNV")
+
+{-# NOINLINE glFogCoordhNVFunPtr #-}
+
+-- | Usage: @'glFogCoordhvNV' fog@
+--
+-- The parameter @fog@ is a @Half16NV@.
+--
+-- The length of @fog@ should be @1@.
+
+
+glFogCoordhvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glFogCoordhvNV = ffiPtrhalfNVIOV glFogCoordhvNVFunPtr
+
+glFogCoordhvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glFogCoordhvNVFunPtr = unsafePerformIO (getProcAddress "glFogCoordhvNV")
+
+{-# NOINLINE glFogCoordhvNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1hNV' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord1hvNV'.
+
+
+glMultiTexCoord1hNV :: MonadIO m => GLenum -> GLhalfNV -> m ()
+glMultiTexCoord1hNV = ffienumhalfNVIOV glMultiTexCoord1hNVFunPtr
+
+glMultiTexCoord1hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> IO ())
+glMultiTexCoord1hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1hNV")
+
+{-# NOINLINE glMultiTexCoord1hNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
+glMultiTexCoord1hvNV = ffienumPtrhalfNVIOV glMultiTexCoord1hvNVFunPtr
+
+glMultiTexCoord1hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+glMultiTexCoord1hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1hvNV")
+
+{-# NOINLINE glMultiTexCoord1hvNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2hNV' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord2hvNV'.
+
+
+glMultiTexCoord2hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> m ()
+glMultiTexCoord2hNV = ffienumhalfNVhalfNVIOV glMultiTexCoord2hNVFunPtr
+
+glMultiTexCoord2hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
+glMultiTexCoord2hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2hNV")
+
+{-# NOINLINE glMultiTexCoord2hNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
+glMultiTexCoord2hvNV = ffienumPtrhalfNVIOV glMultiTexCoord2hvNVFunPtr
+
+glMultiTexCoord2hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+glMultiTexCoord2hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2hvNV")
+
+{-# NOINLINE glMultiTexCoord2hvNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3hNV' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord3hvNV'.
+
+
+glMultiTexCoord3hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glMultiTexCoord3hNV = ffienumhalfNVhalfNVhalfNVIOV glMultiTexCoord3hNVFunPtr
+
+glMultiTexCoord3hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glMultiTexCoord3hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3hNV")
+
+{-# NOINLINE glMultiTexCoord3hNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
+glMultiTexCoord3hvNV = ffienumPtrhalfNVIOV glMultiTexCoord3hvNVFunPtr
+
+glMultiTexCoord3hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+glMultiTexCoord3hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3hvNV")
+
+{-# NOINLINE glMultiTexCoord3hvNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4hNV' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The parameter @q@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glMultiTexCoord4hvNV'.
+
+
+glMultiTexCoord4hNV :: MonadIO m => GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glMultiTexCoord4hNV = ffienumhalfNVhalfNVhalfNVhalfNVIOV glMultiTexCoord4hNVFunPtr
+
+glMultiTexCoord4hNVFunPtr :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glMultiTexCoord4hNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4hNV")
+
+{-# NOINLINE glMultiTexCoord4hNVFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4hvNV' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4hvNV :: MonadIO m => GLenum -> Ptr GLhalfNV -> m ()
+glMultiTexCoord4hvNV = ffienumPtrhalfNVIOV glMultiTexCoord4hvNVFunPtr
+
+glMultiTexCoord4hvNVFunPtr :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+glMultiTexCoord4hvNVFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4hvNV")
+
+{-# NOINLINE glMultiTexCoord4hvNVFunPtr #-}
+
+-- | Usage: @'glNormal3hNV' nx ny nz@
+--
+-- The parameter @nx@ is a @Half16NV@.
+--
+-- The parameter @ny@ is a @Half16NV@.
+--
+-- The parameter @nz@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glNormal3hvNV'.
+
+
+glNormal3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glNormal3hNV = ffihalfNVhalfNVhalfNVIOV glNormal3hNVFunPtr
+
+glNormal3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glNormal3hNVFunPtr = unsafePerformIO (getProcAddress "glNormal3hNV")
+
+{-# NOINLINE glNormal3hNVFunPtr #-}
+
+-- | Usage: @'glNormal3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glNormal3hvNV = ffiPtrhalfNVIOV glNormal3hvNVFunPtr
+
+glNormal3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glNormal3hvNVFunPtr = unsafePerformIO (getProcAddress "glNormal3hvNV")
+
+{-# NOINLINE glNormal3hvNVFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3hNV' red green blue@
+--
+-- The parameter @red@ is a @Half16NV@.
+--
+-- The parameter @green@ is a @Half16NV@.
+--
+-- The parameter @blue@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glSecondaryColor3hvNV'.
+
+
+glSecondaryColor3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glSecondaryColor3hNV = ffihalfNVhalfNVhalfNVIOV glSecondaryColor3hNVFunPtr
+
+glSecondaryColor3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glSecondaryColor3hNVFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3hNV")
+
+{-# NOINLINE glSecondaryColor3hNVFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glSecondaryColor3hvNV = ffiPtrhalfNVIOV glSecondaryColor3hvNVFunPtr
+
+glSecondaryColor3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glSecondaryColor3hvNVFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3hvNV")
+
+{-# NOINLINE glSecondaryColor3hvNVFunPtr #-}
+
+-- | Usage: @'glTexCoord1hNV' s@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord1hvNV'.
+
+
+glTexCoord1hNV :: MonadIO m => GLhalfNV -> m ()
+glTexCoord1hNV = ffihalfNVIOV glTexCoord1hNVFunPtr
+
+glTexCoord1hNVFunPtr :: FunPtr (GLhalfNV -> IO ())
+glTexCoord1hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord1hNV")
+
+{-# NOINLINE glTexCoord1hNVFunPtr #-}
+
+-- | Usage: @'glTexCoord1hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glTexCoord1hvNV = ffiPtrhalfNVIOV glTexCoord1hvNVFunPtr
+
+glTexCoord1hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glTexCoord1hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord1hvNV")
+
+{-# NOINLINE glTexCoord1hvNVFunPtr #-}
+
+-- | Usage: @'glTexCoord2hNV' s t@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord2hvNV'.
+
+
+glTexCoord2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
+glTexCoord2hNV = ffihalfNVhalfNVIOV glTexCoord2hNVFunPtr
+
+glTexCoord2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
+glTexCoord2hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord2hNV")
+
+{-# NOINLINE glTexCoord2hNVFunPtr #-}
+
+-- | Usage: @'glTexCoord2hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glTexCoord2hvNV = ffiPtrhalfNVIOV glTexCoord2hvNVFunPtr
+
+glTexCoord2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glTexCoord2hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord2hvNV")
+
+{-# NOINLINE glTexCoord2hvNVFunPtr #-}
+
+-- | Usage: @'glTexCoord3hNV' s t r@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord3hvNV'.
+
+
+glTexCoord3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glTexCoord3hNV = ffihalfNVhalfNVhalfNVIOV glTexCoord3hNVFunPtr
+
+glTexCoord3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glTexCoord3hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord3hNV")
+
+{-# NOINLINE glTexCoord3hNVFunPtr #-}
+
+-- | Usage: @'glTexCoord3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glTexCoord3hvNV = ffiPtrhalfNVIOV glTexCoord3hvNVFunPtr
+
+glTexCoord3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glTexCoord3hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord3hvNV")
+
+{-# NOINLINE glTexCoord3hvNVFunPtr #-}
+
+-- | Usage: @'glTexCoord4hNV' s t r q@
+--
+-- The parameter @s@ is a @Half16NV@.
+--
+-- The parameter @t@ is a @Half16NV@.
+--
+-- The parameter @r@ is a @Half16NV@.
+--
+-- The parameter @q@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glTexCoord4hvNV'.
+
+
+glTexCoord4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glTexCoord4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glTexCoord4hNVFunPtr
+
+glTexCoord4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glTexCoord4hNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord4hNV")
+
+{-# NOINLINE glTexCoord4hNVFunPtr #-}
+
+-- | Usage: @'glTexCoord4hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glTexCoord4hvNV = ffiPtrhalfNVIOV glTexCoord4hvNVFunPtr
+
+glTexCoord4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glTexCoord4hvNVFunPtr = unsafePerformIO (getProcAddress "glTexCoord4hvNV")
+
+{-# NOINLINE glTexCoord4hvNVFunPtr #-}
+
+-- | Usage: @'glVertex2hNV' x y@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex2hvNV'.
+
+
+glVertex2hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> m ()
+glVertex2hNV = ffihalfNVhalfNVIOV glVertex2hNVFunPtr
+
+glVertex2hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
+glVertex2hNVFunPtr = unsafePerformIO (getProcAddress "glVertex2hNV")
+
+{-# NOINLINE glVertex2hNVFunPtr #-}
+
+-- | Usage: @'glVertex2hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glVertex2hvNV = ffiPtrhalfNVIOV glVertex2hvNVFunPtr
+
+glVertex2hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glVertex2hvNVFunPtr = unsafePerformIO (getProcAddress "glVertex2hvNV")
+
+{-# NOINLINE glVertex2hvNVFunPtr #-}
+
+-- | Usage: @'glVertex3hNV' x y z@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex3hvNV'.
+
+
+glVertex3hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glVertex3hNV = ffihalfNVhalfNVhalfNVIOV glVertex3hNVFunPtr
+
+glVertex3hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glVertex3hNVFunPtr = unsafePerformIO (getProcAddress "glVertex3hNV")
+
+{-# NOINLINE glVertex3hNVFunPtr #-}
+
+-- | Usage: @'glVertex3hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glVertex3hvNV = ffiPtrhalfNVIOV glVertex3hvNVFunPtr
+
+glVertex3hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glVertex3hvNVFunPtr = unsafePerformIO (getProcAddress "glVertex3hvNV")
+
+{-# NOINLINE glVertex3hvNVFunPtr #-}
+
+-- | Usage: @'glVertex4hNV' x y z w@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The parameter @w@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertex4hvNV'.
+
+
+glVertex4hNV :: MonadIO m => GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glVertex4hNV = ffihalfNVhalfNVhalfNVhalfNVIOV glVertex4hNVFunPtr
+
+glVertex4hNVFunPtr :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glVertex4hNVFunPtr = unsafePerformIO (getProcAddress "glVertex4hNV")
+
+{-# NOINLINE glVertex4hNVFunPtr #-}
+
+-- | Usage: @'glVertex4hvNV' v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4hvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glVertex4hvNV = ffiPtrhalfNVIOV glVertex4hvNVFunPtr
+
+glVertex4hvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glVertex4hvNVFunPtr = unsafePerformIO (getProcAddress "glVertex4hvNV")
+
+{-# NOINLINE glVertex4hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1hNV' index x@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib1hvNV'.
+
+
+glVertexAttrib1hNV :: MonadIO m => GLuint -> GLhalfNV -> m ()
+glVertexAttrib1hNV = ffiuinthalfNVIOV glVertexAttrib1hNVFunPtr
+
+glVertexAttrib1hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> IO ())
+glVertexAttrib1hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1hNV")
+
+{-# NOINLINE glVertexAttrib1hNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
+glVertexAttrib1hvNV = ffiuintPtrhalfNVIOV glVertexAttrib1hvNVFunPtr
+
+glVertexAttrib1hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+glVertexAttrib1hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1hvNV")
+
+{-# NOINLINE glVertexAttrib1hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2hNV' index x y@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib2hvNV'.
+
+
+glVertexAttrib2hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> m ()
+glVertexAttrib2hNV = ffiuinthalfNVhalfNVIOV glVertexAttrib2hNVFunPtr
+
+glVertexAttrib2hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ())
+glVertexAttrib2hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2hNV")
+
+{-# NOINLINE glVertexAttrib2hNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
+glVertexAttrib2hvNV = ffiuintPtrhalfNVIOV glVertexAttrib2hvNVFunPtr
+
+glVertexAttrib2hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+glVertexAttrib2hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2hvNV")
+
+{-# NOINLINE glVertexAttrib2hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3hNV' index x y z@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib3hvNV'.
+
+
+glVertexAttrib3hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glVertexAttrib3hNV = ffiuinthalfNVhalfNVhalfNVIOV glVertexAttrib3hNVFunPtr
+
+glVertexAttrib3hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glVertexAttrib3hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3hNV")
+
+{-# NOINLINE glVertexAttrib3hNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
+glVertexAttrib3hvNV = ffiuintPtrhalfNVIOV glVertexAttrib3hvNVFunPtr
+
+glVertexAttrib3hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+glVertexAttrib3hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3hvNV")
+
+{-# NOINLINE glVertexAttrib3hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4hNV' index x y z w@
+--
+-- The parameter @x@ is a @Half16NV@.
+--
+-- The parameter @y@ is a @Half16NV@.
+--
+-- The parameter @z@ is a @Half16NV@.
+--
+-- The parameter @w@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexAttrib4hvNV'.
+
+
+glVertexAttrib4hNV :: MonadIO m => GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+glVertexAttrib4hNV = ffiuinthalfNVhalfNVhalfNVhalfNVIOV glVertexAttrib4hNVFunPtr
+
+glVertexAttrib4hNVFunPtr :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+glVertexAttrib4hNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4hNV")
+
+{-# NOINLINE glVertexAttrib4hNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4hvNV' index v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4hvNV :: MonadIO m => GLuint -> Ptr GLhalfNV -> m ()
+glVertexAttrib4hvNV = ffiuintPtrhalfNVIOV glVertexAttrib4hvNVFunPtr
+
+glVertexAttrib4hvNVFunPtr :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+glVertexAttrib4hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4hvNV")
+
+{-# NOINLINE glVertexAttrib4hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs1hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
+glVertexAttribs1hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
+glVertexAttribs1hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs1hvNVFunPtr
+
+glVertexAttribs1hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+glVertexAttribs1hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1hvNV")
+
+{-# NOINLINE glVertexAttribs1hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs2hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
+glVertexAttribs2hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
+glVertexAttribs2hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs2hvNVFunPtr
+
+glVertexAttribs2hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+glVertexAttribs2hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2hvNV")
+
+{-# NOINLINE glVertexAttribs2hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs3hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
+glVertexAttribs3hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
+glVertexAttribs3hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs3hvNVFunPtr
+
+glVertexAttribs3hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+glVertexAttribs3hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3hvNV")
+
+{-# NOINLINE glVertexAttribs3hvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs4hvNV' index n v@
+--
+-- The parameter @v@ is a @Half16NV@.
+--
+-- The length of @v@ should be @n@.
+
+
+glVertexAttribs4hvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
+glVertexAttribs4hvNV = ffiuintsizeiPtrhalfNVIOV glVertexAttribs4hvNVFunPtr
+
+glVertexAttribs4hvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+glVertexAttribs4hvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4hvNV")
+
+{-# NOINLINE glVertexAttribs4hvNVFunPtr #-}
+
+-- | Usage: @'glVertexWeighthNV' weight@
+--
+-- The parameter @weight@ is a @Half16NV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.HalfFloat.glVertexWeighthvNV'.
+
+
+glVertexWeighthNV :: MonadIO m => GLhalfNV -> m ()
+glVertexWeighthNV = ffihalfNVIOV glVertexWeighthNVFunPtr
+
+glVertexWeighthNVFunPtr :: FunPtr (GLhalfNV -> IO ())
+glVertexWeighthNVFunPtr = unsafePerformIO (getProcAddress "glVertexWeighthNV")
+
+{-# NOINLINE glVertexWeighthNVFunPtr #-}
+
+-- | Usage: @'glVertexWeighthvNV' weight@
+--
+-- The parameter @weight@ is a @Half16NV@.
+--
+-- The length of @weight@ should be @1@.
+
+
+glVertexWeighthvNV :: MonadIO m => Ptr GLhalfNV -> m ()
+glVertexWeighthvNV = ffiPtrhalfNVIOV glVertexWeighthvNVFunPtr
+
+glVertexWeighthvNVFunPtr :: FunPtr (Ptr GLhalfNV -> IO ())
+glVertexWeighthvNVFunPtr = unsafePerformIO (getProcAddress "glVertexWeighthvNV")
+
+{-# NOINLINE glVertexWeighthvNVFunPtr #-}
+
+pattern GL_HALF_FLOAT_NV = 0x140B
diff --git a/generated-src/Graphics/GL/Ext/NV/ImageFormats.hs b/generated-src/Graphics/GL/Ext/NV/ImageFormats.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ImageFormats.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ImageFormats (
+  -- * Extension Support
+    gl_NV_image_formats
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_NV_image_formats extension is available.
+
+gl_NV_image_formats :: Bool
+gl_NV_image_formats = member "GL_NV_image_formats" extensions
+{-# NOINLINE gl_NV_image_formats #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/NV/InstancedArrays.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/InstancedArrays.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.InstancedArrays (
+  -- * Extension Support
+    gl_NV_instanced_arrays
+
+  -- * GL_NV_instanced_arrays
+  , glVertexAttribDivisorNV
+  , pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_instanced_arrays.txt GL_NV_instanced_arrays> extension is available.
+
+gl_NV_instanced_arrays :: Bool
+gl_NV_instanced_arrays = member "GL_NV_instanced_arrays" extensions
+{-# NOINLINE gl_NV_instanced_arrays #-}
+
+-- | Usage: @'glVertexAttribDivisorNV' index divisor@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribDivisor'.
+
+
+glVertexAttribDivisorNV :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribDivisorNV = ffiuintuintIOV glVertexAttribDivisorNVFunPtr
+
+glVertexAttribDivisorNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribDivisorNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisorNV")
+
+{-# NOINLINE glVertexAttribDivisorNVFunPtr #-}
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs b/generated-src/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs
@@ -0,0 +1,52 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.InternalformatSampleQuery (
+  -- * Extension Support
+    gl_NV_internalformat_sample_query
+
+  -- * GL_NV_internalformat_sample_query
+  , glGetInternalformatSampleivNV
+  , pattern GL_CONFORMANT_NV
+  , pattern GL_MULTISAMPLES_NV
+  , pattern GL_RENDERBUFFER
+  , pattern GL_SUPERSAMPLE_SCALE_X_NV
+  , pattern GL_SUPERSAMPLE_SCALE_Y_NV
+  , pattern GL_TEXTURE_2D_MULTISAMPLE
+  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY
+) 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://www.khronos.org/registry/gles/extensions/NV/NV_internalformat_sample_query.txt GL_NV_internalformat_sample_query> extension is available.
+
+gl_NV_internalformat_sample_query :: Bool
+gl_NV_internalformat_sample_query = member "GL_NV_internalformat_sample_query" extensions
+{-# NOINLINE gl_NV_internalformat_sample_query #-}
+
+-- | Usage: @'glGetInternalformatSampleivNV' target internalformat samples pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetInternalformatSampleivNV :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()
+glGetInternalformatSampleivNV = ffienumenumsizeienumsizeiPtrintIOV glGetInternalformatSampleivNVFunPtr
+
+glGetInternalformatSampleivNVFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+glGetInternalformatSampleivNVFunPtr = unsafePerformIO (getProcAddress "glGetInternalformatSampleivNV")
+
+{-# NOINLINE glGetInternalformatSampleivNVFunPtr #-}
+
+pattern GL_CONFORMANT_NV = 0x9374
+
+pattern GL_MULTISAMPLES_NV = 0x9371
+
+pattern GL_SUPERSAMPLE_SCALE_X_NV = 0x9372
+
+pattern GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373
diff --git a/generated-src/Graphics/GL/Ext/NV/LightMaxExponent.hs b/generated-src/Graphics/GL/Ext/NV/LightMaxExponent.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/LightMaxExponent.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.LightMaxExponent (
+  -- * Extension Support
+    gl_NV_light_max_exponent
+
+  -- * GL_NV_light_max_exponent
+  , pattern GL_MAX_SHININESS_NV
+  , pattern GL_MAX_SPOT_EXPONENT_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/light_max_exponent.txt GL_NV_light_max_exponent> extension is available.
+
+gl_NV_light_max_exponent :: Bool
+gl_NV_light_max_exponent = member "GL_NV_light_max_exponent" extensions
+{-# NOINLINE gl_NV_light_max_exponent #-}
+
+pattern GL_MAX_SHININESS_NV = 0x8504
+
+pattern GL_MAX_SPOT_EXPONENT_NV = 0x8505
diff --git a/generated-src/Graphics/GL/Ext/NV/MultisampleCoverage.hs b/generated-src/Graphics/GL/Ext/NV/MultisampleCoverage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/MultisampleCoverage.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.MultisampleCoverage (
+  -- * Extension Support
+    gl_NV_multisample_coverage
+
+  -- * GL_NV_multisample_coverage
+  , pattern GL_COLOR_SAMPLES_NV
+  , pattern GL_SAMPLES_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_coverage.txt GL_NV_multisample_coverage> extension is available.
+
+gl_NV_multisample_coverage :: Bool
+gl_NV_multisample_coverage = member "GL_NV_multisample_coverage" extensions
+{-# NOINLINE gl_NV_multisample_coverage #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/MultisampleFilterHint.hs b/generated-src/Graphics/GL/Ext/NV/MultisampleFilterHint.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/MultisampleFilterHint.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.MultisampleFilterHint (
+  -- * Extension Support
+    gl_NV_multisample_filter_hint
+
+  -- * GL_NV_multisample_filter_hint
+  , pattern GL_MULTISAMPLE_FILTER_HINT_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/multisample_filter_hint.txt GL_NV_multisample_filter_hint> extension is available.
+
+gl_NV_multisample_filter_hint :: Bool
+gl_NV_multisample_filter_hint = member "GL_NV_multisample_filter_hint" extensions
+{-# NOINLINE gl_NV_multisample_filter_hint #-}
+
+pattern GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534
diff --git a/generated-src/Graphics/GL/Ext/NV/NonSquareMatrices.hs b/generated-src/Graphics/GL/Ext/NV/NonSquareMatrices.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/NonSquareMatrices.hs
@@ -0,0 +1,148 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.NonSquareMatrices (
+  -- * Extension Support
+    gl_NV_non_square_matrices
+
+  -- * GL_NV_non_square_matrices
+  , glUniformMatrix2x3fvNV
+  , glUniformMatrix2x4fvNV
+  , glUniformMatrix3x2fvNV
+  , glUniformMatrix3x4fvNV
+  , glUniformMatrix4x2fvNV
+  , glUniformMatrix4x3fvNV
+  , pattern GL_FLOAT_MAT2x3_NV
+  , pattern GL_FLOAT_MAT2x4_NV
+  , pattern GL_FLOAT_MAT3x2_NV
+  , pattern GL_FLOAT_MAT3x4_NV
+  , pattern GL_FLOAT_MAT4x2_NV
+  , pattern GL_FLOAT_MAT4x3_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt GL_NV_non_square_matrices> extension is available.
+
+gl_NV_non_square_matrices :: Bool
+gl_NV_non_square_matrices = member "GL_NV_non_square_matrices" extensions
+{-# NOINLINE gl_NV_non_square_matrices #-}
+
+-- | Usage: @'glUniformMatrix2x3fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix2x3fv'.
+
+
+glUniformMatrix2x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x3fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvNVFunPtr
+
+glUniformMatrix2x3fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x3fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fvNV")
+
+{-# NOINLINE glUniformMatrix2x3fvNVFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x4fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix2x4fv'.
+
+
+glUniformMatrix2x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x4fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvNVFunPtr
+
+glUniformMatrix2x4fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x4fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fvNV")
+
+{-# NOINLINE glUniformMatrix2x4fvNVFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x2fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix3x2fv'.
+
+
+glUniformMatrix3x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x2fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvNVFunPtr
+
+glUniformMatrix3x2fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x2fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fvNV")
+
+{-# NOINLINE glUniformMatrix3x2fvNVFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x4fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix3x4fv'.
+
+
+glUniformMatrix3x4fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x4fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvNVFunPtr
+
+glUniformMatrix3x4fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x4fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fvNV")
+
+{-# NOINLINE glUniformMatrix3x4fvNVFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x2fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix4x2fv'.
+
+
+glUniformMatrix4x2fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x2fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvNVFunPtr
+
+glUniformMatrix4x2fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x2fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fvNV")
+
+{-# NOINLINE glUniformMatrix4x2fvNVFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3fvNV' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniformMatrix4x3fv'.
+
+
+glUniformMatrix4x3fvNV :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x3fvNV = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvNVFunPtr
+
+glUniformMatrix4x3fvNVFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x3fvNVFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fvNV")
+
+{-# NOINLINE glUniformMatrix4x3fvNVFunPtr #-}
+
+pattern GL_FLOAT_MAT2x3_NV = 0x8B65
+
+pattern GL_FLOAT_MAT2x4_NV = 0x8B66
+
+pattern GL_FLOAT_MAT3x2_NV = 0x8B67
+
+pattern GL_FLOAT_MAT3x4_NV = 0x8B68
+
+pattern GL_FLOAT_MAT4x2_NV = 0x8B69
+
+pattern GL_FLOAT_MAT4x3_NV = 0x8B6A
diff --git a/generated-src/Graphics/GL/Ext/NV/OcclusionQuery.hs b/generated-src/Graphics/GL/Ext/NV/OcclusionQuery.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/OcclusionQuery.hs
@@ -0,0 +1,130 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.OcclusionQuery (
+  -- * Extension Support
+    gl_NV_occlusion_query
+
+  -- * GL_NV_occlusion_query
+  , glBeginOcclusionQueryNV
+  , glDeleteOcclusionQueriesNV
+  , glEndOcclusionQueryNV
+  , glGenOcclusionQueriesNV
+  , glGetOcclusionQueryivNV
+  , glGetOcclusionQueryuivNV
+  , glIsOcclusionQueryNV
+  , pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV
+  , pattern GL_PIXEL_COUNTER_BITS_NV
+  , pattern GL_PIXEL_COUNT_AVAILABLE_NV
+  , pattern GL_PIXEL_COUNT_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/occlusion_query.txt GL_NV_occlusion_query> extension is available.
+
+gl_NV_occlusion_query :: Bool
+gl_NV_occlusion_query = member "GL_NV_occlusion_query" extensions
+{-# NOINLINE gl_NV_occlusion_query #-}
+
+-- | Usage: @'glBeginOcclusionQueryNV' id@
+
+
+glBeginOcclusionQueryNV :: MonadIO m => GLuint -> m ()
+glBeginOcclusionQueryNV = ffiuintIOV glBeginOcclusionQueryNVFunPtr
+
+glBeginOcclusionQueryNVFunPtr :: FunPtr (GLuint -> IO ())
+glBeginOcclusionQueryNVFunPtr = unsafePerformIO (getProcAddress "glBeginOcclusionQueryNV")
+
+{-# NOINLINE glBeginOcclusionQueryNVFunPtr #-}
+
+-- | Usage: @'glDeleteOcclusionQueriesNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glDeleteOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteOcclusionQueriesNV = ffisizeiPtruintIOV glDeleteOcclusionQueriesNVFunPtr
+
+glDeleteOcclusionQueriesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteOcclusionQueriesNVFunPtr = unsafePerformIO (getProcAddress "glDeleteOcclusionQueriesNV")
+
+{-# NOINLINE glDeleteOcclusionQueriesNVFunPtr #-}
+
+-- | Usage: @'glEndOcclusionQueryNV'@
+
+
+glEndOcclusionQueryNV :: MonadIO m => m ()
+glEndOcclusionQueryNV = ffiIOV glEndOcclusionQueryNVFunPtr
+
+glEndOcclusionQueryNVFunPtr :: FunPtr (IO ())
+glEndOcclusionQueryNVFunPtr = unsafePerformIO (getProcAddress "glEndOcclusionQueryNV")
+
+{-# NOINLINE glEndOcclusionQueryNVFunPtr #-}
+
+-- | Usage: @'glGenOcclusionQueriesNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glGenOcclusionQueriesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenOcclusionQueriesNV = ffisizeiPtruintIOV glGenOcclusionQueriesNVFunPtr
+
+glGenOcclusionQueriesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenOcclusionQueriesNVFunPtr = unsafePerformIO (getProcAddress "glGenOcclusionQueriesNV")
+
+{-# NOINLINE glGenOcclusionQueriesNVFunPtr #-}
+
+-- | Usage: @'glGetOcclusionQueryivNV' id pname params@
+--
+-- The parameter @pname@ is a @OcclusionQueryParameterNameNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetOcclusionQueryivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetOcclusionQueryivNV = ffiuintenumPtrintIOV glGetOcclusionQueryivNVFunPtr
+
+glGetOcclusionQueryivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetOcclusionQueryivNVFunPtr = unsafePerformIO (getProcAddress "glGetOcclusionQueryivNV")
+
+{-# NOINLINE glGetOcclusionQueryivNVFunPtr #-}
+
+-- | Usage: @'glGetOcclusionQueryuivNV' id pname params@
+--
+-- The parameter @pname@ is a @OcclusionQueryParameterNameNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetOcclusionQueryuivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetOcclusionQueryuivNV = ffiuintenumPtruintIOV glGetOcclusionQueryuivNVFunPtr
+
+glGetOcclusionQueryuivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetOcclusionQueryuivNVFunPtr = unsafePerformIO (getProcAddress "glGetOcclusionQueryuivNV")
+
+{-# NOINLINE glGetOcclusionQueryuivNVFunPtr #-}
+
+-- | Usage: @'glIsOcclusionQueryNV' id@
+
+
+glIsOcclusionQueryNV :: MonadIO m => GLuint -> m GLboolean
+glIsOcclusionQueryNV = ffiuintIOboolean glIsOcclusionQueryNVFunPtr
+
+glIsOcclusionQueryNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsOcclusionQueryNVFunPtr = unsafePerformIO (getProcAddress "glIsOcclusionQueryNV")
+
+{-# NOINLINE glIsOcclusionQueryNVFunPtr #-}
+
+pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865
+
+pattern GL_PIXEL_COUNTER_BITS_NV = 0x8864
+
+pattern GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867
+
+pattern GL_PIXEL_COUNT_NV = 0x8866
diff --git a/generated-src/Graphics/GL/Ext/NV/PackedDepthStencil.hs b/generated-src/Graphics/GL/Ext/NV/PackedDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PackedDepthStencil.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PackedDepthStencil (
+  -- * Extension Support
+    gl_NV_packed_depth_stencil
+
+  -- * GL_NV_packed_depth_stencil
+  , pattern GL_DEPTH_STENCIL_NV
+  , pattern GL_UNSIGNED_INT_24_8_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/packed_depth_stencil.txt GL_NV_packed_depth_stencil> extension is available.
+
+gl_NV_packed_depth_stencil :: Bool
+gl_NV_packed_depth_stencil = member "GL_NV_packed_depth_stencil" extensions
+{-# NOINLINE gl_NV_packed_depth_stencil #-}
+
+pattern GL_DEPTH_STENCIL_NV = 0x84F9
+
+pattern GL_UNSIGNED_INT_24_8_NV = 0x84FA
diff --git a/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject.hs b/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject.hs
@@ -0,0 +1,85 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ParameterBufferObject (
+  -- * Extension Support
+    gl_NV_parameter_buffer_object
+
+  -- * GL_NV_parameter_buffer_object
+  , glProgramBufferParametersIivNV
+  , glProgramBufferParametersIuivNV
+  , glProgramBufferParametersfvNV
+  , pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV
+  , pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV
+  , pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV
+  , pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV
+  , pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object.txt GL_NV_parameter_buffer_object> extension is available.
+
+gl_NV_parameter_buffer_object :: Bool
+gl_NV_parameter_buffer_object = member "GL_NV_parameter_buffer_object" extensions
+{-# NOINLINE gl_NV_parameter_buffer_object #-}
+
+-- | Usage: @'glProgramBufferParametersIivNV' target bindingIndex wordIndex count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count@.
+
+
+glProgramBufferParametersIivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
+glProgramBufferParametersIivNV = ffienumuintuintsizeiPtrintIOV glProgramBufferParametersIivNVFunPtr
+
+glProgramBufferParametersIivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+glProgramBufferParametersIivNVFunPtr = unsafePerformIO (getProcAddress "glProgramBufferParametersIivNV")
+
+{-# NOINLINE glProgramBufferParametersIivNVFunPtr #-}
+
+-- | Usage: @'glProgramBufferParametersIuivNV' target bindingIndex wordIndex count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count@.
+
+
+glProgramBufferParametersIuivNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glProgramBufferParametersIuivNV = ffienumuintuintsizeiPtruintIOV glProgramBufferParametersIuivNVFunPtr
+
+glProgramBufferParametersIuivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramBufferParametersIuivNVFunPtr = unsafePerformIO (getProcAddress "glProgramBufferParametersIuivNV")
+
+{-# NOINLINE glProgramBufferParametersIuivNVFunPtr #-}
+
+-- | Usage: @'glProgramBufferParametersfvNV' target bindingIndex wordIndex count params@
+--
+-- The parameter @target@ is a @ProgramTarget@.
+--
+-- The length of @params@ should be @count@.
+
+
+glProgramBufferParametersfvNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramBufferParametersfvNV = ffienumuintuintsizeiPtrfloatIOV glProgramBufferParametersfvNVFunPtr
+
+glProgramBufferParametersfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramBufferParametersfvNVFunPtr = unsafePerformIO (getProcAddress "glProgramBufferParametersfvNV")
+
+{-# NOINLINE glProgramBufferParametersfvNVFunPtr #-}
+
+pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4
+
+pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3
+
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0
+
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1
+
+pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2
diff --git a/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject2.hs b/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject2.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ParameterBufferObject2 (
+  -- * Extension Support
+    gl_NV_parameter_buffer_object2
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/parameter_buffer_object2.txt GL_NV_parameter_buffer_object2> extension is available.
+
+gl_NV_parameter_buffer_object2 :: Bool
+gl_NV_parameter_buffer_object2 = member "GL_NV_parameter_buffer_object2" extensions
+{-# NOINLINE gl_NV_parameter_buffer_object2 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/PathRendering.hs b/generated-src/Graphics/GL/Ext/NV/PathRendering.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PathRendering.hs
@@ -0,0 +1,1601 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PathRendering (
+  -- * Extension Support
+    gl_NV_path_rendering
+
+  -- * GL_NV_path_rendering
+  , glCopyPathNV
+  , glCoverFillPathInstancedNV
+  , glCoverFillPathNV
+  , glCoverStrokePathInstancedNV
+  , glCoverStrokePathNV
+  , glDeletePathsNV
+  , glGenPathsNV
+  , glGetPathColorGenfvNV
+  , glGetPathColorGenivNV
+  , glGetPathCommandsNV
+  , glGetPathCoordsNV
+  , glGetPathDashArrayNV
+  , glGetPathLengthNV
+  , glGetPathMetricRangeNV
+  , glGetPathMetricsNV
+  , glGetPathParameterfvNV
+  , glGetPathParameterivNV
+  , glGetPathSpacingNV
+  , glGetPathTexGenfvNV
+  , glGetPathTexGenivNV
+  , glGetProgramResourcefvNV
+  , glInterpolatePathsNV
+  , glIsPathNV
+  , glIsPointInFillPathNV
+  , glIsPointInStrokePathNV
+  , glMatrixLoad3x2fNV
+  , glMatrixLoad3x3fNV
+  , glMatrixLoadTranspose3x3fNV
+  , glMatrixMult3x2fNV
+  , glMatrixMult3x3fNV
+  , glMatrixMultTranspose3x3fNV
+  , glPathColorGenNV
+  , glPathCommandsNV
+  , glPathCoordsNV
+  , glPathCoverDepthFuncNV
+  , glPathDashArrayNV
+  , glPathFogGenNV
+  , glPathGlyphIndexArrayNV
+  , glPathGlyphIndexRangeNV
+  , glPathGlyphRangeNV
+  , glPathGlyphsNV
+  , glPathMemoryGlyphIndexArrayNV
+  , glPathParameterfNV
+  , glPathParameterfvNV
+  , glPathParameteriNV
+  , glPathParameterivNV
+  , glPathStencilDepthOffsetNV
+  , glPathStencilFuncNV
+  , glPathStringNV
+  , glPathSubCommandsNV
+  , glPathSubCoordsNV
+  , glPathTexGenNV
+  , glPointAlongPathNV
+  , glProgramPathFragmentInputGenNV
+  , glStencilFillPathInstancedNV
+  , glStencilFillPathNV
+  , glStencilStrokePathInstancedNV
+  , glStencilStrokePathNV
+  , glStencilThenCoverFillPathInstancedNV
+  , glStencilThenCoverFillPathNV
+  , glStencilThenCoverStrokePathInstancedNV
+  , glStencilThenCoverStrokePathNV
+  , glTransformPathNV
+  , glWeightPathsNV
+  , pattern GL_2_BYTES_NV
+  , pattern GL_3_BYTES_NV
+  , pattern GL_4_BYTES_NV
+  , pattern GL_ACCUM_ADJACENT_PAIRS_NV
+  , pattern GL_ADJACENT_PAIRS_NV
+  , pattern GL_AFFINE_2D_NV
+  , pattern GL_AFFINE_3D_NV
+  , pattern GL_ARC_TO_NV
+  , pattern GL_BEVEL_NV
+  , pattern GL_BOLD_BIT_NV
+  , pattern GL_BOUNDING_BOX_NV
+  , pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV
+  , pattern GL_CIRCULAR_CCW_ARC_TO_NV
+  , pattern GL_CIRCULAR_CW_ARC_TO_NV
+  , pattern GL_CIRCULAR_TANGENT_ARC_TO_NV
+  , pattern GL_CLOSE_PATH_NV
+  , pattern GL_CONIC_CURVE_TO_NV
+  , pattern GL_CONSTANT_NV
+  , pattern GL_CONVEX_HULL_NV
+  , pattern GL_COUNT_DOWN_NV
+  , pattern GL_COUNT_UP_NV
+  , pattern GL_CUBIC_CURVE_TO_NV
+  , pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV
+  , pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV
+  , pattern GL_EYE_LINEAR_NV
+  , pattern GL_FILE_NAME_NV
+  , pattern GL_FIRST_TO_REST_NV
+  , pattern GL_FONT_ASCENDER_BIT_NV
+  , pattern GL_FONT_DESCENDER_BIT_NV
+  , pattern GL_FONT_GLYPHS_AVAILABLE_NV
+  , pattern GL_FONT_HAS_KERNING_BIT_NV
+  , pattern GL_FONT_HEIGHT_BIT_NV
+  , pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV
+  , pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV
+  , pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV
+  , pattern GL_FONT_TARGET_UNAVAILABLE_NV
+  , pattern GL_FONT_UNAVAILABLE_NV
+  , pattern GL_FONT_UNDERLINE_POSITION_BIT_NV
+  , pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV
+  , pattern GL_FONT_UNINTELLIGIBLE_NV
+  , pattern GL_FONT_UNITS_PER_EM_BIT_NV
+  , pattern GL_FONT_X_MAX_BOUNDS_BIT_NV
+  , pattern GL_FONT_X_MIN_BOUNDS_BIT_NV
+  , pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV
+  , pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV
+  , pattern GL_FRAGMENT_INPUT_NV
+  , pattern GL_GLYPH_HAS_KERNING_BIT_NV
+  , pattern GL_GLYPH_HEIGHT_BIT_NV
+  , pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV
+  , pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV
+  , pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV
+  , pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV
+  , pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV
+  , pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV
+  , pattern GL_GLYPH_WIDTH_BIT_NV
+  , pattern GL_HORIZONTAL_LINE_TO_NV
+  , pattern GL_ITALIC_BIT_NV
+  , pattern GL_LARGE_CCW_ARC_TO_NV
+  , pattern GL_LARGE_CW_ARC_TO_NV
+  , pattern GL_LINE_TO_NV
+  , pattern GL_MITER_REVERT_NV
+  , pattern GL_MITER_TRUNCATE_NV
+  , pattern GL_MOVE_TO_CONTINUES_NV
+  , pattern GL_MOVE_TO_NV
+  , pattern GL_MOVE_TO_RESETS_NV
+  , pattern GL_OBJECT_LINEAR_NV
+  , pattern GL_PATH_CLIENT_LENGTH_NV
+  , pattern GL_PATH_COMMAND_COUNT_NV
+  , pattern GL_PATH_COMPUTED_LENGTH_NV
+  , pattern GL_PATH_COORD_COUNT_NV
+  , pattern GL_PATH_COVER_DEPTH_FUNC_NV
+  , pattern GL_PATH_DASH_ARRAY_COUNT_NV
+  , pattern GL_PATH_DASH_CAPS_NV
+  , pattern GL_PATH_DASH_OFFSET_NV
+  , pattern GL_PATH_DASH_OFFSET_RESET_NV
+  , pattern GL_PATH_END_CAPS_NV
+  , pattern GL_PATH_ERROR_POSITION_NV
+  , pattern GL_PATH_FILL_BOUNDING_BOX_NV
+  , pattern GL_PATH_FILL_COVER_MODE_NV
+  , pattern GL_PATH_FILL_MASK_NV
+  , pattern GL_PATH_FILL_MODE_NV
+  , pattern GL_PATH_FOG_GEN_MODE_NV
+  , pattern GL_PATH_FORMAT_PS_NV
+  , pattern GL_PATH_FORMAT_SVG_NV
+  , pattern GL_PATH_GEN_COEFF_NV
+  , pattern GL_PATH_GEN_COLOR_FORMAT_NV
+  , pattern GL_PATH_GEN_COMPONENTS_NV
+  , pattern GL_PATH_GEN_MODE_NV
+  , pattern GL_PATH_INITIAL_DASH_CAP_NV
+  , pattern GL_PATH_INITIAL_END_CAP_NV
+  , pattern GL_PATH_JOIN_STYLE_NV
+  , pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV
+  , pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV
+  , pattern GL_PATH_MITER_LIMIT_NV
+  , pattern GL_PATH_MODELVIEW_MATRIX_NV
+  , pattern GL_PATH_MODELVIEW_NV
+  , pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV
+  , pattern GL_PATH_OBJECT_BOUNDING_BOX_NV
+  , pattern GL_PATH_PROJECTION_MATRIX_NV
+  , pattern GL_PATH_PROJECTION_NV
+  , pattern GL_PATH_PROJECTION_STACK_DEPTH_NV
+  , pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV
+  , pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV
+  , pattern GL_PATH_STENCIL_FUNC_NV
+  , pattern GL_PATH_STENCIL_REF_NV
+  , pattern GL_PATH_STENCIL_VALUE_MASK_NV
+  , pattern GL_PATH_STROKE_BOUNDING_BOX_NV
+  , pattern GL_PATH_STROKE_COVER_MODE_NV
+  , pattern GL_PATH_STROKE_MASK_NV
+  , pattern GL_PATH_STROKE_WIDTH_NV
+  , pattern GL_PATH_TERMINAL_DASH_CAP_NV
+  , pattern GL_PATH_TERMINAL_END_CAP_NV
+  , pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV
+  , pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV
+  , pattern GL_PRIMARY_COLOR
+  , pattern GL_PRIMARY_COLOR_NV
+  , pattern GL_QUADRATIC_CURVE_TO_NV
+  , pattern GL_RECT_NV
+  , pattern GL_RELATIVE_ARC_TO_NV
+  , pattern GL_RELATIVE_CONIC_CURVE_TO_NV
+  , pattern GL_RELATIVE_CUBIC_CURVE_TO_NV
+  , pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV
+  , pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV
+  , pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV
+  , pattern GL_RELATIVE_LINE_TO_NV
+  , pattern GL_RELATIVE_MOVE_TO_NV
+  , pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV
+  , pattern GL_RELATIVE_RECT_NV
+  , pattern GL_RELATIVE_ROUNDED_RECT2_NV
+  , pattern GL_RELATIVE_ROUNDED_RECT4_NV
+  , pattern GL_RELATIVE_ROUNDED_RECT8_NV
+  , pattern GL_RELATIVE_ROUNDED_RECT_NV
+  , pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV
+  , pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV
+  , pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV
+  , pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV
+  , pattern GL_RELATIVE_VERTICAL_LINE_TO_NV
+  , pattern GL_RESTART_PATH_NV
+  , pattern GL_ROUNDED_RECT2_NV
+  , pattern GL_ROUNDED_RECT4_NV
+  , pattern GL_ROUNDED_RECT8_NV
+  , pattern GL_ROUNDED_RECT_NV
+  , pattern GL_ROUND_NV
+  , pattern GL_SECONDARY_COLOR_NV
+  , pattern GL_SKIP_MISSING_GLYPH_NV
+  , pattern GL_SMALL_CCW_ARC_TO_NV
+  , pattern GL_SMALL_CW_ARC_TO_NV
+  , pattern GL_SMOOTH_CUBIC_CURVE_TO_NV
+  , pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV
+  , pattern GL_SQUARE_NV
+  , pattern GL_STANDARD_FONT_FORMAT_NV
+  , pattern GL_STANDARD_FONT_NAME_NV
+  , pattern GL_SYSTEM_FONT_NAME_NV
+  , pattern GL_TRANSLATE_2D_NV
+  , pattern GL_TRANSLATE_3D_NV
+  , pattern GL_TRANSLATE_X_NV
+  , pattern GL_TRANSLATE_Y_NV
+  , pattern GL_TRANSPOSE_AFFINE_2D_NV
+  , pattern GL_TRANSPOSE_AFFINE_3D_NV
+  , pattern GL_TRIANGULAR_NV
+  , pattern GL_USE_MISSING_GLYPH_NV
+  , pattern GL_UTF16_NV
+  , pattern GL_UTF8_NV
+  , pattern GL_VERTICAL_LINE_TO_NV
+) 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/NV/path_rendering.txt GL_NV_path_rendering> extension is available.
+
+gl_NV_path_rendering :: Bool
+gl_NV_path_rendering = member "GL_NV_path_rendering" extensions
+{-# NOINLINE gl_NV_path_rendering #-}
+
+-- | Usage: @'glCopyPathNV' resultPath srcPath@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @srcPath@ is a @Path@.
+
+
+glCopyPathNV :: MonadIO m => GLuint -> GLuint -> m ()
+glCopyPathNV = ffiuintuintIOV glCopyPathNVFunPtr
+
+glCopyPathNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glCopyPathNVFunPtr = unsafePerformIO (getProcAddress "glCopyPathNV")
+
+{-# NOINLINE glCopyPathNVFunPtr #-}
+
+-- | Usage: @'glCoverFillPathInstancedNV' numPaths pathNameType paths pathBase coverMode transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
+glCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glCoverFillPathInstancedNV = ffisizeienumPtrVuintenumenumPtrfloatIOV glCoverFillPathInstancedNVFunPtr
+
+glCoverFillPathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glCoverFillPathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glCoverFillPathInstancedNV")
+
+{-# NOINLINE glCoverFillPathInstancedNVFunPtr #-}
+
+-- | Usage: @'glCoverFillPathNV' path coverMode@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+
+
+glCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> m ()
+glCoverFillPathNV = ffiuintenumIOV glCoverFillPathNVFunPtr
+
+glCoverFillPathNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glCoverFillPathNVFunPtr = unsafePerformIO (getProcAddress "glCoverFillPathNV")
+
+{-# NOINLINE glCoverFillPathNVFunPtr #-}
+
+-- | Usage: @'glCoverStrokePathInstancedNV' numPaths pathNameType paths pathBase coverMode transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
+glCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glCoverStrokePathInstancedNV = ffisizeienumPtrVuintenumenumPtrfloatIOV glCoverStrokePathInstancedNVFunPtr
+
+glCoverStrokePathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glCoverStrokePathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glCoverStrokePathInstancedNV")
+
+{-# NOINLINE glCoverStrokePathInstancedNVFunPtr #-}
+
+-- | Usage: @'glCoverStrokePathNV' path coverMode@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coverMode@ is a @PathCoverMode@.
+
+
+glCoverStrokePathNV :: MonadIO m => GLuint -> GLenum -> m ()
+glCoverStrokePathNV = ffiuintenumIOV glCoverStrokePathNVFunPtr
+
+glCoverStrokePathNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glCoverStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glCoverStrokePathNV")
+
+{-# NOINLINE glCoverStrokePathNVFunPtr #-}
+
+-- | Usage: @'glDeletePathsNV' path range@
+--
+-- The parameter @path@ is a @Path@.
+
+
+glDeletePathsNV :: MonadIO m => GLuint -> GLsizei -> m ()
+glDeletePathsNV = ffiuintsizeiIOV glDeletePathsNVFunPtr
+
+glDeletePathsNVFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
+glDeletePathsNVFunPtr = unsafePerformIO (getProcAddress "glDeletePathsNV")
+
+{-# NOINLINE glDeletePathsNVFunPtr #-}
+
+-- | Usage: @'glGenPathsNV' range@
+
+
+glGenPathsNV :: MonadIO m => GLsizei -> m GLuint
+glGenPathsNV = ffisizeiIOuint glGenPathsNVFunPtr
+
+glGenPathsNVFunPtr :: FunPtr (GLsizei -> IO GLuint)
+glGenPathsNVFunPtr = unsafePerformIO (getProcAddress "glGenPathsNV")
+
+{-# NOINLINE glGenPathsNVFunPtr #-}
+
+-- | Usage: @'glGetPathColorGenfvNV' color pname value@
+--
+-- The parameter @color@ is a @PathColor@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
+glGetPathColorGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetPathColorGenfvNV = ffienumenumPtrfloatIOV glGetPathColorGenfvNVFunPtr
+
+glGetPathColorGenfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetPathColorGenfvNVFunPtr = unsafePerformIO (getProcAddress "glGetPathColorGenfvNV")
+
+{-# NOINLINE glGetPathColorGenfvNVFunPtr #-}
+
+-- | Usage: @'glGetPathColorGenivNV' color pname value@
+--
+-- The parameter @color@ is a @PathColor@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
+glGetPathColorGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetPathColorGenivNV = ffienumenumPtrintIOV glGetPathColorGenivNVFunPtr
+
+glGetPathColorGenivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetPathColorGenivNVFunPtr = unsafePerformIO (getProcAddress "glGetPathColorGenivNV")
+
+{-# NOINLINE glGetPathColorGenivNVFunPtr #-}
+
+-- | Usage: @'glGetPathCommandsNV' path commands@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @commands@ is a @PathCommand@.
+--
+-- The length of @commands@ should be @COMPSIZE(path)@.
+
+
+glGetPathCommandsNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glGetPathCommandsNV = ffiuintPtrubyteIOV glGetPathCommandsNVFunPtr
+
+glGetPathCommandsNVFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glGetPathCommandsNVFunPtr = unsafePerformIO (getProcAddress "glGetPathCommandsNV")
+
+{-# NOINLINE glGetPathCommandsNVFunPtr #-}
+
+-- | Usage: @'glGetPathCoordsNV' path coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @coords@ should be @COMPSIZE(path)@.
+
+
+glGetPathCoordsNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glGetPathCoordsNV = ffiuintPtrfloatIOV glGetPathCoordsNVFunPtr
+
+glGetPathCoordsNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glGetPathCoordsNVFunPtr = unsafePerformIO (getProcAddress "glGetPathCoordsNV")
+
+{-# NOINLINE glGetPathCoordsNVFunPtr #-}
+
+-- | Usage: @'glGetPathDashArrayNV' path dashArray@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @dashArray@ should be @COMPSIZE(path)@.
+
+
+glGetPathDashArrayNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glGetPathDashArrayNV = ffiuintPtrfloatIOV glGetPathDashArrayNVFunPtr
+
+glGetPathDashArrayNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glGetPathDashArrayNVFunPtr = unsafePerformIO (getProcAddress "glGetPathDashArrayNV")
+
+{-# NOINLINE glGetPathDashArrayNVFunPtr #-}
+
+-- | Usage: @'glGetPathLengthNV' path startSegment numSegments@
+--
+-- The parameter @path@ is a @Path@.
+
+
+glGetPathLengthNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> m GLfloat
+glGetPathLengthNV = ffiuintsizeisizeiIOfloat glGetPathLengthNVFunPtr
+
+glGetPathLengthNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat)
+glGetPathLengthNVFunPtr = unsafePerformIO (getProcAddress "glGetPathLengthNV")
+
+{-# NOINLINE glGetPathLengthNVFunPtr #-}
+
+-- | Usage: @'glGetPathMetricRangeNV' metricQueryMask firstPathName numPaths stride metrics@
+--
+-- The parameter @metricQueryMask@ is a @PathMetricMask@.
+--
+-- The parameter @firstPathName@ is a @Path@.
+--
+-- The length of @metrics@ should be @COMPSIZE(metricQueryMask,numPaths,stride)@.
+
+
+glGetPathMetricRangeNV :: MonadIO m => GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
+glGetPathMetricRangeNV = ffibitfielduintsizeisizeiPtrfloatIOV glGetPathMetricRangeNVFunPtr
+
+glGetPathMetricRangeNVFunPtr :: FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
+glGetPathMetricRangeNVFunPtr = unsafePerformIO (getProcAddress "glGetPathMetricRangeNV")
+
+{-# NOINLINE glGetPathMetricRangeNVFunPtr #-}
+
+-- | Usage: @'glGetPathMetricsNV' metricQueryMask numPaths pathNameType paths pathBase stride metrics@
+--
+-- The parameter @metricQueryMask@ is a @PathMetricMask@.
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @metrics@ should be @COMPSIZE(metricQueryMask,numPaths,stride)@.
+
+
+glGetPathMetricsNV :: MonadIO m => GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glGetPathMetricsNV = ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV glGetPathMetricsNVFunPtr
+
+glGetPathMetricsNVFunPtr :: FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetPathMetricsNVFunPtr = unsafePerformIO (getProcAddress "glGetPathMetricsNV")
+
+{-# NOINLINE glGetPathMetricsNVFunPtr #-}
+
+-- | Usage: @'glGetPathParameterfvNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @4@.
+
+
+glGetPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetPathParameterfvNV = ffiuintenumPtrfloatIOV glGetPathParameterfvNVFunPtr
+
+glGetPathParameterfvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetPathParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetPathParameterfvNV")
+
+{-# NOINLINE glGetPathParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetPathParameterivNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @4@.
+
+
+glGetPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetPathParameterivNV = ffiuintenumPtrintIOV glGetPathParameterivNVFunPtr
+
+glGetPathParameterivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetPathParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetPathParameterivNV")
+
+{-# NOINLINE glGetPathParameterivNVFunPtr #-}
+
+-- | Usage: @'glGetPathSpacingNV' pathListMode numPaths pathNameType paths pathBase advanceScale kerningScale transformType returnedSpacing@
+--
+-- The parameter @pathListMode@ is a @PathListMode@.
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @returnedSpacing@ should be @COMPSIZE(pathListMode,numPaths)@.
+
+
+glGetPathSpacingNV :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
+glGetPathSpacingNV = ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV glGetPathSpacingNVFunPtr
+
+glGetPathSpacingNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ())
+glGetPathSpacingNVFunPtr = unsafePerformIO (getProcAddress "glGetPathSpacingNV")
+
+{-# NOINLINE glGetPathSpacingNVFunPtr #-}
+
+-- | Usage: @'glGetPathTexGenfvNV' texCoordSet pname value@
+--
+-- The parameter @texCoordSet@ is a @TextureUnit@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
+glGetPathTexGenfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetPathTexGenfvNV = ffienumenumPtrfloatIOV glGetPathTexGenfvNVFunPtr
+
+glGetPathTexGenfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetPathTexGenfvNVFunPtr = unsafePerformIO (getProcAddress "glGetPathTexGenfvNV")
+
+{-# NOINLINE glGetPathTexGenfvNVFunPtr #-}
+
+-- | Usage: @'glGetPathTexGenivNV' texCoordSet pname value@
+--
+-- The parameter @texCoordSet@ is a @TextureUnit@.
+--
+-- The parameter @pname@ is a @PathGenMode@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
+glGetPathTexGenivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetPathTexGenivNV = ffienumenumPtrintIOV glGetPathTexGenivNVFunPtr
+
+glGetPathTexGenivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetPathTexGenivNVFunPtr = unsafePerformIO (getProcAddress "glGetPathTexGenivNV")
+
+{-# NOINLINE glGetPathTexGenivNVFunPtr #-}
+
+-- | Usage: @'glGetProgramResourcefvNV' program programInterface index propCount props bufSize length params@
+
+
+glGetProgramResourcefvNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
+glGetProgramResourcefvNV = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV glGetProgramResourcefvNVFunPtr
+
+glGetProgramResourcefvNVFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ())
+glGetProgramResourcefvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourcefvNV")
+
+{-# NOINLINE glGetProgramResourcefvNVFunPtr #-}
+
+-- | Usage: @'glInterpolatePathsNV' resultPath pathA pathB weight@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @pathA@ is a @Path@.
+--
+-- The parameter @pathB@ is a @Path@.
+
+
+glInterpolatePathsNV :: MonadIO m => GLuint -> GLuint -> GLuint -> GLfloat -> m ()
+glInterpolatePathsNV = ffiuintuintuintfloatIOV glInterpolatePathsNVFunPtr
+
+glInterpolatePathsNVFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ())
+glInterpolatePathsNVFunPtr = unsafePerformIO (getProcAddress "glInterpolatePathsNV")
+
+{-# NOINLINE glInterpolatePathsNVFunPtr #-}
+
+-- | Usage: @'glIsPathNV' path@
+--
+-- The parameter @path@ is a @Path@.
+
+
+glIsPathNV :: MonadIO m => GLuint -> m GLboolean
+glIsPathNV = ffiuintIOboolean glIsPathNVFunPtr
+
+glIsPathNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsPathNVFunPtr = unsafePerformIO (getProcAddress "glIsPathNV")
+
+{-# NOINLINE glIsPathNVFunPtr #-}
+
+-- | Usage: @'glIsPointInFillPathNV' path mask x y@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
+glIsPointInFillPathNV :: MonadIO m => GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
+glIsPointInFillPathNV = ffiuintuintfloatfloatIOboolean glIsPointInFillPathNVFunPtr
+
+glIsPointInFillPathNVFunPtr :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+glIsPointInFillPathNVFunPtr = unsafePerformIO (getProcAddress "glIsPointInFillPathNV")
+
+{-# NOINLINE glIsPointInFillPathNVFunPtr #-}
+
+-- | Usage: @'glIsPointInStrokePathNV' path x y@
+--
+-- The parameter @path@ is a @Path@.
+
+
+glIsPointInStrokePathNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m GLboolean
+glIsPointInStrokePathNV = ffiuintfloatfloatIOboolean glIsPointInStrokePathNVFunPtr
+
+glIsPointInStrokePathNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+glIsPointInStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glIsPointInStrokePathNV")
+
+{-# NOINLINE glIsPointInStrokePathNVFunPtr #-}
+
+-- | Usage: @'glMatrixLoad3x2fNV' matrixMode m@
+
+
+glMatrixLoad3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixLoad3x2fNV = ffienumPtrfloatIOV glMatrixLoad3x2fNVFunPtr
+
+glMatrixLoad3x2fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixLoad3x2fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixLoad3x2fNV")
+
+{-# NOINLINE glMatrixLoad3x2fNVFunPtr #-}
+
+-- | Usage: @'glMatrixLoad3x3fNV' matrixMode m@
+
+
+glMatrixLoad3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixLoad3x3fNV = ffienumPtrfloatIOV glMatrixLoad3x3fNVFunPtr
+
+glMatrixLoad3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixLoad3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixLoad3x3fNV")
+
+{-# NOINLINE glMatrixLoad3x3fNVFunPtr #-}
+
+-- | Usage: @'glMatrixLoadTranspose3x3fNV' matrixMode m@
+
+
+glMatrixLoadTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixLoadTranspose3x3fNV = ffienumPtrfloatIOV glMatrixLoadTranspose3x3fNVFunPtr
+
+glMatrixLoadTranspose3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixLoadTranspose3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixLoadTranspose3x3fNV")
+
+{-# NOINLINE glMatrixLoadTranspose3x3fNVFunPtr #-}
+
+-- | Usage: @'glMatrixMult3x2fNV' matrixMode m@
+
+
+glMatrixMult3x2fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixMult3x2fNV = ffienumPtrfloatIOV glMatrixMult3x2fNVFunPtr
+
+glMatrixMult3x2fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixMult3x2fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixMult3x2fNV")
+
+{-# NOINLINE glMatrixMult3x2fNVFunPtr #-}
+
+-- | Usage: @'glMatrixMult3x3fNV' matrixMode m@
+
+
+glMatrixMult3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixMult3x3fNV = ffienumPtrfloatIOV glMatrixMult3x3fNVFunPtr
+
+glMatrixMult3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixMult3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixMult3x3fNV")
+
+{-# NOINLINE glMatrixMult3x3fNVFunPtr #-}
+
+-- | Usage: @'glMatrixMultTranspose3x3fNV' matrixMode m@
+
+
+glMatrixMultTranspose3x3fNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMatrixMultTranspose3x3fNV = ffienumPtrfloatIOV glMatrixMultTranspose3x3fNVFunPtr
+
+glMatrixMultTranspose3x3fNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMatrixMultTranspose3x3fNVFunPtr = unsafePerformIO (getProcAddress "glMatrixMultTranspose3x3fNV")
+
+{-# NOINLINE glMatrixMultTranspose3x3fNVFunPtr #-}
+
+-- | Usage: @'glPathColorGenNV' color genMode colorFormat coeffs@
+--
+-- The parameter @color@ is a @PathColor@.
+--
+-- The parameter @genMode@ is a @PathGenMode@.
+--
+-- The parameter @colorFormat@ is a @PathColorFormat@.
+--
+-- The length of @coeffs@ should be @COMPSIZE(genMode,colorFormat)@.
+
+
+glPathColorGenNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glPathColorGenNV = ffienumenumenumPtrfloatIOV glPathColorGenNVFunPtr
+
+glPathColorGenNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glPathColorGenNVFunPtr = unsafePerformIO (getProcAddress "glPathColorGenNV")
+
+{-# NOINLINE glPathColorGenNVFunPtr #-}
+
+-- | Usage: @'glPathCommandsNV' path numCommands commands numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @commands@ is a @PathCommand@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @commands@ should be @numCommands@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
+glPathCommandsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
+glPathCommandsNV = ffiuintsizeiPtrubytesizeienumPtrVIOV glPathCommandsNVFunPtr
+
+glPathCommandsNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ())
+glPathCommandsNVFunPtr = unsafePerformIO (getProcAddress "glPathCommandsNV")
+
+{-# NOINLINE glPathCommandsNVFunPtr #-}
+
+-- | Usage: @'glPathCoordsNV' path numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
+glPathCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+glPathCoordsNV = ffiuintsizeienumPtrVIOV glPathCoordsNVFunPtr
+
+glPathCoordsNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
+glPathCoordsNVFunPtr = unsafePerformIO (getProcAddress "glPathCoordsNV")
+
+{-# NOINLINE glPathCoordsNVFunPtr #-}
+
+-- | Usage: @'glPathCoverDepthFuncNV' func@
+--
+-- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+
+
+glPathCoverDepthFuncNV :: MonadIO m => GLenum -> m ()
+glPathCoverDepthFuncNV = ffienumIOV glPathCoverDepthFuncNVFunPtr
+
+glPathCoverDepthFuncNVFunPtr :: FunPtr (GLenum -> IO ())
+glPathCoverDepthFuncNVFunPtr = unsafePerformIO (getProcAddress "glPathCoverDepthFuncNV")
+
+{-# NOINLINE glPathCoverDepthFuncNVFunPtr #-}
+
+-- | Usage: @'glPathDashArrayNV' path dashCount dashArray@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @dashArray@ should be @dashCount@.
+
+
+glPathDashArrayNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glPathDashArrayNV = ffiuintsizeiPtrfloatIOV glPathDashArrayNVFunPtr
+
+glPathDashArrayNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glPathDashArrayNVFunPtr = unsafePerformIO (getProcAddress "glPathDashArrayNV")
+
+{-# NOINLINE glPathDashArrayNVFunPtr #-}
+
+-- | Usage: @'glPathFogGenNV' genMode@
+--
+-- The parameter @genMode@ is a @PathGenMode@.
+
+
+glPathFogGenNV :: MonadIO m => GLenum -> m ()
+glPathFogGenNV = ffienumIOV glPathFogGenNVFunPtr
+
+glPathFogGenNVFunPtr :: FunPtr (GLenum -> IO ())
+glPathFogGenNVFunPtr = unsafePerformIO (getProcAddress "glPathFogGenNV")
+
+{-# NOINLINE glPathFogGenNVFunPtr #-}
+
+-- | Usage: @'glPathGlyphIndexArrayNV' firstPathName fontTarget fontName fontStyle firstGlyphIndex numGlyphs pathParameterTemplate emScale@
+
+
+glPathGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
+glPathGlyphIndexArrayNV = ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum glPathGlyphIndexArrayNVFunPtr
+
+glPathGlyphIndexArrayNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
+glPathGlyphIndexArrayNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphIndexArrayNV")
+
+{-# NOINLINE glPathGlyphIndexArrayNVFunPtr #-}
+
+-- | Usage: @'glPathGlyphIndexRangeNV' fontTarget fontName fontStyle pathParameterTemplate emScale baseAndCount@
+
+
+glPathGlyphIndexRangeNV :: MonadIO m => GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
+glPathGlyphIndexRangeNV = ffienumPtrVbitfielduintfloatPtruintIOenum glPathGlyphIndexRangeNVFunPtr
+
+glPathGlyphIndexRangeNVFunPtr :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum)
+glPathGlyphIndexRangeNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphIndexRangeNV")
+
+{-# NOINLINE glPathGlyphIndexRangeNVFunPtr #-}
+
+-- | Usage: @'glPathGlyphRangeNV' firstPathName fontTarget fontName fontStyle firstGlyph numGlyphs handleMissingGlyphs pathParameterTemplate emScale@
+--
+-- The parameter @firstPathName@ is a @Path@.
+--
+-- The parameter @fontTarget@ is a @PathFontTarget@.
+--
+-- The parameter @fontStyle@ is a @PathFontStyle@.
+--
+-- The parameter @handleMissingGlyphs@ is a @PathHandleMissingGlyphs@.
+--
+-- The parameter @pathParameterTemplate@ is a @Path@.
+--
+-- The length of @fontName@ should be @COMPSIZE(fontTarget,fontName)@.
+
+
+glPathGlyphRangeNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
+glPathGlyphRangeNV = ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV glPathGlyphRangeNVFunPtr
+
+glPathGlyphRangeNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ())
+glPathGlyphRangeNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphRangeNV")
+
+{-# NOINLINE glPathGlyphRangeNVFunPtr #-}
+
+-- | Usage: @'glPathGlyphsNV' firstPathName fontTarget fontName fontStyle numGlyphs type charcodes handleMissingGlyphs pathParameterTemplate emScale@
+--
+-- The parameter @firstPathName@ is a @Path@.
+--
+-- The parameter @fontTarget@ is a @PathFontTarget@.
+--
+-- The parameter @fontStyle@ is a @PathFontStyle@.
+--
+-- The parameter @type@ is a @PathElementType@.
+--
+-- The parameter @handleMissingGlyphs@ is a @PathHandleMissingGlyphs@.
+--
+-- The parameter @pathParameterTemplate@ is a @Path@.
+--
+-- The length of @fontName@ should be @COMPSIZE(fontTarget,fontName)@.
+--
+-- The length of @charcodes@ should be @COMPSIZE(numGlyphs,type,charcodes)@.
+
+
+glPathGlyphsNV :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> m ()
+glPathGlyphsNV = ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV glPathGlyphsNVFunPtr
+
+glPathGlyphsNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ())
+glPathGlyphsNVFunPtr = unsafePerformIO (getProcAddress "glPathGlyphsNV")
+
+{-# NOINLINE glPathGlyphsNVFunPtr #-}
+
+-- | Usage: @'glPathMemoryGlyphIndexArrayNV' firstPathName fontTarget fontSize fontData faceIndex firstGlyphIndex numGlyphs pathParameterTemplate emScale@
+
+
+glPathMemoryGlyphIndexArrayNV :: MonadIO m => GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
+glPathMemoryGlyphIndexArrayNV = ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum glPathMemoryGlyphIndexArrayNVFunPtr
+
+glPathMemoryGlyphIndexArrayNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
+glPathMemoryGlyphIndexArrayNVFunPtr = unsafePerformIO (getProcAddress "glPathMemoryGlyphIndexArrayNV")
+
+{-# NOINLINE glPathMemoryGlyphIndexArrayNVFunPtr #-}
+
+-- | Usage: @'glPathParameterfNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+
+
+glPathParameterfNV :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glPathParameterfNV = ffiuintenumfloatIOV glPathParameterfNVFunPtr
+
+glPathParameterfNVFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glPathParameterfNVFunPtr = unsafePerformIO (getProcAddress "glPathParameterfNV")
+
+{-# NOINLINE glPathParameterfNVFunPtr #-}
+
+-- | Usage: @'glPathParameterfvNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
+glPathParameterfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glPathParameterfvNV = ffiuintenumPtrfloatIOV glPathParameterfvNVFunPtr
+
+glPathParameterfvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glPathParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glPathParameterfvNV")
+
+{-# NOINLINE glPathParameterfvNVFunPtr #-}
+
+-- | Usage: @'glPathParameteriNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+
+
+glPathParameteriNV :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glPathParameteriNV = ffiuintenumintIOV glPathParameteriNVFunPtr
+
+glPathParameteriNVFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glPathParameteriNVFunPtr = unsafePerformIO (getProcAddress "glPathParameteriNV")
+
+{-# NOINLINE glPathParameteriNVFunPtr #-}
+
+-- | Usage: @'glPathParameterivNV' path pname value@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @pname@ is a @PathParameter@.
+--
+-- The length of @value@ should be @COMPSIZE(pname)@.
+
+
+glPathParameterivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glPathParameterivNV = ffiuintenumPtrintIOV glPathParameterivNVFunPtr
+
+glPathParameterivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glPathParameterivNVFunPtr = unsafePerformIO (getProcAddress "glPathParameterivNV")
+
+{-# NOINLINE glPathParameterivNVFunPtr #-}
+
+-- | Usage: @'glPathStencilDepthOffsetNV' factor units@
+
+
+glPathStencilDepthOffsetNV :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPathStencilDepthOffsetNV = ffifloatfloatIOV glPathStencilDepthOffsetNVFunPtr
+
+glPathStencilDepthOffsetNVFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPathStencilDepthOffsetNVFunPtr = unsafePerformIO (getProcAddress "glPathStencilDepthOffsetNV")
+
+{-# NOINLINE glPathStencilDepthOffsetNVFunPtr #-}
+
+-- | Usage: @'glPathStencilFuncNV' func ref mask@
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @ClampedStencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
+glPathStencilFuncNV :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
+glPathStencilFuncNV = ffienumintuintIOV glPathStencilFuncNVFunPtr
+
+glPathStencilFuncNVFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+glPathStencilFuncNVFunPtr = unsafePerformIO (getProcAddress "glPathStencilFuncNV")
+
+{-# NOINLINE glPathStencilFuncNVFunPtr #-}
+
+-- | Usage: @'glPathStringNV' path format length pathString@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @format@ is a @PathStringFormat@.
+--
+-- The length of @pathString@ should be @length@.
+
+
+glPathStringNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr () -> m ()
+glPathStringNV = ffiuintenumsizeiPtrVIOV glPathStringNVFunPtr
+
+glPathStringNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glPathStringNVFunPtr = unsafePerformIO (getProcAddress "glPathStringNV")
+
+{-# NOINLINE glPathStringNVFunPtr #-}
+
+-- | Usage: @'glPathSubCommandsNV' path commandStart commandsToDelete numCommands commands numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @commands@ is a @PathCommand@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @commands@ should be @numCommands@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
+glPathSubCommandsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
+glPathSubCommandsNV = ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV glPathSubCommandsNVFunPtr
+
+glPathSubCommandsNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ())
+glPathSubCommandsNVFunPtr = unsafePerformIO (getProcAddress "glPathSubCommandsNV")
+
+{-# NOINLINE glPathSubCommandsNVFunPtr #-}
+
+-- | Usage: @'glPathSubCoordsNV' path coordStart numCoords coordType coords@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @coordType@ is a @PathCoordType@.
+--
+-- The length of @coords@ should be @COMPSIZE(numCoords,coordType)@.
+
+
+glPathSubCoordsNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> m ()
+glPathSubCoordsNV = ffiuintsizeisizeienumPtrVIOV glPathSubCoordsNVFunPtr
+
+glPathSubCoordsNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ())
+glPathSubCoordsNVFunPtr = unsafePerformIO (getProcAddress "glPathSubCoordsNV")
+
+{-# NOINLINE glPathSubCoordsNVFunPtr #-}
+
+-- | Usage: @'glPathTexGenNV' texCoordSet genMode components coeffs@
+--
+-- The parameter @texCoordSet@ is a @PathColor@.
+--
+-- The parameter @genMode@ is a @PathGenMode@.
+--
+-- The length of @coeffs@ should be @COMPSIZE(genMode,components)@.
+
+
+glPathTexGenNV :: MonadIO m => GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()
+glPathTexGenNV = ffienumenumintPtrfloatIOV glPathTexGenNVFunPtr
+
+glPathTexGenNVFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+glPathTexGenNVFunPtr = unsafePerformIO (getProcAddress "glPathTexGenNV")
+
+{-# NOINLINE glPathTexGenNVFunPtr #-}
+
+-- | Usage: @'glPointAlongPathNV' path startSegment numSegments distance x y tangentX tangentY@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The length of @x@ should be @1@.
+--
+-- The length of @y@ should be @1@.
+--
+-- The length of @tangentX@ should be @1@.
+--
+-- The length of @tangentY@ should be @1@.
+
+
+glPointAlongPathNV :: MonadIO m => GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
+glPointAlongPathNV = ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean glPointAlongPathNVFunPtr
+
+glPointAlongPathNVFunPtr :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean)
+glPointAlongPathNVFunPtr = unsafePerformIO (getProcAddress "glPointAlongPathNV")
+
+{-# NOINLINE glPointAlongPathNVFunPtr #-}
+
+-- | Usage: @'glProgramPathFragmentInputGenNV' program location genMode components coeffs@
+
+
+glProgramPathFragmentInputGenNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
+glProgramPathFragmentInputGenNV = ffiuintintenumintPtrfloatIOV glProgramPathFragmentInputGenNVFunPtr
+
+glProgramPathFragmentInputGenNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+glProgramPathFragmentInputGenNVFunPtr = unsafePerformIO (getProcAddress "glProgramPathFragmentInputGenNV")
+
+{-# NOINLINE glProgramPathFragmentInputGenNVFunPtr #-}
+
+-- | Usage: @'glStencilFillPathInstancedNV' numPaths pathNameType paths pathBase fillMode mask transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @fillMode@ is a @PathFillMode@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
+glStencilFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+glStencilFillPathInstancedNV = ffisizeienumPtrVuintenumuintenumPtrfloatIOV glStencilFillPathInstancedNVFunPtr
+
+glStencilFillPathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glStencilFillPathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilFillPathInstancedNV")
+
+{-# NOINLINE glStencilFillPathInstancedNVFunPtr #-}
+
+-- | Usage: @'glStencilFillPathNV' path fillMode mask@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @fillMode@ is a @PathFillMode@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
+glStencilFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
+glStencilFillPathNV = ffiuintenumuintIOV glStencilFillPathNVFunPtr
+
+glStencilFillPathNVFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+glStencilFillPathNVFunPtr = unsafePerformIO (getProcAddress "glStencilFillPathNV")
+
+{-# NOINLINE glStencilFillPathNVFunPtr #-}
+
+-- | Usage: @'glStencilStrokePathInstancedNV' numPaths pathNameType paths pathBase reference mask transformType transformValues@
+--
+-- The parameter @pathNameType@ is a @PathElementType@.
+--
+-- The parameter @paths@ is a @PathElement@.
+--
+-- The parameter @pathBase@ is a @Path@.
+--
+-- The parameter @reference@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @paths@ should be @COMPSIZE(numPaths,pathNameType,paths)@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(numPaths,transformType)@.
+
+
+glStencilStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+glStencilStrokePathInstancedNV = ffisizeienumPtrVuintintuintenumPtrfloatIOV glStencilStrokePathInstancedNVFunPtr
+
+glStencilStrokePathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glStencilStrokePathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilStrokePathInstancedNV")
+
+{-# NOINLINE glStencilStrokePathInstancedNVFunPtr #-}
+
+-- | Usage: @'glStencilStrokePathNV' path reference mask@
+--
+-- The parameter @path@ is a @Path@.
+--
+-- The parameter @reference@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+
+
+glStencilStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glStencilStrokePathNV = ffiuintintuintIOV glStencilStrokePathNVFunPtr
+
+glStencilStrokePathNVFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glStencilStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glStencilStrokePathNV")
+
+{-# NOINLINE glStencilStrokePathNVFunPtr #-}
+
+-- | Usage: @'glStencilThenCoverFillPathInstancedNV' numPaths pathNameType paths pathBase fillMode mask coverMode transformType transformValues@
+
+
+glStencilThenCoverFillPathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glStencilThenCoverFillPathInstancedNV = ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV glStencilThenCoverFillPathInstancedNVFunPtr
+
+glStencilThenCoverFillPathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glStencilThenCoverFillPathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverFillPathInstancedNV")
+
+{-# NOINLINE glStencilThenCoverFillPathInstancedNVFunPtr #-}
+
+-- | Usage: @'glStencilThenCoverFillPathNV' path fillMode mask coverMode@
+
+
+glStencilThenCoverFillPathNV :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> m ()
+glStencilThenCoverFillPathNV = ffiuintenumuintenumIOV glStencilThenCoverFillPathNVFunPtr
+
+glStencilThenCoverFillPathNVFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ())
+glStencilThenCoverFillPathNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverFillPathNV")
+
+{-# NOINLINE glStencilThenCoverFillPathNVFunPtr #-}
+
+-- | Usage: @'glStencilThenCoverStrokePathInstancedNV' numPaths pathNameType paths pathBase reference mask coverMode transformType transformValues@
+
+
+glStencilThenCoverStrokePathInstancedNV :: MonadIO m => GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glStencilThenCoverStrokePathInstancedNV = ffisizeienumPtrVuintintuintenumenumPtrfloatIOV glStencilThenCoverStrokePathInstancedNVFunPtr
+
+glStencilThenCoverStrokePathInstancedNVFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glStencilThenCoverStrokePathInstancedNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverStrokePathInstancedNV")
+
+{-# NOINLINE glStencilThenCoverStrokePathInstancedNVFunPtr #-}
+
+-- | Usage: @'glStencilThenCoverStrokePathNV' path reference mask coverMode@
+
+
+glStencilThenCoverStrokePathNV :: MonadIO m => GLuint -> GLint -> GLuint -> GLenum -> m ()
+glStencilThenCoverStrokePathNV = ffiuintintuintenumIOV glStencilThenCoverStrokePathNVFunPtr
+
+glStencilThenCoverStrokePathNVFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ())
+glStencilThenCoverStrokePathNVFunPtr = unsafePerformIO (getProcAddress "glStencilThenCoverStrokePathNV")
+
+{-# NOINLINE glStencilThenCoverStrokePathNVFunPtr #-}
+
+-- | Usage: @'glTransformPathNV' resultPath srcPath transformType transformValues@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @srcPath@ is a @Path@.
+--
+-- The parameter @transformType@ is a @PathTransformType@.
+--
+-- The length of @transformValues@ should be @COMPSIZE(transformType)@.
+
+
+glTransformPathNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+glTransformPathNV = ffiuintuintenumPtrfloatIOV glTransformPathNVFunPtr
+
+glTransformPathNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glTransformPathNVFunPtr = unsafePerformIO (getProcAddress "glTransformPathNV")
+
+{-# NOINLINE glTransformPathNVFunPtr #-}
+
+-- | Usage: @'glWeightPathsNV' resultPath numPaths paths weights@
+--
+-- The parameter @resultPath@ is a @Path@.
+--
+-- The parameter @paths@ is a @Path@.
+--
+-- The length of @paths@ should be @numPaths@.
+--
+-- The length of @weights@ should be @numPaths@.
+
+
+glWeightPathsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
+glWeightPathsNV = ffiuintsizeiPtruintPtrfloatIOV glWeightPathsNVFunPtr
+
+glWeightPathsNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+glWeightPathsNVFunPtr = unsafePerformIO (getProcAddress "glWeightPathsNV")
+
+{-# NOINLINE glWeightPathsNVFunPtr #-}
+
+pattern GL_2_BYTES_NV = 0x1407
+
+pattern GL_3_BYTES_NV = 0x1408
+
+pattern GL_4_BYTES_NV = 0x1409
+
+pattern GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD
+
+pattern GL_ADJACENT_PAIRS_NV = 0x90AE
+
+pattern GL_AFFINE_2D_NV = 0x9092
+
+pattern GL_AFFINE_3D_NV = 0x9094
+
+pattern GL_ARC_TO_NV = 0xFE
+
+pattern GL_BEVEL_NV = 0x90A6
+
+pattern GL_BOLD_BIT_NV = 0x01
+
+pattern GL_BOUNDING_BOX_NV = 0x908D
+
+pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C
+
+pattern GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8
+
+pattern GL_CIRCULAR_CW_ARC_TO_NV = 0xFA
+
+pattern GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC
+
+pattern GL_CLOSE_PATH_NV = 0x00
+
+pattern GL_CONIC_CURVE_TO_NV = 0x1A
+
+pattern GL_CONSTANT_NV = 0x8576
+
+pattern GL_CONVEX_HULL_NV = 0x908B
+
+pattern GL_COUNT_DOWN_NV = 0x9089
+
+pattern GL_COUNT_UP_NV = 0x9088
+
+pattern GL_CUBIC_CURVE_TO_NV = 0x0C
+
+pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2
+
+pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4
+
+pattern GL_EYE_LINEAR_NV = 0x2400
+
+pattern GL_FILE_NAME_NV = 0x9074
+
+pattern GL_FIRST_TO_REST_NV = 0x90AF
+
+pattern GL_FONT_ASCENDER_BIT_NV = 0x00200000
+
+pattern GL_FONT_DESCENDER_BIT_NV = 0x00400000
+
+pattern GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368
+
+pattern GL_FONT_HAS_KERNING_BIT_NV = 0x10000000
+
+pattern GL_FONT_HEIGHT_BIT_NV = 0x00800000
+
+pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000
+
+pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000
+
+pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000
+
+pattern GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369
+
+pattern GL_FONT_UNAVAILABLE_NV = 0x936A
+
+pattern GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000
+
+pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000
+
+pattern GL_FONT_UNINTELLIGIBLE_NV = 0x936B
+
+pattern GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000
+
+pattern GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000
+
+pattern GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000
+
+pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000
+
+pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000
+
+pattern GL_FRAGMENT_INPUT_NV = 0x936D
+
+pattern GL_GLYPH_HAS_KERNING_BIT_NV = 0x100
+
+pattern GL_GLYPH_HEIGHT_BIT_NV = 0x02
+
+pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10
+
+pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04
+
+pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08
+
+pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80
+
+pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20
+
+pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40
+
+pattern GL_GLYPH_WIDTH_BIT_NV = 0x01
+
+pattern GL_HORIZONTAL_LINE_TO_NV = 0x06
+
+pattern GL_ITALIC_BIT_NV = 0x02
+
+pattern GL_LARGE_CCW_ARC_TO_NV = 0x16
+
+pattern GL_LARGE_CW_ARC_TO_NV = 0x18
+
+pattern GL_LINE_TO_NV = 0x04
+
+pattern GL_MITER_REVERT_NV = 0x90A7
+
+pattern GL_MITER_TRUNCATE_NV = 0x90A8
+
+pattern GL_MOVE_TO_CONTINUES_NV = 0x90B6
+
+pattern GL_MOVE_TO_NV = 0x02
+
+pattern GL_MOVE_TO_RESETS_NV = 0x90B5
+
+pattern GL_OBJECT_LINEAR_NV = 0x2401
+
+pattern GL_PATH_CLIENT_LENGTH_NV = 0x907F
+
+pattern GL_PATH_COMMAND_COUNT_NV = 0x909D
+
+pattern GL_PATH_COMPUTED_LENGTH_NV = 0x90A0
+
+pattern GL_PATH_COORD_COUNT_NV = 0x909E
+
+pattern GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF
+
+pattern GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F
+
+pattern GL_PATH_DASH_CAPS_NV = 0x907B
+
+pattern GL_PATH_DASH_OFFSET_NV = 0x907E
+
+pattern GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4
+
+pattern GL_PATH_END_CAPS_NV = 0x9076
+
+pattern GL_PATH_ERROR_POSITION_NV = 0x90AB
+
+pattern GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1
+
+pattern GL_PATH_FILL_COVER_MODE_NV = 0x9082
+
+pattern GL_PATH_FILL_MASK_NV = 0x9081
+
+pattern GL_PATH_FILL_MODE_NV = 0x9080
+
+pattern GL_PATH_FOG_GEN_MODE_NV = 0x90AC
+
+pattern GL_PATH_FORMAT_PS_NV = 0x9071
+
+pattern GL_PATH_FORMAT_SVG_NV = 0x9070
+
+pattern GL_PATH_GEN_COEFF_NV = 0x90B1
+
+pattern GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2
+
+pattern GL_PATH_GEN_COMPONENTS_NV = 0x90B3
+
+pattern GL_PATH_GEN_MODE_NV = 0x90B0
+
+pattern GL_PATH_INITIAL_DASH_CAP_NV = 0x907C
+
+pattern GL_PATH_INITIAL_END_CAP_NV = 0x9077
+
+pattern GL_PATH_JOIN_STYLE_NV = 0x9079
+
+pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36
+
+pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38
+
+pattern GL_PATH_MITER_LIMIT_NV = 0x907A
+
+pattern GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6
+
+pattern GL_PATH_MODELVIEW_NV = 0x1700
+
+pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3
+
+pattern GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A
+
+pattern GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7
+
+pattern GL_PATH_PROJECTION_NV = 0x1701
+
+pattern GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4
+
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD
+
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE
+
+pattern GL_PATH_STENCIL_FUNC_NV = 0x90B7
+
+pattern GL_PATH_STENCIL_REF_NV = 0x90B8
+
+pattern GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9
+
+pattern GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2
+
+pattern GL_PATH_STROKE_COVER_MODE_NV = 0x9083
+
+pattern GL_PATH_STROKE_MASK_NV = 0x9084
+
+pattern GL_PATH_STROKE_WIDTH_NV = 0x9075
+
+pattern GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D
+
+pattern GL_PATH_TERMINAL_END_CAP_NV = 0x9078
+
+pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3
+
+pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4
+
+pattern GL_QUADRATIC_CURVE_TO_NV = 0x0A
+
+pattern GL_RECT_NV = 0xF6
+
+pattern GL_RELATIVE_ARC_TO_NV = 0xFF
+
+pattern GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B
+
+pattern GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D
+
+pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07
+
+pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17
+
+pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19
+
+pattern GL_RELATIVE_LINE_TO_NV = 0x05
+
+pattern GL_RELATIVE_MOVE_TO_NV = 0x03
+
+pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B
+
+pattern GL_RELATIVE_RECT_NV = 0xF7
+
+pattern GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB
+
+pattern GL_RELATIVE_ROUNDED_RECT4_NV = 0xED
+
+pattern GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF
+
+pattern GL_RELATIVE_ROUNDED_RECT_NV = 0xE9
+
+pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13
+
+pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15
+
+pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11
+
+pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F
+
+pattern GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09
+
+pattern GL_RESTART_PATH_NV = 0xF0
+
+pattern GL_ROUNDED_RECT2_NV = 0xEA
+
+pattern GL_ROUNDED_RECT4_NV = 0xEC
+
+pattern GL_ROUNDED_RECT8_NV = 0xEE
+
+pattern GL_ROUNDED_RECT_NV = 0xE8
+
+pattern GL_ROUND_NV = 0x90A4
+
+pattern GL_SKIP_MISSING_GLYPH_NV = 0x90A9
+
+pattern GL_SMALL_CCW_ARC_TO_NV = 0x12
+
+pattern GL_SMALL_CW_ARC_TO_NV = 0x14
+
+pattern GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10
+
+pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E
+
+pattern GL_SQUARE_NV = 0x90A3
+
+pattern GL_STANDARD_FONT_FORMAT_NV = 0x936C
+
+pattern GL_STANDARD_FONT_NAME_NV = 0x9072
+
+pattern GL_SYSTEM_FONT_NAME_NV = 0x9073
+
+pattern GL_TRANSLATE_2D_NV = 0x9090
+
+pattern GL_TRANSLATE_3D_NV = 0x9091
+
+pattern GL_TRANSLATE_X_NV = 0x908E
+
+pattern GL_TRANSLATE_Y_NV = 0x908F
+
+pattern GL_TRANSPOSE_AFFINE_2D_NV = 0x9096
+
+pattern GL_TRANSPOSE_AFFINE_3D_NV = 0x9098
+
+pattern GL_TRIANGULAR_NV = 0x90A5
+
+pattern GL_USE_MISSING_GLYPH_NV = 0x90AA
+
+pattern GL_UTF16_NV = 0x909B
+
+pattern GL_UTF8_NV = 0x909A
+
+pattern GL_VERTICAL_LINE_TO_NV = 0x08
diff --git a/generated-src/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs b/generated-src/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PathRenderingSharedEdge (
+  -- * Extension Support
+    gl_NV_path_rendering_shared_edge
+
+  -- * GL_NV_path_rendering_shared_edge
+  , pattern GL_SHARED_EDGE_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/path_rendering_shared_edge.txt GL_NV_path_rendering_shared_edge> extension is available.
+
+gl_NV_path_rendering_shared_edge :: Bool
+gl_NV_path_rendering_shared_edge = member "GL_NV_path_rendering_shared_edge" extensions
+{-# NOINLINE gl_NV_path_rendering_shared_edge #-}
+
+pattern GL_SHARED_EDGE_NV = 0xC0
diff --git a/generated-src/Graphics/GL/Ext/NV/PixelDataRange.hs b/generated-src/Graphics/GL/Ext/NV/PixelDataRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PixelDataRange.hs
@@ -0,0 +1,70 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PixelDataRange (
+  -- * Extension Support
+    gl_NV_pixel_data_range
+
+  -- * GL_NV_pixel_data_range
+  , glFlushPixelDataRangeNV
+  , glPixelDataRangeNV
+  , pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV
+  , pattern GL_READ_PIXEL_DATA_RANGE_NV
+  , pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV
+  , pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV
+  , pattern GL_WRITE_PIXEL_DATA_RANGE_NV
+  , pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/pixel_data_range.txt GL_NV_pixel_data_range> extension is available.
+
+gl_NV_pixel_data_range :: Bool
+gl_NV_pixel_data_range = member "GL_NV_pixel_data_range" extensions
+{-# NOINLINE gl_NV_pixel_data_range #-}
+
+-- | Usage: @'glFlushPixelDataRangeNV' target@
+--
+-- The parameter @target@ is a @PixelDataRangeTargetNV@.
+
+
+glFlushPixelDataRangeNV :: MonadIO m => GLenum -> m ()
+glFlushPixelDataRangeNV = ffienumIOV glFlushPixelDataRangeNVFunPtr
+
+glFlushPixelDataRangeNVFunPtr :: FunPtr (GLenum -> IO ())
+glFlushPixelDataRangeNVFunPtr = unsafePerformIO (getProcAddress "glFlushPixelDataRangeNV")
+
+{-# NOINLINE glFlushPixelDataRangeNVFunPtr #-}
+
+-- | Usage: @'glPixelDataRangeNV' target length pointer@
+--
+-- The parameter @target@ is a @PixelDataRangeTargetNV@.
+--
+-- The length of @pointer@ should be @length@.
+
+
+glPixelDataRangeNV :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glPixelDataRangeNV = ffienumsizeiPtrVIOV glPixelDataRangeNVFunPtr
+
+glPixelDataRangeNVFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glPixelDataRangeNVFunPtr = unsafePerformIO (getProcAddress "glPixelDataRangeNV")
+
+{-# NOINLINE glPixelDataRangeNVFunPtr #-}
+
+pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B
+
+pattern GL_READ_PIXEL_DATA_RANGE_NV = 0x8879
+
+pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D
+
+pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A
+
+pattern GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878
+
+pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C
diff --git a/generated-src/Graphics/GL/Ext/NV/PointSprite.hs b/generated-src/Graphics/GL/Ext/NV/PointSprite.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PointSprite.hs
@@ -0,0 +1,65 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PointSprite (
+  -- * Extension Support
+    gl_NV_point_sprite
+
+  -- * GL_NV_point_sprite
+  , glPointParameteriNV
+  , glPointParameterivNV
+  , pattern GL_COORD_REPLACE_NV
+  , pattern GL_POINT_SPRITE_NV
+  , pattern GL_POINT_SPRITE_R_MODE_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/point_sprite.txt GL_NV_point_sprite> extension is available.
+
+gl_NV_point_sprite :: Bool
+gl_NV_point_sprite = member "GL_NV_point_sprite" extensions
+{-# NOINLINE gl_NV_point_sprite #-}
+
+-- | Usage: @'glPointParameteriNV' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameteri'.
+
+
+glPointParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
+glPointParameteriNV = ffienumintIOV glPointParameteriNVFunPtr
+
+glPointParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPointParameteriNVFunPtr = unsafePerformIO (getProcAddress "glPointParameteriNV")
+
+{-# NOINLINE glPointParameteriNVFunPtr #-}
+
+-- | Usage: @'glPointParameterivNV' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameteriv'.
+
+
+glPointParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glPointParameterivNV = ffienumPtrintIOV glPointParameterivNVFunPtr
+
+glPointParameterivNVFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glPointParameterivNVFunPtr = unsafePerformIO (getProcAddress "glPointParameterivNV")
+
+{-# NOINLINE glPointParameterivNVFunPtr #-}
+
+pattern GL_COORD_REPLACE_NV = 0x8862
+
+pattern GL_POINT_SPRITE_NV = 0x8861
+
+pattern GL_POINT_SPRITE_R_MODE_NV = 0x8863
diff --git a/generated-src/Graphics/GL/Ext/NV/PolygonMode.hs b/generated-src/Graphics/GL/Ext/NV/PolygonMode.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PolygonMode.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PolygonMode (
+  -- * Extension Support
+    gl_NV_polygon_mode
+
+  -- * GL_NV_polygon_mode
+  , glPolygonModeNV
+  , pattern GL_FILL_NV
+  , pattern GL_LINE_NV
+  , pattern GL_POINT_NV
+  , pattern GL_POLYGON_MODE_NV
+  , pattern GL_POLYGON_OFFSET_LINE_NV
+  , pattern GL_POLYGON_OFFSET_POINT_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_polygon_mode.txt GL_NV_polygon_mode> extension is available.
+
+gl_NV_polygon_mode :: Bool
+gl_NV_polygon_mode = member "GL_NV_polygon_mode" extensions
+{-# NOINLINE gl_NV_polygon_mode #-}
+
+-- | Usage: @'glPolygonModeNV' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPolygonMode'.
+
+
+glPolygonModeNV :: MonadIO m => GLenum -> GLenum -> m ()
+glPolygonModeNV = ffienumenumIOV glPolygonModeNVFunPtr
+
+glPolygonModeNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glPolygonModeNVFunPtr = unsafePerformIO (getProcAddress "glPolygonModeNV")
+
+{-# NOINLINE glPolygonModeNVFunPtr #-}
+
+pattern GL_FILL_NV = 0x1B02
+
+pattern GL_LINE_NV = 0x1B01
+
+pattern GL_POINT_NV = 0x1B00
+
+pattern GL_POLYGON_MODE_NV = 0x0B40
+
+pattern GL_POLYGON_OFFSET_LINE_NV = 0x2A02
+
+pattern GL_POLYGON_OFFSET_POINT_NV = 0x2A01
diff --git a/generated-src/Graphics/GL/Ext/NV/PresentVideo.hs b/generated-src/Graphics/GL/Ext/NV/PresentVideo.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PresentVideo.hs
@@ -0,0 +1,120 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PresentVideo (
+  -- * Extension Support
+    gl_NV_present_video
+
+  -- * GL_NV_present_video
+  , glGetVideoi64vNV
+  , glGetVideoivNV
+  , glGetVideoui64vNV
+  , glGetVideouivNV
+  , glPresentFrameDualFillNV
+  , glPresentFrameKeyedNV
+  , pattern GL_CURRENT_TIME_NV
+  , pattern GL_FIELDS_NV
+  , pattern GL_FRAME_NV
+  , pattern GL_NUM_FILL_STREAMS_NV
+  , pattern GL_PRESENT_DURATION_NV
+  , pattern GL_PRESENT_TIME_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/present_video.txt GL_NV_present_video> extension is available.
+
+gl_NV_present_video :: Bool
+gl_NV_present_video = member "GL_NV_present_video" extensions
+{-# NOINLINE gl_NV_present_video #-}
+
+-- | Usage: @'glGetVideoi64vNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideoi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
+glGetVideoi64vNV = ffiuintenumPtrint64EXTIOV glGetVideoi64vNVFunPtr
+
+glGetVideoi64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
+glGetVideoi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoi64vNV")
+
+{-# NOINLINE glGetVideoi64vNVFunPtr #-}
+
+-- | Usage: @'glGetVideoivNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideoivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVideoivNV = ffiuintenumPtrintIOV glGetVideoivNVFunPtr
+
+glGetVideoivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVideoivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoivNV")
+
+{-# NOINLINE glGetVideoivNVFunPtr #-}
+
+-- | Usage: @'glGetVideoui64vNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideoui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
+glGetVideoui64vNV = ffiuintenumPtruint64EXTIOV glGetVideoui64vNVFunPtr
+
+glGetVideoui64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+glGetVideoui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoui64vNV")
+
+{-# NOINLINE glGetVideoui64vNVFunPtr #-}
+
+-- | Usage: @'glGetVideouivNV' video_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideouivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetVideouivNV = ffiuintenumPtruintIOV glGetVideouivNVFunPtr
+
+glGetVideouivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetVideouivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideouivNV")
+
+{-# NOINLINE glGetVideouivNVFunPtr #-}
+
+-- | Usage: @'glPresentFrameDualFillNV' video_slot minPresentTime beginPresentTimeId presentDurationId type target0 fill0 target1 fill1 target2 fill2 target3 fill3@
+
+
+glPresentFrameDualFillNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
+glPresentFrameDualFillNV = ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV glPresentFrameDualFillNVFunPtr
+
+glPresentFrameDualFillNVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ())
+glPresentFrameDualFillNVFunPtr = unsafePerformIO (getProcAddress "glPresentFrameDualFillNV")
+
+{-# NOINLINE glPresentFrameDualFillNVFunPtr #-}
+
+-- | Usage: @'glPresentFrameKeyedNV' video_slot minPresentTime beginPresentTimeId presentDurationId type target0 fill0 key0 target1 fill1 key1@
+
+
+glPresentFrameKeyedNV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()
+glPresentFrameKeyedNV = ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV glPresentFrameKeyedNVFunPtr
+
+glPresentFrameKeyedNVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ())
+glPresentFrameKeyedNVFunPtr = unsafePerformIO (getProcAddress "glPresentFrameKeyedNV")
+
+{-# NOINLINE glPresentFrameKeyedNVFunPtr #-}
+
+pattern GL_CURRENT_TIME_NV = 0x8E28
+
+pattern GL_FIELDS_NV = 0x8E27
+
+pattern GL_FRAME_NV = 0x8E26
+
+pattern GL_NUM_FILL_STREAMS_NV = 0x8E29
+
+pattern GL_PRESENT_DURATION_NV = 0x8E2B
+
+pattern GL_PRESENT_TIME_NV = 0x8E2A
diff --git a/generated-src/Graphics/GL/Ext/NV/PrimitiveRestart.hs b/generated-src/Graphics/GL/Ext/NV/PrimitiveRestart.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/PrimitiveRestart.hs
@@ -0,0 +1,52 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PrimitiveRestart (
+  -- * Extension Support
+    gl_NV_primitive_restart
+
+  -- * GL_NV_primitive_restart
+  , glPrimitiveRestartIndexNV
+  , glPrimitiveRestartNV
+  , pattern GL_PRIMITIVE_RESTART_INDEX_NV
+  , pattern GL_PRIMITIVE_RESTART_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/primitive_restart.txt GL_NV_primitive_restart> extension is available.
+
+gl_NV_primitive_restart :: Bool
+gl_NV_primitive_restart = member "GL_NV_primitive_restart" extensions
+{-# NOINLINE gl_NV_primitive_restart #-}
+
+-- | Usage: @'glPrimitiveRestartIndexNV' index@
+
+
+glPrimitiveRestartIndexNV :: MonadIO m => GLuint -> m ()
+glPrimitiveRestartIndexNV = ffiuintIOV glPrimitiveRestartIndexNVFunPtr
+
+glPrimitiveRestartIndexNVFunPtr :: FunPtr (GLuint -> IO ())
+glPrimitiveRestartIndexNVFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndexNV")
+
+{-# NOINLINE glPrimitiveRestartIndexNVFunPtr #-}
+
+-- | Usage: @'glPrimitiveRestartNV'@
+
+
+glPrimitiveRestartNV :: MonadIO m => m ()
+glPrimitiveRestartNV = ffiIOV glPrimitiveRestartNVFunPtr
+
+glPrimitiveRestartNVFunPtr :: FunPtr (IO ())
+glPrimitiveRestartNVFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartNV")
+
+{-# NOINLINE glPrimitiveRestartNVFunPtr #-}
+
+pattern GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559
+
+pattern GL_PRIMITIVE_RESTART_NV = 0x8558
diff --git a/generated-src/Graphics/GL/Ext/NV/ReadBuffer.hs b/generated-src/Graphics/GL/Ext/NV/ReadBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ReadBuffer.hs
@@ -0,0 +1,37 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ReadBuffer (
+  -- * Extension Support
+    gl_NV_read_buffer
+
+  -- * GL_NV_read_buffer
+  , glReadBufferNV
+  , pattern GL_READ_BUFFER_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_read_buffer.txt GL_NV_read_buffer> extension is available.
+
+gl_NV_read_buffer :: Bool
+gl_NV_read_buffer = member "GL_NV_read_buffer" extensions
+{-# NOINLINE gl_NV_read_buffer #-}
+
+-- | Usage: @'glReadBufferNV' mode@
+
+
+glReadBufferNV :: MonadIO m => GLenum -> m ()
+glReadBufferNV = ffienumIOV glReadBufferNVFunPtr
+
+glReadBufferNVFunPtr :: FunPtr (GLenum -> IO ())
+glReadBufferNVFunPtr = unsafePerformIO (getProcAddress "glReadBufferNV")
+
+{-# NOINLINE glReadBufferNVFunPtr #-}
+
+pattern GL_READ_BUFFER_NV = 0x0C02
diff --git a/generated-src/Graphics/GL/Ext/NV/ReadBufferFront.hs b/generated-src/Graphics/GL/Ext/NV/ReadBufferFront.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ReadBufferFront.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ReadBufferFront (
+  -- * Extension Support
+    gl_NV_read_buffer_front
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_NV_read_buffer_front extension is available.
+
+gl_NV_read_buffer_front :: Bool
+gl_NV_read_buffer_front = member "GL_NV_read_buffer_front" extensions
+{-# NOINLINE gl_NV_read_buffer_front #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ReadDepth.hs b/generated-src/Graphics/GL/Ext/NV/ReadDepth.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ReadDepth.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ReadDepth (
+  -- * Extension Support
+    gl_NV_read_depth
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_NV_read_depth extension is available.
+
+gl_NV_read_depth :: Bool
+gl_NV_read_depth = member "GL_NV_read_depth" extensions
+{-# NOINLINE gl_NV_read_depth #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ReadDepthStencil.hs b/generated-src/Graphics/GL/Ext/NV/ReadDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ReadDepthStencil.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ReadDepthStencil (
+  -- * Extension Support
+    gl_NV_read_depth_stencil
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_read_depth_stencil.txt GL_NV_read_depth_stencil> extension is available.
+
+gl_NV_read_depth_stencil :: Bool
+gl_NV_read_depth_stencil = member "GL_NV_read_depth_stencil" extensions
+{-# NOINLINE gl_NV_read_depth_stencil #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ReadStencil.hs b/generated-src/Graphics/GL/Ext/NV/ReadStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ReadStencil.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ReadStencil (
+  -- * Extension Support
+    gl_NV_read_stencil
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_NV_read_stencil extension is available.
+
+gl_NV_read_stencil :: Bool
+gl_NV_read_stencil = member "GL_NV_read_stencil" extensions
+{-# NOINLINE gl_NV_read_stencil #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/RegisterCombiners.hs b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners.hs
@@ -0,0 +1,437 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.RegisterCombiners (
+  -- * Extension Support
+    gl_NV_register_combiners
+
+  -- * GL_NV_register_combiners
+  , glCombinerInputNV
+  , glCombinerOutputNV
+  , glCombinerParameterfNV
+  , glCombinerParameterfvNV
+  , glCombinerParameteriNV
+  , glCombinerParameterivNV
+  , glFinalCombinerInputNV
+  , glGetCombinerInputParameterfvNV
+  , glGetCombinerInputParameterivNV
+  , glGetCombinerOutputParameterfvNV
+  , glGetCombinerOutputParameterivNV
+  , glGetFinalCombinerInputParameterfvNV
+  , glGetFinalCombinerInputParameterivNV
+  , pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
+  , pattern GL_COLOR_SUM_CLAMP_NV
+  , pattern GL_COMBINER0_NV
+  , pattern GL_COMBINER1_NV
+  , pattern GL_COMBINER2_NV
+  , pattern GL_COMBINER3_NV
+  , pattern GL_COMBINER4_NV
+  , pattern GL_COMBINER5_NV
+  , pattern GL_COMBINER6_NV
+  , pattern GL_COMBINER7_NV
+  , pattern GL_COMBINER_AB_DOT_PRODUCT_NV
+  , pattern GL_COMBINER_AB_OUTPUT_NV
+  , pattern GL_COMBINER_BIAS_NV
+  , pattern GL_COMBINER_CD_DOT_PRODUCT_NV
+  , pattern GL_COMBINER_CD_OUTPUT_NV
+  , pattern GL_COMBINER_COMPONENT_USAGE_NV
+  , pattern GL_COMBINER_INPUT_NV
+  , pattern GL_COMBINER_MAPPING_NV
+  , pattern GL_COMBINER_MUX_SUM_NV
+  , pattern GL_COMBINER_SCALE_NV
+  , pattern GL_COMBINER_SUM_OUTPUT_NV
+  , pattern GL_CONSTANT_COLOR0_NV
+  , pattern GL_CONSTANT_COLOR1_NV
+  , pattern GL_DISCARD_NV
+  , pattern GL_EXPAND_NEGATE_NV
+  , pattern GL_EXPAND_NORMAL_NV
+  , pattern GL_E_TIMES_F_NV
+  , pattern GL_FOG
+  , pattern GL_HALF_BIAS_NEGATE_NV
+  , pattern GL_HALF_BIAS_NORMAL_NV
+  , pattern GL_MAX_GENERAL_COMBINERS_NV
+  , pattern GL_NONE
+  , pattern GL_NUM_GENERAL_COMBINERS_NV
+  , pattern GL_PRIMARY_COLOR_NV
+  , pattern GL_REGISTER_COMBINERS_NV
+  , pattern GL_SCALE_BY_FOUR_NV
+  , pattern GL_SCALE_BY_ONE_HALF_NV
+  , pattern GL_SCALE_BY_TWO_NV
+  , pattern GL_SECONDARY_COLOR_NV
+  , pattern GL_SIGNED_IDENTITY_NV
+  , pattern GL_SIGNED_NEGATE_NV
+  , pattern GL_SPARE0_NV
+  , pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV
+  , pattern GL_SPARE1_NV
+  , pattern GL_TEXTURE0_ARB
+  , pattern GL_TEXTURE1_ARB
+  , pattern GL_UNSIGNED_IDENTITY_NV
+  , pattern GL_UNSIGNED_INVERT_NV
+  , pattern GL_VARIABLE_A_NV
+  , pattern GL_VARIABLE_B_NV
+  , pattern GL_VARIABLE_C_NV
+  , pattern GL_VARIABLE_D_NV
+  , pattern GL_VARIABLE_E_NV
+  , pattern GL_VARIABLE_F_NV
+  , pattern GL_VARIABLE_G_NV
+  , pattern GL_ZERO
+) 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/NV/register_combiners.txt GL_NV_register_combiners> extension is available.
+
+gl_NV_register_combiners :: Bool
+gl_NV_register_combiners = member "GL_NV_register_combiners" extensions
+{-# NOINLINE gl_NV_register_combiners #-}
+
+-- | Usage: @'glCombinerInputNV' stage portion variable input mapping componentUsage@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @input@ is a @CombinerRegisterNV@.
+--
+-- The parameter @mapping@ is a @CombinerMappingNV@.
+--
+-- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.
+
+
+glCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glCombinerInputNV = ffienumenumenumenumenumenumIOV glCombinerInputNVFunPtr
+
+glCombinerInputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glCombinerInputNVFunPtr = unsafePerformIO (getProcAddress "glCombinerInputNV")
+
+{-# NOINLINE glCombinerInputNVFunPtr #-}
+
+-- | Usage: @'glCombinerOutputNV' stage portion abOutput cdOutput sumOutput scale bias abDotProduct cdDotProduct muxSum@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @abOutput@ is a @CombinerRegisterNV@.
+--
+-- The parameter @cdOutput@ is a @CombinerRegisterNV@.
+--
+-- The parameter @sumOutput@ is a @CombinerRegisterNV@.
+--
+-- The parameter @scale@ is a @CombinerScaleNV@.
+--
+-- The parameter @bias@ is a @CombinerBiasNV@.
+--
+-- The parameter @abDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @cdDotProduct@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @muxSum@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glCombinerOutputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
+glCombinerOutputNV = ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV glCombinerOutputNVFunPtr
+
+glCombinerOutputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glCombinerOutputNVFunPtr = unsafePerformIO (getProcAddress "glCombinerOutputNV")
+
+{-# NOINLINE glCombinerOutputNVFunPtr #-}
+
+-- | Usage: @'glCombinerParameterfNV' pname param@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+
+
+glCombinerParameterfNV :: MonadIO m => GLenum -> GLfloat -> m ()
+glCombinerParameterfNV = ffienumfloatIOV glCombinerParameterfNVFunPtr
+
+glCombinerParameterfNVFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glCombinerParameterfNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameterfNV")
+
+{-# NOINLINE glCombinerParameterfNVFunPtr #-}
+
+-- | Usage: @'glCombinerParameterfvNV' pname params@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glCombinerParameterfvNV :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glCombinerParameterfvNV = ffienumPtrfloatIOV glCombinerParameterfvNVFunPtr
+
+glCombinerParameterfvNVFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glCombinerParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameterfvNV")
+
+{-# NOINLINE glCombinerParameterfvNVFunPtr #-}
+
+-- | Usage: @'glCombinerParameteriNV' pname param@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+
+
+glCombinerParameteriNV :: MonadIO m => GLenum -> GLint -> m ()
+glCombinerParameteriNV = ffienumintIOV glCombinerParameteriNVFunPtr
+
+glCombinerParameteriNVFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glCombinerParameteriNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameteriNV")
+
+{-# NOINLINE glCombinerParameteriNVFunPtr #-}
+
+-- | Usage: @'glCombinerParameterivNV' pname params@
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glCombinerParameterivNV :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glCombinerParameterivNV = ffienumPtrintIOV glCombinerParameterivNVFunPtr
+
+glCombinerParameterivNVFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glCombinerParameterivNVFunPtr = unsafePerformIO (getProcAddress "glCombinerParameterivNV")
+
+{-# NOINLINE glCombinerParameterivNVFunPtr #-}
+
+-- | Usage: @'glFinalCombinerInputNV' variable input mapping componentUsage@
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @input@ is a @CombinerRegisterNV@.
+--
+-- The parameter @mapping@ is a @CombinerMappingNV@.
+--
+-- The parameter @componentUsage@ is a @CombinerComponentUsageNV@.
+
+
+glFinalCombinerInputNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glFinalCombinerInputNV = ffienumenumenumenumIOV glFinalCombinerInputNVFunPtr
+
+glFinalCombinerInputNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glFinalCombinerInputNVFunPtr = unsafePerformIO (getProcAddress "glFinalCombinerInputNV")
+
+{-# NOINLINE glFinalCombinerInputNVFunPtr #-}
+
+-- | Usage: @'glGetCombinerInputParameterfvNV' stage portion variable pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetCombinerInputParameterfvNV = ffienumenumenumenumPtrfloatIOV glGetCombinerInputParameterfvNVFunPtr
+
+glGetCombinerInputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetCombinerInputParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerInputParameterfvNV")
+
+{-# NOINLINE glGetCombinerInputParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetCombinerInputParameterivNV' stage portion variable pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetCombinerInputParameterivNV = ffienumenumenumenumPtrintIOV glGetCombinerInputParameterivNVFunPtr
+
+glGetCombinerInputParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetCombinerInputParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerInputParameterivNV")
+
+{-# NOINLINE glGetCombinerInputParameterivNVFunPtr #-}
+
+-- | Usage: @'glGetCombinerOutputParameterfvNV' stage portion pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetCombinerOutputParameterfvNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetCombinerOutputParameterfvNV = ffienumenumenumPtrfloatIOV glGetCombinerOutputParameterfvNVFunPtr
+
+glGetCombinerOutputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetCombinerOutputParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerOutputParameterfvNV")
+
+{-# NOINLINE glGetCombinerOutputParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetCombinerOutputParameterivNV' stage portion pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @portion@ is a @CombinerPortionNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetCombinerOutputParameterivNV :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetCombinerOutputParameterivNV = ffienumenumenumPtrintIOV glGetCombinerOutputParameterivNVFunPtr
+
+glGetCombinerOutputParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetCombinerOutputParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerOutputParameterivNV")
+
+{-# NOINLINE glGetCombinerOutputParameterivNVFunPtr #-}
+
+-- | Usage: @'glGetFinalCombinerInputParameterfvNV' variable pname params@
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFinalCombinerInputParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetFinalCombinerInputParameterfvNV = ffienumenumPtrfloatIOV glGetFinalCombinerInputParameterfvNVFunPtr
+
+glGetFinalCombinerInputParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetFinalCombinerInputParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetFinalCombinerInputParameterfvNV")
+
+{-# NOINLINE glGetFinalCombinerInputParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetFinalCombinerInputParameterivNV' variable pname params@
+--
+-- The parameter @variable@ is a @CombinerVariableNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFinalCombinerInputParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFinalCombinerInputParameterivNV = ffienumenumPtrintIOV glGetFinalCombinerInputParameterivNVFunPtr
+
+glGetFinalCombinerInputParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFinalCombinerInputParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetFinalCombinerInputParameterivNV")
+
+{-# NOINLINE glGetFinalCombinerInputParameterivNVFunPtr #-}
+
+pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541
+
+pattern GL_COLOR_SUM_CLAMP_NV = 0x854F
+
+pattern GL_COMBINER0_NV = 0x8550
+
+pattern GL_COMBINER1_NV = 0x8551
+
+pattern GL_COMBINER2_NV = 0x8552
+
+pattern GL_COMBINER3_NV = 0x8553
+
+pattern GL_COMBINER4_NV = 0x8554
+
+pattern GL_COMBINER5_NV = 0x8555
+
+pattern GL_COMBINER6_NV = 0x8556
+
+pattern GL_COMBINER7_NV = 0x8557
+
+pattern GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545
+
+pattern GL_COMBINER_AB_OUTPUT_NV = 0x854A
+
+pattern GL_COMBINER_BIAS_NV = 0x8549
+
+pattern GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546
+
+pattern GL_COMBINER_CD_OUTPUT_NV = 0x854B
+
+pattern GL_COMBINER_COMPONENT_USAGE_NV = 0x8544
+
+pattern GL_COMBINER_INPUT_NV = 0x8542
+
+pattern GL_COMBINER_MAPPING_NV = 0x8543
+
+pattern GL_COMBINER_MUX_SUM_NV = 0x8547
+
+pattern GL_COMBINER_SCALE_NV = 0x8548
+
+pattern GL_COMBINER_SUM_OUTPUT_NV = 0x854C
+
+pattern GL_CONSTANT_COLOR0_NV = 0x852A
+
+pattern GL_CONSTANT_COLOR1_NV = 0x852B
+
+pattern GL_DISCARD_NV = 0x8530
+
+pattern GL_EXPAND_NEGATE_NV = 0x8539
+
+pattern GL_EXPAND_NORMAL_NV = 0x8538
+
+pattern GL_E_TIMES_F_NV = 0x8531
+
+pattern GL_HALF_BIAS_NEGATE_NV = 0x853B
+
+pattern GL_HALF_BIAS_NORMAL_NV = 0x853A
+
+pattern GL_MAX_GENERAL_COMBINERS_NV = 0x854D
+
+pattern GL_NUM_GENERAL_COMBINERS_NV = 0x854E
+
+pattern GL_REGISTER_COMBINERS_NV = 0x8522
+
+pattern GL_SCALE_BY_FOUR_NV = 0x853F
+
+pattern GL_SCALE_BY_ONE_HALF_NV = 0x8540
+
+pattern GL_SCALE_BY_TWO_NV = 0x853E
+
+pattern GL_SIGNED_IDENTITY_NV = 0x853C
+
+pattern GL_SIGNED_NEGATE_NV = 0x853D
+
+pattern GL_SPARE0_NV = 0x852E
+
+pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532
+
+pattern GL_SPARE1_NV = 0x852F
+
+pattern GL_UNSIGNED_IDENTITY_NV = 0x8536
+
+pattern GL_UNSIGNED_INVERT_NV = 0x8537
+
+pattern GL_VARIABLE_A_NV = 0x8523
+
+pattern GL_VARIABLE_B_NV = 0x8524
+
+pattern GL_VARIABLE_C_NV = 0x8525
+
+pattern GL_VARIABLE_D_NV = 0x8526
+
+pattern GL_VARIABLE_E_NV = 0x8527
+
+pattern GL_VARIABLE_F_NV = 0x8528
+
+pattern GL_VARIABLE_G_NV = 0x8529
diff --git a/generated-src/Graphics/GL/Ext/NV/RegisterCombiners2.hs b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners2.hs
@@ -0,0 +1,63 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.RegisterCombiners2 (
+  -- * Extension Support
+    gl_NV_register_combiners2
+
+  -- * GL_NV_register_combiners2
+  , glCombinerStageParameterfvNV
+  , glGetCombinerStageParameterfvNV
+  , pattern GL_PER_STAGE_CONSTANTS_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/register_combiners2.txt GL_NV_register_combiners2> extension is available.
+
+gl_NV_register_combiners2 :: Bool
+gl_NV_register_combiners2 = member "GL_NV_register_combiners2" extensions
+{-# NOINLINE gl_NV_register_combiners2 #-}
+
+-- | Usage: @'glCombinerStageParameterfvNV' stage pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glCombinerStageParameterfvNV = ffienumenumPtrfloatIOV glCombinerStageParameterfvNVFunPtr
+
+glCombinerStageParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glCombinerStageParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glCombinerStageParameterfvNV")
+
+{-# NOINLINE glCombinerStageParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetCombinerStageParameterfvNV' stage pname params@
+--
+-- The parameter @stage@ is a @CombinerStageNV@.
+--
+-- The parameter @pname@ is a @CombinerParameterNV@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetCombinerStageParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetCombinerStageParameterfvNV = ffienumenumPtrfloatIOV glGetCombinerStageParameterfvNVFunPtr
+
+glGetCombinerStageParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetCombinerStageParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetCombinerStageParameterfvNV")
+
+{-# NOINLINE glGetCombinerStageParameterfvNVFunPtr #-}
+
+pattern GL_PER_STAGE_CONSTANTS_NV = 0x8535
diff --git a/generated-src/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs b/generated-src/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.RobustnessVideoMemoryPurge (
+  -- * Extension Support
+    gl_NV_robustness_video_memory_purge
+
+  -- * GL_NV_robustness_video_memory_purge
+  , pattern GL_PURGED_CONTEXT_RESET_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/robustness_video_memory_purge.txt GL_NV_robustness_video_memory_purge> extension is available.
+
+gl_NV_robustness_video_memory_purge :: Bool
+gl_NV_robustness_video_memory_purge = member "GL_NV_robustness_video_memory_purge" extensions
+{-# NOINLINE gl_NV_robustness_video_memory_purge #-}
+
+pattern GL_PURGED_CONTEXT_RESET_NV = 0x92BB
diff --git a/generated-src/Graphics/GL/Ext/NV/SRGBFormats.hs b/generated-src/Graphics/GL/Ext/NV/SRGBFormats.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/SRGBFormats.hs
@@ -0,0 +1,47 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.SRGBFormats (
+  -- * Extension Support
+    gl_NV_sRGB_formats
+
+  -- * GL_NV_sRGB_formats
+  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV
+  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV
+  , pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV
+  , pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV
+  , pattern GL_ETC1_SRGB8_NV
+  , pattern GL_SLUMINANCE8_ALPHA8_NV
+  , pattern GL_SLUMINANCE8_NV
+  , pattern GL_SLUMINANCE_ALPHA_NV
+  , pattern GL_SLUMINANCE_NV
+  , pattern GL_SRGB8_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_sRGB_formats.txt GL_NV_sRGB_formats> extension is available.
+
+gl_NV_sRGB_formats :: Bool
+gl_NV_sRGB_formats = member "GL_NV_sRGB_formats" extensions
+{-# NOINLINE gl_NV_sRGB_formats #-}
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F
+
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C
+
+pattern GL_ETC1_SRGB8_NV = 0x88EE
+
+pattern GL_SLUMINANCE8_ALPHA8_NV = 0x8C45
+
+pattern GL_SLUMINANCE8_NV = 0x8C47
+
+pattern GL_SLUMINANCE_ALPHA_NV = 0x8C44
+
+pattern GL_SLUMINANCE_NV = 0x8C46
+
+pattern GL_SRGB8_NV = 0x8C41
diff --git a/generated-src/Graphics/GL/Ext/NV/SampleLocations.hs b/generated-src/Graphics/GL/Ext/NV/SampleLocations.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/SampleLocations.hs
@@ -0,0 +1,82 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.SampleLocations (
+  -- * Extension Support
+    gl_NV_sample_locations
+
+  -- * GL_NV_sample_locations
+  , glFramebufferSampleLocationsfvNV
+  , glNamedFramebufferSampleLocationsfvNV
+  , glResolveDepthValuesNV
+  , pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV
+  , pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV
+  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV
+  , pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV
+  , pattern GL_SAMPLE_LOCATION_NV
+  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV
+  , pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV
+  , pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_locations.txt GL_NV_sample_locations> extension is available.
+
+gl_NV_sample_locations :: Bool
+gl_NV_sample_locations = member "GL_NV_sample_locations" extensions
+{-# NOINLINE gl_NV_sample_locations #-}
+
+-- | Usage: @'glFramebufferSampleLocationsfvNV' target start count v@
+
+
+glFramebufferSampleLocationsfvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glFramebufferSampleLocationsfvNV = ffienumuintsizeiPtrfloatIOV glFramebufferSampleLocationsfvNVFunPtr
+
+glFramebufferSampleLocationsfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glFramebufferSampleLocationsfvNVFunPtr = unsafePerformIO (getProcAddress "glFramebufferSampleLocationsfvNV")
+
+{-# NOINLINE glFramebufferSampleLocationsfvNVFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferSampleLocationsfvNV' framebuffer start count v@
+
+
+glNamedFramebufferSampleLocationsfvNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glNamedFramebufferSampleLocationsfvNV = ffiuintuintsizeiPtrfloatIOV glNamedFramebufferSampleLocationsfvNVFunPtr
+
+glNamedFramebufferSampleLocationsfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glNamedFramebufferSampleLocationsfvNVFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferSampleLocationsfvNV")
+
+{-# NOINLINE glNamedFramebufferSampleLocationsfvNVFunPtr #-}
+
+-- | Usage: @'glResolveDepthValuesNV'@
+
+
+glResolveDepthValuesNV :: MonadIO m => m ()
+glResolveDepthValuesNV = ffiIOV glResolveDepthValuesNVFunPtr
+
+glResolveDepthValuesNVFunPtr :: FunPtr (IO ())
+glResolveDepthValuesNVFunPtr = unsafePerformIO (getProcAddress "glResolveDepthValuesNV")
+
+{-# NOINLINE glResolveDepthValuesNVFunPtr #-}
+
+pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342
+
+pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340
+
+pattern GL_SAMPLE_LOCATION_NV = 0x8E50
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E
+
+pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D
diff --git a/generated-src/Graphics/GL/Ext/NV/SampleMaskOverrideCoverage.hs b/generated-src/Graphics/GL/Ext/NV/SampleMaskOverrideCoverage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/SampleMaskOverrideCoverage.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.SampleMaskOverrideCoverage (
+  -- * Extension Support
+    gl_NV_sample_mask_override_coverage
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/sample_mask_override_coverage.txt GL_NV_sample_mask_override_coverage> extension is available.
+
+gl_NV_sample_mask_override_coverage :: Bool
+gl_NV_sample_mask_override_coverage = member "GL_NV_sample_mask_override_coverage" extensions
+{-# NOINLINE gl_NV_sample_mask_override_coverage #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderAtomicCounters.hs b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicCounters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicCounters.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderAtomicCounters (
+  -- * Extension Support
+    gl_NV_shader_atomic_counters
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_counters.txt GL_NV_shader_atomic_counters> extension is available.
+
+gl_NV_shader_atomic_counters :: Bool
+gl_NV_shader_atomic_counters = member "GL_NV_shader_atomic_counters" extensions
+{-# NOINLINE gl_NV_shader_atomic_counters #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFloat.hs b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFloat.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderAtomicFloat (
+  -- * Extension Support
+    gl_NV_shader_atomic_float
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_float.txt GL_NV_shader_atomic_float> extension is available.
+
+gl_NV_shader_atomic_float :: Bool
+gl_NV_shader_atomic_float = member "GL_NV_shader_atomic_float" extensions
+{-# NOINLINE gl_NV_shader_atomic_float #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFloat64.hs b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFloat64.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFloat64.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderAtomicFloat64 (
+  -- * Extension Support
+    gl_NV_shader_atomic_float64
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_float64.txt GL_NV_shader_atomic_float64> extension is available.
+
+gl_NV_shader_atomic_float64 :: Bool
+gl_NV_shader_atomic_float64 = member "GL_NV_shader_atomic_float64" extensions
+{-# NOINLINE gl_NV_shader_atomic_float64 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFp16Vector.hs b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFp16Vector.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicFp16Vector.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderAtomicFp16Vector (
+  -- * Extension Support
+    gl_NV_shader_atomic_fp16_vector
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_fp16_vector.txt GL_NV_shader_atomic_fp16_vector> extension is available.
+
+gl_NV_shader_atomic_fp16_vector :: Bool
+gl_NV_shader_atomic_fp16_vector = member "GL_NV_shader_atomic_fp16_vector" extensions
+{-# NOINLINE gl_NV_shader_atomic_fp16_vector #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderAtomicInt64.hs b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicInt64.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderAtomicInt64.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderAtomicInt64 (
+  -- * Extension Support
+    gl_NV_shader_atomic_int64
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_atomic_int64.txt GL_NV_shader_atomic_int64> extension is available.
+
+gl_NV_shader_atomic_int64 :: Bool
+gl_NV_shader_atomic_int64 = member "GL_NV_shader_atomic_int64" extensions
+{-# NOINLINE gl_NV_shader_atomic_int64 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderBufferLoad.hs b/generated-src/Graphics/GL/Ext/NV/ShaderBufferLoad.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderBufferLoad.hs
@@ -0,0 +1,201 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderBufferLoad (
+  -- * Extension Support
+    gl_NV_shader_buffer_load
+
+  -- * GL_NV_shader_buffer_load
+  , glGetBufferParameterui64vNV
+  , glGetIntegerui64vNV
+  , glGetNamedBufferParameterui64vNV
+  , glGetUniformui64vNV
+  , glIsBufferResidentNV
+  , glIsNamedBufferResidentNV
+  , glMakeBufferNonResidentNV
+  , glMakeBufferResidentNV
+  , glMakeNamedBufferNonResidentNV
+  , glMakeNamedBufferResidentNV
+  , glProgramUniformui64NV
+  , glProgramUniformui64vNV
+  , glUniformui64NV
+  , glUniformui64vNV
+  , pattern GL_BUFFER_GPU_ADDRESS_NV
+  , pattern GL_GPU_ADDRESS_NV
+  , pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV
+) 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/NV/shader_buffer_load.txt GL_NV_shader_buffer_load> extension is available.
+
+gl_NV_shader_buffer_load :: Bool
+gl_NV_shader_buffer_load = member "GL_NV_shader_buffer_load" extensions
+{-# NOINLINE gl_NV_shader_buffer_load #-}
+
+-- | Usage: @'glGetBufferParameterui64vNV' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetBufferParameterui64vNV :: MonadIO m => GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
+glGetBufferParameterui64vNV = ffienumenumPtruint64EXTIOV glGetBufferParameterui64vNVFunPtr
+
+glGetBufferParameterui64vNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ())
+glGetBufferParameterui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameterui64vNV")
+
+{-# NOINLINE glGetBufferParameterui64vNVFunPtr #-}
+
+-- | Usage: @'glGetIntegerui64vNV' value result@
+--
+-- The length of @result@ should be @COMPSIZE(value)@.
+
+
+glGetIntegerui64vNV :: MonadIO m => GLenum -> Ptr GLuint64EXT -> m ()
+glGetIntegerui64vNV = ffienumPtruint64EXTIOV glGetIntegerui64vNVFunPtr
+
+glGetIntegerui64vNVFunPtr :: FunPtr (GLenum -> Ptr GLuint64EXT -> IO ())
+glGetIntegerui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetIntegerui64vNV")
+
+{-# NOINLINE glGetIntegerui64vNVFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameterui64vNV' buffer pname params@
+--
+-- The parameter @pname@ is a @VertexBufferObjectParameter@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetNamedBufferParameterui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
+glGetNamedBufferParameterui64vNV = ffiuintenumPtruint64EXTIOV glGetNamedBufferParameterui64vNVFunPtr
+
+glGetNamedBufferParameterui64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+glGetNamedBufferParameterui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameterui64vNV")
+
+{-# NOINLINE glGetNamedBufferParameterui64vNVFunPtr #-}
+
+-- | Usage: @'glIsBufferResidentNV' target@
+
+
+glIsBufferResidentNV :: MonadIO m => GLenum -> m GLboolean
+glIsBufferResidentNV = ffienumIOboolean glIsBufferResidentNVFunPtr
+
+glIsBufferResidentNVFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glIsBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsBufferResidentNV")
+
+{-# NOINLINE glIsBufferResidentNVFunPtr #-}
+
+-- | Usage: @'glIsNamedBufferResidentNV' buffer@
+
+
+glIsNamedBufferResidentNV :: MonadIO m => GLuint -> m GLboolean
+glIsNamedBufferResidentNV = ffiuintIOboolean glIsNamedBufferResidentNVFunPtr
+
+glIsNamedBufferResidentNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsNamedBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glIsNamedBufferResidentNV")
+
+{-# NOINLINE glIsNamedBufferResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeBufferNonResidentNV' target@
+
+
+glMakeBufferNonResidentNV :: MonadIO m => GLenum -> m ()
+glMakeBufferNonResidentNV = ffienumIOV glMakeBufferNonResidentNVFunPtr
+
+glMakeBufferNonResidentNVFunPtr :: FunPtr (GLenum -> IO ())
+glMakeBufferNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeBufferNonResidentNV")
+
+{-# NOINLINE glMakeBufferNonResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeBufferResidentNV' target access@
+
+
+glMakeBufferResidentNV :: MonadIO m => GLenum -> GLenum -> m ()
+glMakeBufferResidentNV = ffienumenumIOV glMakeBufferResidentNVFunPtr
+
+glMakeBufferResidentNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glMakeBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeBufferResidentNV")
+
+{-# NOINLINE glMakeBufferResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeNamedBufferNonResidentNV' buffer@
+
+
+glMakeNamedBufferNonResidentNV :: MonadIO m => GLuint -> m ()
+glMakeNamedBufferNonResidentNV = ffiuintIOV glMakeNamedBufferNonResidentNVFunPtr
+
+glMakeNamedBufferNonResidentNVFunPtr :: FunPtr (GLuint -> IO ())
+glMakeNamedBufferNonResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeNamedBufferNonResidentNV")
+
+{-# NOINLINE glMakeNamedBufferNonResidentNVFunPtr #-}
+
+-- | Usage: @'glMakeNamedBufferResidentNV' buffer access@
+
+
+glMakeNamedBufferResidentNV :: MonadIO m => GLuint -> GLenum -> m ()
+glMakeNamedBufferResidentNV = ffiuintenumIOV glMakeNamedBufferResidentNVFunPtr
+
+glMakeNamedBufferResidentNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glMakeNamedBufferResidentNVFunPtr = unsafePerformIO (getProcAddress "glMakeNamedBufferResidentNV")
+
+{-# NOINLINE glMakeNamedBufferResidentNVFunPtr #-}
+
+-- | Usage: @'glProgramUniformui64NV' program location value@
+
+
+glProgramUniformui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
+glProgramUniformui64NV = ffiuintintuint64EXTIOV glProgramUniformui64NVFunPtr
+
+glProgramUniformui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+glProgramUniformui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformui64NV")
+
+{-# NOINLINE glProgramUniformui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniformui64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniformui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniformui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniformui64vNVFunPtr
+
+glProgramUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniformui64vNV")
+
+{-# NOINLINE glProgramUniformui64vNVFunPtr #-}
+
+-- | Usage: @'glUniformui64NV' location value@
+
+
+glUniformui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
+glUniformui64NV = ffiintuint64EXTIOV glUniformui64NVFunPtr
+
+glUniformui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
+glUniformui64NVFunPtr = unsafePerformIO (getProcAddress "glUniformui64NV")
+
+{-# NOINLINE glUniformui64NVFunPtr #-}
+
+-- | Usage: @'glUniformui64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniformui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniformui64vNV = ffiintsizeiPtruint64EXTIOV glUniformui64vNVFunPtr
+
+glUniformui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniformui64vNV")
+
+{-# NOINLINE glUniformui64vNVFunPtr #-}
+
+pattern GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D
+
+pattern GL_GPU_ADDRESS_NV = 0x8F34
+
+pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderBufferStore.hs b/generated-src/Graphics/GL/Ext/NV/ShaderBufferStore.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderBufferStore.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderBufferStore (
+  -- * Extension Support
+    gl_NV_shader_buffer_store
+
+  -- * GL_NV_shader_buffer_store
+  , pattern GL_READ_WRITE
+  , pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV
+  , pattern GL_WRITE_ONLY
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_buffer_store.txt GL_NV_shader_buffer_store> extension is available.
+
+gl_NV_shader_buffer_store :: Bool
+gl_NV_shader_buffer_store = member "GL_NV_shader_buffer_store" extensions
+{-# NOINLINE gl_NV_shader_buffer_store #-}
+
+pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderNoperspectiveInterpolation.hs b/generated-src/Graphics/GL/Ext/NV/ShaderNoperspectiveInterpolation.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderNoperspectiveInterpolation.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderNoperspectiveInterpolation (
+  -- * Extension Support
+    gl_NV_shader_noperspective_interpolation
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_NV_shader_noperspective_interpolation extension is available.
+
+gl_NV_shader_noperspective_interpolation :: Bool
+gl_NV_shader_noperspective_interpolation = member "GL_NV_shader_noperspective_interpolation" extensions
+{-# NOINLINE gl_NV_shader_noperspective_interpolation #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderStorageBufferObject.hs b/generated-src/Graphics/GL/Ext/NV/ShaderStorageBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderStorageBufferObject.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderStorageBufferObject (
+  -- * Extension Support
+    gl_NV_shader_storage_buffer_object
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_storage_buffer_object.txt GL_NV_shader_storage_buffer_object> extension is available.
+
+gl_NV_shader_storage_buffer_object :: Bool
+gl_NV_shader_storage_buffer_object = member "GL_NV_shader_storage_buffer_object" extensions
+{-# NOINLINE gl_NV_shader_storage_buffer_object #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderThreadGroup.hs b/generated-src/Graphics/GL/Ext/NV/ShaderThreadGroup.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderThreadGroup.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderThreadGroup (
+  -- * Extension Support
+    gl_NV_shader_thread_group
+
+  -- * GL_NV_shader_thread_group
+  , pattern GL_SM_COUNT_NV
+  , pattern GL_WARPS_PER_SM_NV
+  , pattern GL_WARP_SIZE_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_group.txt GL_NV_shader_thread_group> extension is available.
+
+gl_NV_shader_thread_group :: Bool
+gl_NV_shader_thread_group = member "GL_NV_shader_thread_group" extensions
+{-# NOINLINE gl_NV_shader_thread_group #-}
+
+pattern GL_SM_COUNT_NV = 0x933B
+
+pattern GL_WARPS_PER_SM_NV = 0x933A
+
+pattern GL_WARP_SIZE_NV = 0x9339
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderThreadShuffle.hs b/generated-src/Graphics/GL/Ext/NV/ShaderThreadShuffle.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderThreadShuffle.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShaderThreadShuffle (
+  -- * Extension Support
+    gl_NV_shader_thread_shuffle
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/shader_thread_shuffle.txt GL_NV_shader_thread_shuffle> extension is available.
+
+gl_NV_shader_thread_shuffle :: Bool
+gl_NV_shader_thread_shuffle = member "GL_NV_shader_thread_shuffle" extensions
+{-# NOINLINE gl_NV_shader_thread_shuffle #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ShadowSamplersArray.hs b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersArray.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShadowSamplersArray (
+  -- * Extension Support
+    gl_NV_shadow_samplers_array
+
+  -- * GL_NV_shadow_samplers_array
+  , pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_shadow_samplers_array.txt GL_NV_shadow_samplers_array> extension is available.
+
+gl_NV_shadow_samplers_array :: Bool
+gl_NV_shadow_samplers_array = member "GL_NV_shadow_samplers_array" extensions
+{-# NOINLINE gl_NV_shadow_samplers_array #-}
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4
diff --git a/generated-src/Graphics/GL/Ext/NV/ShadowSamplersCube.hs b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersCube.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersCube.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ShadowSamplersCube (
+  -- * Extension Support
+    gl_NV_shadow_samplers_cube
+
+  -- * GL_NV_shadow_samplers_cube
+  , pattern GL_SAMPLER_CUBE_SHADOW_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_shadow_samplers_cube.txt GL_NV_shadow_samplers_cube> extension is available.
+
+gl_NV_shadow_samplers_cube :: Bool
+gl_NV_shadow_samplers_cube = member "GL_NV_shadow_samplers_cube" extensions
+{-# NOINLINE gl_NV_shadow_samplers_cube #-}
+
+pattern GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5
diff --git a/generated-src/Graphics/GL/Ext/NV/StereoViewRendering.hs b/generated-src/Graphics/GL/Ext/NV/StereoViewRendering.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/StereoViewRendering.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.StereoViewRendering (
+  -- * Extension Support
+    gl_NV_stereo_view_rendering
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/stereo_view_rendering.txt GL_NV_stereo_view_rendering> extension is available.
+
+gl_NV_stereo_view_rendering :: Bool
+gl_NV_stereo_view_rendering = member "GL_NV_stereo_view_rendering" extensions
+{-# NOINLINE gl_NV_stereo_view_rendering #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/TessellationProgram5.hs b/generated-src/Graphics/GL/Ext/NV/TessellationProgram5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TessellationProgram5.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TessellationProgram5 (
+  -- * Extension Support
+    gl_NV_tessellation_program5
+
+  -- * GL_NV_tessellation_program5
+  , pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV
+  , pattern GL_TESS_CONTROL_PROGRAM_NV
+  , pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV
+  , pattern GL_TESS_EVALUATION_PROGRAM_NV
+  , pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/tessellation_program5.txt GL_NV_tessellation_program5> extension is available.
+
+gl_NV_tessellation_program5 :: Bool
+gl_NV_tessellation_program5 = member "GL_NV_tessellation_program5" extensions
+{-# NOINLINE gl_NV_tessellation_program5 #-}
+
+pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8
+
+pattern GL_TESS_CONTROL_PROGRAM_NV = 0x891E
+
+pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74
+
+pattern GL_TESS_EVALUATION_PROGRAM_NV = 0x891F
+
+pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75
diff --git a/generated-src/Graphics/GL/Ext/NV/TexgenEmboss.hs b/generated-src/Graphics/GL/Ext/NV/TexgenEmboss.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TexgenEmboss.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TexgenEmboss (
+  -- * Extension Support
+    gl_NV_texgen_emboss
+
+  -- * GL_NV_texgen_emboss
+  , pattern GL_EMBOSS_CONSTANT_NV
+  , pattern GL_EMBOSS_LIGHT_NV
+  , pattern GL_EMBOSS_MAP_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_emboss.txt GL_NV_texgen_emboss> extension is available.
+
+gl_NV_texgen_emboss :: Bool
+gl_NV_texgen_emboss = member "GL_NV_texgen_emboss" extensions
+{-# NOINLINE gl_NV_texgen_emboss #-}
+
+pattern GL_EMBOSS_CONSTANT_NV = 0x855E
+
+pattern GL_EMBOSS_LIGHT_NV = 0x855D
+
+pattern GL_EMBOSS_MAP_NV = 0x855F
diff --git a/generated-src/Graphics/GL/Ext/NV/TexgenReflection.hs b/generated-src/Graphics/GL/Ext/NV/TexgenReflection.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TexgenReflection.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TexgenReflection (
+  -- * Extension Support
+    gl_NV_texgen_reflection
+
+  -- * GL_NV_texgen_reflection
+  , pattern GL_NORMAL_MAP_NV
+  , pattern GL_REFLECTION_MAP_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texgen_reflection.txt GL_NV_texgen_reflection> extension is available.
+
+gl_NV_texgen_reflection :: Bool
+gl_NV_texgen_reflection = member "GL_NV_texgen_reflection" extensions
+{-# NOINLINE gl_NV_texgen_reflection #-}
+
+pattern GL_NORMAL_MAP_NV = 0x8511
+
+pattern GL_REFLECTION_MAP_NV = 0x8512
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureBarrier.hs b/generated-src/Graphics/GL/Ext/NV/TextureBarrier.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureBarrier.hs
@@ -0,0 +1,33 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureBarrier (
+  -- * Extension Support
+    gl_NV_texture_barrier
+
+  -- * GL_NV_texture_barrier
+  , glTextureBarrierNV
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_barrier.txt GL_NV_texture_barrier> extension is available.
+
+gl_NV_texture_barrier :: Bool
+gl_NV_texture_barrier = member "GL_NV_texture_barrier" extensions
+{-# NOINLINE gl_NV_texture_barrier #-}
+
+-- | Usage: @'glTextureBarrierNV'@
+
+
+glTextureBarrierNV :: MonadIO m => m ()
+glTextureBarrierNV = ffiIOV glTextureBarrierNVFunPtr
+
+glTextureBarrierNVFunPtr :: FunPtr (IO ())
+glTextureBarrierNVFunPtr = unsafePerformIO (getProcAddress "glTextureBarrierNV")
+
+{-# NOINLINE glTextureBarrierNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/NV/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureBorderClamp.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureBorderClamp (
+  -- * Extension Support
+    gl_NV_texture_border_clamp
+
+  -- * GL_NV_texture_border_clamp
+  , pattern GL_CLAMP_TO_BORDER_NV
+  , pattern GL_TEXTURE_BORDER_COLOR_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_texture_border_clamp.txt GL_NV_texture_border_clamp> extension is available.
+
+gl_NV_texture_border_clamp :: Bool
+gl_NV_texture_border_clamp = member "GL_NV_texture_border_clamp" extensions
+{-# NOINLINE gl_NV_texture_border_clamp #-}
+
+pattern GL_CLAMP_TO_BORDER_NV = 0x812D
+
+pattern GL_TEXTURE_BORDER_COLOR_NV = 0x1004
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureCompressionS3tcUpdate.hs b/generated-src/Graphics/GL/Ext/NV/TextureCompressionS3tcUpdate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureCompressionS3tcUpdate.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureCompressionS3tcUpdate (
+  -- * Extension Support
+    gl_NV_texture_compression_s3tc_update
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_texture_compression_s3tc_update.txt GL_NV_texture_compression_s3tc_update> extension is available.
+
+gl_NV_texture_compression_s3tc_update :: Bool
+gl_NV_texture_compression_s3tc_update = member "GL_NV_texture_compression_s3tc_update" extensions
+{-# NOINLINE gl_NV_texture_compression_s3tc_update #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureCompressionVtc.hs b/generated-src/Graphics/GL/Ext/NV/TextureCompressionVtc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureCompressionVtc.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureCompressionVtc (
+  -- * Extension Support
+    gl_NV_texture_compression_vtc
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_compression_vtc.txt GL_NV_texture_compression_vtc> extension is available.
+
+gl_NV_texture_compression_vtc :: Bool
+gl_NV_texture_compression_vtc = member "GL_NV_texture_compression_vtc" extensions
+{-# NOINLINE gl_NV_texture_compression_vtc #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureEnvCombine4.hs b/generated-src/Graphics/GL/Ext/NV/TextureEnvCombine4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureEnvCombine4.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureEnvCombine4 (
+  -- * Extension Support
+    gl_NV_texture_env_combine4
+
+  -- * GL_NV_texture_env_combine4
+  , pattern GL_COMBINE4_NV
+  , pattern GL_OPERAND3_ALPHA_NV
+  , pattern GL_OPERAND3_RGB_NV
+  , pattern GL_SOURCE3_ALPHA_NV
+  , pattern GL_SOURCE3_RGB_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_env_combine4.txt GL_NV_texture_env_combine4> extension is available.
+
+gl_NV_texture_env_combine4 :: Bool
+gl_NV_texture_env_combine4 = member "GL_NV_texture_env_combine4" extensions
+{-# NOINLINE gl_NV_texture_env_combine4 #-}
+
+pattern GL_COMBINE4_NV = 0x8503
+
+pattern GL_OPERAND3_ALPHA_NV = 0x859B
+
+pattern GL_OPERAND3_RGB_NV = 0x8593
+
+pattern GL_SOURCE3_ALPHA_NV = 0x858B
+
+pattern GL_SOURCE3_RGB_NV = 0x8583
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureExpandNormal.hs b/generated-src/Graphics/GL/Ext/NV/TextureExpandNormal.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureExpandNormal.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureExpandNormal (
+  -- * Extension Support
+    gl_NV_texture_expand_normal
+
+  -- * GL_NV_texture_expand_normal
+  , pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_expand_normal.txt GL_NV_texture_expand_normal> extension is available.
+
+gl_NV_texture_expand_normal :: Bool
+gl_NV_texture_expand_normal = member "GL_NV_texture_expand_normal" extensions
+{-# NOINLINE gl_NV_texture_expand_normal #-}
+
+pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureMultisample.hs b/generated-src/Graphics/GL/Ext/NV/TextureMultisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureMultisample.hs
@@ -0,0 +1,112 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureMultisample (
+  -- * Extension Support
+    gl_NV_texture_multisample
+
+  -- * GL_NV_texture_multisample
+  , glTexImage2DMultisampleCoverageNV
+  , glTexImage3DMultisampleCoverageNV
+  , glTextureImage2DMultisampleCoverageNV
+  , glTextureImage2DMultisampleNV
+  , glTextureImage3DMultisampleCoverageNV
+  , glTextureImage3DMultisampleNV
+  , pattern GL_TEXTURE_COLOR_SAMPLES_NV
+  , pattern GL_TEXTURE_COVERAGE_SAMPLES_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_multisample.txt GL_NV_texture_multisample> extension is available.
+
+gl_NV_texture_multisample :: Bool
+gl_NV_texture_multisample = member "GL_NV_texture_multisample" extensions
+{-# NOINLINE gl_NV_texture_multisample #-}
+
+-- | Usage: @'glTexImage2DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTexImage2DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage2DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeibooleanIOV glTexImage2DMultisampleCoverageNVFunPtr
+
+glTexImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage2DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisampleCoverageNV")
+
+{-# NOINLINE glTexImage2DMultisampleCoverageNVFunPtr #-}
+
+-- | Usage: @'glTexImage3DMultisampleCoverageNV' target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTexImage3DMultisampleCoverageNV :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage3DMultisampleCoverageNV = ffienumsizeisizeiintsizeisizeisizeibooleanIOV glTexImage3DMultisampleCoverageNVFunPtr
+
+glTexImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage3DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisampleCoverageNV")
+
+{-# NOINLINE glTexImage3DMultisampleCoverageNVFunPtr #-}
+
+-- | Usage: @'glTextureImage2DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTextureImage2DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureImage2DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleCoverageNVFunPtr
+
+glTextureImage2DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureImage2DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DMultisampleCoverageNV")
+
+{-# NOINLINE glTextureImage2DMultisampleCoverageNVFunPtr #-}
+
+-- | Usage: @'glTextureImage2DMultisampleNV' texture target samples internalFormat width height fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTextureImage2DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureImage2DMultisampleNV = ffiuintenumsizeiintsizeisizeibooleanIOV glTextureImage2DMultisampleNVFunPtr
+
+glTextureImage2DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureImage2DMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage2DMultisampleNV")
+
+{-# NOINLINE glTextureImage2DMultisampleNVFunPtr #-}
+
+-- | Usage: @'glTextureImage3DMultisampleCoverageNV' texture target coverageSamples colorSamples internalFormat width height depth fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTextureImage3DMultisampleCoverageNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureImage3DMultisampleCoverageNV = ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleCoverageNVFunPtr
+
+glTextureImage3DMultisampleCoverageNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureImage3DMultisampleCoverageNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DMultisampleCoverageNV")
+
+{-# NOINLINE glTextureImage3DMultisampleCoverageNVFunPtr #-}
+
+-- | Usage: @'glTextureImage3DMultisampleNV' texture target samples internalFormat width height depth fixedSampleLocations@
+--
+-- The parameter @fixedSampleLocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTextureImage3DMultisampleNV :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureImage3DMultisampleNV = ffiuintenumsizeiintsizeisizeisizeibooleanIOV glTextureImage3DMultisampleNVFunPtr
+
+glTextureImage3DMultisampleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureImage3DMultisampleNVFunPtr = unsafePerformIO (getProcAddress "glTextureImage3DMultisampleNV")
+
+{-# NOINLINE glTextureImage3DMultisampleNVFunPtr #-}
+
+pattern GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046
+
+pattern GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureNpot2DMipmap.hs b/generated-src/Graphics/GL/Ext/NV/TextureNpot2DMipmap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureNpot2DMipmap.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureNpot2DMipmap (
+  -- * Extension Support
+    gl_NV_texture_npot_2D_mipmap
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_texture_npot_2D_mipmap.txt GL_NV_texture_npot_2D_mipmap> extension is available.
+
+gl_NV_texture_npot_2D_mipmap :: Bool
+gl_NV_texture_npot_2D_mipmap = member "GL_NV_texture_npot_2D_mipmap" extensions
+{-# NOINLINE gl_NV_texture_npot_2D_mipmap #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureRectangle.hs b/generated-src/Graphics/GL/Ext/NV/TextureRectangle.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureRectangle.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureRectangle (
+  -- * Extension Support
+    gl_NV_texture_rectangle
+
+  -- * GL_NV_texture_rectangle
+  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV
+  , pattern GL_PROXY_TEXTURE_RECTANGLE_NV
+  , pattern GL_TEXTURE_BINDING_RECTANGLE_NV
+  , pattern GL_TEXTURE_RECTANGLE_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_rectangle.txt GL_NV_texture_rectangle> extension is available.
+
+gl_NV_texture_rectangle :: Bool
+gl_NV_texture_rectangle = member "GL_NV_texture_rectangle" extensions
+{-# NOINLINE gl_NV_texture_rectangle #-}
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8
+
+pattern GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7
+
+pattern GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6
+
+pattern GL_TEXTURE_RECTANGLE_NV = 0x84F5
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureShader.hs b/generated-src/Graphics/GL/Ext/NV/TextureShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureShader.hs
@@ -0,0 +1,236 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureShader (
+  -- * Extension Support
+    gl_NV_texture_shader
+
+  -- * GL_NV_texture_shader
+  , pattern GL_CONST_EYE_NV
+  , pattern GL_CULL_FRAGMENT_NV
+  , pattern GL_CULL_MODES_NV
+  , pattern GL_DEPENDENT_AR_TEXTURE_2D_NV
+  , pattern GL_DEPENDENT_GB_TEXTURE_2D_NV
+  , pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV
+  , pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV
+  , pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV
+  , pattern GL_DOT_PRODUCT_NV
+  , pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV
+  , pattern GL_DOT_PRODUCT_TEXTURE_2D_NV
+  , pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV
+  , pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV
+  , pattern GL_DSDT8_MAG8_INTENSITY8_NV
+  , pattern GL_DSDT8_MAG8_NV
+  , pattern GL_DSDT8_NV
+  , pattern GL_DSDT_MAG_INTENSITY_NV
+  , pattern GL_DSDT_MAG_NV
+  , pattern GL_DSDT_MAG_VIB_NV
+  , pattern GL_DSDT_NV
+  , pattern GL_DS_BIAS_NV
+  , pattern GL_DS_SCALE_NV
+  , pattern GL_DT_BIAS_NV
+  , pattern GL_DT_SCALE_NV
+  , pattern GL_HILO16_NV
+  , pattern GL_HILO_NV
+  , pattern GL_HI_BIAS_NV
+  , pattern GL_HI_SCALE_NV
+  , pattern GL_LO_BIAS_NV
+  , pattern GL_LO_SCALE_NV
+  , pattern GL_MAGNITUDE_BIAS_NV
+  , pattern GL_MAGNITUDE_SCALE_NV
+  , pattern GL_OFFSET_TEXTURE_2D_BIAS_NV
+  , pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV
+  , pattern GL_OFFSET_TEXTURE_2D_NV
+  , pattern GL_OFFSET_TEXTURE_2D_SCALE_NV
+  , pattern GL_OFFSET_TEXTURE_BIAS_NV
+  , pattern GL_OFFSET_TEXTURE_MATRIX_NV
+  , pattern GL_OFFSET_TEXTURE_RECTANGLE_NV
+  , pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV
+  , pattern GL_OFFSET_TEXTURE_SCALE_NV
+  , pattern GL_PASS_THROUGH_NV
+  , pattern GL_PREVIOUS_TEXTURE_INPUT_NV
+  , pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV
+  , pattern GL_SHADER_CONSISTENT_NV
+  , pattern GL_SHADER_OPERATION_NV
+  , pattern GL_SIGNED_ALPHA8_NV
+  , pattern GL_SIGNED_ALPHA_NV
+  , pattern GL_SIGNED_HILO16_NV
+  , pattern GL_SIGNED_HILO_NV
+  , pattern GL_SIGNED_INTENSITY8_NV
+  , pattern GL_SIGNED_INTENSITY_NV
+  , pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV
+  , pattern GL_SIGNED_LUMINANCE8_NV
+  , pattern GL_SIGNED_LUMINANCE_ALPHA_NV
+  , pattern GL_SIGNED_LUMINANCE_NV
+  , pattern GL_SIGNED_RGB8_NV
+  , pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV
+  , pattern GL_SIGNED_RGBA8_NV
+  , pattern GL_SIGNED_RGBA_NV
+  , pattern GL_SIGNED_RGB_NV
+  , pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV
+  , pattern GL_TEXTURE_BORDER_VALUES_NV
+  , pattern GL_TEXTURE_DS_SIZE_NV
+  , pattern GL_TEXTURE_DT_SIZE_NV
+  , pattern GL_TEXTURE_HI_SIZE_NV
+  , pattern GL_TEXTURE_LO_SIZE_NV
+  , pattern GL_TEXTURE_MAG_SIZE_NV
+  , pattern GL_TEXTURE_SHADER_NV
+  , pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV
+  , pattern GL_UNSIGNED_INT_S8_S8_8_8_NV
+  , pattern GL_VIBRANCE_BIAS_NV
+  , pattern GL_VIBRANCE_SCALE_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader.txt GL_NV_texture_shader> extension is available.
+
+gl_NV_texture_shader :: Bool
+gl_NV_texture_shader = member "GL_NV_texture_shader" extensions
+{-# NOINLINE gl_NV_texture_shader #-}
+
+pattern GL_CONST_EYE_NV = 0x86E5
+
+pattern GL_CULL_FRAGMENT_NV = 0x86E7
+
+pattern GL_CULL_MODES_NV = 0x86E0
+
+pattern GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9
+
+pattern GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA
+
+pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3
+
+pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED
+
+pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1
+
+pattern GL_DOT_PRODUCT_NV = 0x86EC
+
+pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2
+
+pattern GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE
+
+pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0
+
+pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E
+
+pattern GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B
+
+pattern GL_DSDT8_MAG8_NV = 0x870A
+
+pattern GL_DSDT8_NV = 0x8709
+
+pattern GL_DSDT_MAG_INTENSITY_NV = 0x86DC
+
+pattern GL_DSDT_MAG_NV = 0x86F6
+
+pattern GL_DSDT_MAG_VIB_NV = 0x86F7
+
+pattern GL_DSDT_NV = 0x86F5
+
+pattern GL_DS_BIAS_NV = 0x8716
+
+pattern GL_DS_SCALE_NV = 0x8710
+
+pattern GL_DT_BIAS_NV = 0x8717
+
+pattern GL_DT_SCALE_NV = 0x8711
+
+pattern GL_HILO16_NV = 0x86F8
+
+pattern GL_HILO_NV = 0x86F4
+
+pattern GL_HI_BIAS_NV = 0x8714
+
+pattern GL_HI_SCALE_NV = 0x870E
+
+pattern GL_LO_BIAS_NV = 0x8715
+
+pattern GL_LO_SCALE_NV = 0x870F
+
+pattern GL_MAGNITUDE_BIAS_NV = 0x8718
+
+pattern GL_MAGNITUDE_SCALE_NV = 0x8712
+
+pattern GL_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3
+
+pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1
+
+pattern GL_OFFSET_TEXTURE_2D_NV = 0x86E8
+
+pattern GL_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2
+
+pattern GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3
+
+pattern GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1
+
+pattern GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C
+
+pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D
+
+pattern GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2
+
+pattern GL_PASS_THROUGH_NV = 0x86E6
+
+pattern GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4
+
+pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9
+
+pattern GL_SHADER_CONSISTENT_NV = 0x86DD
+
+pattern GL_SHADER_OPERATION_NV = 0x86DF
+
+pattern GL_SIGNED_ALPHA8_NV = 0x8706
+
+pattern GL_SIGNED_ALPHA_NV = 0x8705
+
+pattern GL_SIGNED_HILO16_NV = 0x86FA
+
+pattern GL_SIGNED_HILO_NV = 0x86F9
+
+pattern GL_SIGNED_INTENSITY8_NV = 0x8708
+
+pattern GL_SIGNED_INTENSITY_NV = 0x8707
+
+pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704
+
+pattern GL_SIGNED_LUMINANCE8_NV = 0x8702
+
+pattern GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703
+
+pattern GL_SIGNED_LUMINANCE_NV = 0x8701
+
+pattern GL_SIGNED_RGB8_NV = 0x86FF
+
+pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D
+
+pattern GL_SIGNED_RGBA8_NV = 0x86FC
+
+pattern GL_SIGNED_RGBA_NV = 0x86FB
+
+pattern GL_SIGNED_RGB_NV = 0x86FE
+
+pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C
+
+pattern GL_TEXTURE_BORDER_VALUES_NV = 0x871A
+
+pattern GL_TEXTURE_DS_SIZE_NV = 0x871D
+
+pattern GL_TEXTURE_DT_SIZE_NV = 0x871E
+
+pattern GL_TEXTURE_HI_SIZE_NV = 0x871B
+
+pattern GL_TEXTURE_LO_SIZE_NV = 0x871C
+
+pattern GL_TEXTURE_MAG_SIZE_NV = 0x871F
+
+pattern GL_TEXTURE_SHADER_NV = 0x86DE
+
+pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB
+
+pattern GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA
+
+pattern GL_VIBRANCE_BIAS_NV = 0x8719
+
+pattern GL_VIBRANCE_SCALE_NV = 0x8713
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureShader2.hs b/generated-src/Graphics/GL/Ext/NV/TextureShader2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureShader2.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureShader2 (
+  -- * Extension Support
+    gl_NV_texture_shader2
+
+  -- * GL_NV_texture_shader2
+  , pattern GL_DOT_PRODUCT_TEXTURE_3D_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader2.txt GL_NV_texture_shader2> extension is available.
+
+gl_NV_texture_shader2 :: Bool
+gl_NV_texture_shader2 = member "GL_NV_texture_shader2" extensions
+{-# NOINLINE gl_NV_texture_shader2 #-}
+
+pattern GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureShader3.hs b/generated-src/Graphics/GL/Ext/NV/TextureShader3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TextureShader3.hs
@@ -0,0 +1,68 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TextureShader3 (
+  -- * Extension Support
+    gl_NV_texture_shader3
+
+  -- * GL_NV_texture_shader3
+  , pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV
+  , pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV
+  , pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV
+  , pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV
+  , pattern GL_DOT_PRODUCT_PASS_THROUGH_NV
+  , pattern GL_DOT_PRODUCT_TEXTURE_1D_NV
+  , pattern GL_FORCE_BLUE_TO_ONE_NV
+  , pattern GL_HILO8_NV
+  , pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV
+  , pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV
+  , pattern GL_OFFSET_HILO_TEXTURE_2D_NV
+  , pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV
+  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV
+  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV
+  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV
+  , pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV
+  , pattern GL_SIGNED_HILO8_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/texture_shader3.txt GL_NV_texture_shader3> extension is available.
+
+gl_NV_texture_shader3 :: Bool
+gl_NV_texture_shader3 = member "GL_NV_texture_shader3" extensions
+{-# NOINLINE gl_NV_texture_shader3 #-}
+
+pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858
+
+pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859
+
+pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A
+
+pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D
+
+pattern GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B
+
+pattern GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C
+
+pattern GL_FORCE_BLUE_TO_ONE_NV = 0x8860
+
+pattern GL_HILO8_NV = 0x885E
+
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856
+
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857
+
+pattern GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854
+
+pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853
+
+pattern GL_SIGNED_HILO8_NV = 0x885F
diff --git a/generated-src/Graphics/GL/Ext/NV/TransformFeedback.hs b/generated-src/Graphics/GL/Ext/NV/TransformFeedback.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TransformFeedback.hs
@@ -0,0 +1,297 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TransformFeedback (
+  -- * Extension Support
+    gl_NV_transform_feedback
+
+  -- * GL_NV_transform_feedback
+  , glActiveVaryingNV
+  , glBeginTransformFeedbackNV
+  , glBindBufferBaseNV
+  , glBindBufferOffsetNV
+  , glBindBufferRangeNV
+  , glEndTransformFeedbackNV
+  , glGetActiveVaryingNV
+  , glGetTransformFeedbackVaryingNV
+  , glGetVaryingLocationNV
+  , glTransformFeedbackAttribsNV
+  , glTransformFeedbackStreamAttribsNV
+  , glTransformFeedbackVaryingsNV
+  , pattern GL_ACTIVE_VARYINGS_NV
+  , pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV
+  , pattern GL_BACK_PRIMARY_COLOR_NV
+  , pattern GL_BACK_SECONDARY_COLOR_NV
+  , pattern GL_CLIP_DISTANCE_NV
+  , pattern GL_GENERIC_ATTRIB_NV
+  , pattern GL_INTERLEAVED_ATTRIBS_NV
+  , pattern GL_LAYER_NV
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV
+  , pattern GL_NEXT_BUFFER_NV
+  , pattern GL_PRIMITIVES_GENERATED_NV
+  , pattern GL_PRIMITIVE_ID_NV
+  , pattern GL_RASTERIZER_DISCARD_NV
+  , pattern GL_SEPARATE_ATTRIBS_NV
+  , pattern GL_SKIP_COMPONENTS1_NV
+  , pattern GL_SKIP_COMPONENTS2_NV
+  , pattern GL_SKIP_COMPONENTS3_NV
+  , pattern GL_SKIP_COMPONENTS4_NV
+  , pattern GL_TEXTURE_COORD_NV
+  , pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV
+  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV
+  , pattern GL_TRANSFORM_FEEDBACK_RECORD_NV
+  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV
+  , pattern GL_VERTEX_ID_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback.txt GL_NV_transform_feedback> extension is available.
+
+gl_NV_transform_feedback :: Bool
+gl_NV_transform_feedback = member "GL_NV_transform_feedback" extensions
+{-# NOINLINE gl_NV_transform_feedback #-}
+
+-- | Usage: @'glActiveVaryingNV' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+
+
+glActiveVaryingNV :: MonadIO m => GLuint -> Ptr GLchar -> m ()
+glActiveVaryingNV = ffiuintPtrcharIOV glActiveVaryingNVFunPtr
+
+glActiveVaryingNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO ())
+glActiveVaryingNVFunPtr = unsafePerformIO (getProcAddress "glActiveVaryingNV")
+
+{-# NOINLINE glActiveVaryingNVFunPtr #-}
+
+-- | Usage: @'glBeginTransformFeedbackNV' primitiveMode@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBeginTransformFeedback'.
+
+
+glBeginTransformFeedbackNV :: MonadIO m => GLenum -> m ()
+glBeginTransformFeedbackNV = ffienumIOV glBeginTransformFeedbackNVFunPtr
+
+glBeginTransformFeedbackNVFunPtr :: FunPtr (GLenum -> IO ())
+glBeginTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedbackNV")
+
+{-# NOINLINE glBeginTransformFeedbackNVFunPtr #-}
+
+-- | Usage: @'glBindBufferBaseNV' target index buffer@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferBase'.
+
+
+glBindBufferBaseNV :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBindBufferBaseNV = ffienumuintuintIOV glBindBufferBaseNVFunPtr
+
+glBindBufferBaseNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBindBufferBaseNVFunPtr = unsafePerformIO (getProcAddress "glBindBufferBaseNV")
+
+{-# NOINLINE glBindBufferBaseNVFunPtr #-}
+
+-- | Usage: @'glBindBufferOffsetNV' target index buffer offset@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.EXT.TransformFeedback.glBindBufferOffsetEXT'.
+
+
+glBindBufferOffsetNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> m ()
+glBindBufferOffsetNV = ffienumuintuintintptrIOV glBindBufferOffsetNVFunPtr
+
+glBindBufferOffsetNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
+glBindBufferOffsetNVFunPtr = unsafePerformIO (getProcAddress "glBindBufferOffsetNV")
+
+{-# NOINLINE glBindBufferOffsetNVFunPtr #-}
+
+-- | Usage: @'glBindBufferRangeNV' target index buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindBufferRange'.
+
+
+glBindBufferRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glBindBufferRangeNV = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeNVFunPtr
+
+glBindBufferRangeNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glBindBufferRangeNVFunPtr = unsafePerformIO (getProcAddress "glBindBufferRangeNV")
+
+{-# NOINLINE glBindBufferRangeNVFunPtr #-}
+
+-- | Usage: @'glEndTransformFeedbackNV'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEndTransformFeedback'.
+
+
+glEndTransformFeedbackNV :: MonadIO m => m ()
+glEndTransformFeedbackNV = ffiIOV glEndTransformFeedbackNVFunPtr
+
+glEndTransformFeedbackNVFunPtr :: FunPtr (IO ())
+glEndTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedbackNV")
+
+{-# NOINLINE glEndTransformFeedbackNVFunPtr #-}
+
+-- | Usage: @'glGetActiveVaryingNV' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @COMPSIZE(program,index,bufSize)@.
+
+
+glGetActiveVaryingNV :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveVaryingNV = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetActiveVaryingNVFunPtr
+
+glGetActiveVaryingNVFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveVaryingNVFunPtr = unsafePerformIO (getProcAddress "glGetActiveVaryingNV")
+
+{-# NOINLINE glGetActiveVaryingNVFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackVaryingNV' program index location@
+--
+-- The length of @location@ should be @1@.
+
+
+glGetTransformFeedbackVaryingNV :: MonadIO m => GLuint -> GLuint -> Ptr GLint -> m ()
+glGetTransformFeedbackVaryingNV = ffiuintuintPtrintIOV glGetTransformFeedbackVaryingNVFunPtr
+
+glGetTransformFeedbackVaryingNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
+glGetTransformFeedbackVaryingNVFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVaryingNV")
+
+{-# NOINLINE glGetTransformFeedbackVaryingNVFunPtr #-}
+
+-- | Usage: @'glGetVaryingLocationNV' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+
+
+glGetVaryingLocationNV :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetVaryingLocationNV = ffiuintPtrcharIOint glGetVaryingLocationNVFunPtr
+
+glGetVaryingLocationNVFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetVaryingLocationNVFunPtr = unsafePerformIO (getProcAddress "glGetVaryingLocationNV")
+
+{-# NOINLINE glGetVaryingLocationNVFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackAttribsNV' count attribs bufferMode@
+--
+-- The length of @attribs@ should be @COMPSIZE(count)@.
+
+
+glTransformFeedbackAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLenum -> m ()
+glTransformFeedbackAttribsNV = ffisizeiPtrintenumIOV glTransformFeedbackAttribsNVFunPtr
+
+glTransformFeedbackAttribsNVFunPtr :: FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ())
+glTransformFeedbackAttribsNVFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackAttribsNV")
+
+{-# NOINLINE glTransformFeedbackAttribsNVFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackStreamAttribsNV' count attribs nbuffers bufstreams bufferMode@
+--
+-- The length of @attribs@ should be @count@.
+--
+-- The length of @bufstreams@ should be @nbuffers@.
+
+
+glTransformFeedbackStreamAttribsNV :: MonadIO m => GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
+glTransformFeedbackStreamAttribsNV = ffisizeiPtrintsizeiPtrintenumIOV glTransformFeedbackStreamAttribsNVFunPtr
+
+glTransformFeedbackStreamAttribsNVFunPtr :: FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
+glTransformFeedbackStreamAttribsNVFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackStreamAttribsNV")
+
+{-# NOINLINE glTransformFeedbackStreamAttribsNVFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackVaryingsNV' program count locations bufferMode@
+--
+-- The length of @locations@ should be @count@.
+
+
+glTransformFeedbackVaryingsNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
+glTransformFeedbackVaryingsNV = ffiuintsizeiPtrintenumIOV glTransformFeedbackVaryingsNVFunPtr
+
+glTransformFeedbackVaryingsNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
+glTransformFeedbackVaryingsNVFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryingsNV")
+
+{-# NOINLINE glTransformFeedbackVaryingsNVFunPtr #-}
+
+pattern GL_ACTIVE_VARYINGS_NV = 0x8C81
+
+pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82
+
+pattern GL_BACK_PRIMARY_COLOR_NV = 0x8C77
+
+pattern GL_BACK_SECONDARY_COLOR_NV = 0x8C78
+
+pattern GL_CLIP_DISTANCE_NV = 0x8C7A
+
+pattern GL_GENERIC_ATTRIB_NV = 0x8C7D
+
+pattern GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C
+
+pattern GL_LAYER_NV = 0x8DAA
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80
+
+pattern GL_NEXT_BUFFER_NV = -2
+
+pattern GL_PRIMITIVES_GENERATED_NV = 0x8C87
+
+pattern GL_PRIMITIVE_ID_NV = 0x8C7C
+
+pattern GL_RASTERIZER_DISCARD_NV = 0x8C89
+
+pattern GL_SEPARATE_ATTRIBS_NV = 0x8C8D
+
+pattern GL_SKIP_COMPONENTS1_NV = -6
+
+pattern GL_SKIP_COMPONENTS2_NV = -5
+
+pattern GL_SKIP_COMPONENTS3_NV = -4
+
+pattern GL_SKIP_COMPONENTS4_NV = -3
+
+pattern GL_TEXTURE_COORD_NV = 0x8C79
+
+pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88
+
+pattern GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83
+
+pattern GL_VERTEX_ID_NV = 0x8C7B
diff --git a/generated-src/Graphics/GL/Ext/NV/TransformFeedback2.hs b/generated-src/Graphics/GL/Ext/NV/TransformFeedback2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/TransformFeedback2.hs
@@ -0,0 +1,138 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.TransformFeedback2 (
+  -- * Extension Support
+    gl_NV_transform_feedback2
+
+  -- * GL_NV_transform_feedback2
+  , glBindTransformFeedbackNV
+  , glDeleteTransformFeedbacksNV
+  , glDrawTransformFeedbackNV
+  , glGenTransformFeedbacksNV
+  , glIsTransformFeedbackNV
+  , glPauseTransformFeedbackNV
+  , glResumeTransformFeedbackNV
+  , pattern GL_TRANSFORM_FEEDBACK_BINDING_NV
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV
+  , pattern GL_TRANSFORM_FEEDBACK_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/transform_feedback2.txt GL_NV_transform_feedback2> extension is available.
+
+gl_NV_transform_feedback2 :: Bool
+gl_NV_transform_feedback2 = member "GL_NV_transform_feedback2" extensions
+{-# NOINLINE gl_NV_transform_feedback2 #-}
+
+-- | Usage: @'glBindTransformFeedbackNV' target id@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+
+
+glBindTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTransformFeedbackNV = ffienumuintIOV glBindTransformFeedbackNVFunPtr
+
+glBindTransformFeedbackNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedbackNV")
+
+{-# NOINLINE glBindTransformFeedbackNVFunPtr #-}
+
+-- | Usage: @'glDeleteTransformFeedbacksNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteTransformFeedbacks'.
+
+
+glDeleteTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTransformFeedbacksNV = ffisizeiPtruintIOV glDeleteTransformFeedbacksNVFunPtr
+
+glDeleteTransformFeedbacksNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTransformFeedbacksNVFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacksNV")
+
+{-# NOINLINE glDeleteTransformFeedbacksNVFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackNV' mode id@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawTransformFeedback'.
+
+
+glDrawTransformFeedbackNV :: MonadIO m => GLenum -> GLuint -> m ()
+glDrawTransformFeedbackNV = ffienumuintIOV glDrawTransformFeedbackNVFunPtr
+
+glDrawTransformFeedbackNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDrawTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackNV")
+
+{-# NOINLINE glDrawTransformFeedbackNVFunPtr #-}
+
+-- | Usage: @'glGenTransformFeedbacksNV' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenTransformFeedbacks'.
+
+
+glGenTransformFeedbacksNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTransformFeedbacksNV = ffisizeiPtruintIOV glGenTransformFeedbacksNVFunPtr
+
+glGenTransformFeedbacksNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTransformFeedbacksNVFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacksNV")
+
+{-# NOINLINE glGenTransformFeedbacksNVFunPtr #-}
+
+-- | Usage: @'glIsTransformFeedbackNV' id@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsTransformFeedback'.
+
+
+glIsTransformFeedbackNV :: MonadIO m => GLuint -> m GLboolean
+glIsTransformFeedbackNV = ffiuintIOboolean glIsTransformFeedbackNVFunPtr
+
+glIsTransformFeedbackNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedbackNV")
+
+{-# NOINLINE glIsTransformFeedbackNVFunPtr #-}
+
+-- | Usage: @'glPauseTransformFeedbackNV'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPauseTransformFeedback'.
+
+
+glPauseTransformFeedbackNV :: MonadIO m => m ()
+glPauseTransformFeedbackNV = ffiIOV glPauseTransformFeedbackNVFunPtr
+
+glPauseTransformFeedbackNVFunPtr :: FunPtr (IO ())
+glPauseTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedbackNV")
+
+{-# NOINLINE glPauseTransformFeedbackNVFunPtr #-}
+
+-- | Usage: @'glResumeTransformFeedbackNV'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glResumeTransformFeedback'.
+
+
+glResumeTransformFeedbackNV :: MonadIO m => m ()
+glResumeTransformFeedbackNV = ffiIOV glResumeTransformFeedbackNVFunPtr
+
+glResumeTransformFeedbackNVFunPtr :: FunPtr (IO ())
+glResumeTransformFeedbackNVFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedbackNV")
+
+{-# NOINLINE glResumeTransformFeedbackNVFunPtr #-}
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23
+
+pattern GL_TRANSFORM_FEEDBACK_NV = 0x8E22
diff --git a/generated-src/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs b/generated-src/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.UniformBufferUnifiedMemory (
+  -- * Extension Support
+    gl_NV_uniform_buffer_unified_memory
+
+  -- * GL_NV_uniform_buffer_unified_memory
+  , pattern GL_UNIFORM_BUFFER_ADDRESS_NV
+  , pattern GL_UNIFORM_BUFFER_LENGTH_NV
+  , pattern GL_UNIFORM_BUFFER_UNIFIED_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/uniform_buffer_unified_memory.txt GL_NV_uniform_buffer_unified_memory> extension is available.
+
+gl_NV_uniform_buffer_unified_memory :: Bool
+gl_NV_uniform_buffer_unified_memory = member "GL_NV_uniform_buffer_unified_memory" extensions
+{-# NOINLINE gl_NV_uniform_buffer_unified_memory #-}
+
+pattern GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F
+
+pattern GL_UNIFORM_BUFFER_LENGTH_NV = 0x9370
+
+pattern GL_UNIFORM_BUFFER_UNIFIED_NV = 0x936E
diff --git a/generated-src/Graphics/GL/Ext/NV/VdpauInterop.hs b/generated-src/Graphics/GL/Ext/NV/VdpauInterop.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VdpauInterop.hs
@@ -0,0 +1,176 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VdpauInterop (
+  -- * Extension Support
+    gl_NV_vdpau_interop
+
+  -- * GL_NV_vdpau_interop
+  , glVDPAUFiniNV
+  , glVDPAUGetSurfaceivNV
+  , glVDPAUInitNV
+  , glVDPAUIsSurfaceNV
+  , glVDPAUMapSurfacesNV
+  , glVDPAURegisterOutputSurfaceNV
+  , glVDPAURegisterVideoSurfaceNV
+  , glVDPAUSurfaceAccessNV
+  , glVDPAUUnmapSurfacesNV
+  , glVDPAUUnregisterSurfaceNV
+  , pattern GL_SURFACE_MAPPED_NV
+  , pattern GL_SURFACE_REGISTERED_NV
+  , pattern GL_SURFACE_STATE_NV
+  , pattern GL_WRITE_DISCARD_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vdpau_interop.txt GL_NV_vdpau_interop> extension is available.
+
+gl_NV_vdpau_interop :: Bool
+gl_NV_vdpau_interop = member "GL_NV_vdpau_interop" extensions
+{-# NOINLINE gl_NV_vdpau_interop #-}
+
+-- | Usage: @'glVDPAUFiniNV'@
+
+
+glVDPAUFiniNV :: MonadIO m => m ()
+glVDPAUFiniNV = ffiIOV glVDPAUFiniNVFunPtr
+
+glVDPAUFiniNVFunPtr :: FunPtr (IO ())
+glVDPAUFiniNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUFiniNV")
+
+{-# NOINLINE glVDPAUFiniNVFunPtr #-}
+
+-- | Usage: @'glVDPAUGetSurfaceivNV' surface pname bufSize length values@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glVDPAUGetSurfaceivNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glVDPAUGetSurfaceivNV = ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV glVDPAUGetSurfaceivNVFunPtr
+
+glVDPAUGetSurfaceivNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glVDPAUGetSurfaceivNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUGetSurfaceivNV")
+
+{-# NOINLINE glVDPAUGetSurfaceivNVFunPtr #-}
+
+-- | Usage: @'glVDPAUInitNV' vdpDevice getProcAddress@
+
+
+glVDPAUInitNV :: MonadIO m => Ptr () -> Ptr () -> m ()
+glVDPAUInitNV = ffiPtrVPtrVIOV glVDPAUInitNVFunPtr
+
+glVDPAUInitNVFunPtr :: FunPtr (Ptr () -> Ptr () -> IO ())
+glVDPAUInitNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUInitNV")
+
+{-# NOINLINE glVDPAUInitNVFunPtr #-}
+
+-- | Usage: @'glVDPAUIsSurfaceNV' surface@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+
+
+glVDPAUIsSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m GLboolean
+glVDPAUIsSurfaceNV = ffivdpauSurfaceNVIOboolean glVDPAUIsSurfaceNVFunPtr
+
+glVDPAUIsSurfaceNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
+glVDPAUIsSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUIsSurfaceNV")
+
+{-# NOINLINE glVDPAUIsSurfaceNVFunPtr #-}
+
+-- | Usage: @'glVDPAUMapSurfacesNV' numSurfaces surfaces@
+--
+-- The parameter @surfaces@ is a @vdpauSurfaceNV@.
+--
+-- The length of @surfaces@ should be @numSurfaces@.
+
+
+glVDPAUMapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
+glVDPAUMapSurfacesNV = ffisizeiPtrvdpauSurfaceNVIOV glVDPAUMapSurfacesNVFunPtr
+
+glVDPAUMapSurfacesNVFunPtr :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
+glVDPAUMapSurfacesNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUMapSurfacesNV")
+
+{-# NOINLINE glVDPAUMapSurfacesNVFunPtr #-}
+
+-- | Usage: @'glVDPAURegisterOutputSurfaceNV' vdpSurface target numTextureNames textureNames@
+--
+-- The length of @textureNames@ should be @numTextureNames@.
+
+
+glVDPAURegisterOutputSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
+glVDPAURegisterOutputSurfaceNV = ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV glVDPAURegisterOutputSurfaceNVFunPtr
+
+glVDPAURegisterOutputSurfaceNVFunPtr :: FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
+glVDPAURegisterOutputSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAURegisterOutputSurfaceNV")
+
+{-# NOINLINE glVDPAURegisterOutputSurfaceNVFunPtr #-}
+
+-- | Usage: @'glVDPAURegisterVideoSurfaceNV' vdpSurface target numTextureNames textureNames@
+--
+-- The length of @textureNames@ should be @numTextureNames@.
+
+
+glVDPAURegisterVideoSurfaceNV :: MonadIO m => Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
+glVDPAURegisterVideoSurfaceNV = ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV glVDPAURegisterVideoSurfaceNVFunPtr
+
+glVDPAURegisterVideoSurfaceNVFunPtr :: FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
+glVDPAURegisterVideoSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAURegisterVideoSurfaceNV")
+
+{-# NOINLINE glVDPAURegisterVideoSurfaceNVFunPtr #-}
+
+-- | Usage: @'glVDPAUSurfaceAccessNV' surface access@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+
+
+glVDPAUSurfaceAccessNV :: MonadIO m => GLvdpauSurfaceNV -> GLenum -> m ()
+glVDPAUSurfaceAccessNV = ffivdpauSurfaceNVenumIOV glVDPAUSurfaceAccessNVFunPtr
+
+glVDPAUSurfaceAccessNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ())
+glVDPAUSurfaceAccessNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUSurfaceAccessNV")
+
+{-# NOINLINE glVDPAUSurfaceAccessNVFunPtr #-}
+
+-- | Usage: @'glVDPAUUnmapSurfacesNV' numSurface surfaces@
+--
+-- The parameter @surfaces@ is a @vdpauSurfaceNV@.
+--
+-- The length of @surfaces@ should be @numSurface@.
+
+
+glVDPAUUnmapSurfacesNV :: MonadIO m => GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
+glVDPAUUnmapSurfacesNV = ffisizeiPtrvdpauSurfaceNVIOV glVDPAUUnmapSurfacesNVFunPtr
+
+glVDPAUUnmapSurfacesNVFunPtr :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
+glVDPAUUnmapSurfacesNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUUnmapSurfacesNV")
+
+{-# NOINLINE glVDPAUUnmapSurfacesNVFunPtr #-}
+
+-- | Usage: @'glVDPAUUnregisterSurfaceNV' surface@
+--
+-- The parameter @surface@ is a @vdpauSurfaceNV@.
+
+
+glVDPAUUnregisterSurfaceNV :: MonadIO m => GLvdpauSurfaceNV -> m ()
+glVDPAUUnregisterSurfaceNV = ffivdpauSurfaceNVIOV glVDPAUUnregisterSurfaceNVFunPtr
+
+glVDPAUUnregisterSurfaceNVFunPtr :: FunPtr (GLvdpauSurfaceNV -> IO ())
+glVDPAUUnregisterSurfaceNVFunPtr = unsafePerformIO (getProcAddress "glVDPAUUnregisterSurfaceNV")
+
+{-# NOINLINE glVDPAUUnregisterSurfaceNVFunPtr #-}
+
+pattern GL_SURFACE_MAPPED_NV = 0x8700
+
+pattern GL_SURFACE_REGISTERED_NV = 0x86FD
+
+pattern GL_SURFACE_STATE_NV = 0x86EB
+
+pattern GL_WRITE_DISCARD_NV = 0x88BE
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexArrayRange.hs b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange.hs
@@ -0,0 +1,63 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexArrayRange (
+  -- * Extension Support
+    gl_NV_vertex_array_range
+
+  -- * GL_NV_vertex_array_range
+  , glFlushVertexArrayRangeNV
+  , glVertexArrayRangeNV
+  , pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV
+  , pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV
+  , pattern GL_VERTEX_ARRAY_RANGE_NV
+  , pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV
+  , pattern GL_VERTEX_ARRAY_RANGE_VALID_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range.txt GL_NV_vertex_array_range> extension is available.
+
+gl_NV_vertex_array_range :: Bool
+gl_NV_vertex_array_range = member "GL_NV_vertex_array_range" extensions
+{-# NOINLINE gl_NV_vertex_array_range #-}
+
+-- | Usage: @'glFlushVertexArrayRangeNV'@
+
+
+glFlushVertexArrayRangeNV :: MonadIO m => m ()
+glFlushVertexArrayRangeNV = ffiIOV glFlushVertexArrayRangeNVFunPtr
+
+glFlushVertexArrayRangeNVFunPtr :: FunPtr (IO ())
+glFlushVertexArrayRangeNVFunPtr = unsafePerformIO (getProcAddress "glFlushVertexArrayRangeNV")
+
+{-# NOINLINE glFlushVertexArrayRangeNVFunPtr #-}
+
+-- | Usage: @'glVertexArrayRangeNV' length pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(length)@.
+
+
+glVertexArrayRangeNV :: MonadIO m => GLsizei -> Ptr () -> m ()
+glVertexArrayRangeNV = ffisizeiPtrVIOV glVertexArrayRangeNVFunPtr
+
+glVertexArrayRangeNVFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
+glVertexArrayRangeNVFunPtr = unsafePerformIO (getProcAddress "glVertexArrayRangeNV")
+
+{-# NOINLINE glVertexArrayRangeNVFunPtr #-}
+
+pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520
+
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E
+
+pattern GL_VERTEX_ARRAY_RANGE_NV = 0x851D
+
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521
+
+pattern GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexArrayRange2.hs b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange2.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexArrayRange2 (
+  -- * Extension Support
+    gl_NV_vertex_array_range2
+
+  -- * GL_NV_vertex_array_range2
+  , pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_array_range2.txt GL_NV_vertex_array_range2> extension is available.
+
+gl_NV_vertex_array_range2 :: Bool
+gl_NV_vertex_array_range2 = member "GL_NV_vertex_array_range2" extensions
+{-# NOINLINE gl_NV_vertex_array_range2 #-}
+
+pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexAttribInteger64bit.hs b/generated-src/Graphics/GL/Ext/NV/VertexAttribInteger64bit.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexAttribInteger64bit.hs
@@ -0,0 +1,273 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexAttribInteger64bit (
+  -- * Extension Support
+    gl_NV_vertex_attrib_integer_64bit
+
+  -- * GL_NV_vertex_attrib_integer_64bit
+  , glGetVertexAttribLi64vNV
+  , glGetVertexAttribLui64vNV
+  , glVertexAttribL1i64NV
+  , glVertexAttribL1i64vNV
+  , glVertexAttribL1ui64NV
+  , glVertexAttribL1ui64vNV
+  , glVertexAttribL2i64NV
+  , glVertexAttribL2i64vNV
+  , glVertexAttribL2ui64NV
+  , glVertexAttribL2ui64vNV
+  , glVertexAttribL3i64NV
+  , glVertexAttribL3i64vNV
+  , glVertexAttribL3ui64NV
+  , glVertexAttribL3ui64vNV
+  , glVertexAttribL4i64NV
+  , glVertexAttribL4i64vNV
+  , glVertexAttribL4ui64NV
+  , glVertexAttribL4ui64vNV
+  , glVertexAttribLFormatNV
+  , pattern GL_INT64_NV
+  , pattern GL_UNSIGNED_INT64_NV
+) 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/NV/vertex_attrib_integer_64bit.txt GL_NV_vertex_attrib_integer_64bit> extension is available.
+
+gl_NV_vertex_attrib_integer_64bit :: Bool
+gl_NV_vertex_attrib_integer_64bit = member "GL_NV_vertex_attrib_integer_64bit" extensions
+{-# NOINLINE gl_NV_vertex_attrib_integer_64bit #-}
+
+-- | Usage: @'glGetVertexAttribLi64vNV' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVertexAttribLi64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint64EXT -> m ()
+glGetVertexAttribLi64vNV = ffiuintenumPtrint64EXTIOV glGetVertexAttribLi64vNVFunPtr
+
+glGetVertexAttribLi64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
+glGetVertexAttribLi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLi64vNV")
+
+{-# NOINLINE glGetVertexAttribLi64vNVFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribLui64vNV' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVertexAttribLui64vNV :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
+glGetVertexAttribLui64vNV = ffiuintenumPtruint64EXTIOV glGetVertexAttribLui64vNVFunPtr
+
+glGetVertexAttribLui64vNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+glGetVertexAttribLui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLui64vNV")
+
+{-# NOINLINE glGetVertexAttribLui64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1i64NV' index x@
+
+
+glVertexAttribL1i64NV :: MonadIO m => GLuint -> GLint64EXT -> m ()
+glVertexAttribL1i64NV = ffiuintint64EXTIOV glVertexAttribL1i64NVFunPtr
+
+glVertexAttribL1i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> IO ())
+glVertexAttribL1i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1i64NV")
+
+{-# NOINLINE glVertexAttribL1i64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1i64vNV' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribL1i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
+glVertexAttribL1i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL1i64vNVFunPtr
+
+glVertexAttribL1i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+glVertexAttribL1i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1i64vNV")
+
+{-# NOINLINE glVertexAttribL1i64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1ui64NV' index x@
+
+
+glVertexAttribL1ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> m ()
+glVertexAttribL1ui64NV = ffiuintuint64EXTIOV glVertexAttribL1ui64NVFunPtr
+
+glVertexAttribL1ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> IO ())
+glVertexAttribL1ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64NV")
+
+{-# NOINLINE glVertexAttribL1ui64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1ui64vNV' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribL1ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
+glVertexAttribL1ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL1ui64vNVFunPtr
+
+glVertexAttribL1ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+glVertexAttribL1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1ui64vNV")
+
+{-# NOINLINE glVertexAttribL1ui64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2i64NV' index x y@
+
+
+glVertexAttribL2i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> m ()
+glVertexAttribL2i64NV = ffiuintint64EXTint64EXTIOV glVertexAttribL2i64NVFunPtr
+
+glVertexAttribL2i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ())
+glVertexAttribL2i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2i64NV")
+
+{-# NOINLINE glVertexAttribL2i64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2i64vNV' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribL2i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
+glVertexAttribL2i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL2i64vNVFunPtr
+
+glVertexAttribL2i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+glVertexAttribL2i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2i64vNV")
+
+{-# NOINLINE glVertexAttribL2i64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2ui64NV' index x y@
+
+
+glVertexAttribL2ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
+glVertexAttribL2ui64NV = ffiuintuint64EXTuint64EXTIOV glVertexAttribL2ui64NVFunPtr
+
+glVertexAttribL2ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glVertexAttribL2ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2ui64NV")
+
+{-# NOINLINE glVertexAttribL2ui64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2ui64vNV' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribL2ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
+glVertexAttribL2ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL2ui64vNVFunPtr
+
+glVertexAttribL2ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+glVertexAttribL2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2ui64vNV")
+
+{-# NOINLINE glVertexAttribL2ui64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3i64NV' index x y z@
+
+
+glVertexAttribL3i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glVertexAttribL3i64NV = ffiuintint64EXTint64EXTint64EXTIOV glVertexAttribL3i64NVFunPtr
+
+glVertexAttribL3i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glVertexAttribL3i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3i64NV")
+
+{-# NOINLINE glVertexAttribL3i64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3i64vNV' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribL3i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
+glVertexAttribL3i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL3i64vNVFunPtr
+
+glVertexAttribL3i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+glVertexAttribL3i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3i64vNV")
+
+{-# NOINLINE glVertexAttribL3i64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3ui64NV' index x y z@
+
+
+glVertexAttribL3ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glVertexAttribL3ui64NV = ffiuintuint64EXTuint64EXTuint64EXTIOV glVertexAttribL3ui64NVFunPtr
+
+glVertexAttribL3ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glVertexAttribL3ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3ui64NV")
+
+{-# NOINLINE glVertexAttribL3ui64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3ui64vNV' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribL3ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
+glVertexAttribL3ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL3ui64vNVFunPtr
+
+glVertexAttribL3ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+glVertexAttribL3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3ui64vNV")
+
+{-# NOINLINE glVertexAttribL3ui64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4i64NV' index x y z w@
+
+
+glVertexAttribL4i64NV :: MonadIO m => GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glVertexAttribL4i64NV = ffiuintint64EXTint64EXTint64EXTint64EXTIOV glVertexAttribL4i64NVFunPtr
+
+glVertexAttribL4i64NVFunPtr :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glVertexAttribL4i64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4i64NV")
+
+{-# NOINLINE glVertexAttribL4i64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4i64vNV' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribL4i64vNV :: MonadIO m => GLuint -> Ptr GLint64EXT -> m ()
+glVertexAttribL4i64vNV = ffiuintPtrint64EXTIOV glVertexAttribL4i64vNVFunPtr
+
+glVertexAttribL4i64vNVFunPtr :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+glVertexAttribL4i64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4i64vNV")
+
+{-# NOINLINE glVertexAttribL4i64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4ui64NV' index x y z w@
+
+
+glVertexAttribL4ui64NV :: MonadIO m => GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glVertexAttribL4ui64NV = ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV glVertexAttribL4ui64NVFunPtr
+
+glVertexAttribL4ui64NVFunPtr :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glVertexAttribL4ui64NVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4ui64NV")
+
+{-# NOINLINE glVertexAttribL4ui64NVFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4ui64vNV' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribL4ui64vNV :: MonadIO m => GLuint -> Ptr GLuint64EXT -> m ()
+glVertexAttribL4ui64vNV = ffiuintPtruint64EXTIOV glVertexAttribL4ui64vNVFunPtr
+
+glVertexAttribL4ui64vNVFunPtr :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+glVertexAttribL4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4ui64vNV")
+
+{-# NOINLINE glVertexAttribL4ui64vNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribLFormatNV' index size type stride@
+
+
+glVertexAttribLFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()
+glVertexAttribLFormatNV = ffiuintintenumsizeiIOV glVertexAttribLFormatNVFunPtr
+
+glVertexAttribLFormatNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ())
+glVertexAttribLFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormatNV")
+
+{-# NOINLINE glVertexAttribLFormatNVFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs b/generated-src/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs
@@ -0,0 +1,247 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexBufferUnifiedMemory (
+  -- * Extension Support
+    gl_NV_vertex_buffer_unified_memory
+
+  -- * GL_NV_vertex_buffer_unified_memory
+  , glBufferAddressRangeNV
+  , glColorFormatNV
+  , glEdgeFlagFormatNV
+  , glFogCoordFormatNV
+  , glGetIntegerui64i_vNV
+  , glIndexFormatNV
+  , glNormalFormatNV
+  , glSecondaryColorFormatNV
+  , glTexCoordFormatNV
+  , glVertexAttribFormatNV
+  , glVertexAttribIFormatNV
+  , glVertexFormatNV
+  , pattern GL_COLOR_ARRAY_ADDRESS_NV
+  , pattern GL_COLOR_ARRAY_LENGTH_NV
+  , pattern GL_DRAW_INDIRECT_ADDRESS_NV
+  , pattern GL_DRAW_INDIRECT_LENGTH_NV
+  , pattern GL_DRAW_INDIRECT_UNIFIED_NV
+  , pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV
+  , pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV
+  , pattern GL_ELEMENT_ARRAY_ADDRESS_NV
+  , pattern GL_ELEMENT_ARRAY_LENGTH_NV
+  , pattern GL_ELEMENT_ARRAY_UNIFIED_NV
+  , pattern GL_FOG_COORD_ARRAY_ADDRESS_NV
+  , pattern GL_FOG_COORD_ARRAY_LENGTH_NV
+  , pattern GL_INDEX_ARRAY_ADDRESS_NV
+  , pattern GL_INDEX_ARRAY_LENGTH_NV
+  , pattern GL_NORMAL_ARRAY_ADDRESS_NV
+  , pattern GL_NORMAL_ARRAY_LENGTH_NV
+  , pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV
+  , pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV
+  , pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV
+  , pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV
+  , pattern GL_VERTEX_ARRAY_ADDRESS_NV
+  , pattern GL_VERTEX_ARRAY_LENGTH_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_buffer_unified_memory.txt GL_NV_vertex_buffer_unified_memory> extension is available.
+
+gl_NV_vertex_buffer_unified_memory :: Bool
+gl_NV_vertex_buffer_unified_memory = member "GL_NV_vertex_buffer_unified_memory" extensions
+{-# NOINLINE gl_NV_vertex_buffer_unified_memory #-}
+
+-- | Usage: @'glBufferAddressRangeNV' pname index address length@
+--
+-- The parameter @length@ is a @BufferSize@.
+
+
+glBufferAddressRangeNV :: MonadIO m => GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()
+glBufferAddressRangeNV = ffienumuintuint64EXTsizeiptrIOV glBufferAddressRangeNVFunPtr
+
+glBufferAddressRangeNVFunPtr :: FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ())
+glBufferAddressRangeNVFunPtr = unsafePerformIO (getProcAddress "glBufferAddressRangeNV")
+
+{-# NOINLINE glBufferAddressRangeNVFunPtr #-}
+
+-- | Usage: @'glColorFormatNV' size type stride@
+
+
+glColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
+glColorFormatNV = ffiintenumsizeiIOV glColorFormatNVFunPtr
+
+glColorFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+glColorFormatNVFunPtr = unsafePerformIO (getProcAddress "glColorFormatNV")
+
+{-# NOINLINE glColorFormatNVFunPtr #-}
+
+-- | Usage: @'glEdgeFlagFormatNV' stride@
+
+
+glEdgeFlagFormatNV :: MonadIO m => GLsizei -> m ()
+glEdgeFlagFormatNV = ffisizeiIOV glEdgeFlagFormatNVFunPtr
+
+glEdgeFlagFormatNVFunPtr :: FunPtr (GLsizei -> IO ())
+glEdgeFlagFormatNVFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagFormatNV")
+
+{-# NOINLINE glEdgeFlagFormatNVFunPtr #-}
+
+-- | Usage: @'glFogCoordFormatNV' type stride@
+
+
+glFogCoordFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
+glFogCoordFormatNV = ffienumsizeiIOV glFogCoordFormatNVFunPtr
+
+glFogCoordFormatNVFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
+glFogCoordFormatNVFunPtr = unsafePerformIO (getProcAddress "glFogCoordFormatNV")
+
+{-# NOINLINE glFogCoordFormatNVFunPtr #-}
+
+-- | Usage: @'glGetIntegerui64i_vNV' value index result@
+--
+-- The length of @result@ should be @COMPSIZE(value)@.
+
+
+glGetIntegerui64i_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
+glGetIntegerui64i_vNV = ffienumuintPtruint64EXTIOV glGetIntegerui64i_vNVFunPtr
+
+glGetIntegerui64i_vNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ())
+glGetIntegerui64i_vNVFunPtr = unsafePerformIO (getProcAddress "glGetIntegerui64i_vNV")
+
+{-# NOINLINE glGetIntegerui64i_vNVFunPtr #-}
+
+-- | Usage: @'glIndexFormatNV' type stride@
+
+
+glIndexFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
+glIndexFormatNV = ffienumsizeiIOV glIndexFormatNVFunPtr
+
+glIndexFormatNVFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
+glIndexFormatNVFunPtr = unsafePerformIO (getProcAddress "glIndexFormatNV")
+
+{-# NOINLINE glIndexFormatNVFunPtr #-}
+
+-- | Usage: @'glNormalFormatNV' type stride@
+
+
+glNormalFormatNV :: MonadIO m => GLenum -> GLsizei -> m ()
+glNormalFormatNV = ffienumsizeiIOV glNormalFormatNVFunPtr
+
+glNormalFormatNVFunPtr :: FunPtr (GLenum -> GLsizei -> IO ())
+glNormalFormatNVFunPtr = unsafePerformIO (getProcAddress "glNormalFormatNV")
+
+{-# NOINLINE glNormalFormatNVFunPtr #-}
+
+-- | Usage: @'glSecondaryColorFormatNV' size type stride@
+
+
+glSecondaryColorFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
+glSecondaryColorFormatNV = ffiintenumsizeiIOV glSecondaryColorFormatNVFunPtr
+
+glSecondaryColorFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+glSecondaryColorFormatNVFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorFormatNV")
+
+{-# NOINLINE glSecondaryColorFormatNVFunPtr #-}
+
+-- | Usage: @'glTexCoordFormatNV' size type stride@
+
+
+glTexCoordFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
+glTexCoordFormatNV = ffiintenumsizeiIOV glTexCoordFormatNVFunPtr
+
+glTexCoordFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+glTexCoordFormatNVFunPtr = unsafePerformIO (getProcAddress "glTexCoordFormatNV")
+
+{-# NOINLINE glTexCoordFormatNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribFormatNV' index size type normalized stride@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()
+glVertexAttribFormatNV = ffiuintintenumbooleansizeiIOV glVertexAttribFormatNVFunPtr
+
+glVertexAttribFormatNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ())
+glVertexAttribFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormatNV")
+
+{-# NOINLINE glVertexAttribFormatNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribIFormatNV' index size type stride@
+
+
+glVertexAttribIFormatNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> m ()
+glVertexAttribIFormatNV = ffiuintintenumsizeiIOV glVertexAttribIFormatNVFunPtr
+
+glVertexAttribIFormatNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ())
+glVertexAttribIFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormatNV")
+
+{-# NOINLINE glVertexAttribIFormatNVFunPtr #-}
+
+-- | Usage: @'glVertexFormatNV' size type stride@
+
+
+glVertexFormatNV :: MonadIO m => GLint -> GLenum -> GLsizei -> m ()
+glVertexFormatNV = ffiintenumsizeiIOV glVertexFormatNVFunPtr
+
+glVertexFormatNVFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+glVertexFormatNVFunPtr = unsafePerformIO (getProcAddress "glVertexFormatNV")
+
+{-# NOINLINE glVertexFormatNVFunPtr #-}
+
+pattern GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23
+
+pattern GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D
+
+pattern GL_DRAW_INDIRECT_ADDRESS_NV = 0x8F41
+
+pattern GL_DRAW_INDIRECT_LENGTH_NV = 0x8F42
+
+pattern GL_DRAW_INDIRECT_UNIFIED_NV = 0x8F40
+
+pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26
+
+pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30
+
+pattern GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29
+
+pattern GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33
+
+pattern GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F
+
+pattern GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28
+
+pattern GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
+
+pattern GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24
+
+pattern GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E
+
+pattern GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22
+
+pattern GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C
+
+pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27
+
+pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31
+
+pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25
+
+pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F
+
+pattern GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21
+
+pattern GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20
+
+pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram.hs
@@ -0,0 +1,1297 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexProgram (
+  -- * Extension Support
+    gl_NV_vertex_program
+
+  -- * GL_NV_vertex_program
+  , glAreProgramsResidentNV
+  , glBindProgramNV
+  , glDeleteProgramsNV
+  , glExecuteProgramNV
+  , glGenProgramsNV
+  , glGetProgramParameterdvNV
+  , glGetProgramParameterfvNV
+  , glGetProgramStringNV
+  , glGetProgramivNV
+  , glGetTrackMatrixivNV
+  , glGetVertexAttribPointervNV
+  , glGetVertexAttribdvNV
+  , glGetVertexAttribfvNV
+  , glGetVertexAttribivNV
+  , glIsProgramNV
+  , glLoadProgramNV
+  , glProgramParameter4dNV
+  , glProgramParameter4dvNV
+  , glProgramParameter4fNV
+  , glProgramParameter4fvNV
+  , glProgramParameters4dvNV
+  , glProgramParameters4fvNV
+  , glRequestResidentProgramsNV
+  , glTrackMatrixNV
+  , glVertexAttrib1dNV
+  , glVertexAttrib1dvNV
+  , glVertexAttrib1fNV
+  , glVertexAttrib1fvNV
+  , glVertexAttrib1sNV
+  , glVertexAttrib1svNV
+  , glVertexAttrib2dNV
+  , glVertexAttrib2dvNV
+  , glVertexAttrib2fNV
+  , glVertexAttrib2fvNV
+  , glVertexAttrib2sNV
+  , glVertexAttrib2svNV
+  , glVertexAttrib3dNV
+  , glVertexAttrib3dvNV
+  , glVertexAttrib3fNV
+  , glVertexAttrib3fvNV
+  , glVertexAttrib3sNV
+  , glVertexAttrib3svNV
+  , glVertexAttrib4dNV
+  , glVertexAttrib4dvNV
+  , glVertexAttrib4fNV
+  , glVertexAttrib4fvNV
+  , glVertexAttrib4sNV
+  , glVertexAttrib4svNV
+  , glVertexAttrib4ubNV
+  , glVertexAttrib4ubvNV
+  , glVertexAttribPointerNV
+  , glVertexAttribs1dvNV
+  , glVertexAttribs1fvNV
+  , glVertexAttribs1svNV
+  , glVertexAttribs2dvNV
+  , glVertexAttribs2fvNV
+  , glVertexAttribs2svNV
+  , glVertexAttribs3dvNV
+  , glVertexAttribs3fvNV
+  , glVertexAttribs3svNV
+  , glVertexAttribs4dvNV
+  , glVertexAttribs4fvNV
+  , glVertexAttribs4svNV
+  , glVertexAttribs4ubvNV
+  , pattern GL_ATTRIB_ARRAY_POINTER_NV
+  , pattern GL_ATTRIB_ARRAY_SIZE_NV
+  , pattern GL_ATTRIB_ARRAY_STRIDE_NV
+  , pattern GL_ATTRIB_ARRAY_TYPE_NV
+  , pattern GL_CURRENT_ATTRIB_NV
+  , pattern GL_CURRENT_MATRIX_NV
+  , pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV
+  , pattern GL_IDENTITY_NV
+  , pattern GL_INVERSE_NV
+  , pattern GL_INVERSE_TRANSPOSE_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB0_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB10_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB11_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB12_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB13_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB14_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB15_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB1_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB2_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB3_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB4_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB5_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB6_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB7_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB8_4_NV
+  , pattern GL_MAP1_VERTEX_ATTRIB9_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB0_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB10_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB11_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB12_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB13_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB14_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB15_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB1_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB2_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB3_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB4_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB5_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB6_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB7_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB8_4_NV
+  , pattern GL_MAP2_VERTEX_ATTRIB9_4_NV
+  , pattern GL_MATRIX0_NV
+  , pattern GL_MATRIX1_NV
+  , pattern GL_MATRIX2_NV
+  , pattern GL_MATRIX3_NV
+  , pattern GL_MATRIX4_NV
+  , pattern GL_MATRIX5_NV
+  , pattern GL_MATRIX6_NV
+  , pattern GL_MATRIX7_NV
+  , pattern GL_MAX_TRACK_MATRICES_NV
+  , pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV
+  , pattern GL_MODELVIEW_PROJECTION_NV
+  , pattern GL_PROGRAM_ERROR_POSITION_NV
+  , pattern GL_PROGRAM_LENGTH_NV
+  , pattern GL_PROGRAM_PARAMETER_NV
+  , pattern GL_PROGRAM_RESIDENT_NV
+  , pattern GL_PROGRAM_STRING_NV
+  , pattern GL_PROGRAM_TARGET_NV
+  , pattern GL_TRACK_MATRIX_NV
+  , pattern GL_TRACK_MATRIX_TRANSFORM_NV
+  , pattern GL_TRANSPOSE_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY0_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY10_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY11_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY12_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY13_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY14_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY15_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY1_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY2_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY3_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY4_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY5_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY6_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY7_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY8_NV
+  , pattern GL_VERTEX_ATTRIB_ARRAY9_NV
+  , pattern GL_VERTEX_PROGRAM_BINDING_NV
+  , pattern GL_VERTEX_PROGRAM_NV
+  , pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV
+  , pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV
+  , pattern GL_VERTEX_STATE_PROGRAM_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program.txt GL_NV_vertex_program> extension is available.
+
+gl_NV_vertex_program :: Bool
+gl_NV_vertex_program = member "GL_NV_vertex_program" extensions
+{-# NOINLINE gl_NV_vertex_program #-}
+
+-- | Usage: @'glAreProgramsResidentNV' n programs residences@
+--
+-- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @programs@ should be @n@.
+--
+-- The length of @residences@ should be @n@.
+
+
+glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
+glAreProgramsResidentNV = ffisizeiPtruintPtrbooleanIOboolean glAreProgramsResidentNVFunPtr
+
+glAreProgramsResidentNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+glAreProgramsResidentNVFunPtr = unsafePerformIO (getProcAddress "glAreProgramsResidentNV")
+
+{-# NOINLINE glAreProgramsResidentNVFunPtr #-}
+
+-- | Usage: @'glBindProgramNV' target id@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindProgramARB'.
+
+
+glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m ()
+glBindProgramNV = ffienumuintIOV glBindProgramNVFunPtr
+
+glBindProgramNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindProgramNVFunPtr = unsafePerformIO (getProcAddress "glBindProgramNV")
+
+{-# NOINLINE glBindProgramNVFunPtr #-}
+
+-- | Usage: @'glDeleteProgramsNV' n programs@
+--
+-- The length of @programs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteProgramsARB'.
+
+
+glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramsNV = ffisizeiPtruintIOV glDeleteProgramsNVFunPtr
+
+glDeleteProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramsNVFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsNV")
+
+{-# NOINLINE glDeleteProgramsNVFunPtr #-}
+
+-- | Usage: @'glExecuteProgramNV' target id params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
+glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glExecuteProgramNV = ffienumuintPtrfloatIOV glExecuteProgramNVFunPtr
+
+glExecuteProgramNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glExecuteProgramNVFunPtr = unsafePerformIO (getProcAddress "glExecuteProgramNV")
+
+{-# NOINLINE glExecuteProgramNVFunPtr #-}
+
+-- | Usage: @'glGenProgramsNV' n programs@
+--
+-- The length of @programs@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenProgramsARB'.
+
+
+glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramsNV = ffisizeiPtruintIOV glGenProgramsNVFunPtr
+
+glGenProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramsNVFunPtr = unsafePerformIO (getProcAddress "glGenProgramsNV")
+
+{-# NOINLINE glGenProgramsNVFunPtr #-}
+
+-- | Usage: @'glGetProgramParameterdvNV' target index pname params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetProgramParameterdvNV = ffienumuintenumPtrdoubleIOV glGetProgramParameterdvNVFunPtr
+
+glGetProgramParameterdvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetProgramParameterdvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramParameterdvNV")
+
+{-# NOINLINE glGetProgramParameterdvNVFunPtr #-}
+
+-- | Usage: @'glGetProgramParameterfvNV' target index pname params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetProgramParameterfvNV = ffienumuintenumPtrfloatIOV glGetProgramParameterfvNVFunPtr
+
+glGetProgramParameterfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetProgramParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramParameterfvNV")
+
+{-# NOINLINE glGetProgramParameterfvNVFunPtr #-}
+
+-- | Usage: @'glGetProgramStringNV' id pname program@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @program@ is a @ProgramCharacterNV@.
+--
+-- The length of @program@ should be @COMPSIZE(id,pname)@.
+
+
+glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m ()
+glGetProgramStringNV = ffiuintenumPtrubyteIOV glGetProgramStringNVFunPtr
+
+glGetProgramStringNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ())
+glGetProgramStringNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringNV")
+
+{-# NOINLINE glGetProgramStringNVFunPtr #-}
+
+-- | Usage: @'glGetProgramivNV' id pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramivNV = ffiuintenumPtrintIOV glGetProgramivNVFunPtr
+
+glGetProgramivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramivNV")
+
+{-# NOINLINE glGetProgramivNVFunPtr #-}
+
+-- | Usage: @'glGetTrackMatrixivNV' target address pname params@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTrackMatrixivNV = ffienumuintenumPtrintIOV glGetTrackMatrixivNVFunPtr
+
+glGetTrackMatrixivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTrackMatrixivNVFunPtr = unsafePerformIO (getProcAddress "glGetTrackMatrixivNV")
+
+{-# NOINLINE glGetTrackMatrixivNVFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribPointervNV' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribPointerv'.
+
+
+glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointervNV = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervNVFunPtr
+
+glGetVertexAttribPointervNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexAttribPointervNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervNV")
+
+{-# NOINLINE glGetVertexAttribPointervNVFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribdvNV' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribdv'.
+
+
+glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdvNV = ffiuintenumPtrdoubleIOV glGetVertexAttribdvNVFunPtr
+
+glGetVertexAttribdvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvNV")
+
+{-# NOINLINE glGetVertexAttribdvNVFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribfvNV' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribfv'.
+
+
+glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfvNV = ffiuintenumPtrfloatIOV glGetVertexAttribfvNVFunPtr
+
+glGetVertexAttribfvNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvNV")
+
+{-# NOINLINE glGetVertexAttribfvNVFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribivNV' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnumNV@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribiv'.
+
+
+glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribivNV = ffiuintenumPtrintIOV glGetVertexAttribivNVFunPtr
+
+glGetVertexAttribivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivNVFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivNV")
+
+{-# NOINLINE glGetVertexAttribivNVFunPtr #-}
+
+-- | Usage: @'glIsProgramNV' id@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsProgramARB'.
+
+
+glIsProgramNV :: MonadIO m => GLuint -> m GLboolean
+glIsProgramNV = ffiuintIOboolean glIsProgramNVFunPtr
+
+glIsProgramNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramNVFunPtr = unsafePerformIO (getProcAddress "glIsProgramNV")
+
+{-# NOINLINE glIsProgramNVFunPtr #-}
+
+-- | Usage: @'glLoadProgramNV' target id len program@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @program@ should be @len@.
+
+
+glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
+glLoadProgramNV = ffienumuintsizeiPtrubyteIOV glLoadProgramNVFunPtr
+
+glLoadProgramNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ())
+glLoadProgramNVFunPtr = unsafePerformIO (getProcAddress "glLoadProgramNV")
+
+{-# NOINLINE glLoadProgramNVFunPtr #-}
+
+-- | Usage: @'glProgramParameter4dNV' target index x y z w@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glProgramParameter4dvNV'.
+
+
+glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramParameter4dNV = ffienumuintdoubledoubledoubledoubleIOV glProgramParameter4dNVFunPtr
+
+glProgramParameter4dNVFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramParameter4dNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4dNV")
+
+{-# NOINLINE glProgramParameter4dNVFunPtr #-}
+
+-- | Usage: @'glProgramParameter4dvNV' target index v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @4@.
+
+
+glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramParameter4dvNV = ffienumuintPtrdoubleIOV glProgramParameter4dvNVFunPtr
+
+glProgramParameter4dvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramParameter4dvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4dvNV")
+
+{-# NOINLINE glProgramParameter4dvNVFunPtr #-}
+
+-- | Usage: @'glProgramParameter4fNV' target index x y z w@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glProgramParameter4fvNV'.
+
+
+glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramParameter4fNV = ffienumuintfloatfloatfloatfloatIOV glProgramParameter4fNVFunPtr
+
+glProgramParameter4fNVFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramParameter4fNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4fNV")
+
+{-# NOINLINE glProgramParameter4fNVFunPtr #-}
+
+-- | Usage: @'glProgramParameter4fvNV' target index v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @4@.
+
+
+glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramParameter4fvNV = ffienumuintPtrfloatIOV glProgramParameter4fvNVFunPtr
+
+glProgramParameter4fvNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramParameter4fvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameter4fvNV")
+
+{-# NOINLINE glProgramParameter4fvNVFunPtr #-}
+
+-- | Usage: @'glProgramParameters4dvNV' target index count v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @count*4@.
+
+
+glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramParameters4dvNV = ffienumuintsizeiPtrdoubleIOV glProgramParameters4dvNVFunPtr
+
+glProgramParameters4dvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramParameters4dvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameters4dvNV")
+
+{-# NOINLINE glProgramParameters4dvNVFunPtr #-}
+
+-- | Usage: @'glProgramParameters4fvNV' target index count v@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The length of @v@ should be @count*4@.
+
+
+glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramParameters4fvNV = ffienumuintsizeiPtrfloatIOV glProgramParameters4fvNVFunPtr
+
+glProgramParameters4fvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramParameters4fvNVFunPtr = unsafePerformIO (getProcAddress "glProgramParameters4fvNV")
+
+{-# NOINLINE glProgramParameters4fvNVFunPtr #-}
+
+-- | Usage: @'glRequestResidentProgramsNV' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
+glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glRequestResidentProgramsNV = ffisizeiPtruintIOV glRequestResidentProgramsNVFunPtr
+
+glRequestResidentProgramsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glRequestResidentProgramsNVFunPtr = unsafePerformIO (getProcAddress "glRequestResidentProgramsNV")
+
+{-# NOINLINE glRequestResidentProgramsNVFunPtr #-}
+
+-- | Usage: @'glTrackMatrixNV' target address matrix transform@
+--
+-- The parameter @target@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @matrix@ is a @VertexAttribEnumNV@.
+--
+-- The parameter @transform@ is a @VertexAttribEnumNV@.
+
+
+glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m ()
+glTrackMatrixNV = ffienumuintenumenumIOV glTrackMatrixNVFunPtr
+
+glTrackMatrixNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ())
+glTrackMatrixNVFunPtr = unsafePerformIO (getProcAddress "glTrackMatrixNV")
+
+{-# NOINLINE glTrackMatrixNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dNV' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1dvNV'.
+
+
+glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1dNV = ffiuintdoubleIOV glVertexAttrib1dNVFunPtr
+
+glVertexAttrib1dNVFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dNV")
+
+{-# NOINLINE glVertexAttrib1dNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dvNV' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
+
+
+glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dvNV = ffiuintPtrdoubleIOV glVertexAttrib1dvNVFunPtr
+
+glVertexAttrib1dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvNV")
+
+{-# NOINLINE glVertexAttrib1dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fNV' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1fvNV'.
+
+
+glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1fNV = ffiuintfloatIOV glVertexAttrib1fNVFunPtr
+
+glVertexAttrib1fNVFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fNV")
+
+{-# NOINLINE glVertexAttrib1fNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fvNV' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
+
+
+glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fvNV = ffiuintPtrfloatIOV glVertexAttrib1fvNVFunPtr
+
+glVertexAttrib1fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvNV")
+
+{-# NOINLINE glVertexAttrib1fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1sNV' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib1svNV'.
+
+
+glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1sNV = ffiuintshortIOV glVertexAttrib1sNVFunPtr
+
+glVertexAttrib1sNVFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sNV")
+
+{-# NOINLINE glVertexAttrib1sNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1svNV' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
+
+
+glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1svNV = ffiuintPtrshortIOV glVertexAttrib1svNVFunPtr
+
+glVertexAttrib1svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svNV")
+
+{-# NOINLINE glVertexAttrib1svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dNV' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2dvNV'.
+
+
+glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2dNV = ffiuintdoubledoubleIOV glVertexAttrib2dNVFunPtr
+
+glVertexAttrib2dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dNV")
+
+{-# NOINLINE glVertexAttrib2dNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dvNV' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
+
+
+glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dvNV = ffiuintPtrdoubleIOV glVertexAttrib2dvNVFunPtr
+
+glVertexAttrib2dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvNV")
+
+{-# NOINLINE glVertexAttrib2dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fNV' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2fvNV'.
+
+
+glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2fNV = ffiuintfloatfloatIOV glVertexAttrib2fNVFunPtr
+
+glVertexAttrib2fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fNV")
+
+{-# NOINLINE glVertexAttrib2fNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fvNV' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
+
+
+glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fvNV = ffiuintPtrfloatIOV glVertexAttrib2fvNVFunPtr
+
+glVertexAttrib2fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvNV")
+
+{-# NOINLINE glVertexAttrib2fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2sNV' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib2svNV'.
+
+
+glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2sNV = ffiuintshortshortIOV glVertexAttrib2sNVFunPtr
+
+glVertexAttrib2sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sNV")
+
+{-# NOINLINE glVertexAttrib2sNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2svNV' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
+
+
+glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2svNV = ffiuintPtrshortIOV glVertexAttrib2svNVFunPtr
+
+glVertexAttrib2svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svNV")
+
+{-# NOINLINE glVertexAttrib2svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dNV' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3dvNV'.
+
+
+glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3dNV = ffiuintdoubledoubledoubleIOV glVertexAttrib3dNVFunPtr
+
+glVertexAttrib3dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dNV")
+
+{-# NOINLINE glVertexAttrib3dNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dvNV' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
+
+
+glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dvNV = ffiuintPtrdoubleIOV glVertexAttrib3dvNVFunPtr
+
+glVertexAttrib3dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvNV")
+
+{-# NOINLINE glVertexAttrib3dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fNV' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3fvNV'.
+
+
+glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3fNV = ffiuintfloatfloatfloatIOV glVertexAttrib3fNVFunPtr
+
+glVertexAttrib3fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fNV")
+
+{-# NOINLINE glVertexAttrib3fNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fvNV' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
+
+
+glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fvNV = ffiuintPtrfloatIOV glVertexAttrib3fvNVFunPtr
+
+glVertexAttrib3fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvNV")
+
+{-# NOINLINE glVertexAttrib3fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3sNV' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib3svNV'.
+
+
+glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3sNV = ffiuintshortshortshortIOV glVertexAttrib3sNVFunPtr
+
+glVertexAttrib3sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sNV")
+
+{-# NOINLINE glVertexAttrib3sNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3svNV' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
+
+
+glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3svNV = ffiuintPtrshortIOV glVertexAttrib3svNVFunPtr
+
+glVertexAttrib3svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svNV")
+
+{-# NOINLINE glVertexAttrib3svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dNV' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4dvNV'.
+
+
+glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4dNV = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dNVFunPtr
+
+glVertexAttrib4dNVFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dNV")
+
+{-# NOINLINE glVertexAttrib4dNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dvNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
+
+
+glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dvNV = ffiuintPtrdoubleIOV glVertexAttrib4dvNVFunPtr
+
+glVertexAttrib4dvNVFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvNV")
+
+{-# NOINLINE glVertexAttrib4dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fNV' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4fvNV'.
+
+
+glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4fNV = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fNVFunPtr
+
+glVertexAttrib4fNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fNV")
+
+{-# NOINLINE glVertexAttrib4fNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fvNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
+
+
+glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fvNV = ffiuintPtrfloatIOV glVertexAttrib4fvNVFunPtr
+
+glVertexAttrib4fvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvNV")
+
+{-# NOINLINE glVertexAttrib4fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4sNV' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4svNV'.
+
+
+glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4sNV = ffiuintshortshortshortshortIOV glVertexAttrib4sNVFunPtr
+
+glVertexAttrib4sNVFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sNV")
+
+{-# NOINLINE glVertexAttrib4sNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4svNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
+
+
+glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4svNV = ffiuintPtrshortIOV glVertexAttrib4svNVFunPtr
+
+glVertexAttrib4svNVFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svNV")
+
+{-# NOINLINE glVertexAttrib4svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubNV' index x y z w@
+--
+-- The parameter @x@ is a @ColorUB@.
+--
+-- The parameter @y@ is a @ColorUB@.
+--
+-- The parameter @z@ is a @ColorUB@.
+--
+-- The parameter @w@ is a @ColorUB@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nub'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram.glVertexAttrib4ubvNV'.
+
+
+glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4ubNV = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4ubNVFunPtr
+
+glVertexAttrib4ubNVFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4ubNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubNV")
+
+{-# NOINLINE glVertexAttrib4ubNVFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubvNV' index v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nubv'.
+
+
+glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubvNV = ffiuintPtrubyteIOV glVertexAttrib4ubvNVFunPtr
+
+glVertexAttrib4ubvNVFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvNV")
+
+{-# NOINLINE glVertexAttrib4ubvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribPointerNV' index fsize type stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribEnumNV@.
+--
+-- The length of @pointer@ should be @COMPSIZE(fsize,type,stride)@.
+
+
+glVertexAttribPointerNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointerNV = ffiuintintenumsizeiPtrVIOV glVertexAttribPointerNVFunPtr
+
+glVertexAttribPointerNVFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerNV")
+
+{-# NOINLINE glVertexAttribPointerNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs1dvNV' index count v@
+--
+-- The length of @v@ should be @count@.
+
+
+glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glVertexAttribs1dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs1dvNVFunPtr
+
+glVertexAttribs1dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glVertexAttribs1dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1dvNV")
+
+{-# NOINLINE glVertexAttribs1dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs1fvNV' index count v@
+--
+-- The length of @v@ should be @count@.
+
+
+glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glVertexAttribs1fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs1fvNVFunPtr
+
+glVertexAttribs1fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glVertexAttribs1fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1fvNV")
+
+{-# NOINLINE glVertexAttribs1fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs1svNV' index count v@
+--
+-- The length of @v@ should be @count@.
+
+
+glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
+glVertexAttribs1svNV = ffiuintsizeiPtrshortIOV glVertexAttribs1svNVFunPtr
+
+glVertexAttribs1svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+glVertexAttribs1svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs1svNV")
+
+{-# NOINLINE glVertexAttribs1svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs2dvNV' index count v@
+--
+-- The length of @v@ should be @count*2@.
+
+
+glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glVertexAttribs2dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs2dvNVFunPtr
+
+glVertexAttribs2dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glVertexAttribs2dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2dvNV")
+
+{-# NOINLINE glVertexAttribs2dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs2fvNV' index count v@
+--
+-- The length of @v@ should be @count*2@.
+
+
+glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glVertexAttribs2fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs2fvNVFunPtr
+
+glVertexAttribs2fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glVertexAttribs2fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2fvNV")
+
+{-# NOINLINE glVertexAttribs2fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs2svNV' index count v@
+--
+-- The length of @v@ should be @count*2@.
+
+
+glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
+glVertexAttribs2svNV = ffiuintsizeiPtrshortIOV glVertexAttribs2svNVFunPtr
+
+glVertexAttribs2svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+glVertexAttribs2svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs2svNV")
+
+{-# NOINLINE glVertexAttribs2svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs3dvNV' index count v@
+--
+-- The length of @v@ should be @count*3@.
+
+
+glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glVertexAttribs3dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs3dvNVFunPtr
+
+glVertexAttribs3dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glVertexAttribs3dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3dvNV")
+
+{-# NOINLINE glVertexAttribs3dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs3fvNV' index count v@
+--
+-- The length of @v@ should be @count*3@.
+
+
+glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glVertexAttribs3fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs3fvNVFunPtr
+
+glVertexAttribs3fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glVertexAttribs3fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3fvNV")
+
+{-# NOINLINE glVertexAttribs3fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs3svNV' index count v@
+--
+-- The length of @v@ should be @count*3@.
+
+
+glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
+glVertexAttribs3svNV = ffiuintsizeiPtrshortIOV glVertexAttribs3svNVFunPtr
+
+glVertexAttribs3svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+glVertexAttribs3svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs3svNV")
+
+{-# NOINLINE glVertexAttribs3svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs4dvNV' index count v@
+--
+-- The length of @v@ should be @count*4@.
+
+
+glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glVertexAttribs4dvNV = ffiuintsizeiPtrdoubleIOV glVertexAttribs4dvNVFunPtr
+
+glVertexAttribs4dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glVertexAttribs4dvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4dvNV")
+
+{-# NOINLINE glVertexAttribs4dvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs4fvNV' index count v@
+--
+-- The length of @v@ should be @count*4@.
+
+
+glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glVertexAttribs4fvNV = ffiuintsizeiPtrfloatIOV glVertexAttribs4fvNVFunPtr
+
+glVertexAttribs4fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glVertexAttribs4fvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4fvNV")
+
+{-# NOINLINE glVertexAttribs4fvNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs4svNV' index count v@
+--
+-- The length of @v@ should be @count*4@.
+
+
+glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m ()
+glVertexAttribs4svNV = ffiuintsizeiPtrshortIOV glVertexAttribs4svNVFunPtr
+
+glVertexAttribs4svNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+glVertexAttribs4svNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4svNV")
+
+{-# NOINLINE glVertexAttribs4svNVFunPtr #-}
+
+-- | Usage: @'glVertexAttribs4ubvNV' index count v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @count*4@.
+
+
+glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m ()
+glVertexAttribs4ubvNV = ffiuintsizeiPtrubyteIOV glVertexAttribs4ubvNVFunPtr
+
+glVertexAttribs4ubvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ())
+glVertexAttribs4ubvNVFunPtr = unsafePerformIO (getProcAddress "glVertexAttribs4ubvNV")
+
+{-# NOINLINE glVertexAttribs4ubvNVFunPtr #-}
+
+pattern GL_ATTRIB_ARRAY_POINTER_NV = 0x8645
+
+pattern GL_ATTRIB_ARRAY_SIZE_NV = 0x8623
+
+pattern GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624
+
+pattern GL_ATTRIB_ARRAY_TYPE_NV = 0x8625
+
+pattern GL_CURRENT_ATTRIB_NV = 0x8626
+
+pattern GL_CURRENT_MATRIX_NV = 0x8641
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640
+
+pattern GL_IDENTITY_NV = 0x862A
+
+pattern GL_INVERSE_NV = 0x862B
+
+pattern GL_INVERSE_TRANSPOSE_NV = 0x862D
+
+pattern GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660
+
+pattern GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A
+
+pattern GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B
+
+pattern GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C
+
+pattern GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D
+
+pattern GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E
+
+pattern GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F
+
+pattern GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661
+
+pattern GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662
+
+pattern GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663
+
+pattern GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664
+
+pattern GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665
+
+pattern GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666
+
+pattern GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667
+
+pattern GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668
+
+pattern GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669
+
+pattern GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670
+
+pattern GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A
+
+pattern GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B
+
+pattern GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C
+
+pattern GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D
+
+pattern GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E
+
+pattern GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F
+
+pattern GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671
+
+pattern GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672
+
+pattern GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673
+
+pattern GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674
+
+pattern GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675
+
+pattern GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676
+
+pattern GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677
+
+pattern GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678
+
+pattern GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679
+
+pattern GL_MATRIX0_NV = 0x8630
+
+pattern GL_MATRIX1_NV = 0x8631
+
+pattern GL_MATRIX2_NV = 0x8632
+
+pattern GL_MATRIX3_NV = 0x8633
+
+pattern GL_MATRIX4_NV = 0x8634
+
+pattern GL_MATRIX5_NV = 0x8635
+
+pattern GL_MATRIX6_NV = 0x8636
+
+pattern GL_MATRIX7_NV = 0x8637
+
+pattern GL_MAX_TRACK_MATRICES_NV = 0x862F
+
+pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E
+
+pattern GL_MODELVIEW_PROJECTION_NV = 0x8629
+
+pattern GL_PROGRAM_ERROR_POSITION_NV = 0x864B
+
+pattern GL_PROGRAM_LENGTH_NV = 0x8627
+
+pattern GL_PROGRAM_PARAMETER_NV = 0x8644
+
+pattern GL_PROGRAM_RESIDENT_NV = 0x8647
+
+pattern GL_PROGRAM_STRING_NV = 0x8628
+
+pattern GL_PROGRAM_TARGET_NV = 0x8646
+
+pattern GL_TRACK_MATRIX_NV = 0x8648
+
+pattern GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649
+
+pattern GL_TRANSPOSE_NV = 0x862C
+
+pattern GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650
+
+pattern GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A
+
+pattern GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B
+
+pattern GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C
+
+pattern GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D
+
+pattern GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E
+
+pattern GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F
+
+pattern GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651
+
+pattern GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652
+
+pattern GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653
+
+pattern GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654
+
+pattern GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655
+
+pattern GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656
+
+pattern GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657
+
+pattern GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658
+
+pattern GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659
+
+pattern GL_VERTEX_PROGRAM_BINDING_NV = 0x864A
+
+pattern GL_VERTEX_PROGRAM_NV = 0x8620
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643
+
+pattern GL_VERTEX_STATE_PROGRAM_NV = 0x8621
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram11.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram11.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram11.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexProgram11 (
+  -- * Extension Support
+    gl_NV_vertex_program1_1
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program1_1.txt GL_NV_vertex_program1_1> extension is available.
+
+gl_NV_vertex_program1_1 :: Bool
+gl_NV_vertex_program1_1 = member "GL_NV_vertex_program1_1" extensions
+{-# NOINLINE gl_NV_vertex_program1_1 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram2.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram2.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexProgram2 (
+  -- * Extension Support
+    gl_NV_vertex_program2
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2.txt GL_NV_vertex_program2> extension is available.
+
+gl_NV_vertex_program2 :: Bool
+gl_NV_vertex_program2 = member "GL_NV_vertex_program2" extensions
+{-# NOINLINE gl_NV_vertex_program2 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram2Option.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram2Option.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram2Option.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexProgram2Option (
+  -- * Extension Support
+    gl_NV_vertex_program2_option
+
+  -- * GL_NV_vertex_program2_option
+  , pattern GL_MAX_PROGRAM_CALL_DEPTH_NV
+  , pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program2_option.txt GL_NV_vertex_program2_option> extension is available.
+
+gl_NV_vertex_program2_option :: Bool
+gl_NV_vertex_program2_option = member "GL_NV_vertex_program2_option" extensions
+{-# NOINLINE gl_NV_vertex_program2_option #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram3.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram3.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexProgram3 (
+  -- * Extension Support
+    gl_NV_vertex_program3
+
+  -- * GL_NV_vertex_program3
+  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program3.txt GL_NV_vertex_program3> extension is available.
+
+gl_NV_vertex_program3 :: Bool
+gl_NV_vertex_program3 = member "GL_NV_vertex_program3" extensions
+{-# NOINLINE gl_NV_vertex_program3 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram4.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram4.hs
@@ -0,0 +1,399 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VertexProgram4 (
+  -- * Extension Support
+    gl_NV_vertex_program4
+
+  -- * GL_NV_vertex_program4
+  , glGetVertexAttribIivEXT
+  , glGetVertexAttribIuivEXT
+  , glVertexAttribI1iEXT
+  , glVertexAttribI1ivEXT
+  , glVertexAttribI1uiEXT
+  , glVertexAttribI1uivEXT
+  , glVertexAttribI2iEXT
+  , glVertexAttribI2ivEXT
+  , glVertexAttribI2uiEXT
+  , glVertexAttribI2uivEXT
+  , glVertexAttribI3iEXT
+  , glVertexAttribI3ivEXT
+  , glVertexAttribI3uiEXT
+  , glVertexAttribI3uivEXT
+  , glVertexAttribI4bvEXT
+  , glVertexAttribI4iEXT
+  , glVertexAttribI4ivEXT
+  , glVertexAttribI4svEXT
+  , glVertexAttribI4ubvEXT
+  , glVertexAttribI4uiEXT
+  , glVertexAttribI4uivEXT
+  , glVertexAttribI4usvEXT
+  , glVertexAttribIPointerEXT
+  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/vertex_program4.txt GL_NV_vertex_program4> extension is available.
+
+gl_NV_vertex_program4 :: Bool
+gl_NV_vertex_program4 = member "GL_NV_vertex_program4" extensions
+{-# NOINLINE gl_NV_vertex_program4 #-}
+
+-- | Usage: @'glGetVertexAttribIivEXT' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribIiv'.
+
+
+glGetVertexAttribIivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribIivEXT = ffiuintenumPtrintIOV glGetVertexAttribIivEXTFunPtr
+
+glGetVertexAttribIivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIivEXT")
+
+{-# NOINLINE glGetVertexAttribIivEXTFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribIuivEXT' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribIuiv'.
+
+
+glGetVertexAttribIuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetVertexAttribIuivEXT = ffiuintenumPtruintIOV glGetVertexAttribIuivEXTFunPtr
+
+glGetVertexAttribIuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetVertexAttribIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuivEXT")
+
+{-# NOINLINE glGetVertexAttribIuivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1iEXT' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI1ivEXT'.
+
+
+glVertexAttribI1iEXT :: MonadIO m => GLuint -> GLint -> m ()
+glVertexAttribI1iEXT = ffiuintintIOV glVertexAttribI1iEXTFunPtr
+
+glVertexAttribI1iEXTFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glVertexAttribI1iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iEXT")
+
+{-# NOINLINE glVertexAttribI1iEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1ivEXT' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1iv'.
+
+
+glVertexAttribI1ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI1ivEXT = ffiuintPtrintIOV glVertexAttribI1ivEXTFunPtr
+
+glVertexAttribI1ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI1ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ivEXT")
+
+{-# NOINLINE glVertexAttribI1ivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1uiEXT' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI1uivEXT'.
+
+
+glVertexAttribI1uiEXT :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribI1uiEXT = ffiuintuintIOV glVertexAttribI1uiEXTFunPtr
+
+glVertexAttribI1uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribI1uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiEXT")
+
+{-# NOINLINE glVertexAttribI1uiEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1uivEXT' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI1uiv'.
+
+
+glVertexAttribI1uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI1uivEXT = ffiuintPtruintIOV glVertexAttribI1uivEXTFunPtr
+
+glVertexAttribI1uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI1uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uivEXT")
+
+{-# NOINLINE glVertexAttribI1uivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2iEXT' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI2ivEXT'.
+
+
+glVertexAttribI2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glVertexAttribI2iEXT = ffiuintintintIOV glVertexAttribI2iEXTFunPtr
+
+glVertexAttribI2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glVertexAttribI2iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iEXT")
+
+{-# NOINLINE glVertexAttribI2iEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2ivEXT' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2iv'.
+
+
+glVertexAttribI2ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI2ivEXT = ffiuintPtrintIOV glVertexAttribI2ivEXTFunPtr
+
+glVertexAttribI2ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI2ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ivEXT")
+
+{-# NOINLINE glVertexAttribI2ivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2uiEXT' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI2uivEXT'.
+
+
+glVertexAttribI2uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI2uiEXT = ffiuintuintuintIOV glVertexAttribI2uiEXTFunPtr
+
+glVertexAttribI2uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI2uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiEXT")
+
+{-# NOINLINE glVertexAttribI2uiEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2uivEXT' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI2uiv'.
+
+
+glVertexAttribI2uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI2uivEXT = ffiuintPtruintIOV glVertexAttribI2uivEXTFunPtr
+
+glVertexAttribI2uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI2uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uivEXT")
+
+{-# NOINLINE glVertexAttribI2uivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3iEXT' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI3ivEXT'.
+
+
+glVertexAttribI3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI3iEXT = ffiuintintintintIOV glVertexAttribI3iEXTFunPtr
+
+glVertexAttribI3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI3iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iEXT")
+
+{-# NOINLINE glVertexAttribI3iEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3ivEXT' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3iv'.
+
+
+glVertexAttribI3ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI3ivEXT = ffiuintPtrintIOV glVertexAttribI3ivEXTFunPtr
+
+glVertexAttribI3ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI3ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ivEXT")
+
+{-# NOINLINE glVertexAttribI3ivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3uiEXT' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI3uivEXT'.
+
+
+glVertexAttribI3uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI3uiEXT = ffiuintuintuintuintIOV glVertexAttribI3uiEXTFunPtr
+
+glVertexAttribI3uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI3uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiEXT")
+
+{-# NOINLINE glVertexAttribI3uiEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3uivEXT' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI3uiv'.
+
+
+glVertexAttribI3uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI3uivEXT = ffiuintPtruintIOV glVertexAttribI3uivEXTFunPtr
+
+glVertexAttribI3uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI3uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uivEXT")
+
+{-# NOINLINE glVertexAttribI3uivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4bvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4bv'.
+
+
+glVertexAttribI4bvEXT :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttribI4bvEXT = ffiuintPtrbyteIOV glVertexAttribI4bvEXTFunPtr
+
+glVertexAttribI4bvEXTFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttribI4bvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bvEXT")
+
+{-# NOINLINE glVertexAttribI4bvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4iEXT' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4i'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI4ivEXT'.
+
+
+glVertexAttribI4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI4iEXT = ffiuintintintintintIOV glVertexAttribI4iEXTFunPtr
+
+glVertexAttribI4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI4iEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iEXT")
+
+{-# NOINLINE glVertexAttribI4iEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ivEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4iv'.
+
+
+glVertexAttribI4ivEXT :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI4ivEXT = ffiuintPtrintIOV glVertexAttribI4ivEXTFunPtr
+
+glVertexAttribI4ivEXTFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI4ivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ivEXT")
+
+{-# NOINLINE glVertexAttribI4ivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4svEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4sv'.
+
+
+glVertexAttribI4svEXT :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttribI4svEXT = ffiuintPtrshortIOV glVertexAttribI4svEXTFunPtr
+
+glVertexAttribI4svEXTFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttribI4svEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4svEXT")
+
+{-# NOINLINE glVertexAttribI4svEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ubvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4ubv'.
+
+
+glVertexAttribI4ubvEXT :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttribI4ubvEXT = ffiuintPtrubyteIOV glVertexAttribI4ubvEXTFunPtr
+
+glVertexAttribI4ubvEXTFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttribI4ubvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubvEXT")
+
+{-# NOINLINE glVertexAttribI4ubvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4uiEXT' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4ui'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Ext.NV.VertexProgram4.glVertexAttribI4uivEXT'.
+
+
+glVertexAttribI4uiEXT :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI4uiEXT = ffiuintuintuintuintuintIOV glVertexAttribI4uiEXTFunPtr
+
+glVertexAttribI4uiEXTFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI4uiEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiEXT")
+
+{-# NOINLINE glVertexAttribI4uiEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4uivEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4uiv'.
+
+
+glVertexAttribI4uivEXT :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI4uivEXT = ffiuintPtruintIOV glVertexAttribI4uivEXTFunPtr
+
+glVertexAttribI4uivEXTFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI4uivEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uivEXT")
+
+{-# NOINLINE glVertexAttribI4uivEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4usvEXT' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribI4usv'.
+
+
+glVertexAttribI4usvEXT :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttribI4usvEXT = ffiuintPtrushortIOV glVertexAttribI4usvEXTFunPtr
+
+glVertexAttribI4usvEXTFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttribI4usvEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usvEXT")
+
+{-# NOINLINE glVertexAttribI4usvEXTFunPtr #-}
+
+-- | Usage: @'glVertexAttribIPointerEXT' index size type stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribEnum@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribIPointer'.
+
+
+glVertexAttribIPointerEXT :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribIPointerEXT = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerEXTFunPtr
+
+glVertexAttribIPointerEXTFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribIPointerEXTFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointerEXT")
+
+{-# NOINLINE glVertexAttribIPointerEXTFunPtr #-}
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD
diff --git a/generated-src/Graphics/GL/Ext/NV/VideoCapture.hs b/generated-src/Graphics/GL/Ext/NV/VideoCapture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/VideoCapture.hs
@@ -0,0 +1,269 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.VideoCapture (
+  -- * Extension Support
+    gl_NV_video_capture
+
+  -- * GL_NV_video_capture
+  , glBeginVideoCaptureNV
+  , glBindVideoCaptureStreamBufferNV
+  , glBindVideoCaptureStreamTextureNV
+  , glEndVideoCaptureNV
+  , glGetVideoCaptureStreamdvNV
+  , glGetVideoCaptureStreamfvNV
+  , glGetVideoCaptureStreamivNV
+  , glGetVideoCaptureivNV
+  , glVideoCaptureNV
+  , glVideoCaptureStreamParameterdvNV
+  , glVideoCaptureStreamParameterfvNV
+  , glVideoCaptureStreamParameterivNV
+  , pattern GL_FAILURE_NV
+  , pattern GL_FIELD_LOWER_NV
+  , pattern GL_FIELD_UPPER_NV
+  , pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV
+  , pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV
+  , pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV
+  , pattern GL_PARTIAL_SUCCESS_NV
+  , pattern GL_SUCCESS_NV
+  , pattern GL_VIDEO_BUFFER_BINDING_NV
+  , pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV
+  , pattern GL_VIDEO_BUFFER_NV
+  , pattern GL_VIDEO_BUFFER_PITCH_NV
+  , pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV
+  , pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV
+  , pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV
+  , pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV
+  , pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV
+  , pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV
+  , pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV
+  , pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV
+  , pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV
+  , pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV
+  , pattern GL_YCBAYCR8A_4224_NV
+  , pattern GL_YCBYCR8_422_NV
+  , pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV
+  , pattern GL_Z4Y12Z4CB12Z4CR12_444_NV
+  , pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV
+  , pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV
+  , pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/video_capture.txt GL_NV_video_capture> extension is available.
+
+gl_NV_video_capture :: Bool
+gl_NV_video_capture = member "GL_NV_video_capture" extensions
+{-# NOINLINE gl_NV_video_capture #-}
+
+-- | Usage: @'glBeginVideoCaptureNV' video_capture_slot@
+
+
+glBeginVideoCaptureNV :: MonadIO m => GLuint -> m ()
+glBeginVideoCaptureNV = ffiuintIOV glBeginVideoCaptureNVFunPtr
+
+glBeginVideoCaptureNVFunPtr :: FunPtr (GLuint -> IO ())
+glBeginVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glBeginVideoCaptureNV")
+
+{-# NOINLINE glBeginVideoCaptureNVFunPtr #-}
+
+-- | Usage: @'glBindVideoCaptureStreamBufferNV' video_capture_slot stream frame_region offset@
+--
+-- The parameter @offset@ is a @BufferOffsetARB@.
+
+
+glBindVideoCaptureStreamBufferNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
+glBindVideoCaptureStreamBufferNV = ffiuintuintenumintptrARBIOV glBindVideoCaptureStreamBufferNVFunPtr
+
+glBindVideoCaptureStreamBufferNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ())
+glBindVideoCaptureStreamBufferNVFunPtr = unsafePerformIO (getProcAddress "glBindVideoCaptureStreamBufferNV")
+
+{-# NOINLINE glBindVideoCaptureStreamBufferNVFunPtr #-}
+
+-- | Usage: @'glBindVideoCaptureStreamTextureNV' video_capture_slot stream frame_region target texture@
+
+
+glBindVideoCaptureStreamTextureNV :: MonadIO m => GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glBindVideoCaptureStreamTextureNV = ffiuintuintenumenumuintIOV glBindVideoCaptureStreamTextureNVFunPtr
+
+glBindVideoCaptureStreamTextureNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glBindVideoCaptureStreamTextureNVFunPtr = unsafePerformIO (getProcAddress "glBindVideoCaptureStreamTextureNV")
+
+{-# NOINLINE glBindVideoCaptureStreamTextureNVFunPtr #-}
+
+-- | Usage: @'glEndVideoCaptureNV' video_capture_slot@
+
+
+glEndVideoCaptureNV :: MonadIO m => GLuint -> m ()
+glEndVideoCaptureNV = ffiuintIOV glEndVideoCaptureNVFunPtr
+
+glEndVideoCaptureNVFunPtr :: FunPtr (GLuint -> IO ())
+glEndVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glEndVideoCaptureNV")
+
+{-# NOINLINE glEndVideoCaptureNVFunPtr #-}
+
+-- | Usage: @'glGetVideoCaptureStreamdvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideoCaptureStreamdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVideoCaptureStreamdvNV = ffiuintuintenumPtrdoubleIOV glGetVideoCaptureStreamdvNVFunPtr
+
+glGetVideoCaptureStreamdvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVideoCaptureStreamdvNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamdvNV")
+
+{-# NOINLINE glGetVideoCaptureStreamdvNVFunPtr #-}
+
+-- | Usage: @'glGetVideoCaptureStreamfvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideoCaptureStreamfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVideoCaptureStreamfvNV = ffiuintuintenumPtrfloatIOV glGetVideoCaptureStreamfvNVFunPtr
+
+glGetVideoCaptureStreamfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVideoCaptureStreamfvNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamfvNV")
+
+{-# NOINLINE glGetVideoCaptureStreamfvNVFunPtr #-}
+
+-- | Usage: @'glGetVideoCaptureStreamivNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideoCaptureStreamivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVideoCaptureStreamivNV = ffiuintuintenumPtrintIOV glGetVideoCaptureStreamivNVFunPtr
+
+glGetVideoCaptureStreamivNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVideoCaptureStreamivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureStreamivNV")
+
+{-# NOINLINE glGetVideoCaptureStreamivNVFunPtr #-}
+
+-- | Usage: @'glGetVideoCaptureivNV' video_capture_slot pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVideoCaptureivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVideoCaptureivNV = ffiuintenumPtrintIOV glGetVideoCaptureivNVFunPtr
+
+glGetVideoCaptureivNVFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVideoCaptureivNVFunPtr = unsafePerformIO (getProcAddress "glGetVideoCaptureivNV")
+
+{-# NOINLINE glGetVideoCaptureivNVFunPtr #-}
+
+-- | Usage: @'glVideoCaptureNV' video_capture_slot sequence_num capture_time@
+
+
+glVideoCaptureNV :: MonadIO m => GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
+glVideoCaptureNV = ffiuintPtruintPtruint64EXTIOenum glVideoCaptureNVFunPtr
+
+glVideoCaptureNVFunPtr :: FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum)
+glVideoCaptureNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureNV")
+
+{-# NOINLINE glVideoCaptureNVFunPtr #-}
+
+-- | Usage: @'glVideoCaptureStreamParameterdvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glVideoCaptureStreamParameterdvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
+glVideoCaptureStreamParameterdvNV = ffiuintuintenumPtrdoubleIOV glVideoCaptureStreamParameterdvNVFunPtr
+
+glVideoCaptureStreamParameterdvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glVideoCaptureStreamParameterdvNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterdvNV")
+
+{-# NOINLINE glVideoCaptureStreamParameterdvNVFunPtr #-}
+
+-- | Usage: @'glVideoCaptureStreamParameterfvNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glVideoCaptureStreamParameterfvNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+glVideoCaptureStreamParameterfvNV = ffiuintuintenumPtrfloatIOV glVideoCaptureStreamParameterfvNVFunPtr
+
+glVideoCaptureStreamParameterfvNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glVideoCaptureStreamParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterfvNV")
+
+{-# NOINLINE glVideoCaptureStreamParameterfvNVFunPtr #-}
+
+-- | Usage: @'glVideoCaptureStreamParameterivNV' video_capture_slot stream pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glVideoCaptureStreamParameterivNV :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glVideoCaptureStreamParameterivNV = ffiuintuintenumPtrintIOV glVideoCaptureStreamParameterivNVFunPtr
+
+glVideoCaptureStreamParameterivNVFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glVideoCaptureStreamParameterivNVFunPtr = unsafePerformIO (getProcAddress "glVideoCaptureStreamParameterivNV")
+
+{-# NOINLINE glVideoCaptureStreamParameterivNVFunPtr #-}
+
+pattern GL_FAILURE_NV = 0x9030
+
+pattern GL_FIELD_LOWER_NV = 0x9023
+
+pattern GL_FIELD_UPPER_NV = 0x9022
+
+pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027
+
+pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025
+
+pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024
+
+pattern GL_PARTIAL_SUCCESS_NV = 0x902E
+
+pattern GL_SUCCESS_NV = 0x902F
+
+pattern GL_VIDEO_BUFFER_BINDING_NV = 0x9021
+
+pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D
+
+pattern GL_VIDEO_BUFFER_NV = 0x9020
+
+pattern GL_VIDEO_BUFFER_PITCH_NV = 0x9028
+
+pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B
+
+pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A
+
+pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039
+
+pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038
+
+pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C
+
+pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026
+
+pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029
+
+pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A
+
+pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B
+
+pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C
+
+pattern GL_YCBAYCR8A_4224_NV = 0x9032
+
+pattern GL_YCBYCR8_422_NV = 0x9031
+
+pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036
+
+pattern GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037
+
+pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035
+
+pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034
+
+pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033
diff --git a/generated-src/Graphics/GL/Ext/NV/ViewportArray.hs b/generated-src/Graphics/GL/Ext/NV/ViewportArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ViewportArray.hs
@@ -0,0 +1,215 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ViewportArray (
+  -- * Extension Support
+    gl_NV_viewport_array
+
+  -- * GL_NV_viewport_array
+  , glDepthRangeArrayfvNV
+  , glDepthRangeIndexedfNV
+  , glDisableiNV
+  , glEnableiNV
+  , glGetFloati_vNV
+  , glIsEnablediNV
+  , glScissorArrayvNV
+  , glScissorIndexedNV
+  , glScissorIndexedvNV
+  , glViewportArrayvNV
+  , glViewportIndexedfNV
+  , glViewportIndexedfvNV
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_MAX_VIEWPORTS_NV
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_VIEWPORT
+  , pattern GL_VIEWPORT_BOUNDS_RANGE_NV
+  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV
+  , pattern GL_VIEWPORT_SUBPIXEL_BITS_NV
+) 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 GL_NV_viewport_array extension is available.
+
+gl_NV_viewport_array :: Bool
+gl_NV_viewport_array = member "GL_NV_viewport_array" extensions
+{-# NOINLINE gl_NV_viewport_array #-}
+
+-- | Usage: @'glDepthRangeArrayfvNV' first count v@
+
+
+glDepthRangeArrayfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glDepthRangeArrayfvNV = ffiuintsizeiPtrfloatIOV glDepthRangeArrayfvNVFunPtr
+
+glDepthRangeArrayfvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glDepthRangeArrayfvNVFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayfvNV")
+
+{-# NOINLINE glDepthRangeArrayfvNVFunPtr #-}
+
+-- | Usage: @'glDepthRangeIndexedfNV' index n f@
+
+
+glDepthRangeIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glDepthRangeIndexedfNV = ffiuintfloatfloatIOV glDepthRangeIndexedfNVFunPtr
+
+glDepthRangeIndexedfNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glDepthRangeIndexedfNVFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexedfNV")
+
+{-# NOINLINE glDepthRangeIndexedfNVFunPtr #-}
+
+-- | Usage: @'glDisableiNV' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
+
+
+glDisableiNV :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableiNV = ffienumuintIOV glDisableiNVFunPtr
+
+glDisableiNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiNVFunPtr = unsafePerformIO (getProcAddress "glDisableiNV")
+
+{-# NOINLINE glDisableiNVFunPtr #-}
+
+-- | Usage: @'glEnableiNV' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
+
+
+glEnableiNV :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableiNV = ffienumuintIOV glEnableiNVFunPtr
+
+glEnableiNVFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiNVFunPtr = unsafePerformIO (getProcAddress "glEnableiNV")
+
+{-# NOINLINE glEnableiNVFunPtr #-}
+
+-- | Usage: @'glGetFloati_vNV' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
+
+
+glGetFloati_vNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_vNV = ffienumuintPtrfloatIOV glGetFloati_vNVFunPtr
+
+glGetFloati_vNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vNVFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vNV")
+
+{-# NOINLINE glGetFloati_vNVFunPtr #-}
+
+-- | Usage: @'glIsEnablediNV' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
+
+
+glIsEnablediNV :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnablediNV = ffienumuintIOboolean glIsEnablediNVFunPtr
+
+glIsEnablediNVFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediNVFunPtr = unsafePerformIO (getProcAddress "glIsEnablediNV")
+
+{-# NOINLINE glIsEnablediNVFunPtr #-}
+
+-- | Usage: @'glScissorArrayvNV' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorArrayv'.
+
+
+glScissorArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
+glScissorArrayvNV = ffiuintsizeiPtrintIOV glScissorArrayvNVFunPtr
+
+glScissorArrayvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+glScissorArrayvNVFunPtr = unsafePerformIO (getProcAddress "glScissorArrayvNV")
+
+{-# NOINLINE glScissorArrayvNVFunPtr #-}
+
+-- | Usage: @'glScissorIndexedNV' index left bottom width height@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexed'.
+
+
+glScissorIndexedNV :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissorIndexedNV = ffiuintintintsizeisizeiIOV glScissorIndexedNVFunPtr
+
+glScissorIndexedNVFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorIndexedNVFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedNV")
+
+{-# NOINLINE glScissorIndexedNVFunPtr #-}
+
+-- | Usage: @'glScissorIndexedvNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexedv'.
+
+
+glScissorIndexedvNV :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glScissorIndexedvNV = ffiuintPtrintIOV glScissorIndexedvNVFunPtr
+
+glScissorIndexedvNVFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glScissorIndexedvNVFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedvNV")
+
+{-# NOINLINE glScissorIndexedvNVFunPtr #-}
+
+-- | Usage: @'glViewportArrayvNV' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportArrayv'.
+
+
+glViewportArrayvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glViewportArrayvNV = ffiuintsizeiPtrfloatIOV glViewportArrayvNVFunPtr
+
+glViewportArrayvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glViewportArrayvNVFunPtr = unsafePerformIO (getProcAddress "glViewportArrayvNV")
+
+{-# NOINLINE glViewportArrayvNVFunPtr #-}
+
+-- | Usage: @'glViewportIndexedfNV' index x y w h@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedf'.
+
+
+glViewportIndexedfNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glViewportIndexedfNV = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfNVFunPtr
+
+glViewportIndexedfNVFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glViewportIndexedfNVFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfNV")
+
+{-# NOINLINE glViewportIndexedfNVFunPtr #-}
+
+-- | Usage: @'glViewportIndexedfvNV' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedfv'.
+
+
+glViewportIndexedfvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glViewportIndexedfvNV = ffiuintPtrfloatIOV glViewportIndexedfvNVFunPtr
+
+glViewportIndexedfvNVFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glViewportIndexedfvNVFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfvNV")
+
+{-# NOINLINE glViewportIndexedfvNVFunPtr #-}
+
+pattern GL_MAX_VIEWPORTS_NV = 0x825B
+
+pattern GL_VIEWPORT_BOUNDS_RANGE_NV = 0x825D
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS_NV = 0x825C
diff --git a/generated-src/Graphics/GL/Ext/NV/ViewportArray2.hs b/generated-src/Graphics/GL/Ext/NV/ViewportArray2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ViewportArray2.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ViewportArray2 (
+  -- * Extension Support
+    gl_NV_viewport_array2
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/viewport_array2.txt GL_NV_viewport_array2> extension is available.
+
+gl_NV_viewport_array2 :: Bool
+gl_NV_viewport_array2 = member "GL_NV_viewport_array2" extensions
+{-# NOINLINE gl_NV_viewport_array2 #-}
diff --git a/generated-src/Graphics/GL/Ext/NV/ViewportSwizzle.hs b/generated-src/Graphics/GL/Ext/NV/ViewportSwizzle.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NV/ViewportSwizzle.hs
@@ -0,0 +1,70 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.ViewportSwizzle (
+  -- * Extension Support
+    gl_NV_viewport_swizzle
+
+  -- * GL_NV_viewport_swizzle
+  , glViewportSwizzleNV
+  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV
+  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV
+  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV
+  , pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV
+  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV
+  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV
+  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV
+  , pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV
+  , pattern GL_VIEWPORT_SWIZZLE_W_NV
+  , pattern GL_VIEWPORT_SWIZZLE_X_NV
+  , pattern GL_VIEWPORT_SWIZZLE_Y_NV
+  , pattern GL_VIEWPORT_SWIZZLE_Z_NV
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/viewport_swizzle.txt GL_NV_viewport_swizzle> extension is available.
+
+gl_NV_viewport_swizzle :: Bool
+gl_NV_viewport_swizzle = member "GL_NV_viewport_swizzle" extensions
+{-# NOINLINE gl_NV_viewport_swizzle #-}
+
+-- | Usage: @'glViewportSwizzleNV' index swizzlex swizzley swizzlez swizzlew@
+
+
+glViewportSwizzleNV :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glViewportSwizzleNV = ffiuintenumenumenumenumIOV glViewportSwizzleNVFunPtr
+
+glViewportSwizzleNVFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glViewportSwizzleNVFunPtr = unsafePerformIO (getProcAddress "glViewportSwizzleNV")
+
+{-# NOINLINE glViewportSwizzleNVFunPtr #-}
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV = 0x9357
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV = 0x9351
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV = 0x9353
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV = 0x9355
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV = 0x9356
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV = 0x9350
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV = 0x9352
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV = 0x9354
+
+pattern GL_VIEWPORT_SWIZZLE_W_NV = 0x935B
+
+pattern GL_VIEWPORT_SWIZZLE_X_NV = 0x9358
+
+pattern GL_VIEWPORT_SWIZZLE_Y_NV = 0x9359
+
+pattern GL_VIEWPORT_SWIZZLE_Z_NV = 0x935A
diff --git a/generated-src/Graphics/GL/Ext/NVX.hs b/generated-src/Graphics/GL/Ext/NVX.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NVX.hs
@@ -0,0 +1,10 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NVX (
+  -- * NVX Extensions
+    module Graphics.GL.Ext.NVX.ConditionalRender
+  , module Graphics.GL.Ext.NVX.GpuMemoryInfo
+) where
+
+import Graphics.GL.Ext.NVX.ConditionalRender
+import Graphics.GL.Ext.NVX.GpuMemoryInfo
diff --git a/generated-src/Graphics/GL/Ext/NVX/ConditionalRender.hs b/generated-src/Graphics/GL/Ext/NVX/ConditionalRender.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NVX/ConditionalRender.hs
@@ -0,0 +1,48 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NVX.ConditionalRender (
+  -- * Extension Support
+    gl_NVX_conditional_render
+
+  -- * GL_NVX_conditional_render
+  , glBeginConditionalRenderNVX
+  , glEndConditionalRenderNVX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_NVX_conditional_render extension is available.
+
+gl_NVX_conditional_render :: Bool
+gl_NVX_conditional_render = member "GL_NVX_conditional_render" extensions
+{-# NOINLINE gl_NVX_conditional_render #-}
+
+-- | Usage: @'glBeginConditionalRenderNVX' id@
+
+
+glBeginConditionalRenderNVX :: MonadIO m => GLuint -> m ()
+glBeginConditionalRenderNVX = ffiuintIOV glBeginConditionalRenderNVXFunPtr
+
+glBeginConditionalRenderNVXFunPtr :: FunPtr (GLuint -> IO ())
+glBeginConditionalRenderNVXFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRenderNVX")
+
+{-# NOINLINE glBeginConditionalRenderNVXFunPtr #-}
+
+-- | Usage: @'glEndConditionalRenderNVX'@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEndConditionalRender'.
+
+
+glEndConditionalRenderNVX :: MonadIO m => m ()
+glEndConditionalRenderNVX = ffiIOV glEndConditionalRenderNVXFunPtr
+
+glEndConditionalRenderNVXFunPtr :: FunPtr (IO ())
+glEndConditionalRenderNVXFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRenderNVX")
+
+{-# NOINLINE glEndConditionalRenderNVXFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs b/generated-src/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NVX.GpuMemoryInfo (
+  -- * Extension Support
+    gl_NVX_gpu_memory_info
+
+  -- * GL_NVX_gpu_memory_info
+  , pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX
+  , pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX
+  , pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX
+  , pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX
+  , pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NVX/gpu_memory_info.txt GL_NVX_gpu_memory_info> extension is available.
+
+gl_NVX_gpu_memory_info :: Bool
+gl_NVX_gpu_memory_info = member "GL_NVX_gpu_memory_info" extensions
+{-# NOINLINE gl_NVX_gpu_memory_info #-}
+
+pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049
+
+pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047
+
+pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B
+
+pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A
+
+pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048
diff --git a/generated-src/Graphics/GL/Ext/OES.hs b/generated-src/Graphics/GL/Ext/OES.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES.hs
@@ -0,0 +1,150 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES (
+  -- * OES Extensions
+    module Graphics.GL.Ext.OES.BlendEquationSeparate
+  , module Graphics.GL.Ext.OES.BlendFuncSeparate
+  , module Graphics.GL.Ext.OES.BlendSubtract
+  , module Graphics.GL.Ext.OES.ByteCoordinates
+  , module Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture
+  , module Graphics.GL.Ext.OES.CompressedETC1RGB8Texture
+  , module Graphics.GL.Ext.OES.CompressedPalettedTexture
+  , module Graphics.GL.Ext.OES.CopyImage
+  , module Graphics.GL.Ext.OES.Depth24
+  , module Graphics.GL.Ext.OES.Depth32
+  , module Graphics.GL.Ext.OES.DepthTexture
+  , module Graphics.GL.Ext.OES.DrawBuffersIndexed
+  , module Graphics.GL.Ext.OES.DrawElementsBaseVertex
+  , module Graphics.GL.Ext.OES.DrawTexture
+  , module Graphics.GL.Ext.OES.EGLImage
+  , module Graphics.GL.Ext.OES.EGLImageExternal
+  , module Graphics.GL.Ext.OES.EGLImageExternalEssl3
+  , module Graphics.GL.Ext.OES.ElementIndexUint
+  , module Graphics.GL.Ext.OES.ExtendedMatrixPalette
+  , module Graphics.GL.Ext.OES.FboRenderMipmap
+  , module Graphics.GL.Ext.OES.FixedPoint
+  , module Graphics.GL.Ext.OES.FragmentPrecisionHigh
+  , module Graphics.GL.Ext.OES.FramebufferObject
+  , module Graphics.GL.Ext.OES.GeometryPointSize
+  , module Graphics.GL.Ext.OES.GeometryShader
+  , module Graphics.GL.Ext.OES.GetProgramBinary
+  , module Graphics.GL.Ext.OES.GpuShader5
+  , module Graphics.GL.Ext.OES.Mapbuffer
+  , module Graphics.GL.Ext.OES.MatrixGet
+  , module Graphics.GL.Ext.OES.MatrixPalette
+  , module Graphics.GL.Ext.OES.PackedDepthStencil
+  , module Graphics.GL.Ext.OES.PointSizeArray
+  , module Graphics.GL.Ext.OES.PointSprite
+  , module Graphics.GL.Ext.OES.PrimitiveBoundingBox
+  , module Graphics.GL.Ext.OES.QueryMatrix
+  , module Graphics.GL.Ext.OES.ReadFormat
+  , module Graphics.GL.Ext.OES.RequiredInternalformat
+  , module Graphics.GL.Ext.OES.Rgb8Rgba8
+  , module Graphics.GL.Ext.OES.SampleShading
+  , module Graphics.GL.Ext.OES.SampleVariables
+  , module Graphics.GL.Ext.OES.ShaderImageAtomic
+  , module Graphics.GL.Ext.OES.ShaderIoBlocks
+  , module Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
+  , module Graphics.GL.Ext.OES.SinglePrecision
+  , module Graphics.GL.Ext.OES.StandardDerivatives
+  , module Graphics.GL.Ext.OES.Stencil1
+  , module Graphics.GL.Ext.OES.Stencil4
+  , module Graphics.GL.Ext.OES.Stencil8
+  , module Graphics.GL.Ext.OES.StencilWrap
+  , module Graphics.GL.Ext.OES.SurfacelessContext
+  , module Graphics.GL.Ext.OES.TessellationPointSize
+  , module Graphics.GL.Ext.OES.TessellationShader
+  , module Graphics.GL.Ext.OES.Texture3D
+  , module Graphics.GL.Ext.OES.TextureBorderClamp
+  , module Graphics.GL.Ext.OES.TextureBuffer
+  , module Graphics.GL.Ext.OES.TextureCompressionAstc
+  , module Graphics.GL.Ext.OES.TextureCubeMap
+  , module Graphics.GL.Ext.OES.TextureCubeMapArray
+  , module Graphics.GL.Ext.OES.TextureEnvCrossbar
+  , module Graphics.GL.Ext.OES.TextureFloat
+  , module Graphics.GL.Ext.OES.TextureFloatLinear
+  , module Graphics.GL.Ext.OES.TextureHalfFloat
+  , module Graphics.GL.Ext.OES.TextureHalfFloatLinear
+  , module Graphics.GL.Ext.OES.TextureMirroredRepeat
+  , module Graphics.GL.Ext.OES.TextureNpot
+  , module Graphics.GL.Ext.OES.TextureStencil8
+  , module Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
+  , module Graphics.GL.Ext.OES.TextureView
+  , module Graphics.GL.Ext.OES.VertexArrayObject
+  , module Graphics.GL.Ext.OES.VertexHalfFloat
+  , module Graphics.GL.Ext.OES.VertexType1010102
+  , module Graphics.GL.Ext.OES.ViewportArray
+) where
+
+import Graphics.GL.Ext.OES.BlendEquationSeparate
+import Graphics.GL.Ext.OES.BlendFuncSeparate
+import Graphics.GL.Ext.OES.BlendSubtract
+import Graphics.GL.Ext.OES.ByteCoordinates
+import Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture
+import Graphics.GL.Ext.OES.CompressedETC1RGB8Texture
+import Graphics.GL.Ext.OES.CompressedPalettedTexture
+import Graphics.GL.Ext.OES.CopyImage
+import Graphics.GL.Ext.OES.Depth24
+import Graphics.GL.Ext.OES.Depth32
+import Graphics.GL.Ext.OES.DepthTexture
+import Graphics.GL.Ext.OES.DrawBuffersIndexed
+import Graphics.GL.Ext.OES.DrawElementsBaseVertex
+import Graphics.GL.Ext.OES.DrawTexture
+import Graphics.GL.Ext.OES.EGLImage
+import Graphics.GL.Ext.OES.EGLImageExternal
+import Graphics.GL.Ext.OES.EGLImageExternalEssl3
+import Graphics.GL.Ext.OES.ElementIndexUint
+import Graphics.GL.Ext.OES.ExtendedMatrixPalette
+import Graphics.GL.Ext.OES.FboRenderMipmap
+import Graphics.GL.Ext.OES.FixedPoint
+import Graphics.GL.Ext.OES.FragmentPrecisionHigh
+import Graphics.GL.Ext.OES.FramebufferObject
+import Graphics.GL.Ext.OES.GeometryPointSize
+import Graphics.GL.Ext.OES.GeometryShader
+import Graphics.GL.Ext.OES.GetProgramBinary
+import Graphics.GL.Ext.OES.GpuShader5
+import Graphics.GL.Ext.OES.Mapbuffer
+import Graphics.GL.Ext.OES.MatrixGet
+import Graphics.GL.Ext.OES.MatrixPalette
+import Graphics.GL.Ext.OES.PackedDepthStencil
+import Graphics.GL.Ext.OES.PointSizeArray
+import Graphics.GL.Ext.OES.PointSprite
+import Graphics.GL.Ext.OES.PrimitiveBoundingBox
+import Graphics.GL.Ext.OES.QueryMatrix
+import Graphics.GL.Ext.OES.ReadFormat
+import Graphics.GL.Ext.OES.RequiredInternalformat
+import Graphics.GL.Ext.OES.Rgb8Rgba8
+import Graphics.GL.Ext.OES.SampleShading
+import Graphics.GL.Ext.OES.SampleVariables
+import Graphics.GL.Ext.OES.ShaderImageAtomic
+import Graphics.GL.Ext.OES.ShaderIoBlocks
+import Graphics.GL.Ext.OES.ShaderMultisampleInterpolation
+import Graphics.GL.Ext.OES.SinglePrecision
+import Graphics.GL.Ext.OES.StandardDerivatives
+import Graphics.GL.Ext.OES.Stencil1
+import Graphics.GL.Ext.OES.Stencil4
+import Graphics.GL.Ext.OES.Stencil8
+import Graphics.GL.Ext.OES.StencilWrap
+import Graphics.GL.Ext.OES.SurfacelessContext
+import Graphics.GL.Ext.OES.TessellationPointSize
+import Graphics.GL.Ext.OES.TessellationShader
+import Graphics.GL.Ext.OES.Texture3D
+import Graphics.GL.Ext.OES.TextureBorderClamp
+import Graphics.GL.Ext.OES.TextureBuffer
+import Graphics.GL.Ext.OES.TextureCompressionAstc
+import Graphics.GL.Ext.OES.TextureCubeMap
+import Graphics.GL.Ext.OES.TextureCubeMapArray
+import Graphics.GL.Ext.OES.TextureEnvCrossbar
+import Graphics.GL.Ext.OES.TextureFloat
+import Graphics.GL.Ext.OES.TextureFloatLinear
+import Graphics.GL.Ext.OES.TextureHalfFloat
+import Graphics.GL.Ext.OES.TextureHalfFloatLinear
+import Graphics.GL.Ext.OES.TextureMirroredRepeat
+import Graphics.GL.Ext.OES.TextureNpot
+import Graphics.GL.Ext.OES.TextureStencil8
+import Graphics.GL.Ext.OES.TextureStorageMultisample2dArray
+import Graphics.GL.Ext.OES.TextureView
+import Graphics.GL.Ext.OES.VertexArrayObject
+import Graphics.GL.Ext.OES.VertexHalfFloat
+import Graphics.GL.Ext.OES.VertexType1010102
+import Graphics.GL.Ext.OES.ViewportArray
diff --git a/generated-src/Graphics/GL/Ext/OES/BlendEquationSeparate.hs b/generated-src/Graphics/GL/Ext/OES/BlendEquationSeparate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/BlendEquationSeparate.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.BlendEquationSeparate (
+  -- * Extension Support
+    gl_OES_blend_equation_separate
+
+  -- * GL_OES_blend_equation_separate
+  , glBlendEquationSeparateOES
+  , pattern GL_BLEND_EQUATION_ALPHA_OES
+  , pattern GL_BLEND_EQUATION_RGB_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_blend_equation_separate.txt GL_OES_blend_equation_separate> extension is available.
+
+gl_OES_blend_equation_separate :: Bool
+gl_OES_blend_equation_separate = member "GL_OES_blend_equation_separate" extensions
+{-# NOINLINE gl_OES_blend_equation_separate #-}
+
+-- | Usage: @'glBlendEquationSeparateOES' modeRGB modeAlpha@
+
+
+glBlendEquationSeparateOES :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendEquationSeparateOES = ffienumenumIOV glBlendEquationSeparateOESFunPtr
+
+glBlendEquationSeparateOESFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendEquationSeparateOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateOES")
+
+{-# NOINLINE glBlendEquationSeparateOESFunPtr #-}
+
+pattern GL_BLEND_EQUATION_ALPHA_OES = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB_OES = 0x8009
diff --git a/generated-src/Graphics/GL/Ext/OES/BlendFuncSeparate.hs b/generated-src/Graphics/GL/Ext/OES/BlendFuncSeparate.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/BlendFuncSeparate.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.BlendFuncSeparate (
+  -- * Extension Support
+    gl_OES_blend_func_separate
+
+  -- * GL_OES_blend_func_separate
+  , glBlendFuncSeparateOES
+  , pattern GL_BLEND_DST_ALPHA_OES
+  , pattern GL_BLEND_DST_RGB_OES
+  , pattern GL_BLEND_SRC_ALPHA_OES
+  , pattern GL_BLEND_SRC_RGB_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_blend_func_separate.txt GL_OES_blend_func_separate> extension is available.
+
+gl_OES_blend_func_separate :: Bool
+gl_OES_blend_func_separate = member "GL_OES_blend_func_separate" extensions
+{-# NOINLINE gl_OES_blend_func_separate #-}
+
+-- | Usage: @'glBlendFuncSeparateOES' srcRGB dstRGB srcAlpha dstAlpha@
+
+
+glBlendFuncSeparateOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparateOES = ffienumenumenumenumIOV glBlendFuncSeparateOESFunPtr
+
+glBlendFuncSeparateOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateOESFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateOES")
+
+{-# NOINLINE glBlendFuncSeparateOESFunPtr #-}
+
+pattern GL_BLEND_DST_ALPHA_OES = 0x80CA
+
+pattern GL_BLEND_DST_RGB_OES = 0x80C8
+
+pattern GL_BLEND_SRC_ALPHA_OES = 0x80CB
+
+pattern GL_BLEND_SRC_RGB_OES = 0x80C9
diff --git a/generated-src/Graphics/GL/Ext/OES/BlendSubtract.hs b/generated-src/Graphics/GL/Ext/OES/BlendSubtract.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/BlendSubtract.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.BlendSubtract (
+  -- * Extension Support
+    gl_OES_blend_subtract
+
+  -- * GL_OES_blend_subtract
+  , glBlendEquationOES
+  , pattern GL_BLEND_EQUATION_OES
+  , pattern GL_FUNC_ADD_OES
+  , pattern GL_FUNC_REVERSE_SUBTRACT_OES
+  , pattern GL_FUNC_SUBTRACT_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_blend_subtract.txt GL_OES_blend_subtract> extension is available.
+
+gl_OES_blend_subtract :: Bool
+gl_OES_blend_subtract = member "GL_OES_blend_subtract" extensions
+{-# NOINLINE gl_OES_blend_subtract #-}
+
+-- | Usage: @'glBlendEquationOES' mode@
+
+
+glBlendEquationOES :: MonadIO m => GLenum -> m ()
+glBlendEquationOES = ffienumIOV glBlendEquationOESFunPtr
+
+glBlendEquationOESFunPtr :: FunPtr (GLenum -> IO ())
+glBlendEquationOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationOES")
+
+{-# NOINLINE glBlendEquationOESFunPtr #-}
+
+pattern GL_BLEND_EQUATION_OES = 0x8009
+
+pattern GL_FUNC_ADD_OES = 0x8006
+
+pattern GL_FUNC_REVERSE_SUBTRACT_OES = 0x800B
+
+pattern GL_FUNC_SUBTRACT_OES = 0x800A
diff --git a/generated-src/Graphics/GL/Ext/OES/ByteCoordinates.hs b/generated-src/Graphics/GL/Ext/OES/ByteCoordinates.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ByteCoordinates.hs
@@ -0,0 +1,310 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ByteCoordinates (
+  -- * Extension Support
+    gl_OES_byte_coordinates
+
+  -- * GL_OES_byte_coordinates
+  , glMultiTexCoord1bOES
+  , glMultiTexCoord1bvOES
+  , glMultiTexCoord2bOES
+  , glMultiTexCoord2bvOES
+  , glMultiTexCoord3bOES
+  , glMultiTexCoord3bvOES
+  , glMultiTexCoord4bOES
+  , glMultiTexCoord4bvOES
+  , glTexCoord1bOES
+  , glTexCoord1bvOES
+  , glTexCoord2bOES
+  , glTexCoord2bvOES
+  , glTexCoord3bOES
+  , glTexCoord3bvOES
+  , glTexCoord4bOES
+  , glTexCoord4bvOES
+  , glVertex2bOES
+  , glVertex2bvOES
+  , glVertex3bOES
+  , glVertex3bvOES
+  , glVertex4bOES
+  , glVertex4bvOES
+  , pattern GL_BYTE
+) 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://www.khronos.org/registry/gles/extensions/OES/OES_byte_coordinates.txt GL_OES_byte_coordinates> extension is available.
+
+gl_OES_byte_coordinates :: Bool
+gl_OES_byte_coordinates = member "GL_OES_byte_coordinates" extensions
+{-# NOINLINE gl_OES_byte_coordinates #-}
+
+-- | Usage: @'glMultiTexCoord1bOES' texture s@
+
+
+glMultiTexCoord1bOES :: MonadIO m => GLenum -> GLbyte -> m ()
+glMultiTexCoord1bOES = ffienumbyteIOV glMultiTexCoord1bOESFunPtr
+
+glMultiTexCoord1bOESFunPtr :: FunPtr (GLenum -> GLbyte -> IO ())
+glMultiTexCoord1bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1bOES")
+
+{-# NOINLINE glMultiTexCoord1bOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1bvOES' texture coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoord1bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
+glMultiTexCoord1bvOES = ffienumPtrbyteIOV glMultiTexCoord1bvOESFunPtr
+
+glMultiTexCoord1bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+glMultiTexCoord1bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1bvOES")
+
+{-# NOINLINE glMultiTexCoord1bvOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2bOES' texture s t@
+
+
+glMultiTexCoord2bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> m ()
+glMultiTexCoord2bOES = ffienumbytebyteIOV glMultiTexCoord2bOESFunPtr
+
+glMultiTexCoord2bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
+glMultiTexCoord2bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2bOES")
+
+{-# NOINLINE glMultiTexCoord2bOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2bvOES' texture coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glMultiTexCoord2bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
+glMultiTexCoord2bvOES = ffienumPtrbyteIOV glMultiTexCoord2bvOESFunPtr
+
+glMultiTexCoord2bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+glMultiTexCoord2bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2bvOES")
+
+{-# NOINLINE glMultiTexCoord2bvOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3bOES' texture s t r@
+
+
+glMultiTexCoord3bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
+glMultiTexCoord3bOES = ffienumbytebytebyteIOV glMultiTexCoord3bOESFunPtr
+
+glMultiTexCoord3bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glMultiTexCoord3bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3bOES")
+
+{-# NOINLINE glMultiTexCoord3bOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3bvOES' texture coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glMultiTexCoord3bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
+glMultiTexCoord3bvOES = ffienumPtrbyteIOV glMultiTexCoord3bvOESFunPtr
+
+glMultiTexCoord3bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+glMultiTexCoord3bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3bvOES")
+
+{-# NOINLINE glMultiTexCoord3bvOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4bOES' texture s t r q@
+
+
+glMultiTexCoord4bOES :: MonadIO m => GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+glMultiTexCoord4bOES = ffienumbytebytebytebyteIOV glMultiTexCoord4bOESFunPtr
+
+glMultiTexCoord4bOESFunPtr :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glMultiTexCoord4bOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4bOES")
+
+{-# NOINLINE glMultiTexCoord4bOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4bvOES' texture coords@
+--
+-- The length of @coords@ should be @4@.
+
+
+glMultiTexCoord4bvOES :: MonadIO m => GLenum -> Ptr GLbyte -> m ()
+glMultiTexCoord4bvOES = ffienumPtrbyteIOV glMultiTexCoord4bvOESFunPtr
+
+glMultiTexCoord4bvOESFunPtr :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+glMultiTexCoord4bvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4bvOES")
+
+{-# NOINLINE glMultiTexCoord4bvOESFunPtr #-}
+
+-- | Usage: @'glTexCoord1bOES' s@
+
+
+glTexCoord1bOES :: MonadIO m => GLbyte -> m ()
+glTexCoord1bOES = ffibyteIOV glTexCoord1bOESFunPtr
+
+glTexCoord1bOESFunPtr :: FunPtr (GLbyte -> IO ())
+glTexCoord1bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1bOES")
+
+{-# NOINLINE glTexCoord1bOESFunPtr #-}
+
+-- | Usage: @'glTexCoord1bvOES' coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoord1bvOES :: MonadIO m => Ptr GLbyte -> m ()
+glTexCoord1bvOES = ffiPtrbyteIOV glTexCoord1bvOESFunPtr
+
+glTexCoord1bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glTexCoord1bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1bvOES")
+
+{-# NOINLINE glTexCoord1bvOESFunPtr #-}
+
+-- | Usage: @'glTexCoord2bOES' s t@
+
+
+glTexCoord2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
+glTexCoord2bOES = ffibytebyteIOV glTexCoord2bOESFunPtr
+
+glTexCoord2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
+glTexCoord2bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2bOES")
+
+{-# NOINLINE glTexCoord2bOESFunPtr #-}
+
+-- | Usage: @'glTexCoord2bvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glTexCoord2bvOES :: MonadIO m => Ptr GLbyte -> m ()
+glTexCoord2bvOES = ffiPtrbyteIOV glTexCoord2bvOESFunPtr
+
+glTexCoord2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glTexCoord2bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2bvOES")
+
+{-# NOINLINE glTexCoord2bvOESFunPtr #-}
+
+-- | Usage: @'glTexCoord3bOES' s t r@
+
+
+glTexCoord3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glTexCoord3bOES = ffibytebytebyteIOV glTexCoord3bOESFunPtr
+
+glTexCoord3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glTexCoord3bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3bOES")
+
+{-# NOINLINE glTexCoord3bOESFunPtr #-}
+
+-- | Usage: @'glTexCoord3bvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glTexCoord3bvOES :: MonadIO m => Ptr GLbyte -> m ()
+glTexCoord3bvOES = ffiPtrbyteIOV glTexCoord3bvOESFunPtr
+
+glTexCoord3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glTexCoord3bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3bvOES")
+
+{-# NOINLINE glTexCoord3bvOESFunPtr #-}
+
+-- | Usage: @'glTexCoord4bOES' s t r q@
+
+
+glTexCoord4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+glTexCoord4bOES = ffibytebytebytebyteIOV glTexCoord4bOESFunPtr
+
+glTexCoord4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glTexCoord4bOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4bOES")
+
+{-# NOINLINE glTexCoord4bOESFunPtr #-}
+
+-- | Usage: @'glTexCoord4bvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
+glTexCoord4bvOES :: MonadIO m => Ptr GLbyte -> m ()
+glTexCoord4bvOES = ffiPtrbyteIOV glTexCoord4bvOESFunPtr
+
+glTexCoord4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glTexCoord4bvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4bvOES")
+
+{-# NOINLINE glTexCoord4bvOESFunPtr #-}
+
+-- | Usage: @'glVertex2bOES' x y@
+
+
+glVertex2bOES :: MonadIO m => GLbyte -> GLbyte -> m ()
+glVertex2bOES = ffibytebyteIOV glVertex2bOESFunPtr
+
+glVertex2bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> IO ())
+glVertex2bOESFunPtr = unsafePerformIO (getProcAddress "glVertex2bOES")
+
+{-# NOINLINE glVertex2bOESFunPtr #-}
+
+-- | Usage: @'glVertex2bvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glVertex2bvOES :: MonadIO m => Ptr GLbyte -> m ()
+glVertex2bvOES = ffiPtrbyteIOV glVertex2bvOESFunPtr
+
+glVertex2bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glVertex2bvOESFunPtr = unsafePerformIO (getProcAddress "glVertex2bvOES")
+
+{-# NOINLINE glVertex2bvOESFunPtr #-}
+
+-- | Usage: @'glVertex3bOES' x y z@
+
+
+glVertex3bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glVertex3bOES = ffibytebytebyteIOV glVertex3bOESFunPtr
+
+glVertex3bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glVertex3bOESFunPtr = unsafePerformIO (getProcAddress "glVertex3bOES")
+
+{-# NOINLINE glVertex3bOESFunPtr #-}
+
+-- | Usage: @'glVertex3bvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glVertex3bvOES :: MonadIO m => Ptr GLbyte -> m ()
+glVertex3bvOES = ffiPtrbyteIOV glVertex3bvOESFunPtr
+
+glVertex3bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glVertex3bvOESFunPtr = unsafePerformIO (getProcAddress "glVertex3bvOES")
+
+{-# NOINLINE glVertex3bvOESFunPtr #-}
+
+-- | Usage: @'glVertex4bOES' x y z w@
+
+
+glVertex4bOES :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+glVertex4bOES = ffibytebytebytebyteIOV glVertex4bOESFunPtr
+
+glVertex4bOESFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glVertex4bOESFunPtr = unsafePerformIO (getProcAddress "glVertex4bOES")
+
+{-# NOINLINE glVertex4bOESFunPtr #-}
+
+-- | Usage: @'glVertex4bvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
+glVertex4bvOES :: MonadIO m => Ptr GLbyte -> m ()
+glVertex4bvOES = ffiPtrbyteIOV glVertex4bvOESFunPtr
+
+glVertex4bvOESFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glVertex4bvOESFunPtr = unsafePerformIO (getProcAddress "glVertex4bvOES")
+
+{-# NOINLINE glVertex4bvOESFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8SubTexture.hs b/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8SubTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8SubTexture.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.CompressedETC1RGB8SubTexture (
+  -- * Extension Support
+    gl_OES_compressed_ETC1_RGB8_sub_texture
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_OES_compressed_ETC1_RGB8_sub_texture extension is available.
+
+gl_OES_compressed_ETC1_RGB8_sub_texture :: Bool
+gl_OES_compressed_ETC1_RGB8_sub_texture = member "GL_OES_compressed_ETC1_RGB8_sub_texture" extensions
+{-# NOINLINE gl_OES_compressed_ETC1_RGB8_sub_texture #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs b/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.CompressedETC1RGB8Texture (
+  -- * Extension Support
+    gl_OES_compressed_ETC1_RGB8_texture
+
+  -- * GL_OES_compressed_ETC1_RGB8_texture
+  , pattern GL_ETC1_RGB8_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt GL_OES_compressed_ETC1_RGB8_texture> extension is available.
+
+gl_OES_compressed_ETC1_RGB8_texture :: Bool
+gl_OES_compressed_ETC1_RGB8_texture = member "GL_OES_compressed_ETC1_RGB8_texture" extensions
+{-# NOINLINE gl_OES_compressed_ETC1_RGB8_texture #-}
+
+pattern GL_ETC1_RGB8_OES = 0x8D64
diff --git a/generated-src/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs b/generated-src/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs
@@ -0,0 +1,47 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.CompressedPalettedTexture (
+  -- * Extension Support
+    gl_OES_compressed_paletted_texture
+
+  -- * GL_OES_compressed_paletted_texture
+  , pattern GL_PALETTE4_R5_G6_B5_OES
+  , pattern GL_PALETTE4_RGB5_A1_OES
+  , pattern GL_PALETTE4_RGB8_OES
+  , pattern GL_PALETTE4_RGBA4_OES
+  , pattern GL_PALETTE4_RGBA8_OES
+  , pattern GL_PALETTE8_R5_G6_B5_OES
+  , pattern GL_PALETTE8_RGB5_A1_OES
+  , pattern GL_PALETTE8_RGB8_OES
+  , pattern GL_PALETTE8_RGBA4_OES
+  , pattern GL_PALETTE8_RGBA8_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_compressed_paletted_texture.txt GL_OES_compressed_paletted_texture> extension is available.
+
+gl_OES_compressed_paletted_texture :: Bool
+gl_OES_compressed_paletted_texture = member "GL_OES_compressed_paletted_texture" extensions
+{-# NOINLINE gl_OES_compressed_paletted_texture #-}
+
+pattern GL_PALETTE4_R5_G6_B5_OES = 0x8B92
+
+pattern GL_PALETTE4_RGB5_A1_OES = 0x8B94
+
+pattern GL_PALETTE4_RGB8_OES = 0x8B90
+
+pattern GL_PALETTE4_RGBA4_OES = 0x8B93
+
+pattern GL_PALETTE4_RGBA8_OES = 0x8B91
+
+pattern GL_PALETTE8_R5_G6_B5_OES = 0x8B97
+
+pattern GL_PALETTE8_RGB5_A1_OES = 0x8B99
+
+pattern GL_PALETTE8_RGB8_OES = 0x8B95
+
+pattern GL_PALETTE8_RGBA4_OES = 0x8B98
+
+pattern GL_PALETTE8_RGBA8_OES = 0x8B96
diff --git a/generated-src/Graphics/GL/Ext/OES/CopyImage.hs b/generated-src/Graphics/GL/Ext/OES/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/CopyImage.hs
@@ -0,0 +1,36 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.CopyImage (
+  -- * Extension Support
+    gl_OES_copy_image
+
+  -- * GL_OES_copy_image
+  , glCopyImageSubDataOES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_copy_image.txt GL_OES_copy_image> extension is available.
+
+gl_OES_copy_image :: Bool
+gl_OES_copy_image = member "GL_OES_copy_image" extensions
+{-# NOINLINE gl_OES_copy_image #-}
+
+-- | Usage: @'glCopyImageSubDataOES' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyImageSubData'.
+
+
+glCopyImageSubDataOES :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glCopyImageSubDataOES = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataOESFunPtr
+
+glCopyImageSubDataOESFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glCopyImageSubDataOESFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubDataOES")
+
+{-# NOINLINE glCopyImageSubDataOESFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/Depth24.hs b/generated-src/Graphics/GL/Ext/OES/Depth24.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Depth24.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Depth24 (
+  -- * Extension Support
+    gl_OES_depth24
+
+  -- * GL_OES_depth24
+  , pattern GL_DEPTH_COMPONENT24_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_depth24.txt GL_OES_depth24> extension is available.
+
+gl_OES_depth24 :: Bool
+gl_OES_depth24 = member "GL_OES_depth24" extensions
+{-# NOINLINE gl_OES_depth24 #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/Depth32.hs b/generated-src/Graphics/GL/Ext/OES/Depth32.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Depth32.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Depth32 (
+  -- * Extension Support
+    gl_OES_depth32
+
+  -- * GL_OES_depth32
+  , pattern GL_DEPTH_COMPONENT32_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_depth32.txt GL_OES_depth32> extension is available.
+
+gl_OES_depth32 :: Bool
+gl_OES_depth32 = member "GL_OES_depth32" extensions
+{-# NOINLINE gl_OES_depth32 #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/DepthTexture.hs b/generated-src/Graphics/GL/Ext/OES/DepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/DepthTexture.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.DepthTexture (
+  -- * Extension Support
+    gl_OES_depth_texture
+
+  -- * GL_OES_depth_texture
+  , pattern GL_DEPTH_COMPONENT
+  , pattern GL_UNSIGNED_INT
+  , pattern GL_UNSIGNED_SHORT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_depth_texture.txt GL_OES_depth_texture> extension is available.
+
+gl_OES_depth_texture :: Bool
+gl_OES_depth_texture = member "GL_OES_depth_texture" extensions
+{-# NOINLINE gl_OES_depth_texture #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs b/generated-src/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/DrawBuffersIndexed.hs
@@ -0,0 +1,132 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.DrawBuffersIndexed (
+  -- * Extension Support
+    gl_OES_draw_buffers_indexed
+
+  -- * GL_OES_draw_buffers_indexed
+  , glBlendEquationSeparateiOES
+  , glBlendEquationiOES
+  , glBlendFuncSeparateiOES
+  , glBlendFunciOES
+  , glColorMaskiOES
+  , glDisableiOES
+  , glEnableiOES
+  , glIsEnablediOES
+  , pattern GL_BLEND
+  , pattern GL_BLEND_DST_ALPHA
+  , pattern GL_BLEND_DST_RGB
+  , pattern GL_BLEND_EQUATION_ALPHA
+  , pattern GL_BLEND_EQUATION_RGB
+  , pattern GL_BLEND_SRC_ALPHA
+  , pattern GL_BLEND_SRC_RGB
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_CONSTANT_ALPHA
+  , pattern GL_CONSTANT_COLOR
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_FUNC_ADD
+  , pattern GL_FUNC_REVERSE_SUBTRACT
+  , pattern GL_FUNC_SUBTRACT
+  , pattern GL_MAX
+  , pattern GL_MIN
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_ZERO
+) 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://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt GL_OES_draw_buffers_indexed> extension is available.
+
+gl_OES_draw_buffers_indexed :: Bool
+gl_OES_draw_buffers_indexed = member "GL_OES_draw_buffers_indexed" extensions
+{-# NOINLINE gl_OES_draw_buffers_indexed #-}
+
+-- | Usage: @'glBlendEquationSeparateiOES' buf modeRGB modeAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationSeparatei'.
+
+
+glBlendEquationSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendEquationSeparateiOES = ffiuintenumenumIOV glBlendEquationSeparateiOESFunPtr
+
+glBlendEquationSeparateiOESFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendEquationSeparateiOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparateiOES")
+
+{-# NOINLINE glBlendEquationSeparateiOESFunPtr #-}
+
+-- | Usage: @'glBlendEquationiOES' buf mode@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendEquationi'.
+
+
+glBlendEquationiOES :: MonadIO m => GLuint -> GLenum -> m ()
+glBlendEquationiOES = ffiuintenumIOV glBlendEquationiOESFunPtr
+
+glBlendEquationiOESFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBlendEquationiOESFunPtr = unsafePerformIO (getProcAddress "glBlendEquationiOES")
+
+{-# NOINLINE glBlendEquationiOESFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparateiOES' buf srcRGB dstRGB srcAlpha dstAlpha@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFuncSeparatei'.
+
+
+glBlendFuncSeparateiOES :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparateiOES = ffiuintenumenumenumenumIOV glBlendFuncSeparateiOESFunPtr
+
+glBlendFuncSeparateiOESFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateiOESFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparateiOES")
+
+{-# NOINLINE glBlendFuncSeparateiOESFunPtr #-}
+
+-- | Usage: @'glBlendFunciOES' buf src dst@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBlendFunci'.
+
+
+glBlendFunciOES :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendFunciOES = ffiuintenumenumIOV glBlendFunciOESFunPtr
+
+glBlendFunciOESFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendFunciOESFunPtr = unsafePerformIO (getProcAddress "glBlendFunciOES")
+
+{-# NOINLINE glBlendFunciOESFunPtr #-}
+
+-- | Usage: @'glColorMaskiOES' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glColorMaski'.
+
+
+glColorMaskiOES :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMaskiOES = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiOESFunPtr
+
+glColorMaskiOESFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskiOESFunPtr = unsafePerformIO (getProcAddress "glColorMaskiOES")
+
+{-# NOINLINE glColorMaskiOESFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs b/generated-src/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/DrawElementsBaseVertex.hs
@@ -0,0 +1,104 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.DrawElementsBaseVertex (
+  -- * Extension Support
+    gl_OES_draw_elements_base_vertex
+
+  -- * GL_OES_draw_elements_base_vertex
+  , glDrawElementsBaseVertexOES
+  , glDrawElementsInstancedBaseVertexOES
+  , glDrawRangeElementsBaseVertexOES
+  , glMultiDrawElementsBaseVertexOES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt GL_OES_draw_elements_base_vertex> extension is available.
+
+gl_OES_draw_elements_base_vertex :: Bool
+gl_OES_draw_elements_base_vertex = member "GL_OES_draw_elements_base_vertex" extensions
+{-# NOINLINE gl_OES_draw_elements_base_vertex #-}
+
+-- | Usage: @'glDrawElementsBaseVertexOES' mode count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsBaseVertex'.
+
+
+glDrawElementsBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawElementsBaseVertexOES = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexOESFunPtr
+
+glDrawElementsBaseVertexOESFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawElementsBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertexOES")
+
+{-# NOINLINE glDrawElementsBaseVertexOESFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertexOES' mode count type indices instancecount basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstancedBaseVertex'.
+
+
+glDrawElementsInstancedBaseVertexOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
+glDrawElementsInstancedBaseVertexOES = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexOESFunPtr
+
+glDrawElementsInstancedBaseVertexOESFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
+glDrawElementsInstancedBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexOES")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexOESFunPtr #-}
+
+-- | Usage: @'glDrawRangeElementsBaseVertexOES' mode start end count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawRangeElementsBaseVertex'.
+
+
+glDrawRangeElementsBaseVertexOES :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawRangeElementsBaseVertexOES = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexOESFunPtr
+
+glDrawRangeElementsBaseVertexOESFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawRangeElementsBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertexOES")
+
+{-# NOINLINE glDrawRangeElementsBaseVertexOESFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsBaseVertexOES' mode count type indices primcount basevertex@
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMultiDrawElementsBaseVertex'.
+
+
+glMultiDrawElementsBaseVertexOES :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
+glMultiDrawElementsBaseVertexOES = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexOESFunPtr
+
+glMultiDrawElementsBaseVertexOESFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
+glMultiDrawElementsBaseVertexOESFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertexOES")
+
+{-# NOINLINE glMultiDrawElementsBaseVertexOESFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/DrawTexture.hs b/generated-src/Graphics/GL/Ext/OES/DrawTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/DrawTexture.hs
@@ -0,0 +1,121 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.DrawTexture (
+  -- * Extension Support
+    gl_OES_draw_texture
+
+  -- * GL_OES_draw_texture
+  , glDrawTexfOES
+  , glDrawTexfvOES
+  , glDrawTexiOES
+  , glDrawTexivOES
+  , glDrawTexsOES
+  , glDrawTexsvOES
+  , glDrawTexxOES
+  , glDrawTexxvOES
+  , pattern GL_TEXTURE_CROP_RECT_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_draw_texture.txt GL_OES_draw_texture> extension is available.
+
+gl_OES_draw_texture :: Bool
+gl_OES_draw_texture = member "GL_OES_draw_texture" extensions
+{-# NOINLINE gl_OES_draw_texture #-}
+
+-- | Usage: @'glDrawTexfOES' x y z width height@
+
+
+glDrawTexfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glDrawTexfOES = ffifloatfloatfloatfloatfloatIOV glDrawTexfOESFunPtr
+
+glDrawTexfOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glDrawTexfOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexfOES")
+
+{-# NOINLINE glDrawTexfOESFunPtr #-}
+
+-- | Usage: @'glDrawTexfvOES' coords@
+
+
+glDrawTexfvOES :: MonadIO m => Ptr GLfloat -> m ()
+glDrawTexfvOES = ffiPtrfloatIOV glDrawTexfvOESFunPtr
+
+glDrawTexfvOESFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glDrawTexfvOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexfvOES")
+
+{-# NOINLINE glDrawTexfvOESFunPtr #-}
+
+-- | Usage: @'glDrawTexiOES' x y z width height@
+
+
+glDrawTexiOES :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glDrawTexiOES = ffiintintintintintIOV glDrawTexiOESFunPtr
+
+glDrawTexiOESFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glDrawTexiOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexiOES")
+
+{-# NOINLINE glDrawTexiOESFunPtr #-}
+
+-- | Usage: @'glDrawTexivOES' coords@
+
+
+glDrawTexivOES :: MonadIO m => Ptr GLint -> m ()
+glDrawTexivOES = ffiPtrintIOV glDrawTexivOESFunPtr
+
+glDrawTexivOESFunPtr :: FunPtr (Ptr GLint -> IO ())
+glDrawTexivOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexivOES")
+
+{-# NOINLINE glDrawTexivOESFunPtr #-}
+
+-- | Usage: @'glDrawTexsOES' x y z width height@
+
+
+glDrawTexsOES :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glDrawTexsOES = ffishortshortshortshortshortIOV glDrawTexsOESFunPtr
+
+glDrawTexsOESFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glDrawTexsOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexsOES")
+
+{-# NOINLINE glDrawTexsOESFunPtr #-}
+
+-- | Usage: @'glDrawTexsvOES' coords@
+
+
+glDrawTexsvOES :: MonadIO m => Ptr GLshort -> m ()
+glDrawTexsvOES = ffiPtrshortIOV glDrawTexsvOESFunPtr
+
+glDrawTexsvOESFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glDrawTexsvOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexsvOES")
+
+{-# NOINLINE glDrawTexsvOESFunPtr #-}
+
+-- | Usage: @'glDrawTexxOES' x y z width height@
+
+
+glDrawTexxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glDrawTexxOES = ffifixedfixedfixedfixedfixedIOV glDrawTexxOESFunPtr
+
+glDrawTexxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glDrawTexxOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexxOES")
+
+{-# NOINLINE glDrawTexxOESFunPtr #-}
+
+-- | Usage: @'glDrawTexxvOES' coords@
+
+
+glDrawTexxvOES :: MonadIO m => Ptr GLfixed -> m ()
+glDrawTexxvOES = ffiPtrfixedIOV glDrawTexxvOESFunPtr
+
+glDrawTexxvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glDrawTexxvOESFunPtr = unsafePerformIO (getProcAddress "glDrawTexxvOES")
+
+{-# NOINLINE glDrawTexxvOESFunPtr #-}
+
+pattern GL_TEXTURE_CROP_RECT_OES = 0x8B9D
diff --git a/generated-src/Graphics/GL/Ext/OES/EGLImage.hs b/generated-src/Graphics/GL/Ext/OES/EGLImage.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/EGLImage.hs
@@ -0,0 +1,46 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.EGLImage (
+  -- * Extension Support
+    gl_OES_EGL_image
+
+  -- * GL_OES_EGL_image
+  , glEGLImageTargetRenderbufferStorageOES
+  , glEGLImageTargetTexture2DOES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt GL_OES_EGL_image> extension is available.
+
+gl_OES_EGL_image :: Bool
+gl_OES_EGL_image = member "GL_OES_EGL_image" extensions
+{-# NOINLINE gl_OES_EGL_image #-}
+
+-- | Usage: @'glEGLImageTargetRenderbufferStorageOES' target image@
+
+
+glEGLImageTargetRenderbufferStorageOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()
+glEGLImageTargetRenderbufferStorageOES = ffienumeglImageOESIOV glEGLImageTargetRenderbufferStorageOESFunPtr
+
+glEGLImageTargetRenderbufferStorageOESFunPtr :: FunPtr (GLenum -> GLeglImageOES -> IO ())
+glEGLImageTargetRenderbufferStorageOESFunPtr = unsafePerformIO (getProcAddress "glEGLImageTargetRenderbufferStorageOES")
+
+{-# NOINLINE glEGLImageTargetRenderbufferStorageOESFunPtr #-}
+
+-- | Usage: @'glEGLImageTargetTexture2DOES' target image@
+
+
+glEGLImageTargetTexture2DOES :: MonadIO m => GLenum -> GLeglImageOES -> m ()
+glEGLImageTargetTexture2DOES = ffienumeglImageOESIOV glEGLImageTargetTexture2DOESFunPtr
+
+glEGLImageTargetTexture2DOESFunPtr :: FunPtr (GLenum -> GLeglImageOES -> IO ())
+glEGLImageTargetTexture2DOESFunPtr = unsafePerformIO (getProcAddress "glEGLImageTargetTexture2DOES")
+
+{-# NOINLINE glEGLImageTargetTexture2DOESFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/EGLImageExternal.hs b/generated-src/Graphics/GL/Ext/OES/EGLImageExternal.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/EGLImageExternal.hs
@@ -0,0 +1,24 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.EGLImageExternal (
+  -- * Extension Support
+    gl_OES_EGL_image_external
+
+  -- * GL_OES_EGL_image_external
+  , pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
+  , pattern GL_SAMPLER_EXTERNAL_OES
+  , pattern GL_TEXTURE_BINDING_EXTERNAL_OES
+  , pattern GL_TEXTURE_EXTERNAL_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external.txt GL_OES_EGL_image_external> extension is available.
+
+gl_OES_EGL_image_external :: Bool
+gl_OES_EGL_image_external = member "GL_OES_EGL_image_external" extensions
+{-# NOINLINE gl_OES_EGL_image_external #-}
+
+pattern GL_SAMPLER_EXTERNAL_OES = 0x8D66
diff --git a/generated-src/Graphics/GL/Ext/OES/EGLImageExternalEssl3.hs b/generated-src/Graphics/GL/Ext/OES/EGLImageExternalEssl3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/EGLImageExternalEssl3.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.EGLImageExternalEssl3 (
+  -- * Extension Support
+    gl_OES_EGL_image_external_essl3
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external_essl3.txt GL_OES_EGL_image_external_essl3> extension is available.
+
+gl_OES_EGL_image_external_essl3 :: Bool
+gl_OES_EGL_image_external_essl3 = member "GL_OES_EGL_image_external_essl3" extensions
+{-# NOINLINE gl_OES_EGL_image_external_essl3 #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/ElementIndexUint.hs b/generated-src/Graphics/GL/Ext/OES/ElementIndexUint.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ElementIndexUint.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ElementIndexUint (
+  -- * Extension Support
+    gl_OES_element_index_uint
+
+  -- * GL_OES_element_index_uint
+  , pattern GL_UNSIGNED_INT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_element_index_uint.txt GL_OES_element_index_uint> extension is available.
+
+gl_OES_element_index_uint :: Bool
+gl_OES_element_index_uint = member "GL_OES_element_index_uint" extensions
+{-# NOINLINE gl_OES_element_index_uint #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/ExtendedMatrixPalette.hs b/generated-src/Graphics/GL/Ext/OES/ExtendedMatrixPalette.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ExtendedMatrixPalette.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ExtendedMatrixPalette (
+  -- * Extension Support
+    gl_OES_extended_matrix_palette
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_extended_matrix_palette.txt GL_OES_extended_matrix_palette> extension is available.
+
+gl_OES_extended_matrix_palette :: Bool
+gl_OES_extended_matrix_palette = member "GL_OES_extended_matrix_palette" extensions
+{-# NOINLINE gl_OES_extended_matrix_palette #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/FboRenderMipmap.hs b/generated-src/Graphics/GL/Ext/OES/FboRenderMipmap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/FboRenderMipmap.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.FboRenderMipmap (
+  -- * Extension Support
+    gl_OES_fbo_render_mipmap
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_fbo_render_mipmap.txt GL_OES_fbo_render_mipmap> extension is available.
+
+gl_OES_fbo_render_mipmap :: Bool
+gl_OES_fbo_render_mipmap = member "GL_OES_fbo_render_mipmap" extensions
+{-# NOINLINE gl_OES_fbo_render_mipmap #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/FixedPoint.hs b/generated-src/Graphics/GL/Ext/OES/FixedPoint.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/FixedPoint.hs
@@ -0,0 +1,1415 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.FixedPoint (
+  -- * Extension Support
+    gl_OES_fixed_point
+
+  -- * GL_OES_fixed_point
+  , glAccumxOES
+  , glAlphaFuncxOES
+  , glBitmapxOES
+  , glBlendColorxOES
+  , glClearAccumxOES
+  , glClearColorxOES
+  , glClearDepthxOES
+  , glClipPlanexOES
+  , glColor3xOES
+  , glColor3xvOES
+  , glColor4xOES
+  , glColor4xvOES
+  , glConvolutionParameterxOES
+  , glConvolutionParameterxvOES
+  , glDepthRangexOES
+  , glEvalCoord1xOES
+  , glEvalCoord1xvOES
+  , glEvalCoord2xOES
+  , glEvalCoord2xvOES
+  , glFeedbackBufferxOES
+  , glFogxOES
+  , glFogxvOES
+  , glFrustumxOES
+  , glGetClipPlanexOES
+  , glGetConvolutionParameterxvOES
+  , glGetFixedvOES
+  , glGetHistogramParameterxvOES
+  , glGetLightxOES
+  , glGetLightxvOES
+  , glGetMapxvOES
+  , glGetMaterialxOES
+  , glGetMaterialxvOES
+  , glGetPixelMapxv
+  , glGetTexEnvxvOES
+  , glGetTexGenxvOES
+  , glGetTexLevelParameterxvOES
+  , glGetTexParameterxvOES
+  , glIndexxOES
+  , glIndexxvOES
+  , glLightModelxOES
+  , glLightModelxvOES
+  , glLightxOES
+  , glLightxvOES
+  , glLineWidthxOES
+  , glLoadMatrixxOES
+  , glLoadTransposeMatrixxOES
+  , glMap1xOES
+  , glMap2xOES
+  , glMapGrid1xOES
+  , glMapGrid2xOES
+  , glMaterialxOES
+  , glMaterialxvOES
+  , glMultMatrixxOES
+  , glMultTransposeMatrixxOES
+  , glMultiTexCoord1xOES
+  , glMultiTexCoord1xvOES
+  , glMultiTexCoord2xOES
+  , glMultiTexCoord2xvOES
+  , glMultiTexCoord3xOES
+  , glMultiTexCoord3xvOES
+  , glMultiTexCoord4xOES
+  , glMultiTexCoord4xvOES
+  , glNormal3xOES
+  , glNormal3xvOES
+  , glOrthoxOES
+  , glPassThroughxOES
+  , glPixelMapx
+  , glPixelStorex
+  , glPixelTransferxOES
+  , glPixelZoomxOES
+  , glPointParameterxOES
+  , glPointParameterxvOES
+  , glPointSizexOES
+  , glPolygonOffsetxOES
+  , glPrioritizeTexturesxOES
+  , glRasterPos2xOES
+  , glRasterPos2xvOES
+  , glRasterPos3xOES
+  , glRasterPos3xvOES
+  , glRasterPos4xOES
+  , glRasterPos4xvOES
+  , glRectxOES
+  , glRectxvOES
+  , glRotatexOES
+  , glSampleCoveragexOES
+  , glScalexOES
+  , glTexCoord1xOES
+  , glTexCoord1xvOES
+  , glTexCoord2xOES
+  , glTexCoord2xvOES
+  , glTexCoord3xOES
+  , glTexCoord3xvOES
+  , glTexCoord4xOES
+  , glTexCoord4xvOES
+  , glTexEnvxOES
+  , glTexEnvxvOES
+  , glTexGenxOES
+  , glTexGenxvOES
+  , glTexParameterxOES
+  , glTexParameterxvOES
+  , glTranslatexOES
+  , glVertex2xOES
+  , glVertex2xvOES
+  , glVertex3xOES
+  , glVertex3xvOES
+  , glVertex4xOES
+  , glVertex4xvOES
+  , pattern GL_FIXED_OES
+) 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://www.khronos.org/registry/gles/extensions/OES/OES_fixed_point.txt GL_OES_fixed_point> extension is available.
+
+gl_OES_fixed_point :: Bool
+gl_OES_fixed_point = member "GL_OES_fixed_point" extensions
+{-# NOINLINE gl_OES_fixed_point #-}
+
+-- | Usage: @'glAccumxOES' op value@
+
+
+glAccumxOES :: MonadIO m => GLenum -> GLfixed -> m ()
+glAccumxOES = ffienumfixedIOV glAccumxOESFunPtr
+
+glAccumxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glAccumxOESFunPtr = unsafePerformIO (getProcAddress "glAccumxOES")
+
+{-# NOINLINE glAccumxOESFunPtr #-}
+
+-- | Usage: @'glAlphaFuncxOES' func ref@
+--
+-- The parameter @ref@ is a @ClampedFixed@.
+
+
+glAlphaFuncxOES :: MonadIO m => GLenum -> GLfixed -> m ()
+glAlphaFuncxOES = ffienumfixedIOV glAlphaFuncxOESFunPtr
+
+glAlphaFuncxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glAlphaFuncxOESFunPtr = unsafePerformIO (getProcAddress "glAlphaFuncxOES")
+
+{-# NOINLINE glAlphaFuncxOESFunPtr #-}
+
+-- | Usage: @'glBitmapxOES' width height xorig yorig xmove ymove bitmap@
+--
+-- The length of @bitmap@ should be @COMPSIZE(width,height)@.
+
+
+glBitmapxOES :: MonadIO m => GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
+glBitmapxOES = ffisizeisizeifixedfixedfixedfixedPtrubyteIOV glBitmapxOESFunPtr
+
+glBitmapxOESFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ())
+glBitmapxOESFunPtr = unsafePerformIO (getProcAddress "glBitmapxOES")
+
+{-# NOINLINE glBitmapxOESFunPtr #-}
+
+-- | Usage: @'glBlendColorxOES' red green blue alpha@
+--
+-- The parameter @red@ is a @ClampedFixed@.
+--
+-- The parameter @green@ is a @ClampedFixed@.
+--
+-- The parameter @blue@ is a @ClampedFixed@.
+--
+-- The parameter @alpha@ is a @ClampedFixed@.
+
+
+glBlendColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glBlendColorxOES = ffifixedfixedfixedfixedIOV glBlendColorxOESFunPtr
+
+glBlendColorxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glBlendColorxOESFunPtr = unsafePerformIO (getProcAddress "glBlendColorxOES")
+
+{-# NOINLINE glBlendColorxOESFunPtr #-}
+
+-- | Usage: @'glClearAccumxOES' red green blue alpha@
+--
+-- The parameter @red@ is a @ClampedFixed@.
+--
+-- The parameter @green@ is a @ClampedFixed@.
+--
+-- The parameter @blue@ is a @ClampedFixed@.
+--
+-- The parameter @alpha@ is a @ClampedFixed@.
+
+
+glClearAccumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glClearAccumxOES = ffifixedfixedfixedfixedIOV glClearAccumxOESFunPtr
+
+glClearAccumxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glClearAccumxOESFunPtr = unsafePerformIO (getProcAddress "glClearAccumxOES")
+
+{-# NOINLINE glClearAccumxOESFunPtr #-}
+
+-- | Usage: @'glClearColorxOES' red green blue alpha@
+--
+-- The parameter @red@ is a @ClampedFixed@.
+--
+-- The parameter @green@ is a @ClampedFixed@.
+--
+-- The parameter @blue@ is a @ClampedFixed@.
+--
+-- The parameter @alpha@ is a @ClampedFixed@.
+
+
+glClearColorxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glClearColorxOES = ffifixedfixedfixedfixedIOV glClearColorxOESFunPtr
+
+glClearColorxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glClearColorxOESFunPtr = unsafePerformIO (getProcAddress "glClearColorxOES")
+
+{-# NOINLINE glClearColorxOESFunPtr #-}
+
+-- | Usage: @'glClearDepthxOES' depth@
+--
+-- The parameter @depth@ is a @ClampedFixed@.
+
+
+glClearDepthxOES :: MonadIO m => GLfixed -> m ()
+glClearDepthxOES = ffifixedIOV glClearDepthxOESFunPtr
+
+glClearDepthxOESFunPtr :: FunPtr (GLfixed -> IO ())
+glClearDepthxOESFunPtr = unsafePerformIO (getProcAddress "glClearDepthxOES")
+
+{-# NOINLINE glClearDepthxOESFunPtr #-}
+
+-- | Usage: @'glClipPlanexOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glClipPlanexOES = ffienumPtrfixedIOV glClipPlanexOESFunPtr
+
+glClipPlanexOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glClipPlanexOESFunPtr = unsafePerformIO (getProcAddress "glClipPlanexOES")
+
+{-# NOINLINE glClipPlanexOESFunPtr #-}
+
+-- | Usage: @'glColor3xOES' red green blue@
+
+
+glColor3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glColor3xOES = ffifixedfixedfixedIOV glColor3xOESFunPtr
+
+glColor3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glColor3xOESFunPtr = unsafePerformIO (getProcAddress "glColor3xOES")
+
+{-# NOINLINE glColor3xOESFunPtr #-}
+
+-- | Usage: @'glColor3xvOES' components@
+--
+-- The length of @components@ should be @3@.
+
+
+glColor3xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glColor3xvOES = ffiPtrfixedIOV glColor3xvOESFunPtr
+
+glColor3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glColor3xvOESFunPtr = unsafePerformIO (getProcAddress "glColor3xvOES")
+
+{-# NOINLINE glColor3xvOESFunPtr #-}
+
+-- | Usage: @'glColor4xOES' red green blue alpha@
+
+
+glColor4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glColor4xOES = ffifixedfixedfixedfixedIOV glColor4xOESFunPtr
+
+glColor4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glColor4xOESFunPtr = unsafePerformIO (getProcAddress "glColor4xOES")
+
+{-# NOINLINE glColor4xOESFunPtr #-}
+
+-- | Usage: @'glColor4xvOES' components@
+--
+-- The length of @components@ should be @4@.
+
+
+glColor4xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glColor4xvOES = ffiPtrfixedIOV glColor4xvOESFunPtr
+
+glColor4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glColor4xvOESFunPtr = unsafePerformIO (getProcAddress "glColor4xvOES")
+
+{-# NOINLINE glColor4xvOESFunPtr #-}
+
+-- | Usage: @'glConvolutionParameterxOES' target pname param@
+
+
+glConvolutionParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glConvolutionParameterxOES = ffienumenumfixedIOV glConvolutionParameterxOESFunPtr
+
+glConvolutionParameterxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glConvolutionParameterxOESFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterxOES")
+
+{-# NOINLINE glConvolutionParameterxOESFunPtr #-}
+
+-- | Usage: @'glConvolutionParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glConvolutionParameterxvOES = ffienumenumPtrfixedIOV glConvolutionParameterxvOESFunPtr
+
+glConvolutionParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glConvolutionParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glConvolutionParameterxvOES")
+
+{-# NOINLINE glConvolutionParameterxvOESFunPtr #-}
+
+-- | Usage: @'glDepthRangexOES' n f@
+--
+-- The parameter @n@ is a @ClampedFixed@.
+--
+-- The parameter @f@ is a @ClampedFixed@.
+
+
+glDepthRangexOES :: MonadIO m => GLfixed -> GLfixed -> m ()
+glDepthRangexOES = ffifixedfixedIOV glDepthRangexOESFunPtr
+
+glDepthRangexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glDepthRangexOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangexOES")
+
+{-# NOINLINE glDepthRangexOESFunPtr #-}
+
+-- | Usage: @'glEvalCoord1xOES' u@
+
+
+glEvalCoord1xOES :: MonadIO m => GLfixed -> m ()
+glEvalCoord1xOES = ffifixedIOV glEvalCoord1xOESFunPtr
+
+glEvalCoord1xOESFunPtr :: FunPtr (GLfixed -> IO ())
+glEvalCoord1xOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1xOES")
+
+{-# NOINLINE glEvalCoord1xOESFunPtr #-}
+
+-- | Usage: @'glEvalCoord1xvOES' coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glEvalCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glEvalCoord1xvOES = ffiPtrfixedIOV glEvalCoord1xvOESFunPtr
+
+glEvalCoord1xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glEvalCoord1xvOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1xvOES")
+
+{-# NOINLINE glEvalCoord1xvOESFunPtr #-}
+
+-- | Usage: @'glEvalCoord2xOES' u v@
+
+
+glEvalCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
+glEvalCoord2xOES = ffifixedfixedIOV glEvalCoord2xOESFunPtr
+
+glEvalCoord2xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glEvalCoord2xOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2xOES")
+
+{-# NOINLINE glEvalCoord2xOESFunPtr #-}
+
+-- | Usage: @'glEvalCoord2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glEvalCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glEvalCoord2xvOES = ffiPtrfixedIOV glEvalCoord2xvOESFunPtr
+
+glEvalCoord2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glEvalCoord2xvOESFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2xvOES")
+
+{-# NOINLINE glEvalCoord2xvOESFunPtr #-}
+
+-- | Usage: @'glFeedbackBufferxOES' n type buffer@
+--
+-- The length of @buffer@ should be @n@.
+
+
+glFeedbackBufferxOES :: MonadIO m => GLsizei -> GLenum -> Ptr GLfixed -> m ()
+glFeedbackBufferxOES = ffisizeienumPtrfixedIOV glFeedbackBufferxOESFunPtr
+
+glFeedbackBufferxOESFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ())
+glFeedbackBufferxOESFunPtr = unsafePerformIO (getProcAddress "glFeedbackBufferxOES")
+
+{-# NOINLINE glFeedbackBufferxOESFunPtr #-}
+
+-- | Usage: @'glFogxOES' pname param@
+
+
+glFogxOES :: MonadIO m => GLenum -> GLfixed -> m ()
+glFogxOES = ffienumfixedIOV glFogxOESFunPtr
+
+glFogxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glFogxOESFunPtr = unsafePerformIO (getProcAddress "glFogxOES")
+
+{-# NOINLINE glFogxOESFunPtr #-}
+
+-- | Usage: @'glFogxvOES' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glFogxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glFogxvOES = ffienumPtrfixedIOV glFogxvOESFunPtr
+
+glFogxvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glFogxvOESFunPtr = unsafePerformIO (getProcAddress "glFogxvOES")
+
+{-# NOINLINE glFogxvOESFunPtr #-}
+
+-- | Usage: @'glFrustumxOES' l r b t n f@
+
+
+glFrustumxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glFrustumxOES = ffifixedfixedfixedfixedfixedfixedIOV glFrustumxOESFunPtr
+
+glFrustumxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glFrustumxOESFunPtr = unsafePerformIO (getProcAddress "glFrustumxOES")
+
+{-# NOINLINE glFrustumxOESFunPtr #-}
+
+-- | Usage: @'glGetClipPlanexOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlanexOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glGetClipPlanexOES = ffienumPtrfixedIOV glGetClipPlanexOESFunPtr
+
+glGetClipPlanexOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glGetClipPlanexOESFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanexOES")
+
+{-# NOINLINE glGetClipPlanexOESFunPtr #-}
+
+-- | Usage: @'glGetConvolutionParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetConvolutionParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetConvolutionParameterxvOES = ffienumenumPtrfixedIOV glGetConvolutionParameterxvOESFunPtr
+
+glGetConvolutionParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetConvolutionParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetConvolutionParameterxvOES")
+
+{-# NOINLINE glGetConvolutionParameterxvOESFunPtr #-}
+
+-- | Usage: @'glGetFixedvOES' pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFixedvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glGetFixedvOES = ffienumPtrfixedIOV glGetFixedvOESFunPtr
+
+glGetFixedvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glGetFixedvOESFunPtr = unsafePerformIO (getProcAddress "glGetFixedvOES")
+
+{-# NOINLINE glGetFixedvOESFunPtr #-}
+
+-- | Usage: @'glGetHistogramParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetHistogramParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetHistogramParameterxvOES = ffienumenumPtrfixedIOV glGetHistogramParameterxvOESFunPtr
+
+glGetHistogramParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetHistogramParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetHistogramParameterxvOES")
+
+{-# NOINLINE glGetHistogramParameterxvOESFunPtr #-}
+
+-- | Usage: @'glGetLightxOES' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightxOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetLightxOES = ffienumenumPtrfixedIOV glGetLightxOESFunPtr
+
+glGetLightxOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetLightxOESFunPtr = unsafePerformIO (getProcAddress "glGetLightxOES")
+
+{-# NOINLINE glGetLightxOESFunPtr #-}
+
+-- | Usage: @'glGetLightxvOES' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetLightxvOES = ffienumenumPtrfixedIOV glGetLightxvOESFunPtr
+
+glGetLightxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetLightxvOESFunPtr = unsafePerformIO (getProcAddress "glGetLightxvOES")
+
+{-# NOINLINE glGetLightxvOESFunPtr #-}
+
+-- | Usage: @'glGetMapxvOES' target query v@
+--
+-- The length of @v@ should be @COMPSIZE(query)@.
+
+
+glGetMapxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetMapxvOES = ffienumenumPtrfixedIOV glGetMapxvOESFunPtr
+
+glGetMapxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetMapxvOESFunPtr = unsafePerformIO (getProcAddress "glGetMapxvOES")
+
+{-# NOINLINE glGetMapxvOESFunPtr #-}
+
+-- | Usage: @'glGetMaterialxOES' face pname param@
+
+
+glGetMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glGetMaterialxOES = ffienumenumfixedIOV glGetMaterialxOESFunPtr
+
+glGetMaterialxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glGetMaterialxOESFunPtr = unsafePerformIO (getProcAddress "glGetMaterialxOES")
+
+{-# NOINLINE glGetMaterialxOESFunPtr #-}
+
+-- | Usage: @'glGetMaterialxvOES' face pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetMaterialxvOES = ffienumenumPtrfixedIOV glGetMaterialxvOESFunPtr
+
+glGetMaterialxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetMaterialxvOESFunPtr = unsafePerformIO (getProcAddress "glGetMaterialxvOES")
+
+{-# NOINLINE glGetMaterialxvOESFunPtr #-}
+
+-- | Usage: @'glGetPixelMapxv' map size values@
+--
+-- The length of @values@ should be @size@.
+
+
+glGetPixelMapxv :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
+glGetPixelMapxv = ffienumintPtrfixedIOV glGetPixelMapxvFunPtr
+
+glGetPixelMapxvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ())
+glGetPixelMapxvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapxv")
+
+{-# NOINLINE glGetPixelMapxvFunPtr #-}
+
+-- | Usage: @'glGetTexEnvxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexEnvxvOES = ffienumenumPtrfixedIOV glGetTexEnvxvOESFunPtr
+
+glGetTexEnvxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexEnvxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvxvOES")
+
+{-# NOINLINE glGetTexEnvxvOESFunPtr #-}
+
+-- | Usage: @'glGetTexLevelParameterxvOES' target level pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexLevelParameterxvOES :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
+glGetTexLevelParameterxvOES = ffienumintenumPtrfixedIOV glGetTexLevelParameterxvOESFunPtr
+
+glGetTexLevelParameterxvOESFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexLevelParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterxvOES")
+
+{-# NOINLINE glGetTexLevelParameterxvOESFunPtr #-}
+
+-- | Usage: @'glGetTexParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexParameterxvOES = ffienumenumPtrfixedIOV glGetTexParameterxvOESFunPtr
+
+glGetTexParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterxvOES")
+
+{-# NOINLINE glGetTexParameterxvOESFunPtr #-}
+
+-- | Usage: @'glIndexxOES' component@
+
+
+glIndexxOES :: MonadIO m => GLfixed -> m ()
+glIndexxOES = ffifixedIOV glIndexxOESFunPtr
+
+glIndexxOESFunPtr :: FunPtr (GLfixed -> IO ())
+glIndexxOESFunPtr = unsafePerformIO (getProcAddress "glIndexxOES")
+
+{-# NOINLINE glIndexxOESFunPtr #-}
+
+-- | Usage: @'glIndexxvOES' component@
+--
+-- The length of @component@ should be @1@.
+
+
+glIndexxvOES :: MonadIO m => Ptr GLfixed -> m ()
+glIndexxvOES = ffiPtrfixedIOV glIndexxvOESFunPtr
+
+glIndexxvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glIndexxvOESFunPtr = unsafePerformIO (getProcAddress "glIndexxvOES")
+
+{-# NOINLINE glIndexxvOESFunPtr #-}
+
+-- | Usage: @'glLightModelxOES' pname param@
+
+
+glLightModelxOES :: MonadIO m => GLenum -> GLfixed -> m ()
+glLightModelxOES = ffienumfixedIOV glLightModelxOESFunPtr
+
+glLightModelxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glLightModelxOESFunPtr = unsafePerformIO (getProcAddress "glLightModelxOES")
+
+{-# NOINLINE glLightModelxOESFunPtr #-}
+
+-- | Usage: @'glLightModelxvOES' pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glLightModelxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glLightModelxvOES = ffienumPtrfixedIOV glLightModelxvOESFunPtr
+
+glLightModelxvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glLightModelxvOESFunPtr = unsafePerformIO (getProcAddress "glLightModelxvOES")
+
+{-# NOINLINE glLightModelxvOESFunPtr #-}
+
+-- | Usage: @'glLightxOES' light pname param@
+
+
+glLightxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glLightxOES = ffienumenumfixedIOV glLightxOESFunPtr
+
+glLightxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glLightxOESFunPtr = unsafePerformIO (getProcAddress "glLightxOES")
+
+{-# NOINLINE glLightxOESFunPtr #-}
+
+-- | Usage: @'glLightxvOES' light pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glLightxvOES = ffienumenumPtrfixedIOV glLightxvOESFunPtr
+
+glLightxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glLightxvOESFunPtr = unsafePerformIO (getProcAddress "glLightxvOES")
+
+{-# NOINLINE glLightxvOESFunPtr #-}
+
+-- | Usage: @'glLineWidthxOES' width@
+
+
+glLineWidthxOES :: MonadIO m => GLfixed -> m ()
+glLineWidthxOES = ffifixedIOV glLineWidthxOESFunPtr
+
+glLineWidthxOESFunPtr :: FunPtr (GLfixed -> IO ())
+glLineWidthxOESFunPtr = unsafePerformIO (getProcAddress "glLineWidthxOES")
+
+{-# NOINLINE glLineWidthxOESFunPtr #-}
+
+-- | Usage: @'glLoadMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
+glLoadMatrixxOES = ffiPtrfixedIOV glLoadMatrixxOESFunPtr
+
+glLoadMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glLoadMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixxOES")
+
+{-# NOINLINE glLoadMatrixxOESFunPtr #-}
+
+-- | Usage: @'glLoadTransposeMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
+glLoadTransposeMatrixxOES = ffiPtrfixedIOV glLoadTransposeMatrixxOESFunPtr
+
+glLoadTransposeMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glLoadTransposeMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixxOES")
+
+{-# NOINLINE glLoadTransposeMatrixxOESFunPtr #-}
+
+-- | Usage: @'glMap1xOES' target u1 u2 stride order points@
+
+
+glMap1xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
+glMap1xOES = ffienumfixedfixedintintfixedIOV glMap1xOESFunPtr
+
+glMap1xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
+glMap1xOESFunPtr = unsafePerformIO (getProcAddress "glMap1xOES")
+
+{-# NOINLINE glMap1xOESFunPtr #-}
+
+-- | Usage: @'glMap2xOES' target u1 u2 ustride uorder v1 v2 vstride vorder points@
+
+
+glMap2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
+glMap2xOES = ffienumfixedfixedintintfixedfixedintintfixedIOV glMap2xOESFunPtr
+
+glMap2xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
+glMap2xOESFunPtr = unsafePerformIO (getProcAddress "glMap2xOES")
+
+{-# NOINLINE glMap2xOESFunPtr #-}
+
+-- | Usage: @'glMapGrid1xOES' n u1 u2@
+
+
+glMapGrid1xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> m ()
+glMapGrid1xOES = ffiintfixedfixedIOV glMapGrid1xOESFunPtr
+
+glMapGrid1xOESFunPtr :: FunPtr (GLint -> GLfixed -> GLfixed -> IO ())
+glMapGrid1xOESFunPtr = unsafePerformIO (getProcAddress "glMapGrid1xOES")
+
+{-# NOINLINE glMapGrid1xOESFunPtr #-}
+
+-- | Usage: @'glMapGrid2xOES' n u1 u2 v1 v2@
+
+
+glMapGrid2xOES :: MonadIO m => GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glMapGrid2xOES = ffiintfixedfixedfixedfixedIOV glMapGrid2xOESFunPtr
+
+glMapGrid2xOESFunPtr :: FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glMapGrid2xOESFunPtr = unsafePerformIO (getProcAddress "glMapGrid2xOES")
+
+{-# NOINLINE glMapGrid2xOESFunPtr #-}
+
+-- | Usage: @'glMaterialxOES' face pname param@
+
+
+glMaterialxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glMaterialxOES = ffienumenumfixedIOV glMaterialxOESFunPtr
+
+glMaterialxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glMaterialxOESFunPtr = unsafePerformIO (getProcAddress "glMaterialxOES")
+
+{-# NOINLINE glMaterialxOESFunPtr #-}
+
+-- | Usage: @'glMaterialxvOES' face pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glMaterialxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glMaterialxvOES = ffienumenumPtrfixedIOV glMaterialxvOESFunPtr
+
+glMaterialxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glMaterialxvOESFunPtr = unsafePerformIO (getProcAddress "glMaterialxvOES")
+
+{-# NOINLINE glMaterialxvOESFunPtr #-}
+
+-- | Usage: @'glMultMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
+glMultMatrixxOES = ffiPtrfixedIOV glMultMatrixxOESFunPtr
+
+glMultMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glMultMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glMultMatrixxOES")
+
+{-# NOINLINE glMultMatrixxOESFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixxOES' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultTransposeMatrixxOES :: MonadIO m => Ptr GLfixed -> m ()
+glMultTransposeMatrixxOES = ffiPtrfixedIOV glMultTransposeMatrixxOESFunPtr
+
+glMultTransposeMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glMultTransposeMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixxOES")
+
+{-# NOINLINE glMultTransposeMatrixxOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1xOES' texture s@
+
+
+glMultiTexCoord1xOES :: MonadIO m => GLenum -> GLfixed -> m ()
+glMultiTexCoord1xOES = ffienumfixedIOV glMultiTexCoord1xOESFunPtr
+
+glMultiTexCoord1xOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glMultiTexCoord1xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1xOES")
+
+{-# NOINLINE glMultiTexCoord1xOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1xvOES' texture coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoord1xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glMultiTexCoord1xvOES = ffienumPtrfixedIOV glMultiTexCoord1xvOESFunPtr
+
+glMultiTexCoord1xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glMultiTexCoord1xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1xvOES")
+
+{-# NOINLINE glMultiTexCoord1xvOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2xOES' texture s t@
+
+
+glMultiTexCoord2xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> m ()
+glMultiTexCoord2xOES = ffienumfixedfixedIOV glMultiTexCoord2xOESFunPtr
+
+glMultiTexCoord2xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> IO ())
+glMultiTexCoord2xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2xOES")
+
+{-# NOINLINE glMultiTexCoord2xOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2xvOES' texture coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glMultiTexCoord2xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glMultiTexCoord2xvOES = ffienumPtrfixedIOV glMultiTexCoord2xvOESFunPtr
+
+glMultiTexCoord2xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glMultiTexCoord2xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2xvOES")
+
+{-# NOINLINE glMultiTexCoord2xvOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3xOES' texture s t r@
+
+
+glMultiTexCoord3xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
+glMultiTexCoord3xOES = ffienumfixedfixedfixedIOV glMultiTexCoord3xOESFunPtr
+
+glMultiTexCoord3xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glMultiTexCoord3xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3xOES")
+
+{-# NOINLINE glMultiTexCoord3xOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3xvOES' texture coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glMultiTexCoord3xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glMultiTexCoord3xvOES = ffienumPtrfixedIOV glMultiTexCoord3xvOESFunPtr
+
+glMultiTexCoord3xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glMultiTexCoord3xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3xvOES")
+
+{-# NOINLINE glMultiTexCoord3xvOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4xOES' texture s t r q@
+
+
+glMultiTexCoord4xOES :: MonadIO m => GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glMultiTexCoord4xOES = ffienumfixedfixedfixedfixedIOV glMultiTexCoord4xOESFunPtr
+
+glMultiTexCoord4xOESFunPtr :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glMultiTexCoord4xOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4xOES")
+
+{-# NOINLINE glMultiTexCoord4xOESFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4xvOES' texture coords@
+--
+-- The length of @coords@ should be @4@.
+
+
+glMultiTexCoord4xvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glMultiTexCoord4xvOES = ffienumPtrfixedIOV glMultiTexCoord4xvOESFunPtr
+
+glMultiTexCoord4xvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glMultiTexCoord4xvOESFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4xvOES")
+
+{-# NOINLINE glMultiTexCoord4xvOESFunPtr #-}
+
+-- | Usage: @'glNormal3xOES' nx ny nz@
+
+
+glNormal3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glNormal3xOES = ffifixedfixedfixedIOV glNormal3xOESFunPtr
+
+glNormal3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glNormal3xOESFunPtr = unsafePerformIO (getProcAddress "glNormal3xOES")
+
+{-# NOINLINE glNormal3xOESFunPtr #-}
+
+-- | Usage: @'glNormal3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glNormal3xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glNormal3xvOES = ffiPtrfixedIOV glNormal3xvOESFunPtr
+
+glNormal3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glNormal3xvOESFunPtr = unsafePerformIO (getProcAddress "glNormal3xvOES")
+
+{-# NOINLINE glNormal3xvOESFunPtr #-}
+
+-- | Usage: @'glOrthoxOES' l r b t n f@
+
+
+glOrthoxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glOrthoxOES = ffifixedfixedfixedfixedfixedfixedIOV glOrthoxOESFunPtr
+
+glOrthoxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glOrthoxOESFunPtr = unsafePerformIO (getProcAddress "glOrthoxOES")
+
+{-# NOINLINE glOrthoxOESFunPtr #-}
+
+-- | Usage: @'glPassThroughxOES' token@
+
+
+glPassThroughxOES :: MonadIO m => GLfixed -> m ()
+glPassThroughxOES = ffifixedIOV glPassThroughxOESFunPtr
+
+glPassThroughxOESFunPtr :: FunPtr (GLfixed -> IO ())
+glPassThroughxOESFunPtr = unsafePerformIO (getProcAddress "glPassThroughxOES")
+
+{-# NOINLINE glPassThroughxOESFunPtr #-}
+
+-- | Usage: @'glPixelMapx' map size values@
+--
+-- The length of @values@ should be @size@.
+
+
+glPixelMapx :: MonadIO m => GLenum -> GLint -> Ptr GLfixed -> m ()
+glPixelMapx = ffienumintPtrfixedIOV glPixelMapxFunPtr
+
+glPixelMapxFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ())
+glPixelMapxFunPtr = unsafePerformIO (getProcAddress "glPixelMapx")
+
+{-# NOINLINE glPixelMapxFunPtr #-}
+
+-- | Usage: @'glPixelStorex' pname param@
+
+
+glPixelStorex :: MonadIO m => GLenum -> GLfixed -> m ()
+glPixelStorex = ffienumfixedIOV glPixelStorexFunPtr
+
+glPixelStorexFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glPixelStorexFunPtr = unsafePerformIO (getProcAddress "glPixelStorex")
+
+{-# NOINLINE glPixelStorexFunPtr #-}
+
+-- | Usage: @'glPixelTransferxOES' pname param@
+
+
+glPixelTransferxOES :: MonadIO m => GLenum -> GLfixed -> m ()
+glPixelTransferxOES = ffienumfixedIOV glPixelTransferxOESFunPtr
+
+glPixelTransferxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glPixelTransferxOESFunPtr = unsafePerformIO (getProcAddress "glPixelTransferxOES")
+
+{-# NOINLINE glPixelTransferxOESFunPtr #-}
+
+-- | Usage: @'glPixelZoomxOES' xfactor yfactor@
+
+
+glPixelZoomxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
+glPixelZoomxOES = ffifixedfixedIOV glPixelZoomxOESFunPtr
+
+glPixelZoomxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glPixelZoomxOESFunPtr = unsafePerformIO (getProcAddress "glPixelZoomxOES")
+
+{-# NOINLINE glPixelZoomxOESFunPtr #-}
+
+-- | Usage: @'glPointParameterxOES' pname param@
+
+
+glPointParameterxOES :: MonadIO m => GLenum -> GLfixed -> m ()
+glPointParameterxOES = ffienumfixedIOV glPointParameterxOESFunPtr
+
+glPointParameterxOESFunPtr :: FunPtr (GLenum -> GLfixed -> IO ())
+glPointParameterxOESFunPtr = unsafePerformIO (getProcAddress "glPointParameterxOES")
+
+{-# NOINLINE glPointParameterxOESFunPtr #-}
+
+-- | Usage: @'glPointParameterxvOES' pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameterxvOES :: MonadIO m => GLenum -> Ptr GLfixed -> m ()
+glPointParameterxvOES = ffienumPtrfixedIOV glPointParameterxvOESFunPtr
+
+glPointParameterxvOESFunPtr :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+glPointParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glPointParameterxvOES")
+
+{-# NOINLINE glPointParameterxvOESFunPtr #-}
+
+-- | Usage: @'glPointSizexOES' size@
+
+
+glPointSizexOES :: MonadIO m => GLfixed -> m ()
+glPointSizexOES = ffifixedIOV glPointSizexOESFunPtr
+
+glPointSizexOESFunPtr :: FunPtr (GLfixed -> IO ())
+glPointSizexOESFunPtr = unsafePerformIO (getProcAddress "glPointSizexOES")
+
+{-# NOINLINE glPointSizexOESFunPtr #-}
+
+-- | Usage: @'glPolygonOffsetxOES' factor units@
+
+
+glPolygonOffsetxOES :: MonadIO m => GLfixed -> GLfixed -> m ()
+glPolygonOffsetxOES = ffifixedfixedIOV glPolygonOffsetxOESFunPtr
+
+glPolygonOffsetxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glPolygonOffsetxOESFunPtr = unsafePerformIO (getProcAddress "glPolygonOffsetxOES")
+
+{-# NOINLINE glPolygonOffsetxOESFunPtr #-}
+
+-- | Usage: @'glPrioritizeTexturesxOES' n textures priorities@
+--
+-- The parameter @priorities@ is a @ClampedFixed@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @priorities@ should be @n@.
+
+
+glPrioritizeTexturesxOES :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()
+glPrioritizeTexturesxOES = ffisizeiPtruintPtrfixedIOV glPrioritizeTexturesxOESFunPtr
+
+glPrioritizeTexturesxOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ())
+glPrioritizeTexturesxOESFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTexturesxOES")
+
+{-# NOINLINE glPrioritizeTexturesxOESFunPtr #-}
+
+-- | Usage: @'glRasterPos2xOES' x y@
+
+
+glRasterPos2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
+glRasterPos2xOES = ffifixedfixedIOV glRasterPos2xOESFunPtr
+
+glRasterPos2xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glRasterPos2xOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos2xOES")
+
+{-# NOINLINE glRasterPos2xOESFunPtr #-}
+
+-- | Usage: @'glRasterPos2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glRasterPos2xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glRasterPos2xvOES = ffiPtrfixedIOV glRasterPos2xvOESFunPtr
+
+glRasterPos2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glRasterPos2xvOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos2xvOES")
+
+{-# NOINLINE glRasterPos2xvOESFunPtr #-}
+
+-- | Usage: @'glRasterPos3xOES' x y z@
+
+
+glRasterPos3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glRasterPos3xOES = ffifixedfixedfixedIOV glRasterPos3xOESFunPtr
+
+glRasterPos3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glRasterPos3xOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos3xOES")
+
+{-# NOINLINE glRasterPos3xOESFunPtr #-}
+
+-- | Usage: @'glRasterPos3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glRasterPos3xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glRasterPos3xvOES = ffiPtrfixedIOV glRasterPos3xvOESFunPtr
+
+glRasterPos3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glRasterPos3xvOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos3xvOES")
+
+{-# NOINLINE glRasterPos3xvOESFunPtr #-}
+
+-- | Usage: @'glRasterPos4xOES' x y z w@
+
+
+glRasterPos4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glRasterPos4xOES = ffifixedfixedfixedfixedIOV glRasterPos4xOESFunPtr
+
+glRasterPos4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glRasterPos4xOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos4xOES")
+
+{-# NOINLINE glRasterPos4xOESFunPtr #-}
+
+-- | Usage: @'glRasterPos4xvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
+glRasterPos4xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glRasterPos4xvOES = ffiPtrfixedIOV glRasterPos4xvOESFunPtr
+
+glRasterPos4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glRasterPos4xvOESFunPtr = unsafePerformIO (getProcAddress "glRasterPos4xvOES")
+
+{-# NOINLINE glRasterPos4xvOESFunPtr #-}
+
+-- | Usage: @'glRectxOES' x1 y1 x2 y2@
+
+
+glRectxOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glRectxOES = ffifixedfixedfixedfixedIOV glRectxOESFunPtr
+
+glRectxOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glRectxOESFunPtr = unsafePerformIO (getProcAddress "glRectxOES")
+
+{-# NOINLINE glRectxOESFunPtr #-}
+
+-- | Usage: @'glRectxvOES' v1 v2@
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectxvOES :: MonadIO m => Ptr GLfixed -> Ptr GLfixed -> m ()
+glRectxvOES = ffiPtrfixedPtrfixedIOV glRectxvOESFunPtr
+
+glRectxvOESFunPtr :: FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ())
+glRectxvOESFunPtr = unsafePerformIO (getProcAddress "glRectxvOES")
+
+{-# NOINLINE glRectxvOESFunPtr #-}
+
+-- | Usage: @'glRotatexOES' angle x y z@
+
+
+glRotatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glRotatexOES = ffifixedfixedfixedfixedIOV glRotatexOESFunPtr
+
+glRotatexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glRotatexOESFunPtr = unsafePerformIO (getProcAddress "glRotatexOES")
+
+{-# NOINLINE glRotatexOESFunPtr #-}
+
+-- | Usage: @'glSampleCoveragexOES' value invert@
+
+
+glSampleCoveragexOES :: MonadIO m => GLclampx -> GLboolean -> m ()
+glSampleCoveragexOES = fficlampxbooleanIOV glSampleCoveragexOESFunPtr
+
+glSampleCoveragexOESFunPtr :: FunPtr (GLclampx -> GLboolean -> IO ())
+glSampleCoveragexOESFunPtr = unsafePerformIO (getProcAddress "glSampleCoveragexOES")
+
+{-# NOINLINE glSampleCoveragexOESFunPtr #-}
+
+-- | Usage: @'glScalexOES' x y z@
+
+
+glScalexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glScalexOES = ffifixedfixedfixedIOV glScalexOESFunPtr
+
+glScalexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glScalexOESFunPtr = unsafePerformIO (getProcAddress "glScalexOES")
+
+{-# NOINLINE glScalexOESFunPtr #-}
+
+-- | Usage: @'glTexCoord1xOES' s@
+
+
+glTexCoord1xOES :: MonadIO m => GLfixed -> m ()
+glTexCoord1xOES = ffifixedIOV glTexCoord1xOESFunPtr
+
+glTexCoord1xOESFunPtr :: FunPtr (GLfixed -> IO ())
+glTexCoord1xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1xOES")
+
+{-# NOINLINE glTexCoord1xOESFunPtr #-}
+
+-- | Usage: @'glTexCoord1xvOES' coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoord1xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glTexCoord1xvOES = ffiPtrfixedIOV glTexCoord1xvOESFunPtr
+
+glTexCoord1xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glTexCoord1xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord1xvOES")
+
+{-# NOINLINE glTexCoord1xvOESFunPtr #-}
+
+-- | Usage: @'glTexCoord2xOES' s t@
+
+
+glTexCoord2xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
+glTexCoord2xOES = ffifixedfixedIOV glTexCoord2xOESFunPtr
+
+glTexCoord2xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glTexCoord2xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2xOES")
+
+{-# NOINLINE glTexCoord2xOESFunPtr #-}
+
+-- | Usage: @'glTexCoord2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glTexCoord2xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glTexCoord2xvOES = ffiPtrfixedIOV glTexCoord2xvOESFunPtr
+
+glTexCoord2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glTexCoord2xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord2xvOES")
+
+{-# NOINLINE glTexCoord2xvOESFunPtr #-}
+
+-- | Usage: @'glTexCoord3xOES' s t r@
+
+
+glTexCoord3xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glTexCoord3xOES = ffifixedfixedfixedIOV glTexCoord3xOESFunPtr
+
+glTexCoord3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glTexCoord3xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3xOES")
+
+{-# NOINLINE glTexCoord3xOESFunPtr #-}
+
+-- | Usage: @'glTexCoord3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glTexCoord3xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glTexCoord3xvOES = ffiPtrfixedIOV glTexCoord3xvOESFunPtr
+
+glTexCoord3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glTexCoord3xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord3xvOES")
+
+{-# NOINLINE glTexCoord3xvOESFunPtr #-}
+
+-- | Usage: @'glTexCoord4xOES' s t r q@
+
+
+glTexCoord4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+glTexCoord4xOES = ffifixedfixedfixedfixedIOV glTexCoord4xOESFunPtr
+
+glTexCoord4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+glTexCoord4xOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4xOES")
+
+{-# NOINLINE glTexCoord4xOESFunPtr #-}
+
+-- | Usage: @'glTexCoord4xvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
+glTexCoord4xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glTexCoord4xvOES = ffiPtrfixedIOV glTexCoord4xvOESFunPtr
+
+glTexCoord4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glTexCoord4xvOESFunPtr = unsafePerformIO (getProcAddress "glTexCoord4xvOES")
+
+{-# NOINLINE glTexCoord4xvOESFunPtr #-}
+
+-- | Usage: @'glTexEnvxOES' target pname param@
+
+
+glTexEnvxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexEnvxOES = ffienumenumfixedIOV glTexEnvxOESFunPtr
+
+glTexEnvxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexEnvxOESFunPtr = unsafePerformIO (getProcAddress "glTexEnvxOES")
+
+{-# NOINLINE glTexEnvxOESFunPtr #-}
+
+-- | Usage: @'glTexEnvxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexEnvxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexEnvxvOES = ffienumenumPtrfixedIOV glTexEnvxvOESFunPtr
+
+glTexEnvxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexEnvxvOESFunPtr = unsafePerformIO (getProcAddress "glTexEnvxvOES")
+
+{-# NOINLINE glTexEnvxvOESFunPtr #-}
+
+-- | Usage: @'glTexParameterxOES' target pname param@
+
+
+glTexParameterxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexParameterxOES = ffienumenumfixedIOV glTexParameterxOESFunPtr
+
+glTexParameterxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexParameterxOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterxOES")
+
+{-# NOINLINE glTexParameterxOESFunPtr #-}
+
+-- | Usage: @'glTexParameterxvOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexParameterxvOES = ffienumenumPtrfixedIOV glTexParameterxvOESFunPtr
+
+glTexParameterxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexParameterxvOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterxvOES")
+
+{-# NOINLINE glTexParameterxvOESFunPtr #-}
+
+-- | Usage: @'glTranslatexOES' x y z@
+
+
+glTranslatexOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glTranslatexOES = ffifixedfixedfixedIOV glTranslatexOESFunPtr
+
+glTranslatexOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glTranslatexOESFunPtr = unsafePerformIO (getProcAddress "glTranslatexOES")
+
+{-# NOINLINE glTranslatexOESFunPtr #-}
+
+-- | Usage: @'glVertex2xOES' x@
+
+
+glVertex2xOES :: MonadIO m => GLfixed -> m ()
+glVertex2xOES = ffifixedIOV glVertex2xOESFunPtr
+
+glVertex2xOESFunPtr :: FunPtr (GLfixed -> IO ())
+glVertex2xOESFunPtr = unsafePerformIO (getProcAddress "glVertex2xOES")
+
+{-# NOINLINE glVertex2xOESFunPtr #-}
+
+-- | Usage: @'glVertex2xvOES' coords@
+--
+-- The length of @coords@ should be @2@.
+
+
+glVertex2xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glVertex2xvOES = ffiPtrfixedIOV glVertex2xvOESFunPtr
+
+glVertex2xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glVertex2xvOESFunPtr = unsafePerformIO (getProcAddress "glVertex2xvOES")
+
+{-# NOINLINE glVertex2xvOESFunPtr #-}
+
+-- | Usage: @'glVertex3xOES' x y@
+
+
+glVertex3xOES :: MonadIO m => GLfixed -> GLfixed -> m ()
+glVertex3xOES = ffifixedfixedIOV glVertex3xOESFunPtr
+
+glVertex3xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> IO ())
+glVertex3xOESFunPtr = unsafePerformIO (getProcAddress "glVertex3xOES")
+
+{-# NOINLINE glVertex3xOESFunPtr #-}
+
+-- | Usage: @'glVertex3xvOES' coords@
+--
+-- The length of @coords@ should be @3@.
+
+
+glVertex3xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glVertex3xvOES = ffiPtrfixedIOV glVertex3xvOESFunPtr
+
+glVertex3xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glVertex3xvOESFunPtr = unsafePerformIO (getProcAddress "glVertex3xvOES")
+
+{-# NOINLINE glVertex3xvOESFunPtr #-}
+
+-- | Usage: @'glVertex4xOES' x y z@
+
+
+glVertex4xOES :: MonadIO m => GLfixed -> GLfixed -> GLfixed -> m ()
+glVertex4xOES = ffifixedfixedfixedIOV glVertex4xOESFunPtr
+
+glVertex4xOESFunPtr :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+glVertex4xOESFunPtr = unsafePerformIO (getProcAddress "glVertex4xOES")
+
+{-# NOINLINE glVertex4xOESFunPtr #-}
+
+-- | Usage: @'glVertex4xvOES' coords@
+--
+-- The length of @coords@ should be @4@.
+
+
+glVertex4xvOES :: MonadIO m => Ptr GLfixed -> m ()
+glVertex4xvOES = ffiPtrfixedIOV glVertex4xvOESFunPtr
+
+glVertex4xvOESFunPtr :: FunPtr (Ptr GLfixed -> IO ())
+glVertex4xvOESFunPtr = unsafePerformIO (getProcAddress "glVertex4xvOES")
+
+{-# NOINLINE glVertex4xvOESFunPtr #-}
+
+pattern GL_FIXED_OES = 0x140C
diff --git a/generated-src/Graphics/GL/Ext/OES/FragmentPrecisionHigh.hs b/generated-src/Graphics/GL/Ext/OES/FragmentPrecisionHigh.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/FragmentPrecisionHigh.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.FragmentPrecisionHigh (
+  -- * Extension Support
+    gl_OES_fragment_precision_high
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_fragment_precision_high.txt GL_OES_fragment_precision_high> extension is available.
+
+gl_OES_fragment_precision_high :: Bool
+gl_OES_fragment_precision_high = member "GL_OES_fragment_precision_high" extensions
+{-# NOINLINE gl_OES_fragment_precision_high #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/FramebufferObject.hs b/generated-src/Graphics/GL/Ext/OES/FramebufferObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/FramebufferObject.hs
@@ -0,0 +1,306 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.FramebufferObject (
+  -- * Extension Support
+    gl_OES_framebuffer_object
+
+  -- * GL_OES_framebuffer_object
+  , glBindFramebufferOES
+  , glBindRenderbufferOES
+  , glCheckFramebufferStatusOES
+  , glDeleteFramebuffersOES
+  , glDeleteRenderbuffersOES
+  , glFramebufferRenderbufferOES
+  , glFramebufferTexture2DOES
+  , glGenFramebuffersOES
+  , glGenRenderbuffersOES
+  , glGenerateMipmapOES
+  , glGetFramebufferAttachmentParameterivOES
+  , glGetRenderbufferParameterivOES
+  , glIsFramebufferOES
+  , glIsRenderbufferOES
+  , glRenderbufferStorageOES
+  , pattern GL_COLOR_ATTACHMENT0_OES
+  , pattern GL_DEPTH_ATTACHMENT_OES
+  , pattern GL_DEPTH_COMPONENT16_OES
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES
+  , pattern GL_FRAMEBUFFER_BINDING_OES
+  , pattern GL_FRAMEBUFFER_COMPLETE_OES
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES
+  , pattern GL_FRAMEBUFFER_OES
+  , pattern GL_FRAMEBUFFER_UNSUPPORTED_OES
+  , pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES
+  , pattern GL_MAX_RENDERBUFFER_SIZE_OES
+  , pattern GL_NONE_OES
+  , pattern GL_RENDERBUFFER_ALPHA_SIZE_OES
+  , pattern GL_RENDERBUFFER_BINDING_OES
+  , pattern GL_RENDERBUFFER_BLUE_SIZE_OES
+  , pattern GL_RENDERBUFFER_DEPTH_SIZE_OES
+  , pattern GL_RENDERBUFFER_GREEN_SIZE_OES
+  , pattern GL_RENDERBUFFER_HEIGHT_OES
+  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES
+  , pattern GL_RENDERBUFFER_OES
+  , pattern GL_RENDERBUFFER_RED_SIZE_OES
+  , pattern GL_RENDERBUFFER_STENCIL_SIZE_OES
+  , pattern GL_RENDERBUFFER_WIDTH_OES
+  , pattern GL_RGB565_OES
+  , pattern GL_RGB5_A1_OES
+  , pattern GL_RGBA4_OES
+  , pattern GL_STENCIL_ATTACHMENT_OES
+) 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://www.khronos.org/registry/gles/extensions/OES/OES_framebuffer_object.txt GL_OES_framebuffer_object> extension is available.
+
+gl_OES_framebuffer_object :: Bool
+gl_OES_framebuffer_object = member "GL_OES_framebuffer_object" extensions
+{-# NOINLINE gl_OES_framebuffer_object #-}
+
+-- | Usage: @'glBindFramebufferOES' target framebuffer@
+
+
+glBindFramebufferOES :: MonadIO m => GLenum -> GLuint -> m ()
+glBindFramebufferOES = ffienumuintIOV glBindFramebufferOESFunPtr
+
+glBindFramebufferOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindFramebufferOESFunPtr = unsafePerformIO (getProcAddress "glBindFramebufferOES")
+
+{-# NOINLINE glBindFramebufferOESFunPtr #-}
+
+-- | Usage: @'glBindRenderbufferOES' target renderbuffer@
+
+
+glBindRenderbufferOES :: MonadIO m => GLenum -> GLuint -> m ()
+glBindRenderbufferOES = ffienumuintIOV glBindRenderbufferOESFunPtr
+
+glBindRenderbufferOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glBindRenderbufferOES")
+
+{-# NOINLINE glBindRenderbufferOESFunPtr #-}
+
+-- | Usage: @'glCheckFramebufferStatusOES' target@
+
+
+glCheckFramebufferStatusOES :: MonadIO m => GLenum -> m GLenum
+glCheckFramebufferStatusOES = ffienumIOenum glCheckFramebufferStatusOESFunPtr
+
+glCheckFramebufferStatusOESFunPtr :: FunPtr (GLenum -> IO GLenum)
+glCheckFramebufferStatusOESFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatusOES")
+
+{-# NOINLINE glCheckFramebufferStatusOESFunPtr #-}
+
+-- | Usage: @'glDeleteFramebuffersOES' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+
+
+glDeleteFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFramebuffersOES = ffisizeiPtruintIOV glDeleteFramebuffersOESFunPtr
+
+glDeleteFramebuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFramebuffersOESFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffersOES")
+
+{-# NOINLINE glDeleteFramebuffersOESFunPtr #-}
+
+-- | Usage: @'glDeleteRenderbuffersOES' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+
+
+glDeleteRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteRenderbuffersOES = ffisizeiPtruintIOV glDeleteRenderbuffersOESFunPtr
+
+glDeleteRenderbuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteRenderbuffersOESFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffersOES")
+
+{-# NOINLINE glDeleteRenderbuffersOESFunPtr #-}
+
+-- | Usage: @'glFramebufferRenderbufferOES' target attachment renderbuffertarget renderbuffer@
+
+
+glFramebufferRenderbufferOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glFramebufferRenderbufferOES = ffienumenumenumuintIOV glFramebufferRenderbufferOESFunPtr
+
+glFramebufferRenderbufferOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glFramebufferRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbufferOES")
+
+{-# NOINLINE glFramebufferRenderbufferOESFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture2DOES' target attachment textarget texture level@
+
+
+glFramebufferTexture2DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture2DOES = ffienumenumenumuintintIOV glFramebufferTexture2DOESFunPtr
+
+glFramebufferTexture2DOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture2DOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2DOES")
+
+{-# NOINLINE glFramebufferTexture2DOESFunPtr #-}
+
+-- | Usage: @'glGenFramebuffersOES' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+
+
+glGenFramebuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFramebuffersOES = ffisizeiPtruintIOV glGenFramebuffersOESFunPtr
+
+glGenFramebuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFramebuffersOESFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffersOES")
+
+{-# NOINLINE glGenFramebuffersOESFunPtr #-}
+
+-- | Usage: @'glGenRenderbuffersOES' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+
+
+glGenRenderbuffersOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenRenderbuffersOES = ffisizeiPtruintIOV glGenRenderbuffersOESFunPtr
+
+glGenRenderbuffersOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenRenderbuffersOESFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffersOES")
+
+{-# NOINLINE glGenRenderbuffersOESFunPtr #-}
+
+-- | Usage: @'glGenerateMipmapOES' target@
+
+
+glGenerateMipmapOES :: MonadIO m => GLenum -> m ()
+glGenerateMipmapOES = ffienumIOV glGenerateMipmapOESFunPtr
+
+glGenerateMipmapOESFunPtr :: FunPtr (GLenum -> IO ())
+glGenerateMipmapOESFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmapOES")
+
+{-# NOINLINE glGenerateMipmapOESFunPtr #-}
+
+-- | Usage: @'glGetFramebufferAttachmentParameterivOES' target attachment pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferAttachmentParameterivOES :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferAttachmentParameterivOES = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivOESFunPtr
+
+glGetFramebufferAttachmentParameterivOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferAttachmentParameterivOESFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameterivOES")
+
+{-# NOINLINE glGetFramebufferAttachmentParameterivOESFunPtr #-}
+
+-- | Usage: @'glGetRenderbufferParameterivOES' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetRenderbufferParameterivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetRenderbufferParameterivOES = ffienumenumPtrintIOV glGetRenderbufferParameterivOESFunPtr
+
+glGetRenderbufferParameterivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetRenderbufferParameterivOESFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameterivOES")
+
+{-# NOINLINE glGetRenderbufferParameterivOESFunPtr #-}
+
+-- | Usage: @'glIsFramebufferOES' framebuffer@
+
+
+glIsFramebufferOES :: MonadIO m => GLuint -> m GLboolean
+glIsFramebufferOES = ffiuintIOboolean glIsFramebufferOESFunPtr
+
+glIsFramebufferOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFramebufferOESFunPtr = unsafePerformIO (getProcAddress "glIsFramebufferOES")
+
+{-# NOINLINE glIsFramebufferOESFunPtr #-}
+
+-- | Usage: @'glIsRenderbufferOES' renderbuffer@
+
+
+glIsRenderbufferOES :: MonadIO m => GLuint -> m GLboolean
+glIsRenderbufferOES = ffiuintIOboolean glIsRenderbufferOESFunPtr
+
+glIsRenderbufferOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsRenderbufferOESFunPtr = unsafePerformIO (getProcAddress "glIsRenderbufferOES")
+
+{-# NOINLINE glIsRenderbufferOESFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageOES' target internalformat width height@
+
+
+glRenderbufferStorageOES :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageOES = ffienumenumsizeisizeiIOV glRenderbufferStorageOESFunPtr
+
+glRenderbufferStorageOESFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageOESFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageOES")
+
+{-# NOINLINE glRenderbufferStorageOESFunPtr #-}
+
+pattern GL_COLOR_ATTACHMENT0_OES = 0x8CE0
+
+pattern GL_DEPTH_ATTACHMENT_OES = 0x8D00
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2
+
+pattern GL_FRAMEBUFFER_BINDING_OES = 0x8CA6
+
+pattern GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7
+
+pattern GL_FRAMEBUFFER_OES = 0x8D40
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506
+
+pattern GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8
+
+pattern GL_NONE_OES = 0
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53
+
+pattern GL_RENDERBUFFER_BINDING_OES = 0x8CA7
+
+pattern GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54
+
+pattern GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51
+
+pattern GL_RENDERBUFFER_HEIGHT_OES = 0x8D43
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44
+
+pattern GL_RENDERBUFFER_OES = 0x8D41
+
+pattern GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55
+
+pattern GL_RENDERBUFFER_WIDTH_OES = 0x8D42
+
+pattern GL_STENCIL_ATTACHMENT_OES = 0x8D20
diff --git a/generated-src/Graphics/GL/Ext/OES/GeometryPointSize.hs b/generated-src/Graphics/GL/Ext/OES/GeometryPointSize.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/GeometryPointSize.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.GeometryPointSize (
+  -- * Extension Support
+    gl_OES_geometry_point_size
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt GL_OES_geometry_point_size> extension is available.
+
+gl_OES_geometry_point_size :: Bool
+gl_OES_geometry_point_size = member "GL_OES_geometry_point_size" extensions
+{-# NOINLINE gl_OES_geometry_point_size #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/GeometryShader.hs b/generated-src/Graphics/GL/Ext/OES/GeometryShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/GeometryShader.hs
@@ -0,0 +1,143 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.GeometryShader (
+  -- * Extension Support
+    gl_OES_geometry_shader
+
+  -- * GL_OES_geometry_shader
+  , glFramebufferTextureOES
+  , pattern GL_FIRST_VERTEX_CONVENTION_OES
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES
+  , pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_OES
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES
+  , pattern GL_GEOMETRY_LINKED_INPUT_TYPE_OES
+  , pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES
+  , pattern GL_GEOMETRY_LINKED_VERTICES_OUT_OES
+  , pattern GL_GEOMETRY_SHADER_BIT_OES
+  , pattern GL_GEOMETRY_SHADER_INVOCATIONS_OES
+  , pattern GL_GEOMETRY_SHADER_OES
+  , pattern GL_LAST_VERTEX_CONVENTION_OES
+  , pattern GL_LAYER_PROVOKING_VERTEX_OES
+  , pattern GL_LINES_ADJACENCY_OES
+  , pattern GL_LINE_STRIP_ADJACENCY_OES
+  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES
+  , pattern GL_MAX_FRAMEBUFFER_LAYERS_OES
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES
+  , pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES
+  , pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES
+  , pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES
+  , pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES
+  , pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES
+  , pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES
+  , pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES
+  , pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES
+  , pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES
+  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES
+  , pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES
+  , pattern GL_PRIMITIVES_GENERATED_OES
+  , pattern GL_REFERENCED_BY_GEOMETRY_SHADER_OES
+  , pattern GL_TRIANGLES_ADJACENCY_OES
+  , pattern GL_TRIANGLE_STRIP_ADJACENCY_OES
+  , pattern GL_UNDEFINED_VERTEX_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt GL_OES_geometry_shader> extension is available.
+
+gl_OES_geometry_shader :: Bool
+gl_OES_geometry_shader = member "GL_OES_geometry_shader" extensions
+{-# NOINLINE gl_OES_geometry_shader #-}
+
+-- | Usage: @'glFramebufferTextureOES' target attachment texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
+
+
+glFramebufferTextureOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTextureOES = ffienumenumuintintIOV glFramebufferTextureOESFunPtr
+
+glFramebufferTextureOESFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureOES")
+
+{-# NOINLINE glFramebufferTextureOESFunPtr #-}
+
+pattern GL_FIRST_VERTEX_CONVENTION_OES = 0x8E4D
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES = 0x8DA7
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_OES = 0x9312
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES = 0x8DA8
+
+pattern GL_GEOMETRY_LINKED_INPUT_TYPE_OES = 0x8917
+
+pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES = 0x8918
+
+pattern GL_GEOMETRY_LINKED_VERTICES_OUT_OES = 0x8916
+
+pattern GL_GEOMETRY_SHADER_BIT_OES = 0x00000004
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS_OES = 0x887F
+
+pattern GL_GEOMETRY_SHADER_OES = 0x8DD9
+
+pattern GL_LAST_VERTEX_CONVENTION_OES = 0x8E4E
+
+pattern GL_LAYER_PROVOKING_VERTEX_OES = 0x825E
+
+pattern GL_LINES_ADJACENCY_OES = 0x000A
+
+pattern GL_LINE_STRIP_ADJACENCY_OES = 0x000B
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8A32
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS_OES = 0x9317
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES = 0x92D5
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES = 0x92CF
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES = 0x90CD
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES = 0x9123
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES = 0x9124
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES = 0x8E5A
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES = 0x90D7
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES = 0x8A2C
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8DDF
+
+pattern GL_PRIMITIVES_GENERATED_OES = 0x8C87
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER_OES = 0x9309
+
+pattern GL_TRIANGLES_ADJACENCY_OES = 0x000C
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_OES = 0x000D
+
+pattern GL_UNDEFINED_VERTEX_OES = 0x8260
diff --git a/generated-src/Graphics/GL/Ext/OES/GetProgramBinary.hs b/generated-src/Graphics/GL/Ext/OES/GetProgramBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/GetProgramBinary.hs
@@ -0,0 +1,67 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.GetProgramBinary (
+  -- * Extension Support
+    gl_OES_get_program_binary
+
+  -- * GL_OES_get_program_binary
+  , glGetProgramBinaryOES
+  , glProgramBinaryOES
+  , pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES
+  , pattern GL_PROGRAM_BINARY_FORMATS_OES
+  , pattern GL_PROGRAM_BINARY_LENGTH_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt GL_OES_get_program_binary> extension is available.
+
+gl_OES_get_program_binary :: Bool
+gl_OES_get_program_binary = member "GL_OES_get_program_binary" extensions
+{-# NOINLINE gl_OES_get_program_binary #-}
+
+-- | Usage: @'glGetProgramBinaryOES' program bufSize length binaryFormat binary@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @binaryFormat@ should be @1@.
+--
+-- The length of @binary@ should be @bufSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetProgramBinary'.
+
+
+glGetProgramBinaryOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
+glGetProgramBinaryOES = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryOESFunPtr
+
+glGetProgramBinaryOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
+glGetProgramBinaryOESFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinaryOES")
+
+{-# NOINLINE glGetProgramBinaryOESFunPtr #-}
+
+-- | Usage: @'glProgramBinaryOES' program binaryFormat binary length@
+--
+-- The length of @binary@ should be @length@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramBinary'.
+
+
+glProgramBinaryOES :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLint -> m ()
+glProgramBinaryOES = ffiuintenumPtrVintIOV glProgramBinaryOESFunPtr
+
+glProgramBinaryOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLint -> IO ())
+glProgramBinaryOESFunPtr = unsafePerformIO (getProcAddress "glProgramBinaryOES")
+
+{-# NOINLINE glProgramBinaryOESFunPtr #-}
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE
+
+pattern GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF
+
+pattern GL_PROGRAM_BINARY_LENGTH_OES = 0x8741
diff --git a/generated-src/Graphics/GL/Ext/OES/GpuShader5.hs b/generated-src/Graphics/GL/Ext/OES/GpuShader5.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/GpuShader5.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.GpuShader5 (
+  -- * Extension Support
+    gl_OES_gpu_shader5
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_gpu_shader5.txt GL_OES_gpu_shader5> extension is available.
+
+gl_OES_gpu_shader5 :: Bool
+gl_OES_gpu_shader5 = member "GL_OES_gpu_shader5" extensions
+{-# NOINLINE gl_OES_gpu_shader5 #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/Mapbuffer.hs b/generated-src/Graphics/GL/Ext/OES/Mapbuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Mapbuffer.hs
@@ -0,0 +1,76 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Mapbuffer (
+  -- * Extension Support
+    gl_OES_mapbuffer
+
+  -- * GL_OES_mapbuffer
+  , glGetBufferPointervOES
+  , glMapBufferOES
+  , glUnmapBufferOES
+  , pattern GL_BUFFER_ACCESS_OES
+  , pattern GL_BUFFER_MAPPED_OES
+  , pattern GL_BUFFER_MAP_POINTER_OES
+  , pattern GL_WRITE_ONLY_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt GL_OES_mapbuffer> extension is available.
+
+gl_OES_mapbuffer :: Bool
+gl_OES_mapbuffer = member "GL_OES_mapbuffer" extensions
+{-# NOINLINE gl_OES_mapbuffer #-}
+
+-- | Usage: @'glGetBufferPointervOES' target pname params@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBufferPointerv'.
+
+
+glGetBufferPointervOES :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetBufferPointervOES = ffienumenumPtrPtrVIOV glGetBufferPointervOESFunPtr
+
+glGetBufferPointervOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetBufferPointervOESFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointervOES")
+
+{-# NOINLINE glGetBufferPointervOESFunPtr #-}
+
+-- | Usage: @'glMapBufferOES' target access@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMapBuffer'.
+
+
+glMapBufferOES :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
+glMapBufferOES = ffienumenumIOPtrV glMapBufferOESFunPtr
+
+glMapBufferOESFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
+glMapBufferOESFunPtr = unsafePerformIO (getProcAddress "glMapBufferOES")
+
+{-# NOINLINE glMapBufferOESFunPtr #-}
+
+-- | Usage: @'glUnmapBufferOES' target@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glUnmapBuffer'.
+
+
+glUnmapBufferOES :: MonadIO m => GLenum -> m GLboolean
+glUnmapBufferOES = ffienumIOboolean glUnmapBufferOESFunPtr
+
+glUnmapBufferOESFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glUnmapBufferOESFunPtr = unsafePerformIO (getProcAddress "glUnmapBufferOES")
+
+{-# NOINLINE glUnmapBufferOESFunPtr #-}
+
+pattern GL_BUFFER_ACCESS_OES = 0x88BB
+
+pattern GL_BUFFER_MAPPED_OES = 0x88BC
+
+pattern GL_BUFFER_MAP_POINTER_OES = 0x88BD
+
+pattern GL_WRITE_ONLY_OES = 0x88B9
diff --git a/generated-src/Graphics/GL/Ext/OES/MatrixGet.hs b/generated-src/Graphics/GL/Ext/OES/MatrixGet.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/MatrixGet.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.MatrixGet (
+  -- * Extension Support
+    gl_OES_matrix_get
+
+  -- * GL_OES_matrix_get
+  , pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES
+  , pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES
+  , pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_matrix_get.txt GL_OES_matrix_get> extension is available.
+
+gl_OES_matrix_get :: Bool
+gl_OES_matrix_get = member "GL_OES_matrix_get" extensions
+{-# NOINLINE gl_OES_matrix_get #-}
+
+pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D
+
+pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E
+
+pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F
diff --git a/generated-src/Graphics/GL/Ext/OES/MatrixPalette.hs b/generated-src/Graphics/GL/Ext/OES/MatrixPalette.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/MatrixPalette.hs
@@ -0,0 +1,122 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.MatrixPalette (
+  -- * Extension Support
+    gl_OES_matrix_palette
+
+  -- * GL_OES_matrix_palette
+  , glCurrentPaletteMatrixOES
+  , glLoadPaletteFromModelViewMatrixOES
+  , glMatrixIndexPointerOES
+  , glWeightPointerOES
+  , pattern GL_CURRENT_PALETTE_MATRIX_OES
+  , pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES
+  , pattern GL_MATRIX_INDEX_ARRAY_OES
+  , pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES
+  , pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES
+  , pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES
+  , pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES
+  , pattern GL_MATRIX_PALETTE_OES
+  , pattern GL_MAX_PALETTE_MATRICES_OES
+  , pattern GL_MAX_VERTEX_UNITS_OES
+  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES
+  , pattern GL_WEIGHT_ARRAY_OES
+  , pattern GL_WEIGHT_ARRAY_POINTER_OES
+  , pattern GL_WEIGHT_ARRAY_SIZE_OES
+  , pattern GL_WEIGHT_ARRAY_STRIDE_OES
+  , pattern GL_WEIGHT_ARRAY_TYPE_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_matrix_palette.txt GL_OES_matrix_palette> extension is available.
+
+gl_OES_matrix_palette :: Bool
+gl_OES_matrix_palette = member "GL_OES_matrix_palette" extensions
+{-# NOINLINE gl_OES_matrix_palette #-}
+
+-- | Usage: @'glCurrentPaletteMatrixOES' matrixpaletteindex@
+
+
+glCurrentPaletteMatrixOES :: MonadIO m => GLuint -> m ()
+glCurrentPaletteMatrixOES = ffiuintIOV glCurrentPaletteMatrixOESFunPtr
+
+glCurrentPaletteMatrixOESFunPtr :: FunPtr (GLuint -> IO ())
+glCurrentPaletteMatrixOESFunPtr = unsafePerformIO (getProcAddress "glCurrentPaletteMatrixOES")
+
+{-# NOINLINE glCurrentPaletteMatrixOESFunPtr #-}
+
+-- | Usage: @'glLoadPaletteFromModelViewMatrixOES'@
+
+
+glLoadPaletteFromModelViewMatrixOES :: MonadIO m => m ()
+glLoadPaletteFromModelViewMatrixOES = ffiIOV glLoadPaletteFromModelViewMatrixOESFunPtr
+
+glLoadPaletteFromModelViewMatrixOESFunPtr :: FunPtr (IO ())
+glLoadPaletteFromModelViewMatrixOESFunPtr = unsafePerformIO (getProcAddress "glLoadPaletteFromModelViewMatrixOES")
+
+{-# NOINLINE glLoadPaletteFromModelViewMatrixOESFunPtr #-}
+
+-- | Usage: @'glMatrixIndexPointerOES' size type stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glMatrixIndexPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glMatrixIndexPointerOES = ffiintenumsizeiPtrVIOV glMatrixIndexPointerOESFunPtr
+
+glMatrixIndexPointerOESFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glMatrixIndexPointerOESFunPtr = unsafePerformIO (getProcAddress "glMatrixIndexPointerOES")
+
+{-# NOINLINE glMatrixIndexPointerOESFunPtr #-}
+
+-- | Usage: @'glWeightPointerOES' size type stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glWeightPointerOES :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glWeightPointerOES = ffiintenumsizeiPtrVIOV glWeightPointerOESFunPtr
+
+glWeightPointerOESFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glWeightPointerOESFunPtr = unsafePerformIO (getProcAddress "glWeightPointerOES")
+
+{-# NOINLINE glWeightPointerOESFunPtr #-}
+
+pattern GL_CURRENT_PALETTE_MATRIX_OES = 0x8843
+
+pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E
+
+pattern GL_MATRIX_INDEX_ARRAY_OES = 0x8844
+
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849
+
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846
+
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848
+
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847
+
+pattern GL_MATRIX_PALETTE_OES = 0x8840
+
+pattern GL_MAX_PALETTE_MATRICES_OES = 0x8842
+
+pattern GL_MAX_VERTEX_UNITS_OES = 0x86A4
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E
+
+pattern GL_WEIGHT_ARRAY_OES = 0x86AD
+
+pattern GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC
+
+pattern GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB
+
+pattern GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA
+
+pattern GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9
diff --git a/generated-src/Graphics/GL/Ext/OES/PackedDepthStencil.hs b/generated-src/Graphics/GL/Ext/OES/PackedDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/PackedDepthStencil.hs
@@ -0,0 +1,21 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.PackedDepthStencil (
+  -- * Extension Support
+    gl_OES_packed_depth_stencil
+
+  -- * GL_OES_packed_depth_stencil
+  , pattern GL_DEPTH24_STENCIL8_OES
+  , pattern GL_DEPTH_STENCIL_OES
+  , pattern GL_UNSIGNED_INT_24_8_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_packed_depth_stencil.txt GL_OES_packed_depth_stencil> extension is available.
+
+gl_OES_packed_depth_stencil :: Bool
+gl_OES_packed_depth_stencil = member "GL_OES_packed_depth_stencil" extensions
+{-# NOINLINE gl_OES_packed_depth_stencil #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/PointSizeArray.hs b/generated-src/Graphics/GL/Ext/OES/PointSizeArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/PointSizeArray.hs
@@ -0,0 +1,51 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.PointSizeArray (
+  -- * Extension Support
+    gl_OES_point_size_array
+
+  -- * GL_OES_point_size_array
+  , glPointSizePointerOES
+  , pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES
+  , pattern GL_POINT_SIZE_ARRAY_OES
+  , pattern GL_POINT_SIZE_ARRAY_POINTER_OES
+  , pattern GL_POINT_SIZE_ARRAY_STRIDE_OES
+  , pattern GL_POINT_SIZE_ARRAY_TYPE_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_point_size_array.txt GL_OES_point_size_array> extension is available.
+
+gl_OES_point_size_array :: Bool
+gl_OES_point_size_array = member "GL_OES_point_size_array" extensions
+{-# NOINLINE gl_OES_point_size_array #-}
+
+-- | Usage: @'glPointSizePointerOES' type stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glPointSizePointerOES :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glPointSizePointerOES = ffienumsizeiPtrVIOV glPointSizePointerOESFunPtr
+
+glPointSizePointerOESFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glPointSizePointerOESFunPtr = unsafePerformIO (getProcAddress "glPointSizePointerOES")
+
+{-# NOINLINE glPointSizePointerOESFunPtr #-}
+
+pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F
+
+pattern GL_POINT_SIZE_ARRAY_OES = 0x8B9C
+
+pattern GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C
+
+pattern GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B
+
+pattern GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A
diff --git a/generated-src/Graphics/GL/Ext/OES/PointSprite.hs b/generated-src/Graphics/GL/Ext/OES/PointSprite.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/PointSprite.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.PointSprite (
+  -- * Extension Support
+    gl_OES_point_sprite
+
+  -- * GL_OES_point_sprite
+  , pattern GL_COORD_REPLACE_OES
+  , pattern GL_POINT_SPRITE_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_point_sprite.txt GL_OES_point_sprite> extension is available.
+
+gl_OES_point_sprite :: Bool
+gl_OES_point_sprite = member "GL_OES_point_sprite" extensions
+{-# NOINLINE gl_OES_point_sprite #-}
+
+pattern GL_COORD_REPLACE_OES = 0x8862
+
+pattern GL_POINT_SPRITE_OES = 0x8861
diff --git a/generated-src/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs b/generated-src/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.PrimitiveBoundingBox (
+  -- * Extension Support
+    gl_OES_primitive_bounding_box
+
+  -- * GL_OES_primitive_bounding_box
+  , glPrimitiveBoundingBoxOES
+  , pattern GL_PRIMITIVE_BOUNDING_BOX_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_primitive_bounding_box.txt GL_OES_primitive_bounding_box> extension is available.
+
+gl_OES_primitive_bounding_box :: Bool
+gl_OES_primitive_bounding_box = member "GL_OES_primitive_bounding_box" extensions
+{-# NOINLINE gl_OES_primitive_bounding_box #-}
+
+-- | Usage: @'glPrimitiveBoundingBoxOES' minX minY minZ minW maxX maxY maxZ maxW@
+--
+-- This command is an alias for 'Graphics.GL.Embedded32.glPrimitiveBoundingBox'.
+
+
+glPrimitiveBoundingBoxOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glPrimitiveBoundingBoxOES = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glPrimitiveBoundingBoxOESFunPtr
+
+glPrimitiveBoundingBoxOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glPrimitiveBoundingBoxOESFunPtr = unsafePerformIO (getProcAddress "glPrimitiveBoundingBoxOES")
+
+{-# NOINLINE glPrimitiveBoundingBoxOESFunPtr #-}
+
+pattern GL_PRIMITIVE_BOUNDING_BOX_OES = 0x92BE
diff --git a/generated-src/Graphics/GL/Ext/OES/QueryMatrix.hs b/generated-src/Graphics/GL/Ext/OES/QueryMatrix.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/QueryMatrix.hs
@@ -0,0 +1,38 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.QueryMatrix (
+  -- * Extension Support
+    gl_OES_query_matrix
+
+  -- * GL_OES_query_matrix
+  , glQueryMatrixxOES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_query_matrix.txt GL_OES_query_matrix> extension is available.
+
+gl_OES_query_matrix :: Bool
+gl_OES_query_matrix = member "GL_OES_query_matrix" extensions
+{-# NOINLINE gl_OES_query_matrix #-}
+
+-- | Usage: @'glQueryMatrixxOES' mantissa exponent@
+--
+-- The length of @mantissa@ should be @16@.
+--
+-- The length of @exponent@ should be @16@.
+
+
+glQueryMatrixxOES :: MonadIO m => Ptr GLfixed -> Ptr GLint -> m GLbitfield
+glQueryMatrixxOES = ffiPtrfixedPtrintIObitfield glQueryMatrixxOESFunPtr
+
+glQueryMatrixxOESFunPtr :: FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield)
+glQueryMatrixxOESFunPtr = unsafePerformIO (getProcAddress "glQueryMatrixxOES")
+
+{-# NOINLINE glQueryMatrixxOESFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/ReadFormat.hs b/generated-src/Graphics/GL/Ext/OES/ReadFormat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ReadFormat.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ReadFormat (
+  -- * Extension Support
+    gl_OES_read_format
+
+  -- * GL_OES_read_format
+  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES
+  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_read_format.txt GL_OES_read_format> extension is available.
+
+gl_OES_read_format :: Bool
+gl_OES_read_format = member "GL_OES_read_format" extensions
+{-# NOINLINE gl_OES_read_format #-}
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A
diff --git a/generated-src/Graphics/GL/Ext/OES/RequiredInternalformat.hs b/generated-src/Graphics/GL/Ext/OES/RequiredInternalformat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/RequiredInternalformat.hs
@@ -0,0 +1,41 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.RequiredInternalformat (
+  -- * Extension Support
+    gl_OES_required_internalformat
+
+  -- * GL_OES_required_internalformat
+  , pattern GL_ALPHA8_OES
+  , pattern GL_DEPTH24_STENCIL8_OES
+  , pattern GL_DEPTH_COMPONENT16_OES
+  , pattern GL_DEPTH_COMPONENT24_OES
+  , pattern GL_DEPTH_COMPONENT32_OES
+  , pattern GL_LUMINANCE4_ALPHA4_OES
+  , pattern GL_LUMINANCE8_ALPHA8_OES
+  , pattern GL_LUMINANCE8_OES
+  , pattern GL_RGB10_A2_EXT
+  , pattern GL_RGB10_EXT
+  , pattern GL_RGB565_OES
+  , pattern GL_RGB5_A1_OES
+  , pattern GL_RGB8_OES
+  , pattern GL_RGBA4_OES
+  , pattern GL_RGBA8_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_required_internalformat.txt GL_OES_required_internalformat> extension is available.
+
+gl_OES_required_internalformat :: Bool
+gl_OES_required_internalformat = member "GL_OES_required_internalformat" extensions
+{-# NOINLINE gl_OES_required_internalformat #-}
+
+pattern GL_ALPHA8_OES = 0x803C
+
+pattern GL_LUMINANCE4_ALPHA4_OES = 0x8043
+
+pattern GL_LUMINANCE8_ALPHA8_OES = 0x8045
+
+pattern GL_LUMINANCE8_OES = 0x8040
diff --git a/generated-src/Graphics/GL/Ext/OES/Rgb8Rgba8.hs b/generated-src/Graphics/GL/Ext/OES/Rgb8Rgba8.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Rgb8Rgba8.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Rgb8Rgba8 (
+  -- * Extension Support
+    gl_OES_rgb8_rgba8
+
+  -- * GL_OES_rgb8_rgba8
+  , pattern GL_RGB8_OES
+  , pattern GL_RGBA8_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_rgb8_rgba8.txt GL_OES_rgb8_rgba8> extension is available.
+
+gl_OES_rgb8_rgba8 :: Bool
+gl_OES_rgb8_rgba8 = member "GL_OES_rgb8_rgba8" extensions
+{-# NOINLINE gl_OES_rgb8_rgba8 #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/SampleShading.hs b/generated-src/Graphics/GL/Ext/OES/SampleShading.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/SampleShading.hs
@@ -0,0 +1,44 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.SampleShading (
+  -- * Extension Support
+    gl_OES_sample_shading
+
+  -- * GL_OES_sample_shading
+  , glMinSampleShadingOES
+  , pattern GL_MIN_SAMPLE_SHADING_VALUE_OES
+  , pattern GL_SAMPLE_SHADING_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_sample_shading.txt GL_OES_sample_shading> extension is available.
+
+gl_OES_sample_shading :: Bool
+gl_OES_sample_shading = member "GL_OES_sample_shading" extensions
+{-# NOINLINE gl_OES_sample_shading #-}
+
+-- | Usage: @'glMinSampleShadingOES' value@
+--
+-- The parameter @value@ is a @ColorF@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glMinSampleShading'.
+
+
+glMinSampleShadingOES :: MonadIO m => GLfloat -> m ()
+glMinSampleShadingOES = ffifloatIOV glMinSampleShadingOESFunPtr
+
+glMinSampleShadingOESFunPtr :: FunPtr (GLfloat -> IO ())
+glMinSampleShadingOESFunPtr = unsafePerformIO (getProcAddress "glMinSampleShadingOES")
+
+{-# NOINLINE glMinSampleShadingOESFunPtr #-}
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37
+
+pattern GL_SAMPLE_SHADING_OES = 0x8C36
diff --git a/generated-src/Graphics/GL/Ext/OES/SampleVariables.hs b/generated-src/Graphics/GL/Ext/OES/SampleVariables.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/SampleVariables.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.SampleVariables (
+  -- * Extension Support
+    gl_OES_sample_variables
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_sample_variables.txt GL_OES_sample_variables> extension is available.
+
+gl_OES_sample_variables :: Bool
+gl_OES_sample_variables = member "GL_OES_sample_variables" extensions
+{-# NOINLINE gl_OES_sample_variables #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/ShaderImageAtomic.hs b/generated-src/Graphics/GL/Ext/OES/ShaderImageAtomic.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ShaderImageAtomic.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ShaderImageAtomic (
+  -- * Extension Support
+    gl_OES_shader_image_atomic
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_shader_image_atomic.txt GL_OES_shader_image_atomic> extension is available.
+
+gl_OES_shader_image_atomic :: Bool
+gl_OES_shader_image_atomic = member "GL_OES_shader_image_atomic" extensions
+{-# NOINLINE gl_OES_shader_image_atomic #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/ShaderIoBlocks.hs b/generated-src/Graphics/GL/Ext/OES/ShaderIoBlocks.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ShaderIoBlocks.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ShaderIoBlocks (
+  -- * Extension Support
+    gl_OES_shader_io_blocks
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_shader_io_blocks.txt GL_OES_shader_io_blocks> extension is available.
+
+gl_OES_shader_io_blocks :: Bool
+gl_OES_shader_io_blocks = member "GL_OES_shader_io_blocks" extensions
+{-# NOINLINE gl_OES_shader_io_blocks #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs b/generated-src/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ShaderMultisampleInterpolation (
+  -- * Extension Support
+    gl_OES_shader_multisample_interpolation
+
+  -- * GL_OES_shader_multisample_interpolation
+  , pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES
+  , pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES
+  , pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_shader_multisample_interpolation.txt GL_OES_shader_multisample_interpolation> extension is available.
+
+gl_OES_shader_multisample_interpolation :: Bool
+gl_OES_shader_multisample_interpolation = member "GL_OES_shader_multisample_interpolation" extensions
+{-# NOINLINE gl_OES_shader_multisample_interpolation #-}
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B
diff --git a/generated-src/Graphics/GL/Ext/OES/SinglePrecision.hs b/generated-src/Graphics/GL/Ext/OES/SinglePrecision.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/SinglePrecision.hs
@@ -0,0 +1,108 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.SinglePrecision (
+  -- * Extension Support
+    gl_OES_single_precision
+
+  -- * GL_OES_single_precision
+  , glClearDepthfOES
+  , glClipPlanefOES
+  , glDepthRangefOES
+  , glFrustumfOES
+  , glGetClipPlanefOES
+  , glOrthofOES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_single_precision.txt GL_OES_single_precision> extension is available.
+
+gl_OES_single_precision :: Bool
+gl_OES_single_precision = member "GL_OES_single_precision" extensions
+{-# NOINLINE gl_OES_single_precision #-}
+
+-- | Usage: @'glClearDepthfOES' depth@
+--
+-- The parameter @depth@ is a @ClampedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glClearDepthf'.
+
+
+glClearDepthfOES :: MonadIO m => GLclampf -> m ()
+glClearDepthfOES = fficlampfIOV glClearDepthfOESFunPtr
+
+glClearDepthfOESFunPtr :: FunPtr (GLclampf -> IO ())
+glClearDepthfOESFunPtr = unsafePerformIO (getProcAddress "glClearDepthfOES")
+
+{-# NOINLINE glClearDepthfOESFunPtr #-}
+
+-- | Usage: @'glClipPlanefOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glClipPlanefOES = ffienumPtrfloatIOV glClipPlanefOESFunPtr
+
+glClipPlanefOESFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glClipPlanefOESFunPtr = unsafePerformIO (getProcAddress "glClipPlanefOES")
+
+{-# NOINLINE glClipPlanefOESFunPtr #-}
+
+-- | Usage: @'glDepthRangefOES' n f@
+--
+-- The parameter @n@ is a @ClampedFloat32@.
+--
+-- The parameter @f@ is a @ClampedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDepthRangef'.
+
+
+glDepthRangefOES :: MonadIO m => GLclampf -> GLclampf -> m ()
+glDepthRangefOES = fficlampfclampfIOV glDepthRangefOESFunPtr
+
+glDepthRangefOESFunPtr :: FunPtr (GLclampf -> GLclampf -> IO ())
+glDepthRangefOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangefOES")
+
+{-# NOINLINE glDepthRangefOESFunPtr #-}
+
+-- | Usage: @'glFrustumfOES' l r b t n f@
+
+
+glFrustumfOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glFrustumfOES = ffifloatfloatfloatfloatfloatfloatIOV glFrustumfOESFunPtr
+
+glFrustumfOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glFrustumfOESFunPtr = unsafePerformIO (getProcAddress "glFrustumfOES")
+
+{-# NOINLINE glFrustumfOESFunPtr #-}
+
+-- | Usage: @'glGetClipPlanefOES' plane equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlanefOES :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetClipPlanefOES = ffienumPtrfloatIOV glGetClipPlanefOESFunPtr
+
+glGetClipPlanefOESFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetClipPlanefOESFunPtr = unsafePerformIO (getProcAddress "glGetClipPlanefOES")
+
+{-# NOINLINE glGetClipPlanefOESFunPtr #-}
+
+-- | Usage: @'glOrthofOES' l r b t n f@
+
+
+glOrthofOES :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glOrthofOES = ffifloatfloatfloatfloatfloatfloatIOV glOrthofOESFunPtr
+
+glOrthofOESFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glOrthofOESFunPtr = unsafePerformIO (getProcAddress "glOrthofOES")
+
+{-# NOINLINE glOrthofOESFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/StandardDerivatives.hs b/generated-src/Graphics/GL/Ext/OES/StandardDerivatives.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/StandardDerivatives.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.StandardDerivatives (
+  -- * Extension Support
+    gl_OES_standard_derivatives
+
+  -- * GL_OES_standard_derivatives
+  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_standard_derivatives.txt GL_OES_standard_derivatives> extension is available.
+
+gl_OES_standard_derivatives :: Bool
+gl_OES_standard_derivatives = member "GL_OES_standard_derivatives" extensions
+{-# NOINLINE gl_OES_standard_derivatives #-}
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B
diff --git a/generated-src/Graphics/GL/Ext/OES/Stencil1.hs b/generated-src/Graphics/GL/Ext/OES/Stencil1.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Stencil1.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Stencil1 (
+  -- * Extension Support
+    gl_OES_stencil1
+
+  -- * GL_OES_stencil1
+  , pattern GL_STENCIL_INDEX1_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil1.txt GL_OES_stencil1> extension is available.
+
+gl_OES_stencil1 :: Bool
+gl_OES_stencil1 = member "GL_OES_stencil1" extensions
+{-# NOINLINE gl_OES_stencil1 #-}
+
+pattern GL_STENCIL_INDEX1_OES = 0x8D46
diff --git a/generated-src/Graphics/GL/Ext/OES/Stencil4.hs b/generated-src/Graphics/GL/Ext/OES/Stencil4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Stencil4.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Stencil4 (
+  -- * Extension Support
+    gl_OES_stencil4
+
+  -- * GL_OES_stencil4
+  , pattern GL_STENCIL_INDEX4_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil4.txt GL_OES_stencil4> extension is available.
+
+gl_OES_stencil4 :: Bool
+gl_OES_stencil4 = member "GL_OES_stencil4" extensions
+{-# NOINLINE gl_OES_stencil4 #-}
+
+pattern GL_STENCIL_INDEX4_OES = 0x8D47
diff --git a/generated-src/Graphics/GL/Ext/OES/Stencil8.hs b/generated-src/Graphics/GL/Ext/OES/Stencil8.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Stencil8.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Stencil8 (
+  -- * Extension Support
+    gl_OES_stencil8
+
+  -- * GL_OES_stencil8
+  , pattern GL_STENCIL_INDEX8_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil8.txt GL_OES_stencil8> extension is available.
+
+gl_OES_stencil8 :: Bool
+gl_OES_stencil8 = member "GL_OES_stencil8" extensions
+{-# NOINLINE gl_OES_stencil8 #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/StencilWrap.hs b/generated-src/Graphics/GL/Ext/OES/StencilWrap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/StencilWrap.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.StencilWrap (
+  -- * Extension Support
+    gl_OES_stencil_wrap
+
+  -- * GL_OES_stencil_wrap
+  , pattern GL_DECR_WRAP_OES
+  , pattern GL_INCR_WRAP_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_stencil_wrap.txt GL_OES_stencil_wrap> extension is available.
+
+gl_OES_stencil_wrap :: Bool
+gl_OES_stencil_wrap = member "GL_OES_stencil_wrap" extensions
+{-# NOINLINE gl_OES_stencil_wrap #-}
+
+pattern GL_DECR_WRAP_OES = 0x8508
+
+pattern GL_INCR_WRAP_OES = 0x8507
diff --git a/generated-src/Graphics/GL/Ext/OES/SurfacelessContext.hs b/generated-src/Graphics/GL/Ext/OES/SurfacelessContext.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/SurfacelessContext.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.SurfacelessContext (
+  -- * Extension Support
+    gl_OES_surfaceless_context
+
+  -- * GL_OES_surfaceless_context
+  , pattern GL_FRAMEBUFFER_UNDEFINED_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_surfaceless_context.txt GL_OES_surfaceless_context> extension is available.
+
+gl_OES_surfaceless_context :: Bool
+gl_OES_surfaceless_context = member "GL_OES_surfaceless_context" extensions
+{-# NOINLINE gl_OES_surfaceless_context #-}
+
+pattern GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219
diff --git a/generated-src/Graphics/GL/Ext/OES/TessellationPointSize.hs b/generated-src/Graphics/GL/Ext/OES/TessellationPointSize.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TessellationPointSize.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TessellationPointSize (
+  -- * Extension Support
+    gl_OES_tessellation_point_size
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt GL_OES_tessellation_point_size> extension is available.
+
+gl_OES_tessellation_point_size :: Bool
+gl_OES_tessellation_point_size = member "GL_OES_tessellation_point_size" extensions
+{-# NOINLINE gl_OES_tessellation_point_size #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/TessellationShader.hs b/generated-src/Graphics/GL/Ext/OES/TessellationShader.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TessellationShader.hs
@@ -0,0 +1,170 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TessellationShader (
+  -- * Extension Support
+    gl_OES_tessellation_shader
+
+  -- * GL_OES_tessellation_shader
+  , glPatchParameteriOES
+  , pattern GL_CCW
+  , pattern GL_CW
+  , pattern GL_EQUAL
+  , pattern GL_FRACTIONAL_EVEN_OES
+  , pattern GL_FRACTIONAL_ODD_OES
+  , pattern GL_ISOLINES_OES
+  , pattern GL_IS_PER_PATCH_OES
+  , pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES
+  , pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES
+  , pattern GL_MAX_PATCH_VERTICES_OES
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES
+  , pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES
+  , pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES
+  , pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES
+  , pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES
+  , pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES
+  , pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES
+  , pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES
+  , pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES
+  , pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES
+  , pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES
+  , pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES
+  , pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES
+  , pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES
+  , pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES
+  , pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES
+  , pattern GL_MAX_TESS_GEN_LEVEL_OES
+  , pattern GL_MAX_TESS_PATCH_COMPONENTS_OES
+  , pattern GL_PATCHES_OES
+  , pattern GL_PATCH_VERTICES_OES
+  , pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES
+  , pattern GL_QUADS_OES
+  , pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES
+  , pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES
+  , pattern GL_TESS_CONTROL_OUTPUT_VERTICES_OES
+  , pattern GL_TESS_CONTROL_SHADER_BIT_OES
+  , pattern GL_TESS_CONTROL_SHADER_OES
+  , pattern GL_TESS_EVALUATION_SHADER_BIT_OES
+  , pattern GL_TESS_EVALUATION_SHADER_OES
+  , pattern GL_TESS_GEN_MODE_OES
+  , pattern GL_TESS_GEN_POINT_MODE_OES
+  , pattern GL_TESS_GEN_SPACING_OES
+  , pattern GL_TESS_GEN_VERTEX_ORDER_OES
+  , pattern GL_TRIANGLES
+) 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://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt GL_OES_tessellation_shader> extension is available.
+
+gl_OES_tessellation_shader :: Bool
+gl_OES_tessellation_shader = member "GL_OES_tessellation_shader" extensions
+{-# NOINLINE gl_OES_tessellation_shader #-}
+
+-- | Usage: @'glPatchParameteriOES' pname value@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPatchParameteri'.
+
+
+glPatchParameteriOES :: MonadIO m => GLenum -> GLint -> m ()
+glPatchParameteriOES = ffienumintIOV glPatchParameteriOESFunPtr
+
+glPatchParameteriOESFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPatchParameteriOESFunPtr = unsafePerformIO (getProcAddress "glPatchParameteriOES")
+
+{-# NOINLINE glPatchParameteriOESFunPtr #-}
+
+pattern GL_FRACTIONAL_EVEN_OES = 0x8E7C
+
+pattern GL_FRACTIONAL_ODD_OES = 0x8E7B
+
+pattern GL_ISOLINES_OES = 0x8E7A
+
+pattern GL_IS_PER_PATCH_OES = 0x92E7
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E1E
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E1F
+
+pattern GL_MAX_PATCH_VERTICES_OES = 0x8E7D
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES = 0x92D3
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES = 0x92CD
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES = 0x90CB
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES = 0x886C
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES = 0x8E83
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES = 0x90D8
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES = 0x8E81
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES = 0x8E85
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES = 0x8E89
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E7F
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES = 0x92D4
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES = 0x92CE
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES = 0x90CC
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES = 0x886D
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES = 0x8E86
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES = 0x90D9
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES = 0x8E82
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES = 0x8E8A
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E80
+
+pattern GL_MAX_TESS_GEN_LEVEL_OES = 0x8E7E
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS_OES = 0x8E84
+
+pattern GL_PATCHES_OES = 0x000E
+
+pattern GL_PATCH_VERTICES_OES = 0x8E72
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES = 0x8221
+
+pattern GL_QUADS_OES = 0x0007
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES = 0x9307
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES = 0x9308
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES_OES = 0x8E75
+
+pattern GL_TESS_CONTROL_SHADER_BIT_OES = 0x00000008
+
+pattern GL_TESS_CONTROL_SHADER_OES = 0x8E88
+
+pattern GL_TESS_EVALUATION_SHADER_BIT_OES = 0x00000010
+
+pattern GL_TESS_EVALUATION_SHADER_OES = 0x8E87
+
+pattern GL_TESS_GEN_MODE_OES = 0x8E76
+
+pattern GL_TESS_GEN_POINT_MODE_OES = 0x8E79
+
+pattern GL_TESS_GEN_SPACING_OES = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER_OES = 0x8E78
diff --git a/generated-src/Graphics/GL/Ext/OES/Texture3D.hs b/generated-src/Graphics/GL/Ext/OES/Texture3D.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/Texture3D.hs
@@ -0,0 +1,132 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.Texture3D (
+  -- * Extension Support
+    gl_OES_texture_3D
+
+  -- * GL_OES_texture_3D
+  , glCompressedTexImage3DOES
+  , glCompressedTexSubImage3DOES
+  , glCopyTexSubImage3DOES
+  , glFramebufferTexture3DOES
+  , glTexImage3DOES
+  , glTexSubImage3DOES
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES
+  , pattern GL_MAX_3D_TEXTURE_SIZE_OES
+  , pattern GL_SAMPLER_3D_OES
+  , pattern GL_TEXTURE_3D_OES
+  , pattern GL_TEXTURE_BINDING_3D_OES
+  , pattern GL_TEXTURE_WRAP_R_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt GL_OES_texture_3D> extension is available.
+
+gl_OES_texture_3D :: Bool
+gl_OES_texture_3D = member "GL_OES_texture_3D" extensions
+{-# NOINLINE gl_OES_texture_3D #-}
+
+-- | Usage: @'glCompressedTexImage3DOES' target level internalformat width height depth border imageSize data@
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexImage3D'.
+
+
+glCompressedTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage3DOES = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DOESFunPtr
+
+glCompressedTexImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage3DOESFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3DOES")
+
+{-# NOINLINE glCompressedTexImage3DOESFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage3DOES' target level xoffset yoffset zoffset width height depth format imageSize data@
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCompressedTexSubImage3D'.
+
+
+glCompressedTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage3DOES = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DOESFunPtr
+
+glCompressedTexSubImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage3DOESFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3DOES")
+
+{-# NOINLINE glCompressedTexSubImage3DOESFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage3DOES' target level xoffset yoffset zoffset x y width height@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glCopyTexSubImage3D'.
+
+
+glCopyTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage3DOES = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DOESFunPtr
+
+glCopyTexSubImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage3DOESFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3DOES")
+
+{-# NOINLINE glCopyTexSubImage3DOESFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture3DOES' target attachment textarget texture level zoffset@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture3D'.
+
+
+glFramebufferTexture3DOES :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTexture3DOES = ffienumenumenumuintintintIOV glFramebufferTexture3DOESFunPtr
+
+glFramebufferTexture3DOESFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTexture3DOESFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3DOES")
+
+{-# NOINLINE glFramebufferTexture3DOESFunPtr #-}
+
+-- | Usage: @'glTexImage3DOES' target level internalformat width height depth border format type pixels@
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexImage3D'.
+
+
+glTexImage3DOES :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage3DOES = ffienumintenumsizeisizeisizeiintenumenumPtrVIOV glTexImage3DOESFunPtr
+
+glTexImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage3DOESFunPtr = unsafePerformIO (getProcAddress "glTexImage3DOES")
+
+{-# NOINLINE glTexImage3DOESFunPtr #-}
+
+-- | Usage: @'glTexSubImage3DOES' target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexSubImage3D'.
+
+
+glTexSubImage3DOES :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage3DOES = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DOESFunPtr
+
+glTexSubImage3DOESFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage3DOESFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3DOES")
+
+{-# NOINLINE glTexSubImage3DOESFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4
+
+pattern GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073
+
+pattern GL_SAMPLER_3D_OES = 0x8B5F
+
+pattern GL_TEXTURE_3D_OES = 0x806F
+
+pattern GL_TEXTURE_BINDING_3D_OES = 0x806A
+
+pattern GL_TEXTURE_WRAP_R_OES = 0x8072
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/OES/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureBorderClamp.hs
@@ -0,0 +1,172 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureBorderClamp (
+  -- * Extension Support
+    gl_OES_texture_border_clamp
+
+  -- * GL_OES_texture_border_clamp
+  , glGetSamplerParameterIivOES
+  , glGetSamplerParameterIuivOES
+  , glGetTexParameterIivOES
+  , glGetTexParameterIuivOES
+  , glSamplerParameterIivOES
+  , glSamplerParameterIuivOES
+  , glTexParameterIivOES
+  , glTexParameterIuivOES
+  , pattern GL_CLAMP_TO_BORDER_OES
+  , pattern GL_TEXTURE_BORDER_COLOR_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt GL_OES_texture_border_clamp> extension is available.
+
+gl_OES_texture_border_clamp :: Bool
+gl_OES_texture_border_clamp = member "GL_OES_texture_border_clamp" extensions
+{-# NOINLINE gl_OES_texture_border_clamp #-}
+
+-- | Usage: @'glGetSamplerParameterIivOES' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIiv'.
+
+
+glGetSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameterIivOES = ffiuintenumPtrintIOV glGetSamplerParameterIivOESFunPtr
+
+glGetSamplerParameterIivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIivOES")
+
+{-# NOINLINE glGetSamplerParameterIivOESFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIuivOES' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetSamplerParameterIuiv'.
+
+
+glGetSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetSamplerParameterIuivOES = ffiuintenumPtruintIOV glGetSamplerParameterIuivOESFunPtr
+
+glGetSamplerParameterIuivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetSamplerParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuivOES")
+
+{-# NOINLINE glGetSamplerParameterIuivOESFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIivOES' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIiv'.
+
+
+glGetTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIivOES = ffienumenumPtrintIOV glGetTexParameterIivOESFunPtr
+
+glGetTexParameterIivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivOES")
+
+{-# NOINLINE glGetTexParameterIivOESFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIuivOES' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIuiv'.
+
+
+glGetTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuivOES = ffienumenumPtruintIOV glGetTexParameterIuivOESFunPtr
+
+glGetTexParameterIuivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivOES")
+
+{-# NOINLINE glGetTexParameterIuivOESFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIivOES' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIiv'.
+
+
+glSamplerParameterIivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameterIivOES = ffiuintenumPtrintIOV glSamplerParameterIivOESFunPtr
+
+glSamplerParameterIivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIivOES")
+
+{-# NOINLINE glSamplerParameterIivOESFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIuivOES' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glSamplerParameterIuiv'.
+
+
+glSamplerParameterIuivOES :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glSamplerParameterIuivOES = ffiuintenumPtruintIOV glSamplerParameterIuivOESFunPtr
+
+glSamplerParameterIuivOESFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glSamplerParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuivOES")
+
+{-# NOINLINE glSamplerParameterIuivOESFunPtr #-}
+
+-- | Usage: @'glTexParameterIivOES' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIiv'.
+
+
+glTexParameterIivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIivOES = ffienumenumPtrintIOV glTexParameterIivOESFunPtr
+
+glTexParameterIivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivOES")
+
+{-# NOINLINE glTexParameterIivOESFunPtr #-}
+
+-- | Usage: @'glTexParameterIuivOES' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIuiv'.
+
+
+glTexParameterIuivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuivOES = ffienumenumPtruintIOV glTexParameterIuivOESFunPtr
+
+glTexParameterIuivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivOESFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivOES")
+
+{-# NOINLINE glTexParameterIuivOESFunPtr #-}
+
+pattern GL_CLAMP_TO_BORDER_OES = 0x812D
+
+pattern GL_TEXTURE_BORDER_COLOR_OES = 0x1004
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureBuffer.hs b/generated-src/Graphics/GL/Ext/OES/TextureBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureBuffer.hs
@@ -0,0 +1,98 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureBuffer (
+  -- * Extension Support
+    gl_OES_texture_buffer
+
+  -- * GL_OES_texture_buffer
+  , glTexBufferOES
+  , glTexBufferRangeOES
+  , pattern GL_IMAGE_BUFFER_OES
+  , pattern GL_INT_IMAGE_BUFFER_OES
+  , pattern GL_INT_SAMPLER_BUFFER_OES
+  , pattern GL_MAX_TEXTURE_BUFFER_SIZE_OES
+  , pattern GL_SAMPLER_BUFFER_OES
+  , pattern GL_TEXTURE_BINDING_BUFFER_OES
+  , pattern GL_TEXTURE_BUFFER_BINDING_OES
+  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES
+  , pattern GL_TEXTURE_BUFFER_OES
+  , pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES
+  , pattern GL_TEXTURE_BUFFER_OFFSET_OES
+  , pattern GL_TEXTURE_BUFFER_SIZE_OES
+  , pattern GL_UNSIGNED_INT_IMAGE_BUFFER_OES
+  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_buffer.txt GL_OES_texture_buffer> extension is available.
+
+gl_OES_texture_buffer :: Bool
+gl_OES_texture_buffer = member "GL_OES_texture_buffer" extensions
+{-# NOINLINE gl_OES_texture_buffer #-}
+
+-- | Usage: @'glTexBufferOES' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
+
+
+glTexBufferOES :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBufferOES = ffienumenumuintIOV glTexBufferOESFunPtr
+
+glTexBufferOESFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferOESFunPtr = unsafePerformIO (getProcAddress "glTexBufferOES")
+
+{-# NOINLINE glTexBufferOESFunPtr #-}
+
+-- | Usage: @'glTexBufferRangeOES' target internalformat buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBufferRange'.
+
+
+glTexBufferRangeOES :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTexBufferRangeOES = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeOESFunPtr
+
+glTexBufferRangeOESFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTexBufferRangeOESFunPtr = unsafePerformIO (getProcAddress "glTexBufferRangeOES")
+
+{-# NOINLINE glTexBufferRangeOESFunPtr #-}
+
+pattern GL_IMAGE_BUFFER_OES = 0x9051
+
+pattern GL_INT_IMAGE_BUFFER_OES = 0x905C
+
+pattern GL_INT_SAMPLER_BUFFER_OES = 0x8DD0
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_OES = 0x8C2B
+
+pattern GL_SAMPLER_BUFFER_OES = 0x8DC2
+
+pattern GL_TEXTURE_BINDING_BUFFER_OES = 0x8C2C
+
+pattern GL_TEXTURE_BUFFER_BINDING_OES = 0x8C2A
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES = 0x8C2D
+
+pattern GL_TEXTURE_BUFFER_OES = 0x8C2A
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES = 0x919F
+
+pattern GL_TEXTURE_BUFFER_OFFSET_OES = 0x919D
+
+pattern GL_TEXTURE_BUFFER_SIZE_OES = 0x919E
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_OES = 0x9067
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_OES = 0x8DD8
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureCompressionAstc.hs b/generated-src/Graphics/GL/Ext/OES/TextureCompressionAstc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureCompressionAstc.hs
@@ -0,0 +1,106 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureCompressionAstc (
+  -- * Extension Support
+    gl_OES_texture_compression_astc
+
+  -- * GL_OES_texture_compression_astc
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR
+  , pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
+  , pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_compression_astc.txt GL_OES_texture_compression_astc> extension is available.
+
+gl_OES_texture_compression_astc :: Bool
+gl_OES_texture_compression_astc = member "GL_OES_texture_compression_astc" extensions
+{-# NOINLINE gl_OES_texture_compression_astc #-}
+
+pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureCubeMap.hs b/generated-src/Graphics/GL/Ext/OES/TextureCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureCubeMap.hs
@@ -0,0 +1,145 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureCubeMap (
+  -- * Extension Support
+    gl_OES_texture_cube_map
+
+  -- * GL_OES_texture_cube_map
+  , glGetTexGenfvOES
+  , glGetTexGenivOES
+  , glGetTexGenxvOES
+  , glTexGenfOES
+  , glTexGenfvOES
+  , glTexGeniOES
+  , glTexGenivOES
+  , glTexGenxOES
+  , glTexGenxvOES
+  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES
+  , pattern GL_NORMAL_MAP_OES
+  , pattern GL_REFLECTION_MAP_OES
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_OES
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES
+  , pattern GL_TEXTURE_CUBE_MAP_OES
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES
+  , pattern GL_TEXTURE_GEN_MODE_OES
+  , pattern GL_TEXTURE_GEN_STR_OES
+) 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://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map.txt GL_OES_texture_cube_map> extension is available.
+
+gl_OES_texture_cube_map :: Bool
+gl_OES_texture_cube_map = member "GL_OES_texture_cube_map" extensions
+{-# NOINLINE gl_OES_texture_cube_map #-}
+
+-- | Usage: @'glGetTexGenfvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexGenfvOES = ffienumenumPtrfloatIOV glGetTexGenfvOESFunPtr
+
+glGetTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexGenfvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenfvOES")
+
+{-# NOINLINE glGetTexGenfvOESFunPtr #-}
+
+-- | Usage: @'glGetTexGenivOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexGenivOES = ffienumenumPtrintIOV glGetTexGenivOESFunPtr
+
+glGetTexGenivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexGenivOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenivOES")
+
+{-# NOINLINE glGetTexGenivOESFunPtr #-}
+
+-- | Usage: @'glTexGenfOES' coord pname param@
+
+
+glTexGenfOES :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexGenfOES = ffienumenumfloatIOV glTexGenfOESFunPtr
+
+glTexGenfOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexGenfOESFunPtr = unsafePerformIO (getProcAddress "glTexGenfOES")
+
+{-# NOINLINE glTexGenfOESFunPtr #-}
+
+-- | Usage: @'glTexGenfvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGenfvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexGenfvOES = ffienumenumPtrfloatIOV glTexGenfvOESFunPtr
+
+glTexGenfvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexGenfvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenfvOES")
+
+{-# NOINLINE glTexGenfvOESFunPtr #-}
+
+-- | Usage: @'glTexGeniOES' coord pname param@
+
+
+glTexGeniOES :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexGeniOES = ffienumenumintIOV glTexGeniOESFunPtr
+
+glTexGeniOESFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexGeniOESFunPtr = unsafePerformIO (getProcAddress "glTexGeniOES")
+
+{-# NOINLINE glTexGeniOESFunPtr #-}
+
+-- | Usage: @'glTexGenivOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGenivOES :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexGenivOES = ffienumenumPtrintIOV glTexGenivOESFunPtr
+
+glTexGenivOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexGenivOESFunPtr = unsafePerformIO (getProcAddress "glTexGenivOES")
+
+{-# NOINLINE glTexGenivOESFunPtr #-}
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C
+
+pattern GL_NORMAL_MAP_OES = 0x8511
+
+pattern GL_REFLECTION_MAP_OES = 0x8512
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A
+
+pattern GL_TEXTURE_CUBE_MAP_OES = 0x8513
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519
+
+pattern GL_TEXTURE_GEN_MODE_OES = 0x2500
+
+pattern GL_TEXTURE_GEN_STR_OES = 0x8D60
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureCubeMapArray.hs b/generated-src/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureCubeMapArray (
+  -- * Extension Support
+    gl_OES_texture_cube_map_array
+
+  -- * GL_OES_texture_cube_map_array
+  , pattern GL_IMAGE_CUBE_MAP_ARRAY_OES
+  , pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_OES
+  , pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_OES
+  , pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES
+  , pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES
+  , pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_cube_map_array.txt GL_OES_texture_cube_map_array> extension is available.
+
+gl_OES_texture_cube_map_array :: Bool
+gl_OES_texture_cube_map_array = member "GL_OES_texture_cube_map_array" extensions
+{-# NOINLINE gl_OES_texture_cube_map_array #-}
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_OES = 0x9054
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x905F
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900E
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900C
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES = 0x900D
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES = 0x900A
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x906A
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900F
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureEnvCrossbar.hs b/generated-src/Graphics/GL/Ext/OES/TextureEnvCrossbar.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureEnvCrossbar.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureEnvCrossbar (
+  -- * Extension Support
+    gl_OES_texture_env_crossbar
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_env_crossbar.txt GL_OES_texture_env_crossbar> extension is available.
+
+gl_OES_texture_env_crossbar :: Bool
+gl_OES_texture_env_crossbar = member "GL_OES_texture_env_crossbar" extensions
+{-# NOINLINE gl_OES_texture_env_crossbar #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureFloat.hs b/generated-src/Graphics/GL/Ext/OES/TextureFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureFloat.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureFloat (
+  -- * Extension Support
+    gl_OES_texture_float
+
+  -- * GL_OES_texture_float
+  , pattern GL_FLOAT
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt GL_OES_texture_float> extension is available.
+
+gl_OES_texture_float :: Bool
+gl_OES_texture_float = member "GL_OES_texture_float" extensions
+{-# NOINLINE gl_OES_texture_float #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureFloatLinear.hs b/generated-src/Graphics/GL/Ext/OES/TextureFloatLinear.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureFloatLinear.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureFloatLinear (
+  -- * Extension Support
+    gl_OES_texture_float_linear
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float_linear.txt GL_OES_texture_float_linear> extension is available.
+
+gl_OES_texture_float_linear :: Bool
+gl_OES_texture_float_linear = member "GL_OES_texture_float_linear" extensions
+{-# NOINLINE gl_OES_texture_float_linear #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureHalfFloat.hs b/generated-src/Graphics/GL/Ext/OES/TextureHalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureHalfFloat.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureHalfFloat (
+  -- * Extension Support
+    gl_OES_texture_half_float
+
+  -- * GL_OES_texture_half_float
+  , pattern GL_HALF_FLOAT_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_half_float.txt GL_OES_texture_half_float> extension is available.
+
+gl_OES_texture_half_float :: Bool
+gl_OES_texture_half_float = member "GL_OES_texture_half_float" extensions
+{-# NOINLINE gl_OES_texture_half_float #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureHalfFloatLinear.hs b/generated-src/Graphics/GL/Ext/OES/TextureHalfFloatLinear.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureHalfFloatLinear.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureHalfFloatLinear (
+  -- * Extension Support
+    gl_OES_texture_half_float_linear
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_half_float_linear.txt GL_OES_texture_half_float_linear> extension is available.
+
+gl_OES_texture_half_float_linear :: Bool
+gl_OES_texture_half_float_linear = member "GL_OES_texture_half_float_linear" extensions
+{-# NOINLINE gl_OES_texture_half_float_linear #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs b/generated-src/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureMirroredRepeat (
+  -- * Extension Support
+    gl_OES_texture_mirrored_repeat
+
+  -- * GL_OES_texture_mirrored_repeat
+  , pattern GL_MIRRORED_REPEAT_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_mirrored_repeat.txt GL_OES_texture_mirrored_repeat> extension is available.
+
+gl_OES_texture_mirrored_repeat :: Bool
+gl_OES_texture_mirrored_repeat = member "GL_OES_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_OES_texture_mirrored_repeat #-}
+
+pattern GL_MIRRORED_REPEAT_OES = 0x8370
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureNpot.hs b/generated-src/Graphics/GL/Ext/OES/TextureNpot.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureNpot.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureNpot (
+  -- * Extension Support
+    gl_OES_texture_npot
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_npot.txt GL_OES_texture_npot> extension is available.
+
+gl_OES_texture_npot :: Bool
+gl_OES_texture_npot = member "GL_OES_texture_npot" extensions
+{-# NOINLINE gl_OES_texture_npot #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureStencil8.hs b/generated-src/Graphics/GL/Ext/OES/TextureStencil8.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureStencil8.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureStencil8 (
+  -- * Extension Support
+    gl_OES_texture_stencil8
+
+  -- * GL_OES_texture_stencil8
+  , pattern GL_STENCIL_INDEX8_OES
+  , pattern GL_STENCIL_INDEX_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_stencil8.txt GL_OES_texture_stencil8> extension is available.
+
+gl_OES_texture_stencil8 :: Bool
+gl_OES_texture_stencil8 = member "GL_OES_texture_stencil8" extensions
+{-# NOINLINE gl_OES_texture_stencil8 #-}
+
+pattern GL_STENCIL_INDEX_OES = 0x1901
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs b/generated-src/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs
@@ -0,0 +1,53 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureStorageMultisample2dArray (
+  -- * Extension Support
+    gl_OES_texture_storage_multisample_2d_array
+
+  -- * GL_OES_texture_storage_multisample_2d_array
+  , glTexStorage3DMultisampleOES
+  , pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
+  , pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
+  , pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES
+  , pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_texture_storage_multisample_2d_array.txt GL_OES_texture_storage_multisample_2d_array> extension is available.
+
+gl_OES_texture_storage_multisample_2d_array :: Bool
+gl_OES_texture_storage_multisample_2d_array = member "GL_OES_texture_storage_multisample_2d_array" extensions
+{-# NOINLINE gl_OES_texture_storage_multisample_2d_array #-}
+
+-- | Usage: @'glTexStorage3DMultisampleOES' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexStorage3DMultisample'.
+
+
+glTexStorage3DMultisampleOES :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage3DMultisampleOES = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleOESFunPtr
+
+glTexStorage3DMultisampleOESFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage3DMultisampleOESFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisampleOES")
+
+{-# NOINLINE glTexStorage3DMultisampleOESFunPtr #-}
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureView.hs b/generated-src/Graphics/GL/Ext/OES/TextureView.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/TextureView.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.TextureView (
+  -- * Extension Support
+    gl_OES_texture_view
+
+  -- * GL_OES_texture_view
+  , glTextureViewOES
+  , pattern GL_TEXTURE_IMMUTABLE_LEVELS
+  , pattern GL_TEXTURE_VIEW_MIN_LAYER_OES
+  , pattern GL_TEXTURE_VIEW_MIN_LEVEL_OES
+  , pattern GL_TEXTURE_VIEW_NUM_LAYERS_OES
+  , pattern GL_TEXTURE_VIEW_NUM_LEVELS_OES
+) 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://www.khronos.org/registry/gles/extensions/OES/OES_texture_view.txt GL_OES_texture_view> extension is available.
+
+gl_OES_texture_view :: Bool
+gl_OES_texture_view = member "GL_OES_texture_view" extensions
+{-# NOINLINE gl_OES_texture_view #-}
+
+-- | Usage: @'glTextureViewOES' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTextureView'.
+
+
+glTextureViewOES :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glTextureViewOES = ffiuintenumuintenumuintuintuintuintIOV glTextureViewOESFunPtr
+
+glTextureViewOESFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glTextureViewOESFunPtr = unsafePerformIO (getProcAddress "glTextureViewOES")
+
+{-# NOINLINE glTextureViewOESFunPtr #-}
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER_OES = 0x82DD
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL_OES = 0x82DB
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS_OES = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS_OES = 0x82DC
diff --git a/generated-src/Graphics/GL/Ext/OES/VertexArrayObject.hs b/generated-src/Graphics/GL/Ext/OES/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/VertexArrayObject.hs
@@ -0,0 +1,85 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.VertexArrayObject (
+  -- * Extension Support
+    gl_OES_vertex_array_object
+
+  -- * GL_OES_vertex_array_object
+  , glBindVertexArrayOES
+  , glDeleteVertexArraysOES
+  , glGenVertexArraysOES
+  , glIsVertexArrayOES
+  , pattern GL_VERTEX_ARRAY_BINDING_OES
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt GL_OES_vertex_array_object> extension is available.
+
+gl_OES_vertex_array_object :: Bool
+gl_OES_vertex_array_object = member "GL_OES_vertex_array_object" extensions
+{-# NOINLINE gl_OES_vertex_array_object #-}
+
+-- | Usage: @'glBindVertexArrayOES' array@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindVertexArray'.
+
+
+glBindVertexArrayOES :: MonadIO m => GLuint -> m ()
+glBindVertexArrayOES = ffiuintIOV glBindVertexArrayOESFunPtr
+
+glBindVertexArrayOESFunPtr :: FunPtr (GLuint -> IO ())
+glBindVertexArrayOESFunPtr = unsafePerformIO (getProcAddress "glBindVertexArrayOES")
+
+{-# NOINLINE glBindVertexArrayOESFunPtr #-}
+
+-- | Usage: @'glDeleteVertexArraysOES' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDeleteVertexArrays'.
+
+
+glDeleteVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteVertexArraysOES = ffisizeiPtruintIOV glDeleteVertexArraysOESFunPtr
+
+glDeleteVertexArraysOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteVertexArraysOESFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArraysOES")
+
+{-# NOINLINE glDeleteVertexArraysOESFunPtr #-}
+
+-- | Usage: @'glGenVertexArraysOES' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGenVertexArrays'.
+
+
+glGenVertexArraysOES :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenVertexArraysOES = ffisizeiPtruintIOV glGenVertexArraysOESFunPtr
+
+glGenVertexArraysOESFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenVertexArraysOESFunPtr = unsafePerformIO (getProcAddress "glGenVertexArraysOES")
+
+{-# NOINLINE glGenVertexArraysOESFunPtr #-}
+
+-- | Usage: @'glIsVertexArrayOES' array@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsVertexArray'.
+
+
+glIsVertexArrayOES :: MonadIO m => GLuint -> m GLboolean
+glIsVertexArrayOES = ffiuintIOboolean glIsVertexArrayOESFunPtr
+
+glIsVertexArrayOESFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsVertexArrayOESFunPtr = unsafePerformIO (getProcAddress "glIsVertexArrayOES")
+
+{-# NOINLINE glIsVertexArrayOESFunPtr #-}
+
+pattern GL_VERTEX_ARRAY_BINDING_OES = 0x85B5
diff --git a/generated-src/Graphics/GL/Ext/OES/VertexHalfFloat.hs b/generated-src/Graphics/GL/Ext/OES/VertexHalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/VertexHalfFloat.hs
@@ -0,0 +1,19 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.VertexHalfFloat (
+  -- * Extension Support
+    gl_OES_vertex_half_float
+
+  -- * GL_OES_vertex_half_float
+  , pattern GL_HALF_FLOAT_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Internal.Shared
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_half_float.txt GL_OES_vertex_half_float> extension is available.
+
+gl_OES_vertex_half_float :: Bool
+gl_OES_vertex_half_float = member "GL_OES_vertex_half_float" extensions
+{-# NOINLINE gl_OES_vertex_half_float #-}
diff --git a/generated-src/Graphics/GL/Ext/OES/VertexType1010102.hs b/generated-src/Graphics/GL/Ext/OES/VertexType1010102.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/VertexType1010102.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.VertexType1010102 (
+  -- * Extension Support
+    gl_OES_vertex_type_10_10_10_2
+
+  -- * GL_OES_vertex_type_10_10_10_2
+  , pattern GL_INT_10_10_10_2_OES
+  , pattern GL_UNSIGNED_INT_10_10_10_2_OES
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_type_10_10_10_2.txt GL_OES_vertex_type_10_10_10_2> extension is available.
+
+gl_OES_vertex_type_10_10_10_2 :: Bool
+gl_OES_vertex_type_10_10_10_2 = member "GL_OES_vertex_type_10_10_10_2" extensions
+{-# NOINLINE gl_OES_vertex_type_10_10_10_2 #-}
+
+pattern GL_INT_10_10_10_2_OES = 0x8DF7
+
+pattern GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6
diff --git a/generated-src/Graphics/GL/Ext/OES/ViewportArray.hs b/generated-src/Graphics/GL/Ext/OES/ViewportArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OES/ViewportArray.hs
@@ -0,0 +1,176 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OES.ViewportArray (
+  -- * Extension Support
+    gl_OES_viewport_array
+
+  -- * GL_OES_viewport_array
+  , glDepthRangeArrayfvOES
+  , glDepthRangeIndexedfOES
+  , glDisableiOES
+  , glEnableiOES
+  , glGetFloati_vOES
+  , glIsEnablediOES
+  , glScissorArrayvOES
+  , glScissorIndexedOES
+  , glScissorIndexedvOES
+  , glViewportArrayvOES
+  , glViewportIndexedfOES
+  , glViewportIndexedfvOES
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_MAX_VIEWPORTS_OES
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_VIEWPORT
+  , pattern GL_VIEWPORT_BOUNDS_RANGE_OES
+  , pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES
+  , pattern GL_VIEWPORT_SUBPIXEL_BITS_OES
+) 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://www.khronos.org/registry/OpenGL/extensions/OES/OES_viewport_array.txt GL_OES_viewport_array> extension is available.
+
+gl_OES_viewport_array :: Bool
+gl_OES_viewport_array = member "GL_OES_viewport_array" extensions
+{-# NOINLINE gl_OES_viewport_array #-}
+
+-- | Usage: @'glDepthRangeArrayfvOES' first count v@
+
+
+glDepthRangeArrayfvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glDepthRangeArrayfvOES = ffiuintsizeiPtrfloatIOV glDepthRangeArrayfvOESFunPtr
+
+glDepthRangeArrayfvOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glDepthRangeArrayfvOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayfvOES")
+
+{-# NOINLINE glDepthRangeArrayfvOESFunPtr #-}
+
+-- | Usage: @'glDepthRangeIndexedfOES' index n f@
+
+
+glDepthRangeIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glDepthRangeIndexedfOES = ffiuintfloatfloatIOV glDepthRangeIndexedfOESFunPtr
+
+glDepthRangeIndexedfOESFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glDepthRangeIndexedfOESFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexedfOES")
+
+{-# NOINLINE glDepthRangeIndexedfOESFunPtr #-}
+
+-- | Usage: @'glGetFloati_vOES' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFloati_v'.
+
+
+glGetFloati_vOES :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_vOES = ffienumuintPtrfloatIOV glGetFloati_vOESFunPtr
+
+glGetFloati_vOESFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vOESFunPtr = unsafePerformIO (getProcAddress "glGetFloati_vOES")
+
+{-# NOINLINE glGetFloati_vOESFunPtr #-}
+
+-- | Usage: @'glScissorArrayvOES' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorArrayv'.
+
+
+glScissorArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
+glScissorArrayvOES = ffiuintsizeiPtrintIOV glScissorArrayvOESFunPtr
+
+glScissorArrayvOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+glScissorArrayvOESFunPtr = unsafePerformIO (getProcAddress "glScissorArrayvOES")
+
+{-# NOINLINE glScissorArrayvOESFunPtr #-}
+
+-- | Usage: @'glScissorIndexedOES' index left bottom width height@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexed'.
+
+
+glScissorIndexedOES :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissorIndexedOES = ffiuintintintsizeisizeiIOV glScissorIndexedOESFunPtr
+
+glScissorIndexedOESFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorIndexedOESFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedOES")
+
+{-# NOINLINE glScissorIndexedOESFunPtr #-}
+
+-- | Usage: @'glScissorIndexedvOES' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glScissorIndexedv'.
+
+
+glScissorIndexedvOES :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glScissorIndexedvOES = ffiuintPtrintIOV glScissorIndexedvOESFunPtr
+
+glScissorIndexedvOESFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glScissorIndexedvOESFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedvOES")
+
+{-# NOINLINE glScissorIndexedvOESFunPtr #-}
+
+-- | Usage: @'glViewportArrayvOES' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportArrayv'.
+
+
+glViewportArrayvOES :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glViewportArrayvOES = ffiuintsizeiPtrfloatIOV glViewportArrayvOESFunPtr
+
+glViewportArrayvOESFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glViewportArrayvOESFunPtr = unsafePerformIO (getProcAddress "glViewportArrayvOES")
+
+{-# NOINLINE glViewportArrayvOESFunPtr #-}
+
+-- | Usage: @'glViewportIndexedfOES' index x y w h@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedf'.
+
+
+glViewportIndexedfOES :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glViewportIndexedfOES = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfOESFunPtr
+
+glViewportIndexedfOESFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glViewportIndexedfOESFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfOES")
+
+{-# NOINLINE glViewportIndexedfOESFunPtr #-}
+
+-- | Usage: @'glViewportIndexedfvOES' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glViewportIndexedfv'.
+
+
+glViewportIndexedfvOES :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glViewportIndexedfvOES = ffiuintPtrfloatIOV glViewportIndexedfvOESFunPtr
+
+glViewportIndexedfvOESFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glViewportIndexedfvOESFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfvOES")
+
+{-# NOINLINE glViewportIndexedfvOESFunPtr #-}
+
+pattern GL_MAX_VIEWPORTS_OES = 0x825B
+
+pattern GL_VIEWPORT_BOUNDS_RANGE_OES = 0x825D
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS_OES = 0x825C
diff --git a/generated-src/Graphics/GL/Ext/OML.hs b/generated-src/Graphics/GL/Ext/OML.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OML.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OML (
+  -- * OML Extensions
+    module Graphics.GL.Ext.OML.Interlace
+  , module Graphics.GL.Ext.OML.Resample
+  , module Graphics.GL.Ext.OML.Subsample
+) where
+
+import Graphics.GL.Ext.OML.Interlace
+import Graphics.GL.Ext.OML.Resample
+import Graphics.GL.Ext.OML.Subsample
diff --git a/generated-src/Graphics/GL/Ext/OML/Interlace.hs b/generated-src/Graphics/GL/Ext/OML/Interlace.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OML/Interlace.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OML.Interlace (
+  -- * Extension Support
+    gl_OML_interlace
+
+  -- * GL_OML_interlace
+  , pattern GL_INTERLACE_OML
+  , pattern GL_INTERLACE_READ_OML
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/interlace.txt GL_OML_interlace> extension is available.
+
+gl_OML_interlace :: Bool
+gl_OML_interlace = member "GL_OML_interlace" extensions
+{-# NOINLINE gl_OML_interlace #-}
+
+pattern GL_INTERLACE_OML = 0x8980
+
+pattern GL_INTERLACE_READ_OML = 0x8981
diff --git a/generated-src/Graphics/GL/Ext/OML/Resample.hs b/generated-src/Graphics/GL/Ext/OML/Resample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OML/Resample.hs
@@ -0,0 +1,35 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OML.Resample (
+  -- * Extension Support
+    gl_OML_resample
+
+  -- * GL_OML_resample
+  , pattern GL_PACK_RESAMPLE_OML
+  , pattern GL_RESAMPLE_AVERAGE_OML
+  , pattern GL_RESAMPLE_DECIMATE_OML
+  , pattern GL_RESAMPLE_REPLICATE_OML
+  , pattern GL_RESAMPLE_ZERO_FILL_OML
+  , pattern GL_UNPACK_RESAMPLE_OML
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/resample.txt GL_OML_resample> extension is available.
+
+gl_OML_resample :: Bool
+gl_OML_resample = member "GL_OML_resample" extensions
+{-# NOINLINE gl_OML_resample #-}
+
+pattern GL_PACK_RESAMPLE_OML = 0x8984
+
+pattern GL_RESAMPLE_AVERAGE_OML = 0x8988
+
+pattern GL_RESAMPLE_DECIMATE_OML = 0x8989
+
+pattern GL_RESAMPLE_REPLICATE_OML = 0x8986
+
+pattern GL_RESAMPLE_ZERO_FILL_OML = 0x8987
+
+pattern GL_UNPACK_RESAMPLE_OML = 0x8985
diff --git a/generated-src/Graphics/GL/Ext/OML/Subsample.hs b/generated-src/Graphics/GL/Ext/OML/Subsample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OML/Subsample.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OML.Subsample (
+  -- * Extension Support
+    gl_OML_subsample
+
+  -- * GL_OML_subsample
+  , pattern GL_FORMAT_SUBSAMPLE_244_244_OML
+  , pattern GL_FORMAT_SUBSAMPLE_24_24_OML
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/OML/subsample.txt GL_OML_subsample> extension is available.
+
+gl_OML_subsample :: Bool
+gl_OML_subsample = member "GL_OML_subsample" extensions
+{-# NOINLINE gl_OML_subsample #-}
+
+pattern GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983
+
+pattern GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982
diff --git a/generated-src/Graphics/GL/Ext/OVR.hs b/generated-src/Graphics/GL/Ext/OVR.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OVR.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OVR (
+  -- * OVR Extensions
+    module Graphics.GL.Ext.OVR.Multiview
+  , module Graphics.GL.Ext.OVR.Multiview2
+  , module Graphics.GL.Ext.OVR.MultiviewMultisampledRenderToTexture
+) where
+
+import Graphics.GL.Ext.OVR.Multiview
+import Graphics.GL.Ext.OVR.Multiview2
+import Graphics.GL.Ext.OVR.MultiviewMultisampledRenderToTexture
diff --git a/generated-src/Graphics/GL/Ext/OVR/Multiview.hs b/generated-src/Graphics/GL/Ext/OVR/Multiview.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OVR/Multiview.hs
@@ -0,0 +1,54 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OVR.Multiview (
+  -- * Extension Support
+    gl_OVR_multiview
+
+  -- * GL_OVR_multiview
+  , glFramebufferTextureMultiviewOVR
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR
+  , pattern GL_MAX_VIEWS_OVR
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OVR/multiview.txt GL_OVR_multiview> extension is available.
+
+gl_OVR_multiview :: Bool
+gl_OVR_multiview = member "GL_OVR_multiview" extensions
+{-# NOINLINE gl_OVR_multiview #-}
+
+-- | Usage: @'glFramebufferTextureMultiviewOVR' target attachment texture level baseViewIndex numViews@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glFramebufferTextureMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()
+glFramebufferTextureMultiviewOVR = ffienumenumuintintintsizeiIOV glFramebufferTextureMultiviewOVRFunPtr
+
+glFramebufferTextureMultiviewOVRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ())
+glFramebufferTextureMultiviewOVRFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureMultiviewOVR")
+
+{-# NOINLINE glFramebufferTextureMultiviewOVRFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633
+
+pattern GL_MAX_VIEWS_OVR = 0x9631
diff --git a/generated-src/Graphics/GL/Ext/OVR/Multiview2.hs b/generated-src/Graphics/GL/Ext/OVR/Multiview2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OVR/Multiview2.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OVR.Multiview2 (
+  -- * Extension Support
+    gl_OVR_multiview2
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/OVR/multiview2.txt GL_OVR_multiview2> extension is available.
+
+gl_OVR_multiview2 :: Bool
+gl_OVR_multiview2 = member "GL_OVR_multiview2" extensions
+{-# NOINLINE gl_OVR_multiview2 #-}
diff --git a/generated-src/Graphics/GL/Ext/OVR/MultiviewMultisampledRenderToTexture.hs b/generated-src/Graphics/GL/Ext/OVR/MultiviewMultisampledRenderToTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/OVR/MultiviewMultisampledRenderToTexture.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.OVR.MultiviewMultisampledRenderToTexture (
+  -- * Extension Support
+    gl_OVR_multiview_multisampled_render_to_texture
+
+  -- * GL_OVR_multiview_multisampled_render_to_texture
+  , glFramebufferTextureMultisampleMultiviewOVR
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/OpenGL/extensions/OVR/OVR_multiview_multisampled_render_to_texture.txt GL_OVR_multiview_multisampled_render_to_texture> extension is available.
+
+gl_OVR_multiview_multisampled_render_to_texture :: Bool
+gl_OVR_multiview_multisampled_render_to_texture = member "GL_OVR_multiview_multisampled_render_to_texture" extensions
+{-# NOINLINE gl_OVR_multiview_multisampled_render_to_texture #-}
+
+-- | Usage: @'glFramebufferTextureMultisampleMultiviewOVR' target attachment texture level samples baseViewIndex numViews@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+
+
+glFramebufferTextureMultisampleMultiviewOVR :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> m ()
+glFramebufferTextureMultisampleMultiviewOVR = ffienumenumuintintsizeiintsizeiIOV glFramebufferTextureMultisampleMultiviewOVRFunPtr
+
+glFramebufferTextureMultisampleMultiviewOVRFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ())
+glFramebufferTextureMultisampleMultiviewOVRFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureMultisampleMultiviewOVR")
+
+{-# NOINLINE glFramebufferTextureMultisampleMultiviewOVRFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/PGI.hs b/generated-src/Graphics/GL/Ext/PGI.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/PGI.hs
@@ -0,0 +1,10 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.PGI (
+  -- * PGI Extensions
+    module Graphics.GL.Ext.PGI.MiscHints
+  , module Graphics.GL.Ext.PGI.VertexHints
+) where
+
+import Graphics.GL.Ext.PGI.MiscHints
+import Graphics.GL.Ext.PGI.VertexHints
diff --git a/generated-src/Graphics/GL/Ext/PGI/MiscHints.hs b/generated-src/Graphics/GL/Ext/PGI/MiscHints.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/PGI/MiscHints.hs
@@ -0,0 +1,96 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.PGI.MiscHints (
+  -- * Extension Support
+    gl_PGI_misc_hints
+
+  -- * GL_PGI_misc_hints
+  , glHintPGI
+  , pattern GL_ALLOW_DRAW_FRG_HINT_PGI
+  , pattern GL_ALLOW_DRAW_MEM_HINT_PGI
+  , pattern GL_ALLOW_DRAW_OBJ_HINT_PGI
+  , pattern GL_ALLOW_DRAW_WIN_HINT_PGI
+  , pattern GL_ALWAYS_FAST_HINT_PGI
+  , pattern GL_ALWAYS_SOFT_HINT_PGI
+  , pattern GL_BACK_NORMALS_HINT_PGI
+  , pattern GL_CLIP_FAR_HINT_PGI
+  , pattern GL_CLIP_NEAR_HINT_PGI
+  , pattern GL_CONSERVE_MEMORY_HINT_PGI
+  , pattern GL_FULL_STIPPLE_HINT_PGI
+  , pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI
+  , pattern GL_NATIVE_GRAPHICS_END_HINT_PGI
+  , pattern GL_NATIVE_GRAPHICS_HANDLE_PGI
+  , pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI
+  , pattern GL_RECLAIM_MEMORY_HINT_PGI
+  , pattern GL_STRICT_DEPTHFUNC_HINT_PGI
+  , pattern GL_STRICT_LIGHTING_HINT_PGI
+  , pattern GL_STRICT_SCISSOR_HINT_PGI
+  , pattern GL_WIDE_LINE_HINT_PGI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/misc_hints.txt GL_PGI_misc_hints> extension is available.
+
+gl_PGI_misc_hints :: Bool
+gl_PGI_misc_hints = member "GL_PGI_misc_hints" extensions
+{-# NOINLINE gl_PGI_misc_hints #-}
+
+-- | Usage: @'glHintPGI' target mode@
+--
+-- The parameter @target@ is a @HintTargetPGI@.
+
+
+glHintPGI :: MonadIO m => GLenum -> GLint -> m ()
+glHintPGI = ffienumintIOV glHintPGIFunPtr
+
+glHintPGIFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glHintPGIFunPtr = unsafePerformIO (getProcAddress "glHintPGI")
+
+{-# NOINLINE glHintPGIFunPtr #-}
+
+pattern GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210
+
+pattern GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211
+
+pattern GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E
+
+pattern GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F
+
+pattern GL_ALWAYS_FAST_HINT_PGI = 0x1A20C
+
+pattern GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D
+
+pattern GL_BACK_NORMALS_HINT_PGI = 0x1A223
+
+pattern GL_CLIP_FAR_HINT_PGI = 0x1A221
+
+pattern GL_CLIP_NEAR_HINT_PGI = 0x1A220
+
+pattern GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD
+
+pattern GL_FULL_STIPPLE_HINT_PGI = 0x1A219
+
+pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203
+
+pattern GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204
+
+pattern GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202
+
+pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8
+
+pattern GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE
+
+pattern GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216
+
+pattern GL_STRICT_LIGHTING_HINT_PGI = 0x1A217
+
+pattern GL_STRICT_SCISSOR_HINT_PGI = 0x1A218
+
+pattern GL_WIDE_LINE_HINT_PGI = 0x1A222
diff --git a/generated-src/Graphics/GL/Ext/PGI/VertexHints.hs b/generated-src/Graphics/GL/Ext/PGI/VertexHints.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/PGI/VertexHints.hs
@@ -0,0 +1,83 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.PGI.VertexHints (
+  -- * Extension Support
+    gl_PGI_vertex_hints
+
+  -- * GL_PGI_vertex_hints
+  , pattern GL_COLOR3_BIT_PGI
+  , pattern GL_COLOR4_BIT_PGI
+  , pattern GL_EDGEFLAG_BIT_PGI
+  , pattern GL_INDEX_BIT_PGI
+  , pattern GL_MATERIAL_SIDE_HINT_PGI
+  , pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI
+  , pattern GL_MAT_AMBIENT_BIT_PGI
+  , pattern GL_MAT_COLOR_INDEXES_BIT_PGI
+  , pattern GL_MAT_DIFFUSE_BIT_PGI
+  , pattern GL_MAT_EMISSION_BIT_PGI
+  , pattern GL_MAT_SHININESS_BIT_PGI
+  , pattern GL_MAT_SPECULAR_BIT_PGI
+  , pattern GL_MAX_VERTEX_HINT_PGI
+  , pattern GL_NORMAL_BIT_PGI
+  , pattern GL_TEXCOORD1_BIT_PGI
+  , pattern GL_TEXCOORD2_BIT_PGI
+  , pattern GL_TEXCOORD3_BIT_PGI
+  , pattern GL_TEXCOORD4_BIT_PGI
+  , pattern GL_VERTEX23_BIT_PGI
+  , pattern GL_VERTEX4_BIT_PGI
+  , pattern GL_VERTEX_CONSISTENT_HINT_PGI
+  , pattern GL_VERTEX_DATA_HINT_PGI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/PGI/vertex_hints.txt GL_PGI_vertex_hints> extension is available.
+
+gl_PGI_vertex_hints :: Bool
+gl_PGI_vertex_hints = member "GL_PGI_vertex_hints" extensions
+{-# NOINLINE gl_PGI_vertex_hints #-}
+
+pattern GL_COLOR3_BIT_PGI = 0x00010000
+
+pattern GL_COLOR4_BIT_PGI = 0x00020000
+
+pattern GL_EDGEFLAG_BIT_PGI = 0x00040000
+
+pattern GL_INDEX_BIT_PGI = 0x00080000
+
+pattern GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C
+
+pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000
+
+pattern GL_MAT_AMBIENT_BIT_PGI = 0x00100000
+
+pattern GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000
+
+pattern GL_MAT_DIFFUSE_BIT_PGI = 0x00400000
+
+pattern GL_MAT_EMISSION_BIT_PGI = 0x00800000
+
+pattern GL_MAT_SHININESS_BIT_PGI = 0x02000000
+
+pattern GL_MAT_SPECULAR_BIT_PGI = 0x04000000
+
+pattern GL_MAX_VERTEX_HINT_PGI = 0x1A22D
+
+pattern GL_NORMAL_BIT_PGI = 0x08000000
+
+pattern GL_TEXCOORD1_BIT_PGI = 0x10000000
+
+pattern GL_TEXCOORD2_BIT_PGI = 0x20000000
+
+pattern GL_TEXCOORD3_BIT_PGI = 0x40000000
+
+pattern GL_TEXCOORD4_BIT_PGI = 0x80000000
+
+pattern GL_VERTEX23_BIT_PGI = 0x00000004
+
+pattern GL_VERTEX4_BIT_PGI = 0x00000008
+
+pattern GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B
+
+pattern GL_VERTEX_DATA_HINT_PGI = 0x1A22A
diff --git a/generated-src/Graphics/GL/Ext/QCOM.hs b/generated-src/Graphics/GL/Ext/QCOM.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM.hs
@@ -0,0 +1,22 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM (
+  -- * QCOM Extensions
+    module Graphics.GL.Ext.QCOM.AlphaTest
+  , module Graphics.GL.Ext.QCOM.BinningControl
+  , module Graphics.GL.Ext.QCOM.DriverControl
+  , module Graphics.GL.Ext.QCOM.ExtendedGet
+  , module Graphics.GL.Ext.QCOM.ExtendedGet2
+  , module Graphics.GL.Ext.QCOM.PerfmonGlobalMode
+  , module Graphics.GL.Ext.QCOM.TiledRendering
+  , module Graphics.GL.Ext.QCOM.WriteonlyRendering
+) where
+
+import Graphics.GL.Ext.QCOM.AlphaTest
+import Graphics.GL.Ext.QCOM.BinningControl
+import Graphics.GL.Ext.QCOM.DriverControl
+import Graphics.GL.Ext.QCOM.ExtendedGet
+import Graphics.GL.Ext.QCOM.ExtendedGet2
+import Graphics.GL.Ext.QCOM.PerfmonGlobalMode
+import Graphics.GL.Ext.QCOM.TiledRendering
+import Graphics.GL.Ext.QCOM.WriteonlyRendering
diff --git a/generated-src/Graphics/GL/Ext/QCOM/AlphaTest.hs b/generated-src/Graphics/GL/Ext/QCOM/AlphaTest.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/AlphaTest.hs
@@ -0,0 +1,43 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.AlphaTest (
+  -- * Extension Support
+    gl_QCOM_alpha_test
+
+  -- * GL_QCOM_alpha_test
+  , glAlphaFuncQCOM
+  , pattern GL_ALPHA_TEST_FUNC_QCOM
+  , pattern GL_ALPHA_TEST_QCOM
+  , pattern GL_ALPHA_TEST_REF_QCOM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_alpha_test.txt GL_QCOM_alpha_test> extension is available.
+
+gl_QCOM_alpha_test :: Bool
+gl_QCOM_alpha_test = member "GL_QCOM_alpha_test" extensions
+{-# NOINLINE gl_QCOM_alpha_test #-}
+
+-- | Usage: @'glAlphaFuncQCOM' func ref@
+
+
+glAlphaFuncQCOM :: MonadIO m => GLenum -> GLclampf -> m ()
+glAlphaFuncQCOM = ffienumclampfIOV glAlphaFuncQCOMFunPtr
+
+glAlphaFuncQCOMFunPtr :: FunPtr (GLenum -> GLclampf -> IO ())
+glAlphaFuncQCOMFunPtr = unsafePerformIO (getProcAddress "glAlphaFuncQCOM")
+
+{-# NOINLINE glAlphaFuncQCOMFunPtr #-}
+
+pattern GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1
+
+pattern GL_ALPHA_TEST_QCOM = 0x0BC0
+
+pattern GL_ALPHA_TEST_REF_QCOM = 0x0BC2
diff --git a/generated-src/Graphics/GL/Ext/QCOM/BinningControl.hs b/generated-src/Graphics/GL/Ext/QCOM/BinningControl.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/BinningControl.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.BinningControl (
+  -- * Extension Support
+    gl_QCOM_binning_control
+
+  -- * GL_QCOM_binning_control
+  , pattern GL_BINNING_CONTROL_HINT_QCOM
+  , pattern GL_CPU_OPTIMIZED_QCOM
+  , pattern GL_GPU_OPTIMIZED_QCOM
+  , pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_binning_control.txt GL_QCOM_binning_control> extension is available.
+
+gl_QCOM_binning_control :: Bool
+gl_QCOM_binning_control = member "GL_QCOM_binning_control" extensions
+{-# NOINLINE gl_QCOM_binning_control #-}
+
+pattern GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0
+
+pattern GL_CPU_OPTIMIZED_QCOM = 0x8FB1
+
+pattern GL_GPU_OPTIMIZED_QCOM = 0x8FB2
+
+pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3
diff --git a/generated-src/Graphics/GL/Ext/QCOM/DriverControl.hs b/generated-src/Graphics/GL/Ext/QCOM/DriverControl.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/DriverControl.hs
@@ -0,0 +1,74 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.DriverControl (
+  -- * Extension Support
+    gl_QCOM_driver_control
+
+  -- * GL_QCOM_driver_control
+  , glDisableDriverControlQCOM
+  , glEnableDriverControlQCOM
+  , glGetDriverControlStringQCOM
+  , glGetDriverControlsQCOM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt GL_QCOM_driver_control> extension is available.
+
+gl_QCOM_driver_control :: Bool
+gl_QCOM_driver_control = member "GL_QCOM_driver_control" extensions
+{-# NOINLINE gl_QCOM_driver_control #-}
+
+-- | Usage: @'glDisableDriverControlQCOM' driverControl@
+
+
+glDisableDriverControlQCOM :: MonadIO m => GLuint -> m ()
+glDisableDriverControlQCOM = ffiuintIOV glDisableDriverControlQCOMFunPtr
+
+glDisableDriverControlQCOMFunPtr :: FunPtr (GLuint -> IO ())
+glDisableDriverControlQCOMFunPtr = unsafePerformIO (getProcAddress "glDisableDriverControlQCOM")
+
+{-# NOINLINE glDisableDriverControlQCOMFunPtr #-}
+
+-- | Usage: @'glEnableDriverControlQCOM' driverControl@
+
+
+glEnableDriverControlQCOM :: MonadIO m => GLuint -> m ()
+glEnableDriverControlQCOM = ffiuintIOV glEnableDriverControlQCOMFunPtr
+
+glEnableDriverControlQCOMFunPtr :: FunPtr (GLuint -> IO ())
+glEnableDriverControlQCOMFunPtr = unsafePerformIO (getProcAddress "glEnableDriverControlQCOM")
+
+{-# NOINLINE glEnableDriverControlQCOMFunPtr #-}
+
+-- | Usage: @'glGetDriverControlStringQCOM' driverControl bufSize length driverControlString@
+--
+-- The length of @driverControlString@ should be @bufSize@.
+
+
+glGetDriverControlStringQCOM :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetDriverControlStringQCOM = ffiuintsizeiPtrsizeiPtrcharIOV glGetDriverControlStringQCOMFunPtr
+
+glGetDriverControlStringQCOMFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetDriverControlStringQCOMFunPtr = unsafePerformIO (getProcAddress "glGetDriverControlStringQCOM")
+
+{-# NOINLINE glGetDriverControlStringQCOMFunPtr #-}
+
+-- | Usage: @'glGetDriverControlsQCOM' num size driverControls@
+--
+-- The length of @driverControls@ should be @size@.
+
+
+glGetDriverControlsQCOM :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetDriverControlsQCOM = ffiPtrintsizeiPtruintIOV glGetDriverControlsQCOMFunPtr
+
+glGetDriverControlsQCOMFunPtr :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetDriverControlsQCOMFunPtr = unsafePerformIO (getProcAddress "glGetDriverControlsQCOM")
+
+{-# NOINLINE glGetDriverControlsQCOMFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet.hs b/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet.hs
@@ -0,0 +1,163 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.ExtendedGet (
+  -- * Extension Support
+    gl_QCOM_extended_get
+
+  -- * GL_QCOM_extended_get
+  , glExtGetBufferPointervQCOM
+  , glExtGetBuffersQCOM
+  , glExtGetFramebuffersQCOM
+  , glExtGetRenderbuffersQCOM
+  , glExtGetTexLevelParameterivQCOM
+  , glExtGetTexSubImageQCOM
+  , glExtGetTexturesQCOM
+  , glExtTexObjectStateOverrideiQCOM
+  , pattern GL_STATE_RESTORE
+  , pattern GL_TEXTURE_DEPTH_QCOM
+  , pattern GL_TEXTURE_FORMAT_QCOM
+  , pattern GL_TEXTURE_HEIGHT_QCOM
+  , pattern GL_TEXTURE_IMAGE_VALID_QCOM
+  , pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM
+  , pattern GL_TEXTURE_NUM_LEVELS_QCOM
+  , pattern GL_TEXTURE_OBJECT_VALID_QCOM
+  , pattern GL_TEXTURE_TARGET_QCOM
+  , pattern GL_TEXTURE_TYPE_QCOM
+  , pattern GL_TEXTURE_WIDTH_QCOM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt GL_QCOM_extended_get> extension is available.
+
+gl_QCOM_extended_get :: Bool
+gl_QCOM_extended_get = member "GL_QCOM_extended_get" extensions
+{-# NOINLINE gl_QCOM_extended_get #-}
+
+-- | Usage: @'glExtGetBufferPointervQCOM' target params@
+
+
+glExtGetBufferPointervQCOM :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glExtGetBufferPointervQCOM = ffienumPtrPtrVIOV glExtGetBufferPointervQCOMFunPtr
+
+glExtGetBufferPointervQCOMFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
+glExtGetBufferPointervQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetBufferPointervQCOM")
+
+{-# NOINLINE glExtGetBufferPointervQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetBuffersQCOM' buffers maxBuffers numBuffers@
+--
+-- The length of @buffers@ should be @maxBuffers@.
+--
+-- The length of @numBuffers@ should be @1@.
+
+
+glExtGetBuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
+glExtGetBuffersQCOM = ffiPtruintintPtrintIOV glExtGetBuffersQCOMFunPtr
+
+glExtGetBuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+glExtGetBuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetBuffersQCOM")
+
+{-# NOINLINE glExtGetBuffersQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetFramebuffersQCOM' framebuffers maxFramebuffers numFramebuffers@
+--
+-- The length of @framebuffers@ should be @maxFramebuffers@.
+--
+-- The length of @numFramebuffers@ should be @1@.
+
+
+glExtGetFramebuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
+glExtGetFramebuffersQCOM = ffiPtruintintPtrintIOV glExtGetFramebuffersQCOMFunPtr
+
+glExtGetFramebuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+glExtGetFramebuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetFramebuffersQCOM")
+
+{-# NOINLINE glExtGetFramebuffersQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetRenderbuffersQCOM' renderbuffers maxRenderbuffers numRenderbuffers@
+--
+-- The length of @renderbuffers@ should be @maxRenderbuffers@.
+--
+-- The length of @numRenderbuffers@ should be @1@.
+
+
+glExtGetRenderbuffersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
+glExtGetRenderbuffersQCOM = ffiPtruintintPtrintIOV glExtGetRenderbuffersQCOMFunPtr
+
+glExtGetRenderbuffersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+glExtGetRenderbuffersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetRenderbuffersQCOM")
+
+{-# NOINLINE glExtGetRenderbuffersQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetTexLevelParameterivQCOM' texture face level pname params@
+
+
+glExtGetTexLevelParameterivQCOM :: MonadIO m => GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glExtGetTexLevelParameterivQCOM = ffiuintenumintenumPtrintIOV glExtGetTexLevelParameterivQCOMFunPtr
+
+glExtGetTexLevelParameterivQCOMFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glExtGetTexLevelParameterivQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexLevelParameterivQCOM")
+
+{-# NOINLINE glExtGetTexLevelParameterivQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetTexSubImageQCOM' target level xoffset yoffset zoffset width height depth format type texels@
+
+
+glExtGetTexSubImageQCOM :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glExtGetTexSubImageQCOM = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glExtGetTexSubImageQCOMFunPtr
+
+glExtGetTexSubImageQCOMFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glExtGetTexSubImageQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexSubImageQCOM")
+
+{-# NOINLINE glExtGetTexSubImageQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetTexturesQCOM' textures maxTextures numTextures@
+
+
+glExtGetTexturesQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
+glExtGetTexturesQCOM = ffiPtruintintPtrintIOV glExtGetTexturesQCOMFunPtr
+
+glExtGetTexturesQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+glExtGetTexturesQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetTexturesQCOM")
+
+{-# NOINLINE glExtGetTexturesQCOMFunPtr #-}
+
+-- | Usage: @'glExtTexObjectStateOverrideiQCOM' target pname param@
+
+
+glExtTexObjectStateOverrideiQCOM :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glExtTexObjectStateOverrideiQCOM = ffienumenumintIOV glExtTexObjectStateOverrideiQCOMFunPtr
+
+glExtTexObjectStateOverrideiQCOMFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glExtTexObjectStateOverrideiQCOMFunPtr = unsafePerformIO (getProcAddress "glExtTexObjectStateOverrideiQCOM")
+
+{-# NOINLINE glExtTexObjectStateOverrideiQCOMFunPtr #-}
+
+pattern GL_STATE_RESTORE = 0x8BDC
+
+pattern GL_TEXTURE_DEPTH_QCOM = 0x8BD4
+
+pattern GL_TEXTURE_FORMAT_QCOM = 0x8BD6
+
+pattern GL_TEXTURE_HEIGHT_QCOM = 0x8BD3
+
+pattern GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8
+
+pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5
+
+pattern GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9
+
+pattern GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB
+
+pattern GL_TEXTURE_TARGET_QCOM = 0x8BDA
+
+pattern GL_TEXTURE_TYPE_QCOM = 0x8BD7
+
+pattern GL_TEXTURE_WIDTH_QCOM = 0x8BD2
diff --git a/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet2.hs b/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet2.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet2.hs
@@ -0,0 +1,78 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.ExtendedGet2 (
+  -- * Extension Support
+    gl_QCOM_extended_get2
+
+  -- * GL_QCOM_extended_get2
+  , glExtGetProgramBinarySourceQCOM
+  , glExtGetProgramsQCOM
+  , glExtGetShadersQCOM
+  , glExtIsProgramBinaryQCOM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt GL_QCOM_extended_get2> extension is available.
+
+gl_QCOM_extended_get2 :: Bool
+gl_QCOM_extended_get2 = member "GL_QCOM_extended_get2" extensions
+{-# NOINLINE gl_QCOM_extended_get2 #-}
+
+-- | Usage: @'glExtGetProgramBinarySourceQCOM' program shadertype source length@
+
+
+glExtGetProgramBinarySourceQCOM :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
+glExtGetProgramBinarySourceQCOM = ffiuintenumPtrcharPtrintIOV glExtGetProgramBinarySourceQCOMFunPtr
+
+glExtGetProgramBinarySourceQCOMFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ())
+glExtGetProgramBinarySourceQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetProgramBinarySourceQCOM")
+
+{-# NOINLINE glExtGetProgramBinarySourceQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetProgramsQCOM' programs maxPrograms numPrograms@
+--
+-- The length of @programs@ should be @maxPrograms@.
+--
+-- The length of @numPrograms@ should be @1@.
+
+
+glExtGetProgramsQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
+glExtGetProgramsQCOM = ffiPtruintintPtrintIOV glExtGetProgramsQCOMFunPtr
+
+glExtGetProgramsQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+glExtGetProgramsQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetProgramsQCOM")
+
+{-# NOINLINE glExtGetProgramsQCOMFunPtr #-}
+
+-- | Usage: @'glExtGetShadersQCOM' shaders maxShaders numShaders@
+--
+-- The length of @shaders@ should be @maxShaders@.
+--
+-- The length of @numShaders@ should be @1@.
+
+
+glExtGetShadersQCOM :: MonadIO m => Ptr GLuint -> GLint -> Ptr GLint -> m ()
+glExtGetShadersQCOM = ffiPtruintintPtrintIOV glExtGetShadersQCOMFunPtr
+
+glExtGetShadersQCOMFunPtr :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+glExtGetShadersQCOMFunPtr = unsafePerformIO (getProcAddress "glExtGetShadersQCOM")
+
+{-# NOINLINE glExtGetShadersQCOMFunPtr #-}
+
+-- | Usage: @'glExtIsProgramBinaryQCOM' program@
+
+
+glExtIsProgramBinaryQCOM :: MonadIO m => GLuint -> m GLboolean
+glExtIsProgramBinaryQCOM = ffiuintIOboolean glExtIsProgramBinaryQCOMFunPtr
+
+glExtIsProgramBinaryQCOMFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glExtIsProgramBinaryQCOMFunPtr = unsafePerformIO (getProcAddress "glExtIsProgramBinaryQCOM")
+
+{-# NOINLINE glExtIsProgramBinaryQCOMFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs b/generated-src/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.PerfmonGlobalMode (
+  -- * Extension Support
+    gl_QCOM_perfmon_global_mode
+
+  -- * GL_QCOM_perfmon_global_mode
+  , pattern GL_PERFMON_GLOBAL_MODE_QCOM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_QCOM_perfmon_global_mode extension is available.
+
+gl_QCOM_perfmon_global_mode :: Bool
+gl_QCOM_perfmon_global_mode = member "GL_QCOM_perfmon_global_mode" extensions
+{-# NOINLINE gl_QCOM_perfmon_global_mode #-}
+
+pattern GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0
diff --git a/generated-src/Graphics/GL/Ext/QCOM/TiledRendering.hs b/generated-src/Graphics/GL/Ext/QCOM/TiledRendering.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/TiledRendering.hs
@@ -0,0 +1,142 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.TiledRendering (
+  -- * Extension Support
+    gl_QCOM_tiled_rendering
+
+  -- * GL_QCOM_tiled_rendering
+  , glEndTilingQCOM
+  , glStartTilingQCOM
+  , pattern GL_COLOR_BUFFER_BIT0_QCOM
+  , pattern GL_COLOR_BUFFER_BIT1_QCOM
+  , pattern GL_COLOR_BUFFER_BIT2_QCOM
+  , pattern GL_COLOR_BUFFER_BIT3_QCOM
+  , pattern GL_COLOR_BUFFER_BIT4_QCOM
+  , pattern GL_COLOR_BUFFER_BIT5_QCOM
+  , pattern GL_COLOR_BUFFER_BIT6_QCOM
+  , pattern GL_COLOR_BUFFER_BIT7_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT0_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT1_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT2_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT3_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT4_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT5_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT6_QCOM
+  , pattern GL_DEPTH_BUFFER_BIT7_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM
+  , pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT0_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT1_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT2_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT3_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT4_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT5_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT6_QCOM
+  , pattern GL_STENCIL_BUFFER_BIT7_QCOM
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_tiled_rendering.txt GL_QCOM_tiled_rendering> extension is available.
+
+gl_QCOM_tiled_rendering :: Bool
+gl_QCOM_tiled_rendering = member "GL_QCOM_tiled_rendering" extensions
+{-# NOINLINE gl_QCOM_tiled_rendering #-}
+
+-- | Usage: @'glEndTilingQCOM' preserveMask@
+
+
+glEndTilingQCOM :: MonadIO m => GLbitfield -> m ()
+glEndTilingQCOM = ffibitfieldIOV glEndTilingQCOMFunPtr
+
+glEndTilingQCOMFunPtr :: FunPtr (GLbitfield -> IO ())
+glEndTilingQCOMFunPtr = unsafePerformIO (getProcAddress "glEndTilingQCOM")
+
+{-# NOINLINE glEndTilingQCOMFunPtr #-}
+
+-- | Usage: @'glStartTilingQCOM' x y width height preserveMask@
+
+
+glStartTilingQCOM :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()
+glStartTilingQCOM = ffiuintuintuintuintbitfieldIOV glStartTilingQCOMFunPtr
+
+glStartTilingQCOMFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ())
+glStartTilingQCOMFunPtr = unsafePerformIO (getProcAddress "glStartTilingQCOM")
+
+{-# NOINLINE glStartTilingQCOMFunPtr #-}
+
+pattern GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001
+
+pattern GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002
+
+pattern GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004
+
+pattern GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008
+
+pattern GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010
+
+pattern GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020
+
+pattern GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040
+
+pattern GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080
+
+pattern GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100
+
+pattern GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200
+
+pattern GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400
+
+pattern GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800
+
+pattern GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000
+
+pattern GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000
+
+pattern GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000
+
+pattern GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000
+
+pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000
+
+pattern GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000
+
+pattern GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000
+
+pattern GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000
+
+pattern GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000
+
+pattern GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000
+
+pattern GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000
+
+pattern GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000
+
+pattern GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000
diff --git a/generated-src/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs b/generated-src/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.QCOM.WriteonlyRendering (
+  -- * Extension Support
+    gl_QCOM_writeonly_rendering
+
+  -- * GL_QCOM_writeonly_rendering
+  , pattern GL_WRITEONLY_RENDERING_QCOM
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_writeonly_rendering.txt GL_QCOM_writeonly_rendering> extension is available.
+
+gl_QCOM_writeonly_rendering :: Bool
+gl_QCOM_writeonly_rendering = member "GL_QCOM_writeonly_rendering" extensions
+{-# NOINLINE gl_QCOM_writeonly_rendering #-}
+
+pattern GL_WRITEONLY_RENDERING_QCOM = 0x8823
diff --git a/generated-src/Graphics/GL/Ext/REND.hs b/generated-src/Graphics/GL/Ext/REND.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/REND.hs
@@ -0,0 +1,8 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.REND (
+  -- * REND Extensions
+    module Graphics.GL.Ext.REND.ScreenCoordinates
+) where
+
+import Graphics.GL.Ext.REND.ScreenCoordinates
diff --git a/generated-src/Graphics/GL/Ext/REND/ScreenCoordinates.hs b/generated-src/Graphics/GL/Ext/REND/ScreenCoordinates.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/REND/ScreenCoordinates.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.REND.ScreenCoordinates (
+  -- * Extension Support
+    gl_REND_screen_coordinates
+
+  -- * GL_REND_screen_coordinates
+  , pattern GL_INVERTED_SCREEN_W_REND
+  , pattern GL_SCREEN_COORDINATES_REND
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/REND/screen_coordinates.txt GL_REND_screen_coordinates> extension is available.
+
+gl_REND_screen_coordinates :: Bool
+gl_REND_screen_coordinates = member "GL_REND_screen_coordinates" extensions
+{-# NOINLINE gl_REND_screen_coordinates #-}
+
+pattern GL_INVERTED_SCREEN_W_REND = 0x8491
+
+pattern GL_SCREEN_COORDINATES_REND = 0x8490
diff --git a/generated-src/Graphics/GL/Ext/S3.hs b/generated-src/Graphics/GL/Ext/S3.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/S3.hs
@@ -0,0 +1,8 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.S3 (
+  -- * S3 Extensions
+    module Graphics.GL.Ext.S3.S3tc
+) where
+
+import Graphics.GL.Ext.S3.S3tc
diff --git a/generated-src/Graphics/GL/Ext/S3/S3tc.hs b/generated-src/Graphics/GL/Ext/S3/S3tc.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/S3/S3tc.hs
@@ -0,0 +1,35 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.S3.S3tc (
+  -- * Extension Support
+    gl_S3_s3tc
+
+  -- * GL_S3_s3tc
+  , pattern GL_RGB4_S3TC
+  , pattern GL_RGBA4_DXT5_S3TC
+  , pattern GL_RGBA4_S3TC
+  , pattern GL_RGBA_DXT5_S3TC
+  , pattern GL_RGBA_S3TC
+  , pattern GL_RGB_S3TC
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/S3/s3tc.txt GL_S3_s3tc> extension is available.
+
+gl_S3_s3tc :: Bool
+gl_S3_s3tc = member "GL_S3_s3tc" extensions
+{-# NOINLINE gl_S3_s3tc #-}
+
+pattern GL_RGB4_S3TC = 0x83A1
+
+pattern GL_RGBA4_DXT5_S3TC = 0x83A5
+
+pattern GL_RGBA4_S3TC = 0x83A3
+
+pattern GL_RGBA_DXT5_S3TC = 0x83A4
+
+pattern GL_RGBA_S3TC = 0x83A2
+
+pattern GL_RGB_S3TC = 0x83A0
diff --git a/generated-src/Graphics/GL/Ext/SGI.hs b/generated-src/Graphics/GL/Ext/SGI.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGI.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGI (
+  -- * SGI Extensions
+    module Graphics.GL.Ext.SGI.ColorMatrix
+  , module Graphics.GL.Ext.SGI.ColorTable
+  , module Graphics.GL.Ext.SGI.TextureColorTable
+) where
+
+import Graphics.GL.Ext.SGI.ColorMatrix
+import Graphics.GL.Ext.SGI.ColorTable
+import Graphics.GL.Ext.SGI.TextureColorTable
diff --git a/generated-src/Graphics/GL/Ext/SGI/ColorMatrix.hs b/generated-src/Graphics/GL/Ext/SGI/ColorMatrix.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGI/ColorMatrix.hs
@@ -0,0 +1,50 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGI.ColorMatrix (
+  -- * Extension Support
+    gl_SGI_color_matrix
+
+  -- * GL_SGI_color_matrix
+  , pattern GL_COLOR_MATRIX_SGI
+  , pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI
+  , pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI
+  , pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI
+  , pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI
+  , pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI
+  , pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI
+  , pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI
+  , pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI
+  , pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI
+  , pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_matrix.txt GL_SGI_color_matrix> extension is available.
+
+gl_SGI_color_matrix :: Bool
+gl_SGI_color_matrix = member "GL_SGI_color_matrix" extensions
+{-# NOINLINE gl_SGI_color_matrix #-}
+
+pattern GL_COLOR_MATRIX_SGI = 0x80B1
+
+pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2
+
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7
+
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA
+
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6
+
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9
+
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5
+
+pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8
+
+pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4
diff --git a/generated-src/Graphics/GL/Ext/SGI/ColorTable.hs b/generated-src/Graphics/GL/Ext/SGI/ColorTable.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGI/ColorTable.hs
@@ -0,0 +1,216 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGI.ColorTable (
+  -- * Extension Support
+    gl_SGI_color_table
+
+  -- * GL_SGI_color_table
+  , glColorTableParameterfvSGI
+  , glColorTableParameterivSGI
+  , glColorTableSGI
+  , glCopyColorTableSGI
+  , glGetColorTableParameterfvSGI
+  , glGetColorTableParameterivSGI
+  , glGetColorTableSGI
+  , pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI
+  , pattern GL_COLOR_TABLE_BIAS_SGI
+  , pattern GL_COLOR_TABLE_BLUE_SIZE_SGI
+  , pattern GL_COLOR_TABLE_FORMAT_SGI
+  , pattern GL_COLOR_TABLE_GREEN_SIZE_SGI
+  , pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI
+  , pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI
+  , pattern GL_COLOR_TABLE_RED_SIZE_SGI
+  , pattern GL_COLOR_TABLE_SCALE_SGI
+  , pattern GL_COLOR_TABLE_SGI
+  , pattern GL_COLOR_TABLE_WIDTH_SGI
+  , pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI
+  , pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI
+  , pattern GL_PROXY_COLOR_TABLE_SGI
+  , pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI
+  , pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/color_table.txt GL_SGI_color_table> extension is available.
+
+gl_SGI_color_table :: Bool
+gl_SGI_color_table = member "GL_SGI_color_table" extensions
+{-# NOINLINE gl_SGI_color_table #-}
+
+-- | Usage: @'glColorTableParameterfvSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @ColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_BIAS', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_SCALE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTableParameterfv'.
+
+
+glColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glColorTableParameterfvSGI = ffienumenumPtrfloatIOV glColorTableParameterfvSGIFunPtr
+
+glColorTableParameterfvSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glColorTableParameterfvSGIFunPtr = unsafePerformIO (getProcAddress "glColorTableParameterfvSGI")
+
+{-# NOINLINE glColorTableParameterfvSGIFunPtr #-}
+
+-- | Usage: @'glColorTableParameterivSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @ColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_BIAS', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE_SCALE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTableParameteriv'.
+
+
+glColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glColorTableParameterivSGI = ffienumenumPtrintIOV glColorTableParameterivSGIFunPtr
+
+glColorTableParameterivSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glColorTableParameterivSGIFunPtr = unsafePerformIO (getProcAddress "glColorTableParameterivSGI")
+
+{-# NOINLINE glColorTableParameterivSGIFunPtr #-}
+
+-- | Usage: @'glColorTableSGI' target internalformat width format type table@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(format,type,width)@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glColorTable'.
+
+
+glColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glColorTableSGI = ffienumenumsizeienumenumPtrVIOV glColorTableSGIFunPtr
+
+glColorTableSGIFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glColorTableSGIFunPtr = unsafePerformIO (getProcAddress "glColorTableSGI")
+
+{-# NOINLINE glColorTableSGIFunPtr #-}
+
+-- | Usage: @'glCopyColorTableSGI' target internalformat x y width@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- This command is an alias for 'Graphics.GL.Ext.ARB.Imaging.glCopyColorTable'.
+
+
+glCopyColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
+glCopyColorTableSGI = ffienumenumintintsizeiIOV glCopyColorTableSGIFunPtr
+
+glCopyColorTableSGIFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+glCopyColorTableSGIFunPtr = unsafePerformIO (getProcAddress "glCopyColorTableSGI")
+
+{-# NOINLINE glCopyColorTableSGIFunPtr #-}
+
+-- | Usage: @'glGetColorTableParameterfvSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_ALPHA_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BLUE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_FORMAT_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_GREEN_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_INTENSITY_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_LUMINANCE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_RED_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_WIDTH_SGI'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetColorTableParameterfvSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetColorTableParameterfvSGI = ffienumenumPtrfloatIOV glGetColorTableParameterfvSGIFunPtr
+
+glGetColorTableParameterfvSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetColorTableParameterfvSGIFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterfvSGI")
+
+{-# NOINLINE glGetColorTableParameterfvSGIFunPtr #-}
+
+-- | Usage: @'glGetColorTableParameterivSGI' target pname params@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @pname@ is a @GetColorTableParameterPNameSGI@, one of: 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_ALPHA_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_BLUE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_FORMAT_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_GREEN_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_INTENSITY_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_LUMINANCE_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_RED_SIZE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_WIDTH_SGI'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetColorTableParameterivSGI :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetColorTableParameterivSGI = ffienumenumPtrintIOV glGetColorTableParameterivSGIFunPtr
+
+glGetColorTableParameterivSGIFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetColorTableParameterivSGIFunPtr = unsafePerformIO (getProcAddress "glGetColorTableParameterivSGI")
+
+{-# NOINLINE glGetColorTableParameterivSGIFunPtr #-}
+
+-- | Usage: @'glGetColorTableSGI' target format type table@
+--
+-- The parameter @target@ is a @ColorTableTargetSGI@, one of: 'Graphics.GL.Ext.ARB.Imaging.GL_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_PROXY_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI'.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @table@ should be @COMPSIZE(target,format,type)@.
+
+
+glGetColorTableSGI :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glGetColorTableSGI = ffienumenumenumPtrVIOV glGetColorTableSGIFunPtr
+
+glGetColorTableSGIFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetColorTableSGIFunPtr = unsafePerformIO (getProcAddress "glGetColorTableSGI")
+
+{-# NOINLINE glGetColorTableSGIFunPtr #-}
+
+pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD
+
+pattern GL_COLOR_TABLE_BIAS_SGI = 0x80D7
+
+pattern GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC
+
+pattern GL_COLOR_TABLE_FORMAT_SGI = 0x80D8
+
+pattern GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB
+
+pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF
+
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE
+
+pattern GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA
+
+pattern GL_COLOR_TABLE_SCALE_SGI = 0x80D6
+
+pattern GL_COLOR_TABLE_SGI = 0x80D0
+
+pattern GL_COLOR_TABLE_WIDTH_SGI = 0x80D9
+
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2
+
+pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1
+
+pattern GL_PROXY_COLOR_TABLE_SGI = 0x80D3
+
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5
+
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4
diff --git a/generated-src/Graphics/GL/Ext/SGI/TextureColorTable.hs b/generated-src/Graphics/GL/Ext/SGI/TextureColorTable.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGI/TextureColorTable.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGI.TextureColorTable (
+  -- * Extension Support
+    gl_SGI_texture_color_table
+
+  -- * GL_SGI_texture_color_table
+  , pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI
+  , pattern GL_TEXTURE_COLOR_TABLE_SGI
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGI/texture_color_table.txt GL_SGI_texture_color_table> extension is available.
+
+gl_SGI_texture_color_table :: Bool
+gl_SGI_texture_color_table = member "GL_SGI_texture_color_table" extensions
+{-# NOINLINE gl_SGI_texture_color_table #-}
+
+pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD
+
+pattern GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC
diff --git a/generated-src/Graphics/GL/Ext/SGIS.hs b/generated-src/Graphics/GL/Ext/SGIS.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS.hs
@@ -0,0 +1,36 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS (
+  -- * SGIS Extensions
+    module Graphics.GL.Ext.SGIS.DetailTexture
+  , module Graphics.GL.Ext.SGIS.FogFunction
+  , module Graphics.GL.Ext.SGIS.GenerateMipmap
+  , module Graphics.GL.Ext.SGIS.Multisample
+  , module Graphics.GL.Ext.SGIS.PixelTexture
+  , module Graphics.GL.Ext.SGIS.PointLineTexgen
+  , module Graphics.GL.Ext.SGIS.PointParameters
+  , module Graphics.GL.Ext.SGIS.SharpenTexture
+  , module Graphics.GL.Ext.SGIS.Texture4D
+  , module Graphics.GL.Ext.SGIS.TextureBorderClamp
+  , module Graphics.GL.Ext.SGIS.TextureColorMask
+  , module Graphics.GL.Ext.SGIS.TextureEdgeClamp
+  , module Graphics.GL.Ext.SGIS.TextureFilter4
+  , module Graphics.GL.Ext.SGIS.TextureLod
+  , module Graphics.GL.Ext.SGIS.TextureSelect
+) where
+
+import Graphics.GL.Ext.SGIS.DetailTexture
+import Graphics.GL.Ext.SGIS.FogFunction
+import Graphics.GL.Ext.SGIS.GenerateMipmap
+import Graphics.GL.Ext.SGIS.Multisample
+import Graphics.GL.Ext.SGIS.PixelTexture
+import Graphics.GL.Ext.SGIS.PointLineTexgen
+import Graphics.GL.Ext.SGIS.PointParameters
+import Graphics.GL.Ext.SGIS.SharpenTexture
+import Graphics.GL.Ext.SGIS.Texture4D
+import Graphics.GL.Ext.SGIS.TextureBorderClamp
+import Graphics.GL.Ext.SGIS.TextureColorMask
+import Graphics.GL.Ext.SGIS.TextureEdgeClamp
+import Graphics.GL.Ext.SGIS.TextureFilter4
+import Graphics.GL.Ext.SGIS.TextureLod
+import Graphics.GL.Ext.SGIS.TextureSelect
diff --git a/generated-src/Graphics/GL/Ext/SGIS/DetailTexture.hs b/generated-src/Graphics/GL/Ext/SGIS/DetailTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/DetailTexture.hs
@@ -0,0 +1,78 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.DetailTexture (
+  -- * Extension Support
+    gl_SGIS_detail_texture
+
+  -- * GL_SGIS_detail_texture
+  , glDetailTexFuncSGIS
+  , glGetDetailTexFuncSGIS
+  , pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS
+  , pattern GL_DETAIL_TEXTURE_2D_SGIS
+  , pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS
+  , pattern GL_DETAIL_TEXTURE_LEVEL_SGIS
+  , pattern GL_DETAIL_TEXTURE_MODE_SGIS
+  , pattern GL_LINEAR_DETAIL_ALPHA_SGIS
+  , pattern GL_LINEAR_DETAIL_COLOR_SGIS
+  , pattern GL_LINEAR_DETAIL_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/detail_texture.txt GL_SGIS_detail_texture> extension is available.
+
+gl_SGIS_detail_texture :: Bool
+gl_SGIS_detail_texture = member "GL_SGIS_detail_texture" extensions
+{-# NOINLINE gl_SGIS_detail_texture #-}
+
+-- | Usage: @'glDetailTexFuncSGIS' target n points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @n*2@.
+
+
+glDetailTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glDetailTexFuncSGIS = ffienumsizeiPtrfloatIOV glDetailTexFuncSGISFunPtr
+
+glDetailTexFuncSGISFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glDetailTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glDetailTexFuncSGIS")
+
+{-# NOINLINE glDetailTexFuncSGISFunPtr #-}
+
+-- | Usage: @'glGetDetailTexFuncSGIS' target points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @COMPSIZE(target)@.
+
+
+glGetDetailTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetDetailTexFuncSGIS = ffienumPtrfloatIOV glGetDetailTexFuncSGISFunPtr
+
+glGetDetailTexFuncSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetDetailTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetDetailTexFuncSGIS")
+
+{-# NOINLINE glGetDetailTexFuncSGISFunPtr #-}
+
+pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096
+
+pattern GL_DETAIL_TEXTURE_2D_SGIS = 0x8095
+
+pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C
+
+pattern GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A
+
+pattern GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B
+
+pattern GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098
+
+pattern GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099
+
+pattern GL_LINEAR_DETAIL_SGIS = 0x8097
diff --git a/generated-src/Graphics/GL/Ext/SGIS/FogFunction.hs b/generated-src/Graphics/GL/Ext/SGIS/FogFunction.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/FogFunction.hs
@@ -0,0 +1,59 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.FogFunction (
+  -- * Extension Support
+    gl_SGIS_fog_function
+
+  -- * GL_SGIS_fog_function
+  , glFogFuncSGIS
+  , glGetFogFuncSGIS
+  , pattern GL_FOG_FUNC_POINTS_SGIS
+  , pattern GL_FOG_FUNC_SGIS
+  , pattern GL_MAX_FOG_FUNC_POINTS_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_SGIS_fog_function extension is available.
+
+gl_SGIS_fog_function :: Bool
+gl_SGIS_fog_function = member "GL_SGIS_fog_function" extensions
+{-# NOINLINE gl_SGIS_fog_function #-}
+
+-- | Usage: @'glFogFuncSGIS' n points@
+--
+-- The length of @points@ should be @n*2@.
+
+
+glFogFuncSGIS :: MonadIO m => GLsizei -> Ptr GLfloat -> m ()
+glFogFuncSGIS = ffisizeiPtrfloatIOV glFogFuncSGISFunPtr
+
+glFogFuncSGISFunPtr :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
+glFogFuncSGISFunPtr = unsafePerformIO (getProcAddress "glFogFuncSGIS")
+
+{-# NOINLINE glFogFuncSGISFunPtr #-}
+
+-- | Usage: @'glGetFogFuncSGIS' points@
+--
+-- The length of @points@ should be @COMPSIZE()@.
+
+
+glGetFogFuncSGIS :: MonadIO m => Ptr GLfloat -> m ()
+glGetFogFuncSGIS = ffiPtrfloatIOV glGetFogFuncSGISFunPtr
+
+glGetFogFuncSGISFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glGetFogFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetFogFuncSGIS")
+
+{-# NOINLINE glGetFogFuncSGISFunPtr #-}
+
+pattern GL_FOG_FUNC_POINTS_SGIS = 0x812B
+
+pattern GL_FOG_FUNC_SGIS = 0x812A
+
+pattern GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C
diff --git a/generated-src/Graphics/GL/Ext/SGIS/GenerateMipmap.hs b/generated-src/Graphics/GL/Ext/SGIS/GenerateMipmap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/GenerateMipmap.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.GenerateMipmap (
+  -- * Extension Support
+    gl_SGIS_generate_mipmap
+
+  -- * GL_SGIS_generate_mipmap
+  , pattern GL_GENERATE_MIPMAP_HINT_SGIS
+  , pattern GL_GENERATE_MIPMAP_SGIS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/generate_mipmap.txt GL_SGIS_generate_mipmap> extension is available.
+
+gl_SGIS_generate_mipmap :: Bool
+gl_SGIS_generate_mipmap = member "GL_SGIS_generate_mipmap" extensions
+{-# NOINLINE gl_SGIS_generate_mipmap #-}
+
+pattern GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192
+
+pattern GL_GENERATE_MIPMAP_SGIS = 0x8191
diff --git a/generated-src/Graphics/GL/Ext/SGIS/Multisample.hs b/generated-src/Graphics/GL/Ext/SGIS/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/Multisample.hs
@@ -0,0 +1,104 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.Multisample (
+  -- * Extension Support
+    gl_SGIS_multisample
+
+  -- * GL_SGIS_multisample
+  , glSampleMaskSGIS
+  , glSamplePatternSGIS
+  , pattern GL_1PASS_SGIS
+  , pattern GL_2PASS_0_SGIS
+  , pattern GL_2PASS_1_SGIS
+  , pattern GL_4PASS_0_SGIS
+  , pattern GL_4PASS_1_SGIS
+  , pattern GL_4PASS_2_SGIS
+  , pattern GL_4PASS_3_SGIS
+  , pattern GL_MULTISAMPLE_SGIS
+  , pattern GL_SAMPLES_SGIS
+  , pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS
+  , pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS
+  , pattern GL_SAMPLE_BUFFERS_SGIS
+  , pattern GL_SAMPLE_MASK_INVERT_SGIS
+  , pattern GL_SAMPLE_MASK_SGIS
+  , pattern GL_SAMPLE_MASK_VALUE_SGIS
+  , pattern GL_SAMPLE_PATTERN_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/multisample.txt GL_SGIS_multisample> extension is available.
+
+gl_SGIS_multisample :: Bool
+gl_SGIS_multisample = member "GL_SGIS_multisample" extensions
+{-# NOINLINE gl_SGIS_multisample #-}
+
+-- | Usage: @'glSampleMaskSGIS' value invert@
+--
+-- The parameter @value@ is a @ClampedFloat32@.
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- This command is an alias for 'Graphics.GL.Ext.EXT.Multisample.glSampleMaskEXT'.
+
+
+glSampleMaskSGIS :: MonadIO m => GLclampf -> GLboolean -> m ()
+glSampleMaskSGIS = fficlampfbooleanIOV glSampleMaskSGISFunPtr
+
+glSampleMaskSGISFunPtr :: FunPtr (GLclampf -> GLboolean -> IO ())
+glSampleMaskSGISFunPtr = unsafePerformIO (getProcAddress "glSampleMaskSGIS")
+
+{-# NOINLINE glSampleMaskSGISFunPtr #-}
+
+-- | Usage: @'glSamplePatternSGIS' pattern@
+--
+-- The parameter @pattern@ is a @SamplePatternSGIS@, one of: 'Graphics.GL.Ext.EXT.Multisample.GL_1PASS_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_1PASS_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_2PASS_0_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_2PASS_0_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_2PASS_1_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_2PASS_1_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_0_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_0_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_1_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_1_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_2_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_2_SGIS', 'Graphics.GL.Ext.EXT.Multisample.GL_4PASS_3_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_4PASS_3_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Ext.EXT.Multisample.glSamplePatternEXT'.
+
+
+glSamplePatternSGIS :: MonadIO m => GLenum -> m ()
+glSamplePatternSGIS = ffienumIOV glSamplePatternSGISFunPtr
+
+glSamplePatternSGISFunPtr :: FunPtr (GLenum -> IO ())
+glSamplePatternSGISFunPtr = unsafePerformIO (getProcAddress "glSamplePatternSGIS")
+
+{-# NOINLINE glSamplePatternSGISFunPtr #-}
+
+pattern GL_1PASS_SGIS = 0x80A1
+
+pattern GL_2PASS_0_SGIS = 0x80A2
+
+pattern GL_2PASS_1_SGIS = 0x80A3
+
+pattern GL_4PASS_0_SGIS = 0x80A4
+
+pattern GL_4PASS_1_SGIS = 0x80A5
+
+pattern GL_4PASS_2_SGIS = 0x80A6
+
+pattern GL_4PASS_3_SGIS = 0x80A7
+
+pattern GL_MULTISAMPLE_SGIS = 0x809D
+
+pattern GL_SAMPLES_SGIS = 0x80A9
+
+pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F
+
+pattern GL_SAMPLE_BUFFERS_SGIS = 0x80A8
+
+pattern GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB
+
+pattern GL_SAMPLE_MASK_SGIS = 0x80A0
+
+pattern GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA
+
+pattern GL_SAMPLE_PATTERN_SGIS = 0x80AC
diff --git a/generated-src/Graphics/GL/Ext/SGIS/PixelTexture.hs b/generated-src/Graphics/GL/Ext/SGIS/PixelTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/PixelTexture.hs
@@ -0,0 +1,138 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.PixelTexture (
+  -- * Extension Support
+    gl_SGIS_pixel_texture
+
+  -- * GL_SGIS_pixel_texture
+  , glGetPixelTexGenParameterfvSGIS
+  , glGetPixelTexGenParameterivSGIS
+  , glPixelTexGenParameterfSGIS
+  , glPixelTexGenParameterfvSGIS
+  , glPixelTexGenParameteriSGIS
+  , glPixelTexGenParameterivSGIS
+  , pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS
+  , pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS
+  , pattern GL_PIXEL_GROUP_COLOR_SGIS
+  , pattern GL_PIXEL_TEXTURE_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/pixel_texture.txt GL_SGIS_pixel_texture> extension is available.
+
+gl_SGIS_pixel_texture :: Bool
+gl_SGIS_pixel_texture = member "GL_SGIS_pixel_texture" extensions
+{-# NOINLINE gl_SGIS_pixel_texture #-}
+
+-- | Usage: @'glGetPixelTexGenParameterfvSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetPixelTexGenParameterfvSGIS = ffienumPtrfloatIOV glGetPixelTexGenParameterfvSGISFunPtr
+
+glGetPixelTexGenParameterfvSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetPixelTexGenParameterfvSGISFunPtr = unsafePerformIO (getProcAddress "glGetPixelTexGenParameterfvSGIS")
+
+{-# NOINLINE glGetPixelTexGenParameterfvSGISFunPtr #-}
+
+-- | Usage: @'glGetPixelTexGenParameterivSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glGetPixelTexGenParameterivSGIS = ffienumPtrintIOV glGetPixelTexGenParameterivSGISFunPtr
+
+glGetPixelTexGenParameterivSGISFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glGetPixelTexGenParameterivSGISFunPtr = unsafePerformIO (getProcAddress "glGetPixelTexGenParameterivSGIS")
+
+{-# NOINLINE glGetPixelTexGenParameterivSGISFunPtr #-}
+
+-- | Usage: @'glPixelTexGenParameterfSGIS' pname param@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPixelTexGenParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelTexGenParameterfSGIS = ffienumfloatIOV glPixelTexGenParameterfSGISFunPtr
+
+glPixelTexGenParameterfSGISFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelTexGenParameterfSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameterfSGIS")
+
+{-# NOINLINE glPixelTexGenParameterfSGISFunPtr #-}
+
+-- | Usage: @'glPixelTexGenParameterfvSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPixelTexGenParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPixelTexGenParameterfvSGIS = ffienumPtrfloatIOV glPixelTexGenParameterfvSGISFunPtr
+
+glPixelTexGenParameterfvSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPixelTexGenParameterfvSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameterfvSGIS")
+
+{-# NOINLINE glPixelTexGenParameterfvSGISFunPtr #-}
+
+-- | Usage: @'glPixelTexGenParameteriSGIS' pname param@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glPixelTexGenParameteriSGIS :: MonadIO m => GLenum -> GLint -> m ()
+glPixelTexGenParameteriSGIS = ffienumintIOV glPixelTexGenParameteriSGISFunPtr
+
+glPixelTexGenParameteriSGISFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelTexGenParameteriSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameteriSGIS")
+
+{-# NOINLINE glPixelTexGenParameteriSGISFunPtr #-}
+
+-- | Usage: @'glPixelTexGenParameterivSGIS' pname params@
+--
+-- The parameter @pname@ is a @PixelTexGenParameterNameSGIS@, one of: 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPixelTexGenParameterivSGIS :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glPixelTexGenParameterivSGIS = ffienumPtrintIOV glPixelTexGenParameterivSGISFunPtr
+
+glPixelTexGenParameterivSGISFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glPixelTexGenParameterivSGISFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenParameterivSGIS")
+
+{-# NOINLINE glPixelTexGenParameterivSGISFunPtr #-}
+
+pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355
+
+pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354
+
+pattern GL_PIXEL_GROUP_COLOR_SGIS = 0x8356
+
+pattern GL_PIXEL_TEXTURE_SGIS = 0x8353
diff --git a/generated-src/Graphics/GL/Ext/SGIS/PointLineTexgen.hs b/generated-src/Graphics/GL/Ext/SGIS/PointLineTexgen.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/PointLineTexgen.hs
@@ -0,0 +1,41 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.PointLineTexgen (
+  -- * Extension Support
+    gl_SGIS_point_line_texgen
+
+  -- * GL_SGIS_point_line_texgen
+  , pattern GL_EYE_DISTANCE_TO_LINE_SGIS
+  , pattern GL_EYE_DISTANCE_TO_POINT_SGIS
+  , pattern GL_EYE_LINE_SGIS
+  , pattern GL_EYE_POINT_SGIS
+  , pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS
+  , pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS
+  , pattern GL_OBJECT_LINE_SGIS
+  , pattern GL_OBJECT_POINT_SGIS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/point_line_texgen.txt GL_SGIS_point_line_texgen> extension is available.
+
+gl_SGIS_point_line_texgen :: Bool
+gl_SGIS_point_line_texgen = member "GL_SGIS_point_line_texgen" extensions
+{-# NOINLINE gl_SGIS_point_line_texgen #-}
+
+pattern GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2
+
+pattern GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0
+
+pattern GL_EYE_LINE_SGIS = 0x81F6
+
+pattern GL_EYE_POINT_SGIS = 0x81F4
+
+pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3
+
+pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1
+
+pattern GL_OBJECT_LINE_SGIS = 0x81F7
+
+pattern GL_OBJECT_POINT_SGIS = 0x81F5
diff --git a/generated-src/Graphics/GL/Ext/SGIS/PointParameters.hs b/generated-src/Graphics/GL/Ext/SGIS/PointParameters.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/PointParameters.hs
@@ -0,0 +1,72 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.PointParameters (
+  -- * Extension Support
+    gl_SGIS_point_parameters
+
+  -- * GL_SGIS_point_parameters
+  , glPointParameterfSGIS
+  , glPointParameterfvSGIS
+  , pattern GL_DISTANCE_ATTENUATION_SGIS
+  , pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS
+  , pattern GL_POINT_SIZE_MAX_SGIS
+  , pattern GL_POINT_SIZE_MIN_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_SGIS_point_parameters extension is available.
+
+gl_SGIS_point_parameters :: Bool
+gl_SGIS_point_parameters = member "GL_SGIS_point_parameters" extensions
+{-# NOINLINE gl_SGIS_point_parameters #-}
+
+-- | Usage: @'glPointParameterfSGIS' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterf'.
+
+
+glPointParameterfSGIS :: MonadIO m => GLenum -> GLfloat -> m ()
+glPointParameterfSGIS = ffienumfloatIOV glPointParameterfSGISFunPtr
+
+glPointParameterfSGISFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPointParameterfSGISFunPtr = unsafePerformIO (getProcAddress "glPointParameterfSGIS")
+
+{-# NOINLINE glPointParameterfSGISFunPtr #-}
+
+-- | Usage: @'glPointParameterfvSGIS' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPointParameterfv'.
+
+
+glPointParameterfvSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPointParameterfvSGIS = ffienumPtrfloatIOV glPointParameterfvSGISFunPtr
+
+glPointParameterfvSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPointParameterfvSGISFunPtr = unsafePerformIO (getProcAddress "glPointParameterfvSGIS")
+
+{-# NOINLINE glPointParameterfvSGISFunPtr #-}
+
+pattern GL_DISTANCE_ATTENUATION_SGIS = 0x8129
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128
+
+pattern GL_POINT_SIZE_MAX_SGIS = 0x8127
+
+pattern GL_POINT_SIZE_MIN_SGIS = 0x8126
diff --git a/generated-src/Graphics/GL/Ext/SGIS/SharpenTexture.hs b/generated-src/Graphics/GL/Ext/SGIS/SharpenTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/SharpenTexture.hs
@@ -0,0 +1,66 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.SharpenTexture (
+  -- * Extension Support
+    gl_SGIS_sharpen_texture
+
+  -- * GL_SGIS_sharpen_texture
+  , glGetSharpenTexFuncSGIS
+  , glSharpenTexFuncSGIS
+  , pattern GL_LINEAR_SHARPEN_ALPHA_SGIS
+  , pattern GL_LINEAR_SHARPEN_COLOR_SGIS
+  , pattern GL_LINEAR_SHARPEN_SGIS
+  , pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/sharpen_texture.txt GL_SGIS_sharpen_texture> extension is available.
+
+gl_SGIS_sharpen_texture :: Bool
+gl_SGIS_sharpen_texture = member "GL_SGIS_sharpen_texture" extensions
+{-# NOINLINE gl_SGIS_sharpen_texture #-}
+
+-- | Usage: @'glGetSharpenTexFuncSGIS' target points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @COMPSIZE(target)@.
+
+
+glGetSharpenTexFuncSGIS :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetSharpenTexFuncSGIS = ffienumPtrfloatIOV glGetSharpenTexFuncSGISFunPtr
+
+glGetSharpenTexFuncSGISFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetSharpenTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetSharpenTexFuncSGIS")
+
+{-# NOINLINE glGetSharpenTexFuncSGISFunPtr #-}
+
+-- | Usage: @'glSharpenTexFuncSGIS' target n points@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The length of @points@ should be @n*2@.
+
+
+glSharpenTexFuncSGIS :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glSharpenTexFuncSGIS = ffienumsizeiPtrfloatIOV glSharpenTexFuncSGISFunPtr
+
+glSharpenTexFuncSGISFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glSharpenTexFuncSGISFunPtr = unsafePerformIO (getProcAddress "glSharpenTexFuncSGIS")
+
+{-# NOINLINE glSharpenTexFuncSGISFunPtr #-}
+
+pattern GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE
+
+pattern GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF
+
+pattern GL_LINEAR_SHARPEN_SGIS = 0x80AD
+
+pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0
diff --git a/generated-src/Graphics/GL/Ext/SGIS/Texture4D.hs b/generated-src/Graphics/GL/Ext/SGIS/Texture4D.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/Texture4D.hs
@@ -0,0 +1,108 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.Texture4D (
+  -- * Extension Support
+    gl_SGIS_texture4D
+
+  -- * GL_SGIS_texture4D
+  , glTexImage4DSGIS
+  , glTexSubImage4DSGIS
+  , pattern GL_MAX_4D_TEXTURE_SIZE_SGIS
+  , pattern GL_PACK_IMAGE_DEPTH_SGIS
+  , pattern GL_PACK_SKIP_VOLUMES_SGIS
+  , pattern GL_PROXY_TEXTURE_4D_SGIS
+  , pattern GL_TEXTURE_4DSIZE_SGIS
+  , pattern GL_TEXTURE_4D_BINDING_SGIS
+  , pattern GL_TEXTURE_4D_SGIS
+  , pattern GL_TEXTURE_WRAP_Q_SGIS
+  , pattern GL_UNPACK_IMAGE_DEPTH_SGIS
+  , pattern GL_UNPACK_SKIP_VOLUMES_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture4D.txt GL_SGIS_texture4D> extension is available.
+
+gl_SGIS_texture4D :: Bool
+gl_SGIS_texture4D = member "GL_SGIS_texture4D" extensions
+{-# NOINLINE gl_SGIS_texture4D #-}
+
+-- | Usage: @'glTexImage4DSGIS' target level internalformat width height depth size4d border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth,size4d)@.
+
+
+glTexImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage4DSGIS = ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV glTexImage4DSGISFunPtr
+
+glTexImage4DSGISFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage4DSGISFunPtr = unsafePerformIO (getProcAddress "glTexImage4DSGIS")
+
+{-# NOINLINE glTexImage4DSGISFunPtr #-}
+
+-- | Usage: @'glTexSubImage4DSGIS' target level xoffset yoffset zoffset woffset width height depth size4d format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @woffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth,size4d)@.
+
+
+glTexSubImage4DSGIS :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage4DSGIS = ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV glTexSubImage4DSGISFunPtr
+
+glTexSubImage4DSGISFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage4DSGISFunPtr = unsafePerformIO (getProcAddress "glTexSubImage4DSGIS")
+
+{-# NOINLINE glTexSubImage4DSGISFunPtr #-}
+
+pattern GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138
+
+pattern GL_PACK_IMAGE_DEPTH_SGIS = 0x8131
+
+pattern GL_PACK_SKIP_VOLUMES_SGIS = 0x8130
+
+pattern GL_PROXY_TEXTURE_4D_SGIS = 0x8135
+
+pattern GL_TEXTURE_4DSIZE_SGIS = 0x8136
+
+pattern GL_TEXTURE_4D_BINDING_SGIS = 0x814F
+
+pattern GL_TEXTURE_4D_SGIS = 0x8134
+
+pattern GL_TEXTURE_WRAP_Q_SGIS = 0x8137
+
+pattern GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133
+
+pattern GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.TextureBorderClamp (
+  -- * Extension Support
+    gl_SGIS_texture_border_clamp
+
+  -- * GL_SGIS_texture_border_clamp
+  , pattern GL_CLAMP_TO_BORDER_SGIS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_border_clamp.txt GL_SGIS_texture_border_clamp> extension is available.
+
+gl_SGIS_texture_border_clamp :: Bool
+gl_SGIS_texture_border_clamp = member "GL_SGIS_texture_border_clamp" extensions
+{-# NOINLINE gl_SGIS_texture_border_clamp #-}
+
+pattern GL_CLAMP_TO_BORDER_SGIS = 0x812D
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureColorMask.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureColorMask.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureColorMask.hs
@@ -0,0 +1,45 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.TextureColorMask (
+  -- * Extension Support
+    gl_SGIS_texture_color_mask
+
+  -- * GL_SGIS_texture_color_mask
+  , glTextureColorMaskSGIS
+  , pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_color_mask.txt GL_SGIS_texture_color_mask> extension is available.
+
+gl_SGIS_texture_color_mask :: Bool
+gl_SGIS_texture_color_mask = member "GL_SGIS_texture_color_mask" extensions
+{-# NOINLINE gl_SGIS_texture_color_mask #-}
+
+-- | Usage: @'glTextureColorMaskSGIS' red green blue alpha@
+--
+-- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glTextureColorMaskSGIS :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glTextureColorMaskSGIS = ffibooleanbooleanbooleanbooleanIOV glTextureColorMaskSGISFunPtr
+
+glTextureColorMaskSGISFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glTextureColorMaskSGISFunPtr = unsafePerformIO (getProcAddress "glTextureColorMaskSGIS")
+
+{-# NOINLINE glTextureColorMaskSGISFunPtr #-}
+
+pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.TextureEdgeClamp (
+  -- * Extension Support
+    gl_SGIS_texture_edge_clamp
+
+  -- * GL_SGIS_texture_edge_clamp
+  , pattern GL_CLAMP_TO_EDGE_SGIS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_edge_clamp.txt GL_SGIS_texture_edge_clamp> extension is available.
+
+gl_SGIS_texture_edge_clamp :: Bool
+gl_SGIS_texture_edge_clamp = member "GL_SGIS_texture_edge_clamp" extensions
+{-# NOINLINE gl_SGIS_texture_edge_clamp #-}
+
+pattern GL_CLAMP_TO_EDGE_SGIS = 0x812F
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureFilter4.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureFilter4.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureFilter4.hs
@@ -0,0 +1,64 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.TextureFilter4 (
+  -- * Extension Support
+    gl_SGIS_texture_filter4
+
+  -- * GL_SGIS_texture_filter4
+  , glGetTexFilterFuncSGIS
+  , glTexFilterFuncSGIS
+  , pattern GL_FILTER4_SGIS
+  , pattern GL_TEXTURE_FILTER4_SIZE_SGIS
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_filter4.txt GL_SGIS_texture_filter4> extension is available.
+
+gl_SGIS_texture_filter4 :: Bool
+gl_SGIS_texture_filter4 = member "GL_SGIS_texture_filter4" extensions
+{-# NOINLINE gl_SGIS_texture_filter4 #-}
+
+-- | Usage: @'glGetTexFilterFuncSGIS' target filter weights@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @filter@ is a @TextureFilterSGIS@.
+--
+-- The length of @weights@ should be @COMPSIZE(target,filter)@.
+
+
+glGetTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexFilterFuncSGIS = ffienumenumPtrfloatIOV glGetTexFilterFuncSGISFunPtr
+
+glGetTexFilterFuncSGISFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexFilterFuncSGISFunPtr = unsafePerformIO (getProcAddress "glGetTexFilterFuncSGIS")
+
+{-# NOINLINE glGetTexFilterFuncSGISFunPtr #-}
+
+-- | Usage: @'glTexFilterFuncSGIS' target filter n weights@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @filter@ is a @TextureFilterSGIS@.
+--
+-- The length of @weights@ should be @n@.
+
+
+glTexFilterFuncSGIS :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glTexFilterFuncSGIS = ffienumenumsizeiPtrfloatIOV glTexFilterFuncSGISFunPtr
+
+glTexFilterFuncSGISFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glTexFilterFuncSGISFunPtr = unsafePerformIO (getProcAddress "glTexFilterFuncSGIS")
+
+{-# NOINLINE glTexFilterFuncSGISFunPtr #-}
+
+pattern GL_FILTER4_SGIS = 0x8146
+
+pattern GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureLod.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureLod.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureLod.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.TextureLod (
+  -- * Extension Support
+    gl_SGIS_texture_lod
+
+  -- * GL_SGIS_texture_lod
+  , pattern GL_TEXTURE_BASE_LEVEL_SGIS
+  , pattern GL_TEXTURE_MAX_LEVEL_SGIS
+  , pattern GL_TEXTURE_MAX_LOD_SGIS
+  , pattern GL_TEXTURE_MIN_LOD_SGIS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_lod.txt GL_SGIS_texture_lod> extension is available.
+
+gl_SGIS_texture_lod :: Bool
+gl_SGIS_texture_lod = member "GL_SGIS_texture_lod" extensions
+{-# NOINLINE gl_SGIS_texture_lod #-}
+
+pattern GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C
+
+pattern GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D
+
+pattern GL_TEXTURE_MAX_LOD_SGIS = 0x813B
+
+pattern GL_TEXTURE_MIN_LOD_SGIS = 0x813A
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureSelect.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureSelect.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureSelect.hs
@@ -0,0 +1,83 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIS.TextureSelect (
+  -- * Extension Support
+    gl_SGIS_texture_select
+
+  -- * GL_SGIS_texture_select
+  , pattern GL_DUAL_ALPHA12_SGIS
+  , pattern GL_DUAL_ALPHA16_SGIS
+  , pattern GL_DUAL_ALPHA4_SGIS
+  , pattern GL_DUAL_ALPHA8_SGIS
+  , pattern GL_DUAL_INTENSITY12_SGIS
+  , pattern GL_DUAL_INTENSITY16_SGIS
+  , pattern GL_DUAL_INTENSITY4_SGIS
+  , pattern GL_DUAL_INTENSITY8_SGIS
+  , pattern GL_DUAL_LUMINANCE12_SGIS
+  , pattern GL_DUAL_LUMINANCE16_SGIS
+  , pattern GL_DUAL_LUMINANCE4_SGIS
+  , pattern GL_DUAL_LUMINANCE8_SGIS
+  , pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS
+  , pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS
+  , pattern GL_DUAL_TEXTURE_SELECT_SGIS
+  , pattern GL_QUAD_ALPHA4_SGIS
+  , pattern GL_QUAD_ALPHA8_SGIS
+  , pattern GL_QUAD_INTENSITY4_SGIS
+  , pattern GL_QUAD_INTENSITY8_SGIS
+  , pattern GL_QUAD_LUMINANCE4_SGIS
+  , pattern GL_QUAD_LUMINANCE8_SGIS
+  , pattern GL_QUAD_TEXTURE_SELECT_SGIS
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIS/texture_select.txt GL_SGIS_texture_select> extension is available.
+
+gl_SGIS_texture_select :: Bool
+gl_SGIS_texture_select = member "GL_SGIS_texture_select" extensions
+{-# NOINLINE gl_SGIS_texture_select #-}
+
+pattern GL_DUAL_ALPHA12_SGIS = 0x8112
+
+pattern GL_DUAL_ALPHA16_SGIS = 0x8113
+
+pattern GL_DUAL_ALPHA4_SGIS = 0x8110
+
+pattern GL_DUAL_ALPHA8_SGIS = 0x8111
+
+pattern GL_DUAL_INTENSITY12_SGIS = 0x811A
+
+pattern GL_DUAL_INTENSITY16_SGIS = 0x811B
+
+pattern GL_DUAL_INTENSITY4_SGIS = 0x8118
+
+pattern GL_DUAL_INTENSITY8_SGIS = 0x8119
+
+pattern GL_DUAL_LUMINANCE12_SGIS = 0x8116
+
+pattern GL_DUAL_LUMINANCE16_SGIS = 0x8117
+
+pattern GL_DUAL_LUMINANCE4_SGIS = 0x8114
+
+pattern GL_DUAL_LUMINANCE8_SGIS = 0x8115
+
+pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C
+
+pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D
+
+pattern GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124
+
+pattern GL_QUAD_ALPHA4_SGIS = 0x811E
+
+pattern GL_QUAD_ALPHA8_SGIS = 0x811F
+
+pattern GL_QUAD_INTENSITY4_SGIS = 0x8122
+
+pattern GL_QUAD_INTENSITY8_SGIS = 0x8123
+
+pattern GL_QUAD_LUMINANCE4_SGIS = 0x8120
+
+pattern GL_QUAD_LUMINANCE8_SGIS = 0x8121
+
+pattern GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125
diff --git a/generated-src/Graphics/GL/Ext/SGIX.hs b/generated-src/Graphics/GL/Ext/SGIX.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX.hs
@@ -0,0 +1,82 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX (
+  -- * SGIX Extensions
+    module Graphics.GL.Ext.SGIX.Async
+  , module Graphics.GL.Ext.SGIX.AsyncHistogram
+  , module Graphics.GL.Ext.SGIX.AsyncPixel
+  , module Graphics.GL.Ext.SGIX.BlendAlphaMinmax
+  , module Graphics.GL.Ext.SGIX.CalligraphicFragment
+  , module Graphics.GL.Ext.SGIX.Clipmap
+  , module Graphics.GL.Ext.SGIX.ConvolutionAccuracy
+  , module Graphics.GL.Ext.SGIX.DepthPassInstrument
+  , module Graphics.GL.Ext.SGIX.DepthTexture
+  , module Graphics.GL.Ext.SGIX.FlushRaster
+  , module Graphics.GL.Ext.SGIX.FogOffset
+  , module Graphics.GL.Ext.SGIX.FragmentLighting
+  , module Graphics.GL.Ext.SGIX.Framezoom
+  , module Graphics.GL.Ext.SGIX.IglooInterface
+  , module Graphics.GL.Ext.SGIX.Instruments
+  , module Graphics.GL.Ext.SGIX.Interlace
+  , module Graphics.GL.Ext.SGIX.IrInstrument1
+  , module Graphics.GL.Ext.SGIX.ListPriority
+  , module Graphics.GL.Ext.SGIX.PixelTexture
+  , module Graphics.GL.Ext.SGIX.PixelTiles
+  , module Graphics.GL.Ext.SGIX.PolynomialFfd
+  , module Graphics.GL.Ext.SGIX.ReferencePlane
+  , module Graphics.GL.Ext.SGIX.Resample
+  , module Graphics.GL.Ext.SGIX.ScalebiasHint
+  , module Graphics.GL.Ext.SGIX.Shadow
+  , module Graphics.GL.Ext.SGIX.ShadowAmbient
+  , module Graphics.GL.Ext.SGIX.Sprite
+  , module Graphics.GL.Ext.SGIX.Subsample
+  , module Graphics.GL.Ext.SGIX.TagSampleBuffer
+  , module Graphics.GL.Ext.SGIX.TextureAddEnv
+  , module Graphics.GL.Ext.SGIX.TextureCoordinateClamp
+  , module Graphics.GL.Ext.SGIX.TextureLodBias
+  , module Graphics.GL.Ext.SGIX.TextureMultiBuffer
+  , module Graphics.GL.Ext.SGIX.TextureScaleBias
+  , module Graphics.GL.Ext.SGIX.VertexPreclip
+  , module Graphics.GL.Ext.SGIX.Ycrcb
+  , module Graphics.GL.Ext.SGIX.YcrcbSubsample
+  , module Graphics.GL.Ext.SGIX.Ycrcba
+) where
+
+import Graphics.GL.Ext.SGIX.Async
+import Graphics.GL.Ext.SGIX.AsyncHistogram
+import Graphics.GL.Ext.SGIX.AsyncPixel
+import Graphics.GL.Ext.SGIX.BlendAlphaMinmax
+import Graphics.GL.Ext.SGIX.CalligraphicFragment
+import Graphics.GL.Ext.SGIX.Clipmap
+import Graphics.GL.Ext.SGIX.ConvolutionAccuracy
+import Graphics.GL.Ext.SGIX.DepthPassInstrument
+import Graphics.GL.Ext.SGIX.DepthTexture
+import Graphics.GL.Ext.SGIX.FlushRaster
+import Graphics.GL.Ext.SGIX.FogOffset
+import Graphics.GL.Ext.SGIX.FragmentLighting
+import Graphics.GL.Ext.SGIX.Framezoom
+import Graphics.GL.Ext.SGIX.IglooInterface
+import Graphics.GL.Ext.SGIX.Instruments
+import Graphics.GL.Ext.SGIX.Interlace
+import Graphics.GL.Ext.SGIX.IrInstrument1
+import Graphics.GL.Ext.SGIX.ListPriority
+import Graphics.GL.Ext.SGIX.PixelTexture
+import Graphics.GL.Ext.SGIX.PixelTiles
+import Graphics.GL.Ext.SGIX.PolynomialFfd
+import Graphics.GL.Ext.SGIX.ReferencePlane
+import Graphics.GL.Ext.SGIX.Resample
+import Graphics.GL.Ext.SGIX.ScalebiasHint
+import Graphics.GL.Ext.SGIX.Shadow
+import Graphics.GL.Ext.SGIX.ShadowAmbient
+import Graphics.GL.Ext.SGIX.Sprite
+import Graphics.GL.Ext.SGIX.Subsample
+import Graphics.GL.Ext.SGIX.TagSampleBuffer
+import Graphics.GL.Ext.SGIX.TextureAddEnv
+import Graphics.GL.Ext.SGIX.TextureCoordinateClamp
+import Graphics.GL.Ext.SGIX.TextureLodBias
+import Graphics.GL.Ext.SGIX.TextureMultiBuffer
+import Graphics.GL.Ext.SGIX.TextureScaleBias
+import Graphics.GL.Ext.SGIX.VertexPreclip
+import Graphics.GL.Ext.SGIX.Ycrcb
+import Graphics.GL.Ext.SGIX.YcrcbSubsample
+import Graphics.GL.Ext.SGIX.Ycrcba
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Async.hs b/generated-src/Graphics/GL/Ext/SGIX/Async.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Async.hs
@@ -0,0 +1,101 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Async (
+  -- * Extension Support
+    gl_SGIX_async
+
+  -- * GL_SGIX_async
+  , glAsyncMarkerSGIX
+  , glDeleteAsyncMarkersSGIX
+  , glFinishAsyncSGIX
+  , glGenAsyncMarkersSGIX
+  , glIsAsyncMarkerSGIX
+  , glPollAsyncSGIX
+  , pattern GL_ASYNC_MARKER_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async.txt GL_SGIX_async> extension is available.
+
+gl_SGIX_async :: Bool
+gl_SGIX_async = member "GL_SGIX_async" extensions
+{-# NOINLINE gl_SGIX_async #-}
+
+-- | Usage: @'glAsyncMarkerSGIX' marker@
+
+
+glAsyncMarkerSGIX :: MonadIO m => GLuint -> m ()
+glAsyncMarkerSGIX = ffiuintIOV glAsyncMarkerSGIXFunPtr
+
+glAsyncMarkerSGIXFunPtr :: FunPtr (GLuint -> IO ())
+glAsyncMarkerSGIXFunPtr = unsafePerformIO (getProcAddress "glAsyncMarkerSGIX")
+
+{-# NOINLINE glAsyncMarkerSGIXFunPtr #-}
+
+-- | Usage: @'glDeleteAsyncMarkersSGIX' marker range@
+
+
+glDeleteAsyncMarkersSGIX :: MonadIO m => GLuint -> GLsizei -> m ()
+glDeleteAsyncMarkersSGIX = ffiuintsizeiIOV glDeleteAsyncMarkersSGIXFunPtr
+
+glDeleteAsyncMarkersSGIXFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
+glDeleteAsyncMarkersSGIXFunPtr = unsafePerformIO (getProcAddress "glDeleteAsyncMarkersSGIX")
+
+{-# NOINLINE glDeleteAsyncMarkersSGIXFunPtr #-}
+
+-- | Usage: @'glFinishAsyncSGIX' markerp@
+--
+-- The length of @markerp@ should be @1@.
+
+
+glFinishAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
+glFinishAsyncSGIX = ffiPtruintIOint glFinishAsyncSGIXFunPtr
+
+glFinishAsyncSGIXFunPtr :: FunPtr (Ptr GLuint -> IO GLint)
+glFinishAsyncSGIXFunPtr = unsafePerformIO (getProcAddress "glFinishAsyncSGIX")
+
+{-# NOINLINE glFinishAsyncSGIXFunPtr #-}
+
+-- | Usage: @'glGenAsyncMarkersSGIX' range@
+
+
+glGenAsyncMarkersSGIX :: MonadIO m => GLsizei -> m GLuint
+glGenAsyncMarkersSGIX = ffisizeiIOuint glGenAsyncMarkersSGIXFunPtr
+
+glGenAsyncMarkersSGIXFunPtr :: FunPtr (GLsizei -> IO GLuint)
+glGenAsyncMarkersSGIXFunPtr = unsafePerformIO (getProcAddress "glGenAsyncMarkersSGIX")
+
+{-# NOINLINE glGenAsyncMarkersSGIXFunPtr #-}
+
+-- | Usage: @'glIsAsyncMarkerSGIX' marker@
+
+
+glIsAsyncMarkerSGIX :: MonadIO m => GLuint -> m GLboolean
+glIsAsyncMarkerSGIX = ffiuintIOboolean glIsAsyncMarkerSGIXFunPtr
+
+glIsAsyncMarkerSGIXFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsAsyncMarkerSGIXFunPtr = unsafePerformIO (getProcAddress "glIsAsyncMarkerSGIX")
+
+{-# NOINLINE glIsAsyncMarkerSGIXFunPtr #-}
+
+-- | Usage: @'glPollAsyncSGIX' markerp@
+--
+-- The length of @markerp@ should be @1@.
+
+
+glPollAsyncSGIX :: MonadIO m => Ptr GLuint -> m GLint
+glPollAsyncSGIX = ffiPtruintIOint glPollAsyncSGIXFunPtr
+
+glPollAsyncSGIXFunPtr :: FunPtr (Ptr GLuint -> IO GLint)
+glPollAsyncSGIXFunPtr = unsafePerformIO (getProcAddress "glPollAsyncSGIX")
+
+{-# NOINLINE glPollAsyncSGIXFunPtr #-}
+
+pattern GL_ASYNC_MARKER_SGIX = 0x8329
diff --git a/generated-src/Graphics/GL/Ext/SGIX/AsyncHistogram.hs b/generated-src/Graphics/GL/Ext/SGIX/AsyncHistogram.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/AsyncHistogram.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.AsyncHistogram (
+  -- * Extension Support
+    gl_SGIX_async_histogram
+
+  -- * GL_SGIX_async_histogram
+  , pattern GL_ASYNC_HISTOGRAM_SGIX
+  , pattern GL_MAX_ASYNC_HISTOGRAM_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_histogram.txt GL_SGIX_async_histogram> extension is available.
+
+gl_SGIX_async_histogram :: Bool
+gl_SGIX_async_histogram = member "GL_SGIX_async_histogram" extensions
+{-# NOINLINE gl_SGIX_async_histogram #-}
+
+pattern GL_ASYNC_HISTOGRAM_SGIX = 0x832C
+
+pattern GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D
diff --git a/generated-src/Graphics/GL/Ext/SGIX/AsyncPixel.hs b/generated-src/Graphics/GL/Ext/SGIX/AsyncPixel.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/AsyncPixel.hs
@@ -0,0 +1,35 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.AsyncPixel (
+  -- * Extension Support
+    gl_SGIX_async_pixel
+
+  -- * GL_SGIX_async_pixel
+  , pattern GL_ASYNC_DRAW_PIXELS_SGIX
+  , pattern GL_ASYNC_READ_PIXELS_SGIX
+  , pattern GL_ASYNC_TEX_IMAGE_SGIX
+  , pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX
+  , pattern GL_MAX_ASYNC_READ_PIXELS_SGIX
+  , pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/async_pixel.txt GL_SGIX_async_pixel> extension is available.
+
+gl_SGIX_async_pixel :: Bool
+gl_SGIX_async_pixel = member "GL_SGIX_async_pixel" extensions
+{-# NOINLINE gl_SGIX_async_pixel #-}
+
+pattern GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D
+
+pattern GL_ASYNC_READ_PIXELS_SGIX = 0x835E
+
+pattern GL_ASYNC_TEX_IMAGE_SGIX = 0x835C
+
+pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360
+
+pattern GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361
+
+pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs b/generated-src/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.BlendAlphaMinmax (
+  -- * Extension Support
+    gl_SGIX_blend_alpha_minmax
+
+  -- * GL_SGIX_blend_alpha_minmax
+  , pattern GL_ALPHA_MAX_SGIX
+  , pattern GL_ALPHA_MIN_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/blend_alpha_minmax.txt GL_SGIX_blend_alpha_minmax> extension is available.
+
+gl_SGIX_blend_alpha_minmax :: Bool
+gl_SGIX_blend_alpha_minmax = member "GL_SGIX_blend_alpha_minmax" extensions
+{-# NOINLINE gl_SGIX_blend_alpha_minmax #-}
+
+pattern GL_ALPHA_MAX_SGIX = 0x8321
+
+pattern GL_ALPHA_MIN_SGIX = 0x8320
diff --git a/generated-src/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs b/generated-src/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.CalligraphicFragment (
+  -- * Extension Support
+    gl_SGIX_calligraphic_fragment
+
+  -- * GL_SGIX_calligraphic_fragment
+  , pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_calligraphic_fragment extension is available.
+
+gl_SGIX_calligraphic_fragment :: Bool
+gl_SGIX_calligraphic_fragment = member "GL_SGIX_calligraphic_fragment" extensions
+{-# NOINLINE gl_SGIX_calligraphic_fragment #-}
+
+pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Clipmap.hs b/generated-src/Graphics/GL/Ext/SGIX/Clipmap.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Clipmap.hs
@@ -0,0 +1,53 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Clipmap (
+  -- * Extension Support
+    gl_SGIX_clipmap
+
+  -- * GL_SGIX_clipmap
+  , pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX
+  , pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX
+  , pattern GL_MAX_CLIPMAP_DEPTH_SGIX
+  , pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX
+  , pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX
+  , pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX
+  , pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX
+  , pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX
+  , pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX
+  , pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX
+  , pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX
+  , pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/clipmap.txt GL_SGIX_clipmap> extension is available.
+
+gl_SGIX_clipmap :: Bool
+gl_SGIX_clipmap = member "GL_SGIX_clipmap" extensions
+{-# NOINLINE gl_SGIX_clipmap #-}
+
+pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170
+
+pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F
+
+pattern GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177
+
+pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178
+
+pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E
+
+pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D
+
+pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171
+
+pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176
+
+pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172
+
+pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175
+
+pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173
+
+pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs b/generated-src/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.ConvolutionAccuracy (
+  -- * Extension Support
+    gl_SGIX_convolution_accuracy
+
+  -- * GL_SGIX_convolution_accuracy
+  , pattern GL_CONVOLUTION_HINT_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/convolution_accuracy.txt GL_SGIX_convolution_accuracy> extension is available.
+
+gl_SGIX_convolution_accuracy :: Bool
+gl_SGIX_convolution_accuracy = member "GL_SGIX_convolution_accuracy" extensions
+{-# NOINLINE gl_SGIX_convolution_accuracy #-}
+
+pattern GL_CONVOLUTION_HINT_SGIX = 0x8316
diff --git a/generated-src/Graphics/GL/Ext/SGIX/DepthPassInstrument.hs b/generated-src/Graphics/GL/Ext/SGIX/DepthPassInstrument.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/DepthPassInstrument.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.DepthPassInstrument (
+  -- * Extension Support
+    gl_SGIX_depth_pass_instrument
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_depth_pass_instrument extension is available.
+
+gl_SGIX_depth_pass_instrument :: Bool
+gl_SGIX_depth_pass_instrument = member "GL_SGIX_depth_pass_instrument" extensions
+{-# NOINLINE gl_SGIX_depth_pass_instrument #-}
diff --git a/generated-src/Graphics/GL/Ext/SGIX/DepthTexture.hs b/generated-src/Graphics/GL/Ext/SGIX/DepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/DepthTexture.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.DepthTexture (
+  -- * Extension Support
+    gl_SGIX_depth_texture
+
+  -- * GL_SGIX_depth_texture
+  , pattern GL_DEPTH_COMPONENT16_SGIX
+  , pattern GL_DEPTH_COMPONENT24_SGIX
+  , pattern GL_DEPTH_COMPONENT32_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/depth_texture.txt GL_SGIX_depth_texture> extension is available.
+
+gl_SGIX_depth_texture :: Bool
+gl_SGIX_depth_texture = member "GL_SGIX_depth_texture" extensions
+{-# NOINLINE gl_SGIX_depth_texture #-}
+
+pattern GL_DEPTH_COMPONENT16_SGIX = 0x81A5
+
+pattern GL_DEPTH_COMPONENT24_SGIX = 0x81A6
+
+pattern GL_DEPTH_COMPONENT32_SGIX = 0x81A7
diff --git a/generated-src/Graphics/GL/Ext/SGIX/FlushRaster.hs b/generated-src/Graphics/GL/Ext/SGIX/FlushRaster.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/FlushRaster.hs
@@ -0,0 +1,33 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.FlushRaster (
+  -- * Extension Support
+    gl_SGIX_flush_raster
+
+  -- * GL_SGIX_flush_raster
+  , glFlushRasterSGIX
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/flush_raster.txt GL_SGIX_flush_raster> extension is available.
+
+gl_SGIX_flush_raster :: Bool
+gl_SGIX_flush_raster = member "GL_SGIX_flush_raster" extensions
+{-# NOINLINE gl_SGIX_flush_raster #-}
+
+-- | Usage: @'glFlushRasterSGIX'@
+
+
+glFlushRasterSGIX :: MonadIO m => m ()
+glFlushRasterSGIX = ffiIOV glFlushRasterSGIXFunPtr
+
+glFlushRasterSGIXFunPtr :: FunPtr (IO ())
+glFlushRasterSGIXFunPtr = unsafePerformIO (getProcAddress "glFlushRasterSGIX")
+
+{-# NOINLINE glFlushRasterSGIXFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/SGIX/FogOffset.hs b/generated-src/Graphics/GL/Ext/SGIX/FogOffset.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/FogOffset.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.FogOffset (
+  -- * Extension Support
+    gl_SGIX_fog_offset
+
+  -- * GL_SGIX_fog_offset
+  , pattern GL_FOG_OFFSET_SGIX
+  , pattern GL_FOG_OFFSET_VALUE_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/fog_offset.txt GL_SGIX_fog_offset> extension is available.
+
+gl_SGIX_fog_offset :: Bool
+gl_SGIX_fog_offset = member "GL_SGIX_fog_offset" extensions
+{-# NOINLINE gl_SGIX_fog_offset #-}
+
+pattern GL_FOG_OFFSET_SGIX = 0x8198
+
+pattern GL_FOG_OFFSET_VALUE_SGIX = 0x8199
diff --git a/generated-src/Graphics/GL/Ext/SGIX/FragmentLighting.hs b/generated-src/Graphics/GL/Ext/SGIX/FragmentLighting.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/FragmentLighting.hs
@@ -0,0 +1,406 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.FragmentLighting (
+  -- * Extension Support
+    gl_SGIX_fragment_lighting
+
+  -- * GL_SGIX_fragment_lighting
+  , glFragmentColorMaterialSGIX
+  , glFragmentLightModelfSGIX
+  , glFragmentLightModelfvSGIX
+  , glFragmentLightModeliSGIX
+  , glFragmentLightModelivSGIX
+  , glFragmentLightfSGIX
+  , glFragmentLightfvSGIX
+  , glFragmentLightiSGIX
+  , glFragmentLightivSGIX
+  , glFragmentMaterialfSGIX
+  , glFragmentMaterialfvSGIX
+  , glFragmentMaterialiSGIX
+  , glFragmentMaterialivSGIX
+  , glGetFragmentLightfvSGIX
+  , glGetFragmentLightivSGIX
+  , glGetFragmentMaterialfvSGIX
+  , glGetFragmentMaterialivSGIX
+  , glLightEnviSGIX
+  , pattern GL_CURRENT_RASTER_NORMAL_SGIX
+  , pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX
+  , pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX
+  , pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX
+  , pattern GL_FRAGMENT_LIGHT0_SGIX
+  , pattern GL_FRAGMENT_LIGHT1_SGIX
+  , pattern GL_FRAGMENT_LIGHT2_SGIX
+  , pattern GL_FRAGMENT_LIGHT3_SGIX
+  , pattern GL_FRAGMENT_LIGHT4_SGIX
+  , pattern GL_FRAGMENT_LIGHT5_SGIX
+  , pattern GL_FRAGMENT_LIGHT6_SGIX
+  , pattern GL_FRAGMENT_LIGHT7_SGIX
+  , pattern GL_FRAGMENT_LIGHTING_SGIX
+  , pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX
+  , pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX
+  , pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX
+  , pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX
+  , pattern GL_LIGHT_ENV_MODE_SGIX
+  , pattern GL_MAX_ACTIVE_LIGHTS_SGIX
+  , pattern GL_MAX_FRAGMENT_LIGHTS_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_SGIX_fragment_lighting extension is available.
+
+gl_SGIX_fragment_lighting :: Bool
+gl_SGIX_fragment_lighting = member "GL_SGIX_fragment_lighting" extensions
+{-# NOINLINE gl_SGIX_fragment_lighting #-}
+
+-- | Usage: @'glFragmentColorMaterialSGIX' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+
+
+glFragmentColorMaterialSGIX :: MonadIO m => GLenum -> GLenum -> m ()
+glFragmentColorMaterialSGIX = ffienumenumIOV glFragmentColorMaterialSGIXFunPtr
+
+glFragmentColorMaterialSGIXFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glFragmentColorMaterialSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentColorMaterialSGIX")
+
+{-# NOINLINE glFragmentColorMaterialSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightModelfSGIX' pname param@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glFragmentLightModelfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
+glFragmentLightModelfSGIX = ffienumfloatIOV glFragmentLightModelfSGIXFunPtr
+
+glFragmentLightModelfSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glFragmentLightModelfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelfSGIX")
+
+{-# NOINLINE glFragmentLightModelfSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightModelfvSGIX' pname params@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFragmentLightModelfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glFragmentLightModelfvSGIX = ffienumPtrfloatIOV glFragmentLightModelfvSGIXFunPtr
+
+glFragmentLightModelfvSGIXFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glFragmentLightModelfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelfvSGIX")
+
+{-# NOINLINE glFragmentLightModelfvSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightModeliSGIX' pname param@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glFragmentLightModeliSGIX :: MonadIO m => GLenum -> GLint -> m ()
+glFragmentLightModeliSGIX = ffienumintIOV glFragmentLightModeliSGIXFunPtr
+
+glFragmentLightModeliSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glFragmentLightModeliSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModeliSGIX")
+
+{-# NOINLINE glFragmentLightModeliSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightModelivSGIX' pname params@
+--
+-- The parameter @pname@ is a @FragmentLightModelParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFragmentLightModelivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glFragmentLightModelivSGIX = ffienumPtrintIOV glFragmentLightModelivSGIXFunPtr
+
+glFragmentLightModelivSGIXFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glFragmentLightModelivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightModelivSGIX")
+
+{-# NOINLINE glFragmentLightModelivSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightfSGIX' light pname param@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glFragmentLightfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glFragmentLightfSGIX = ffienumenumfloatIOV glFragmentLightfSGIXFunPtr
+
+glFragmentLightfSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glFragmentLightfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightfSGIX")
+
+{-# NOINLINE glFragmentLightfSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightfvSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glFragmentLightfvSGIX = ffienumenumPtrfloatIOV glFragmentLightfvSGIXFunPtr
+
+glFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glFragmentLightfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightfvSGIX")
+
+{-# NOINLINE glFragmentLightfvSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightiSGIX' light pname param@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glFragmentLightiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glFragmentLightiSGIX = ffienumenumintIOV glFragmentLightiSGIXFunPtr
+
+glFragmentLightiSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glFragmentLightiSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightiSGIX")
+
+{-# NOINLINE glFragmentLightiSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentLightivSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glFragmentLightivSGIX = ffienumenumPtrintIOV glFragmentLightivSGIXFunPtr
+
+glFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glFragmentLightivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentLightivSGIX")
+
+{-# NOINLINE glFragmentLightivSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentMaterialfSGIX' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glFragmentMaterialfSGIX :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glFragmentMaterialfSGIX = ffienumenumfloatIOV glFragmentMaterialfSGIXFunPtr
+
+glFragmentMaterialfSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glFragmentMaterialfSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialfSGIX")
+
+{-# NOINLINE glFragmentMaterialfSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentMaterialfvSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glFragmentMaterialfvSGIXFunPtr
+
+glFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glFragmentMaterialfvSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialfvSGIX")
+
+{-# NOINLINE glFragmentMaterialfvSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentMaterialiSGIX' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glFragmentMaterialiSGIX :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glFragmentMaterialiSGIX = ffienumenumintIOV glFragmentMaterialiSGIXFunPtr
+
+glFragmentMaterialiSGIXFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glFragmentMaterialiSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialiSGIX")
+
+{-# NOINLINE glFragmentMaterialiSGIXFunPtr #-}
+
+-- | Usage: @'glFragmentMaterialivSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glFragmentMaterialivSGIX = ffienumenumPtrintIOV glFragmentMaterialivSGIXFunPtr
+
+glFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glFragmentMaterialivSGIXFunPtr = unsafePerformIO (getProcAddress "glFragmentMaterialivSGIX")
+
+{-# NOINLINE glFragmentMaterialivSGIXFunPtr #-}
+
+-- | Usage: @'glGetFragmentLightfvSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFragmentLightfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetFragmentLightfvSGIX = ffienumenumPtrfloatIOV glGetFragmentLightfvSGIXFunPtr
+
+glGetFragmentLightfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetFragmentLightfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentLightfvSGIX")
+
+{-# NOINLINE glGetFragmentLightfvSGIXFunPtr #-}
+
+-- | Usage: @'glGetFragmentLightivSGIX' light pname params@
+--
+-- The parameter @light@ is a @FragmentLightNameSGIX@.
+--
+-- The parameter @pname@ is a @FragmentLightParameterSGIX@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFragmentLightivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFragmentLightivSGIX = ffienumenumPtrintIOV glGetFragmentLightivSGIXFunPtr
+
+glGetFragmentLightivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFragmentLightivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentLightivSGIX")
+
+{-# NOINLINE glGetFragmentLightivSGIXFunPtr #-}
+
+-- | Usage: @'glGetFragmentMaterialfvSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFragmentMaterialfvSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetFragmentMaterialfvSGIX = ffienumenumPtrfloatIOV glGetFragmentMaterialfvSGIXFunPtr
+
+glGetFragmentMaterialfvSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetFragmentMaterialfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentMaterialfvSGIX")
+
+{-# NOINLINE glGetFragmentMaterialfvSGIXFunPtr #-}
+
+-- | Usage: @'glGetFragmentMaterialivSGIX' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFragmentMaterialivSGIX :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFragmentMaterialivSGIX = ffienumenumPtrintIOV glGetFragmentMaterialivSGIXFunPtr
+
+glGetFragmentMaterialivSGIXFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFragmentMaterialivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetFragmentMaterialivSGIX")
+
+{-# NOINLINE glGetFragmentMaterialivSGIXFunPtr #-}
+
+-- | Usage: @'glLightEnviSGIX' pname param@
+--
+-- The parameter @pname@ is a @LightEnvParameterSGIX@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glLightEnviSGIX :: MonadIO m => GLenum -> GLint -> m ()
+glLightEnviSGIX = ffienumintIOV glLightEnviSGIXFunPtr
+
+glLightEnviSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glLightEnviSGIXFunPtr = unsafePerformIO (getProcAddress "glLightEnviSGIX")
+
+{-# NOINLINE glLightEnviSGIXFunPtr #-}
+
+pattern GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406
+
+pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402
+
+pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403
+
+pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401
+
+pattern GL_FRAGMENT_LIGHT0_SGIX = 0x840C
+
+pattern GL_FRAGMENT_LIGHT1_SGIX = 0x840D
+
+pattern GL_FRAGMENT_LIGHT2_SGIX = 0x840E
+
+pattern GL_FRAGMENT_LIGHT3_SGIX = 0x840F
+
+pattern GL_FRAGMENT_LIGHT4_SGIX = 0x8410
+
+pattern GL_FRAGMENT_LIGHT5_SGIX = 0x8411
+
+pattern GL_FRAGMENT_LIGHT6_SGIX = 0x8412
+
+pattern GL_FRAGMENT_LIGHT7_SGIX = 0x8413
+
+pattern GL_FRAGMENT_LIGHTING_SGIX = 0x8400
+
+pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A
+
+pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408
+
+pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B
+
+pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409
+
+pattern GL_LIGHT_ENV_MODE_SGIX = 0x8407
+
+pattern GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405
+
+pattern GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Framezoom.hs b/generated-src/Graphics/GL/Ext/SGIX/Framezoom.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Framezoom.hs
@@ -0,0 +1,45 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Framezoom (
+  -- * Extension Support
+    gl_SGIX_framezoom
+
+  -- * GL_SGIX_framezoom
+  , glFrameZoomSGIX
+  , pattern GL_FRAMEZOOM_FACTOR_SGIX
+  , pattern GL_FRAMEZOOM_SGIX
+  , pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/framezoom.txt GL_SGIX_framezoom> extension is available.
+
+gl_SGIX_framezoom :: Bool
+gl_SGIX_framezoom = member "GL_SGIX_framezoom" extensions
+{-# NOINLINE gl_SGIX_framezoom #-}
+
+-- | Usage: @'glFrameZoomSGIX' factor@
+--
+-- The parameter @factor@ is a @CheckedInt32@.
+
+
+glFrameZoomSGIX :: MonadIO m => GLint -> m ()
+glFrameZoomSGIX = ffiintIOV glFrameZoomSGIXFunPtr
+
+glFrameZoomSGIXFunPtr :: FunPtr (GLint -> IO ())
+glFrameZoomSGIXFunPtr = unsafePerformIO (getProcAddress "glFrameZoomSGIX")
+
+{-# NOINLINE glFrameZoomSGIXFunPtr #-}
+
+pattern GL_FRAMEZOOM_FACTOR_SGIX = 0x818C
+
+pattern GL_FRAMEZOOM_SGIX = 0x818B
+
+pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D
diff --git a/generated-src/Graphics/GL/Ext/SGIX/IglooInterface.hs b/generated-src/Graphics/GL/Ext/SGIX/IglooInterface.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/IglooInterface.hs
@@ -0,0 +1,40 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.IglooInterface (
+  -- * Extension Support
+    gl_SGIX_igloo_interface
+
+  -- * GL_SGIX_igloo_interface
+  , glIglooInterfaceSGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_SGIX_igloo_interface extension is available.
+
+gl_SGIX_igloo_interface :: Bool
+gl_SGIX_igloo_interface = member "GL_SGIX_igloo_interface" extensions
+{-# NOINLINE gl_SGIX_igloo_interface #-}
+
+-- | Usage: @'glIglooInterfaceSGIX' pname params@
+--
+-- The parameter @pname@ is a @IglooFunctionSelectSGIX@.
+--
+-- The parameter @params@ is a @IglooParameterSGIX@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glIglooInterfaceSGIX :: MonadIO m => GLenum -> Ptr () -> m ()
+glIglooInterfaceSGIX = ffienumPtrVIOV glIglooInterfaceSGIXFunPtr
+
+glIglooInterfaceSGIXFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glIglooInterfaceSGIXFunPtr = unsafePerformIO (getProcAddress "glIglooInterfaceSGIX")
+
+{-# NOINLINE glIglooInterfaceSGIXFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Instruments.hs b/generated-src/Graphics/GL/Ext/SGIX/Instruments.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Instruments.hs
@@ -0,0 +1,104 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Instruments (
+  -- * Extension Support
+    gl_SGIX_instruments
+
+  -- * GL_SGIX_instruments
+  , glGetInstrumentsSGIX
+  , glInstrumentsBufferSGIX
+  , glPollInstrumentsSGIX
+  , glReadInstrumentsSGIX
+  , glStartInstrumentsSGIX
+  , glStopInstrumentsSGIX
+  , pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX
+  , pattern GL_INSTRUMENT_MEASUREMENTS_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/instruments.txt GL_SGIX_instruments> extension is available.
+
+gl_SGIX_instruments :: Bool
+gl_SGIX_instruments = member "GL_SGIX_instruments" extensions
+{-# NOINLINE gl_SGIX_instruments #-}
+
+-- | Usage: @'glGetInstrumentsSGIX'@
+
+
+glGetInstrumentsSGIX :: MonadIO m => m GLint
+glGetInstrumentsSGIX = ffiIOint glGetInstrumentsSGIXFunPtr
+
+glGetInstrumentsSGIXFunPtr :: FunPtr (IO GLint)
+glGetInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glGetInstrumentsSGIX")
+
+{-# NOINLINE glGetInstrumentsSGIXFunPtr #-}
+
+-- | Usage: @'glInstrumentsBufferSGIX' size buffer@
+--
+-- The length of @buffer@ should be @size@.
+
+
+glInstrumentsBufferSGIX :: MonadIO m => GLsizei -> Ptr GLint -> m ()
+glInstrumentsBufferSGIX = ffisizeiPtrintIOV glInstrumentsBufferSGIXFunPtr
+
+glInstrumentsBufferSGIXFunPtr :: FunPtr (GLsizei -> Ptr GLint -> IO ())
+glInstrumentsBufferSGIXFunPtr = unsafePerformIO (getProcAddress "glInstrumentsBufferSGIX")
+
+{-# NOINLINE glInstrumentsBufferSGIXFunPtr #-}
+
+-- | Usage: @'glPollInstrumentsSGIX' marker_p@
+--
+-- The length of @marker_p@ should be @1@.
+
+
+glPollInstrumentsSGIX :: MonadIO m => Ptr GLint -> m GLint
+glPollInstrumentsSGIX = ffiPtrintIOint glPollInstrumentsSGIXFunPtr
+
+glPollInstrumentsSGIXFunPtr :: FunPtr (Ptr GLint -> IO GLint)
+glPollInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glPollInstrumentsSGIX")
+
+{-# NOINLINE glPollInstrumentsSGIXFunPtr #-}
+
+-- | Usage: @'glReadInstrumentsSGIX' marker@
+
+
+glReadInstrumentsSGIX :: MonadIO m => GLint -> m ()
+glReadInstrumentsSGIX = ffiintIOV glReadInstrumentsSGIXFunPtr
+
+glReadInstrumentsSGIXFunPtr :: FunPtr (GLint -> IO ())
+glReadInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glReadInstrumentsSGIX")
+
+{-# NOINLINE glReadInstrumentsSGIXFunPtr #-}
+
+-- | Usage: @'glStartInstrumentsSGIX'@
+
+
+glStartInstrumentsSGIX :: MonadIO m => m ()
+glStartInstrumentsSGIX = ffiIOV glStartInstrumentsSGIXFunPtr
+
+glStartInstrumentsSGIXFunPtr :: FunPtr (IO ())
+glStartInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glStartInstrumentsSGIX")
+
+{-# NOINLINE glStartInstrumentsSGIXFunPtr #-}
+
+-- | Usage: @'glStopInstrumentsSGIX' marker@
+
+
+glStopInstrumentsSGIX :: MonadIO m => GLint -> m ()
+glStopInstrumentsSGIX = ffiintIOV glStopInstrumentsSGIXFunPtr
+
+glStopInstrumentsSGIXFunPtr :: FunPtr (GLint -> IO ())
+glStopInstrumentsSGIXFunPtr = unsafePerformIO (getProcAddress "glStopInstrumentsSGIX")
+
+{-# NOINLINE glStopInstrumentsSGIXFunPtr #-}
+
+pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180
+
+pattern GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Interlace.hs b/generated-src/Graphics/GL/Ext/SGIX/Interlace.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Interlace.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Interlace (
+  -- * Extension Support
+    gl_SGIX_interlace
+
+  -- * GL_SGIX_interlace
+  , pattern GL_INTERLACE_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/interlace.txt GL_SGIX_interlace> extension is available.
+
+gl_SGIX_interlace :: Bool
+gl_SGIX_interlace = member "GL_SGIX_interlace" extensions
+{-# NOINLINE gl_SGIX_interlace #-}
+
+pattern GL_INTERLACE_SGIX = 0x8094
diff --git a/generated-src/Graphics/GL/Ext/SGIX/IrInstrument1.hs b/generated-src/Graphics/GL/Ext/SGIX/IrInstrument1.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/IrInstrument1.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.IrInstrument1 (
+  -- * Extension Support
+    gl_SGIX_ir_instrument1
+
+  -- * GL_SGIX_ir_instrument1
+  , pattern GL_IR_INSTRUMENT1_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ir_instrument1.txt GL_SGIX_ir_instrument1> extension is available.
+
+gl_SGIX_ir_instrument1 :: Bool
+gl_SGIX_ir_instrument1 = member "GL_SGIX_ir_instrument1" extensions
+{-# NOINLINE gl_SGIX_ir_instrument1 #-}
+
+pattern GL_IR_INSTRUMENT1_SGIX = 0x817F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ListPriority.hs b/generated-src/Graphics/GL/Ext/SGIX/ListPriority.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/ListPriority.hs
@@ -0,0 +1,141 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.ListPriority (
+  -- * Extension Support
+    gl_SGIX_list_priority
+
+  -- * GL_SGIX_list_priority
+  , glGetListParameterfvSGIX
+  , glGetListParameterivSGIX
+  , glListParameterfSGIX
+  , glListParameterfvSGIX
+  , glListParameteriSGIX
+  , glListParameterivSGIX
+  , pattern GL_LIST_PRIORITY_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/list_priority.txt GL_SGIX_list_priority> extension is available.
+
+gl_SGIX_list_priority :: Bool
+gl_SGIX_list_priority = member "GL_SGIX_list_priority" extensions
+{-# NOINLINE gl_SGIX_list_priority #-}
+
+-- | Usage: @'glGetListParameterfvSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetListParameterfvSGIX = ffiuintenumPtrfloatIOV glGetListParameterfvSGIXFunPtr
+
+glGetListParameterfvSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetListParameterfvSGIXFunPtr = unsafePerformIO (getProcAddress "glGetListParameterfvSGIX")
+
+{-# NOINLINE glGetListParameterfvSGIXFunPtr #-}
+
+-- | Usage: @'glGetListParameterivSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetListParameterivSGIX = ffiuintenumPtrintIOV glGetListParameterivSGIXFunPtr
+
+glGetListParameterivSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetListParameterivSGIXFunPtr = unsafePerformIO (getProcAddress "glGetListParameterivSGIX")
+
+{-# NOINLINE glGetListParameterivSGIXFunPtr #-}
+
+-- | Usage: @'glListParameterfSGIX' list pname param@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glListParameterfSGIX :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glListParameterfSGIX = ffiuintenumfloatIOV glListParameterfSGIXFunPtr
+
+glListParameterfSGIXFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glListParameterfSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameterfSGIX")
+
+{-# NOINLINE glListParameterfSGIXFunPtr #-}
+
+-- | Usage: @'glListParameterfvSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glListParameterfvSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glListParameterfvSGIX = ffiuintenumPtrfloatIOV glListParameterfvSGIXFunPtr
+
+glListParameterfvSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glListParameterfvSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameterfvSGIX")
+
+{-# NOINLINE glListParameterfvSGIXFunPtr #-}
+
+-- | Usage: @'glListParameteriSGIX' list pname param@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glListParameteriSGIX :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glListParameteriSGIX = ffiuintenumintIOV glListParameteriSGIXFunPtr
+
+glListParameteriSGIXFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glListParameteriSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameteriSGIX")
+
+{-# NOINLINE glListParameteriSGIXFunPtr #-}
+
+-- | Usage: @'glListParameterivSGIX' list pname params@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @pname@ is a @ListParameterName@, one of: 'Graphics.GL.Ext.SGIX.ListPriority.GL_LIST_PRIORITY_SGIX'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glListParameterivSGIX :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glListParameterivSGIX = ffiuintenumPtrintIOV glListParameterivSGIXFunPtr
+
+glListParameterivSGIXFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glListParameterivSGIXFunPtr = unsafePerformIO (getProcAddress "glListParameterivSGIX")
+
+{-# NOINLINE glListParameterivSGIXFunPtr #-}
+
+pattern GL_LIST_PRIORITY_SGIX = 0x8182
diff --git a/generated-src/Graphics/GL/Ext/SGIX/PixelTexture.hs b/generated-src/Graphics/GL/Ext/SGIX/PixelTexture.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/PixelTexture.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.PixelTexture (
+  -- * Extension Support
+    gl_SGIX_pixel_texture
+
+  -- * GL_SGIX_pixel_texture
+  , glPixelTexGenSGIX
+  , pattern GL_PIXEL_TEX_GEN_MODE_SGIX
+  , pattern GL_PIXEL_TEX_GEN_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_SGIX_pixel_texture extension is available.
+
+gl_SGIX_pixel_texture :: Bool
+gl_SGIX_pixel_texture = member "GL_SGIX_pixel_texture" extensions
+{-# NOINLINE gl_SGIX_pixel_texture #-}
+
+-- | Usage: @'glPixelTexGenSGIX' mode@
+--
+-- The parameter @mode@ is a @PixelTexGenModeSGIX@.
+
+
+glPixelTexGenSGIX :: MonadIO m => GLenum -> m ()
+glPixelTexGenSGIX = ffienumIOV glPixelTexGenSGIXFunPtr
+
+glPixelTexGenSGIXFunPtr :: FunPtr (GLenum -> IO ())
+glPixelTexGenSGIXFunPtr = unsafePerformIO (getProcAddress "glPixelTexGenSGIX")
+
+{-# NOINLINE glPixelTexGenSGIXFunPtr #-}
+
+pattern GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B
+
+pattern GL_PIXEL_TEX_GEN_SGIX = 0x8139
diff --git a/generated-src/Graphics/GL/Ext/SGIX/PixelTiles.hs b/generated-src/Graphics/GL/Ext/SGIX/PixelTiles.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/PixelTiles.hs
@@ -0,0 +1,41 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.PixelTiles (
+  -- * Extension Support
+    gl_SGIX_pixel_tiles
+
+  -- * GL_SGIX_pixel_tiles
+  , pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX
+  , pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX
+  , pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX
+  , pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX
+  , pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX
+  , pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX
+  , pattern GL_PIXEL_TILE_HEIGHT_SGIX
+  , pattern GL_PIXEL_TILE_WIDTH_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_pixel_tiles extension is available.
+
+gl_SGIX_pixel_tiles :: Bool
+gl_SGIX_pixel_tiles = member "GL_SGIX_pixel_tiles" extensions
+{-# NOINLINE gl_SGIX_pixel_tiles #-}
+
+pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E
+
+pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F
+
+pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145
+
+pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144
+
+pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143
+
+pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142
+
+pattern GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141
+
+pattern GL_PIXEL_TILE_WIDTH_SGIX = 0x8140
diff --git a/generated-src/Graphics/GL/Ext/SGIX/PolynomialFfd.hs b/generated-src/Graphics/GL/Ext/SGIX/PolynomialFfd.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/PolynomialFfd.hs
@@ -0,0 +1,140 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.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.Internal.FFI
+import Graphics.GL.Internal.Proc
+import Graphics.GL.Types
+import System.IO.Unsafe
+
+-- | Checks that the GL_SGIX_polynomial_ffd extension is available.
+
+gl_SGIX_polynomial_ffd :: Bool
+gl_SGIX_polynomial_ffd = member "GL_SGIX_polynomial_ffd" extensions
+{-# NOINLINE gl_SGIX_polynomial_ffd #-}
+
+-- | Usage: @'glDeformSGIX' mask@
+--
+-- The parameter @mask@ is a @FfdMaskSGIX@, one of: .
+
+
+glDeformSGIX :: MonadIO m => GLbitfield -> m ()
+glDeformSGIX = ffibitfieldIOV glDeformSGIXFunPtr
+
+glDeformSGIXFunPtr :: FunPtr (GLbitfield -> IO ())
+glDeformSGIXFunPtr = unsafePerformIO (getProcAddress "glDeformSGIX")
+
+{-# NOINLINE glDeformSGIXFunPtr #-}
+
+-- | Usage: @'glDeformationMap3dSGIX' target u1 u2 ustride uorder v1 v2 vstride vorder w1 w2 wstride worder points@
+--
+-- The parameter @target@ is a @FfdTargetSGIX@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @w1@ is a @CoordD@.
+--
+-- The parameter @w2@ is a @CoordD@.
+--
+-- The parameter @worder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@.
+
+
+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 #-}
+
+-- | Usage: @'glDeformationMap3fSGIX' target u1 u2 ustride uorder v1 v2 vstride vorder w1 w2 wstride worder points@
+--
+-- The parameter @target@ is a @FfdTargetSGIX@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @w1@ is a @CoordF@.
+--
+-- The parameter @w2@ is a @CoordF@.
+--
+-- The parameter @worder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@.
+
+
+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 #-}
+
+-- | Usage: @'glLoadIdentityDeformationMapSGIX' mask@
+--
+-- The parameter @mask@ is a @FfdMaskSGIX@, one of: .
+
+
+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
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ReferencePlane.hs b/generated-src/Graphics/GL/Ext/SGIX/ReferencePlane.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/ReferencePlane.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.ReferencePlane (
+  -- * Extension Support
+    gl_SGIX_reference_plane
+
+  -- * GL_SGIX_reference_plane
+  , glReferencePlaneSGIX
+  , pattern GL_REFERENCE_PLANE_EQUATION_SGIX
+  , pattern GL_REFERENCE_PLANE_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/reference_plane.txt GL_SGIX_reference_plane> extension is available.
+
+gl_SGIX_reference_plane :: Bool
+gl_SGIX_reference_plane = member "GL_SGIX_reference_plane" extensions
+{-# NOINLINE gl_SGIX_reference_plane #-}
+
+-- | Usage: @'glReferencePlaneSGIX' equation@
+--
+-- The length of @equation@ should be @4@.
+
+
+glReferencePlaneSGIX :: MonadIO m => Ptr GLdouble -> m ()
+glReferencePlaneSGIX = ffiPtrdoubleIOV glReferencePlaneSGIXFunPtr
+
+glReferencePlaneSGIXFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glReferencePlaneSGIXFunPtr = unsafePerformIO (getProcAddress "glReferencePlaneSGIX")
+
+{-# NOINLINE glReferencePlaneSGIXFunPtr #-}
+
+pattern GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E
+
+pattern GL_REFERENCE_PLANE_SGIX = 0x817D
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Resample.hs b/generated-src/Graphics/GL/Ext/SGIX/Resample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Resample.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Resample (
+  -- * Extension Support
+    gl_SGIX_resample
+
+  -- * GL_SGIX_resample
+  , pattern GL_PACK_RESAMPLE_SGIX
+  , pattern GL_RESAMPLE_DECIMATE_SGIX
+  , pattern GL_RESAMPLE_REPLICATE_SGIX
+  , pattern GL_RESAMPLE_ZERO_FILL_SGIX
+  , pattern GL_UNPACK_RESAMPLE_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/resample.txt GL_SGIX_resample> extension is available.
+
+gl_SGIX_resample :: Bool
+gl_SGIX_resample = member "GL_SGIX_resample" extensions
+{-# NOINLINE gl_SGIX_resample #-}
+
+pattern GL_PACK_RESAMPLE_SGIX = 0x842E
+
+pattern GL_RESAMPLE_DECIMATE_SGIX = 0x8430
+
+pattern GL_RESAMPLE_REPLICATE_SGIX = 0x8433
+
+pattern GL_RESAMPLE_ZERO_FILL_SGIX = 0x8434
+
+pattern GL_UNPACK_RESAMPLE_SGIX = 0x842F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ScalebiasHint.hs b/generated-src/Graphics/GL/Ext/SGIX/ScalebiasHint.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/ScalebiasHint.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.ScalebiasHint (
+  -- * Extension Support
+    gl_SGIX_scalebias_hint
+
+  -- * GL_SGIX_scalebias_hint
+  , pattern GL_SCALEBIAS_HINT_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_scalebias_hint extension is available.
+
+gl_SGIX_scalebias_hint :: Bool
+gl_SGIX_scalebias_hint = member "GL_SGIX_scalebias_hint" extensions
+{-# NOINLINE gl_SGIX_scalebias_hint #-}
+
+pattern GL_SCALEBIAS_HINT_SGIX = 0x8322
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Shadow.hs b/generated-src/Graphics/GL/Ext/SGIX/Shadow.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Shadow.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Shadow (
+  -- * Extension Support
+    gl_SGIX_shadow
+
+  -- * GL_SGIX_shadow
+  , pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX
+  , pattern GL_TEXTURE_COMPARE_SGIX
+  , pattern GL_TEXTURE_GEQUAL_R_SGIX
+  , pattern GL_TEXTURE_LEQUAL_R_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow.txt GL_SGIX_shadow> extension is available.
+
+gl_SGIX_shadow :: Bool
+gl_SGIX_shadow = member "GL_SGIX_shadow" extensions
+{-# NOINLINE gl_SGIX_shadow #-}
+
+pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B
+
+pattern GL_TEXTURE_COMPARE_SGIX = 0x819A
+
+pattern GL_TEXTURE_GEQUAL_R_SGIX = 0x819D
+
+pattern GL_TEXTURE_LEQUAL_R_SGIX = 0x819C
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ShadowAmbient.hs b/generated-src/Graphics/GL/Ext/SGIX/ShadowAmbient.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/ShadowAmbient.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.ShadowAmbient (
+  -- * Extension Support
+    gl_SGIX_shadow_ambient
+
+  -- * GL_SGIX_shadow_ambient
+  , pattern GL_SHADOW_AMBIENT_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/shadow_ambient.txt GL_SGIX_shadow_ambient> extension is available.
+
+gl_SGIX_shadow_ambient :: Bool
+gl_SGIX_shadow_ambient = member "GL_SGIX_shadow_ambient" extensions
+{-# NOINLINE gl_SGIX_shadow_ambient #-}
+
+pattern GL_SHADOW_AMBIENT_SGIX = 0x80BF
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Sprite.hs b/generated-src/Graphics/GL/Ext/SGIX/Sprite.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Sprite.hs
@@ -0,0 +1,111 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Sprite (
+  -- * Extension Support
+    gl_SGIX_sprite
+
+  -- * GL_SGIX_sprite
+  , glSpriteParameterfSGIX
+  , glSpriteParameterfvSGIX
+  , glSpriteParameteriSGIX
+  , glSpriteParameterivSGIX
+  , pattern GL_SPRITE_AXIAL_SGIX
+  , pattern GL_SPRITE_AXIS_SGIX
+  , pattern GL_SPRITE_EYE_ALIGNED_SGIX
+  , pattern GL_SPRITE_MODE_SGIX
+  , pattern GL_SPRITE_OBJECT_ALIGNED_SGIX
+  , pattern GL_SPRITE_SGIX
+  , pattern GL_SPRITE_TRANSLATION_SGIX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/sprite.txt GL_SGIX_sprite> extension is available.
+
+gl_SGIX_sprite :: Bool
+gl_SGIX_sprite = member "GL_SGIX_sprite" extensions
+{-# NOINLINE gl_SGIX_sprite #-}
+
+-- | Usage: @'glSpriteParameterfSGIX' pname param@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glSpriteParameterfSGIX :: MonadIO m => GLenum -> GLfloat -> m ()
+glSpriteParameterfSGIX = ffienumfloatIOV glSpriteParameterfSGIXFunPtr
+
+glSpriteParameterfSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glSpriteParameterfSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameterfSGIX")
+
+{-# NOINLINE glSpriteParameterfSGIXFunPtr #-}
+
+-- | Usage: @'glSpriteParameterfvSGIX' pname params@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glSpriteParameterfvSGIX :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glSpriteParameterfvSGIX = ffienumPtrfloatIOV glSpriteParameterfvSGIXFunPtr
+
+glSpriteParameterfvSGIXFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glSpriteParameterfvSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameterfvSGIX")
+
+{-# NOINLINE glSpriteParameterfvSGIXFunPtr #-}
+
+-- | Usage: @'glSpriteParameteriSGIX' pname param@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glSpriteParameteriSGIX :: MonadIO m => GLenum -> GLint -> m ()
+glSpriteParameteriSGIX = ffienumintIOV glSpriteParameteriSGIXFunPtr
+
+glSpriteParameteriSGIXFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glSpriteParameteriSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameteriSGIX")
+
+{-# NOINLINE glSpriteParameteriSGIXFunPtr #-}
+
+-- | Usage: @'glSpriteParameterivSGIX' pname params@
+--
+-- The parameter @pname@ is a @SpriteParameterNameSGIX@.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glSpriteParameterivSGIX :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glSpriteParameterivSGIX = ffienumPtrintIOV glSpriteParameterivSGIXFunPtr
+
+glSpriteParameterivSGIXFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glSpriteParameterivSGIXFunPtr = unsafePerformIO (getProcAddress "glSpriteParameterivSGIX")
+
+{-# NOINLINE glSpriteParameterivSGIXFunPtr #-}
+
+pattern GL_SPRITE_AXIAL_SGIX = 0x814C
+
+pattern GL_SPRITE_AXIS_SGIX = 0x814A
+
+pattern GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E
+
+pattern GL_SPRITE_MODE_SGIX = 0x8149
+
+pattern GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D
+
+pattern GL_SPRITE_SGIX = 0x8148
+
+pattern GL_SPRITE_TRANSLATION_SGIX = 0x814B
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Subsample.hs b/generated-src/Graphics/GL/Ext/SGIX/Subsample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Subsample.hs
@@ -0,0 +1,32 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Subsample (
+  -- * Extension Support
+    gl_SGIX_subsample
+
+  -- * GL_SGIX_subsample
+  , pattern GL_PACK_SUBSAMPLE_RATE_SGIX
+  , pattern GL_PIXEL_SUBSAMPLE_2424_SGIX
+  , pattern GL_PIXEL_SUBSAMPLE_4242_SGIX
+  , pattern GL_PIXEL_SUBSAMPLE_4444_SGIX
+  , pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_subsample extension is available.
+
+gl_SGIX_subsample :: Bool
+gl_SGIX_subsample = member "GL_SGIX_subsample" extensions
+{-# NOINLINE gl_SGIX_subsample #-}
+
+pattern GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0
+
+pattern GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3
+
+pattern GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4
+
+pattern GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2
+
+pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TagSampleBuffer.hs b/generated-src/Graphics/GL/Ext/SGIX/TagSampleBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/TagSampleBuffer.hs
@@ -0,0 +1,33 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.TagSampleBuffer (
+  -- * Extension Support
+    gl_SGIX_tag_sample_buffer
+
+  -- * GL_SGIX_tag_sample_buffer
+  , glTagSampleBufferSGIX
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/tag_sample_buffer.txt GL_SGIX_tag_sample_buffer> extension is available.
+
+gl_SGIX_tag_sample_buffer :: Bool
+gl_SGIX_tag_sample_buffer = member "GL_SGIX_tag_sample_buffer" extensions
+{-# NOINLINE gl_SGIX_tag_sample_buffer #-}
+
+-- | Usage: @'glTagSampleBufferSGIX'@
+
+
+glTagSampleBufferSGIX :: MonadIO m => m ()
+glTagSampleBufferSGIX = ffiIOV glTagSampleBufferSGIXFunPtr
+
+glTagSampleBufferSGIXFunPtr :: FunPtr (IO ())
+glTagSampleBufferSGIXFunPtr = unsafePerformIO (getProcAddress "glTagSampleBufferSGIX")
+
+{-# NOINLINE glTagSampleBufferSGIXFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureAddEnv.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureAddEnv.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureAddEnv.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.TextureAddEnv (
+  -- * Extension Support
+    gl_SGIX_texture_add_env
+
+  -- * GL_SGIX_texture_add_env
+  , pattern GL_TEXTURE_ENV_BIAS_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_texture_add_env extension is available.
+
+gl_SGIX_texture_add_env :: Bool
+gl_SGIX_texture_add_env = member "GL_SGIX_texture_add_env" extensions
+{-# NOINLINE gl_SGIX_texture_add_env #-}
+
+pattern GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.TextureCoordinateClamp (
+  -- * Extension Support
+    gl_SGIX_texture_coordinate_clamp
+
+  -- * GL_SGIX_texture_coordinate_clamp
+  , pattern GL_TEXTURE_MAX_CLAMP_R_SGIX
+  , pattern GL_TEXTURE_MAX_CLAMP_S_SGIX
+  , pattern GL_TEXTURE_MAX_CLAMP_T_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_coordinate_clamp.txt GL_SGIX_texture_coordinate_clamp> extension is available.
+
+gl_SGIX_texture_coordinate_clamp :: Bool
+gl_SGIX_texture_coordinate_clamp = member "GL_SGIX_texture_coordinate_clamp" extensions
+{-# NOINLINE gl_SGIX_texture_coordinate_clamp #-}
+
+pattern GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B
+
+pattern GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369
+
+pattern GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureLodBias.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureLodBias.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureLodBias.hs
@@ -0,0 +1,26 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.TextureLodBias (
+  -- * Extension Support
+    gl_SGIX_texture_lod_bias
+
+  -- * GL_SGIX_texture_lod_bias
+  , pattern GL_TEXTURE_LOD_BIAS_R_SGIX
+  , pattern GL_TEXTURE_LOD_BIAS_S_SGIX
+  , pattern GL_TEXTURE_LOD_BIAS_T_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_lod_bias.txt GL_SGIX_texture_lod_bias> extension is available.
+
+gl_SGIX_texture_lod_bias :: Bool
+gl_SGIX_texture_lod_bias = member "GL_SGIX_texture_lod_bias" extensions
+{-# NOINLINE gl_SGIX_texture_lod_bias #-}
+
+pattern GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190
+
+pattern GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E
+
+pattern GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.TextureMultiBuffer (
+  -- * Extension Support
+    gl_SGIX_texture_multi_buffer
+
+  -- * GL_SGIX_texture_multi_buffer
+  , pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_multi_buffer.txt GL_SGIX_texture_multi_buffer> extension is available.
+
+gl_SGIX_texture_multi_buffer :: Bool
+gl_SGIX_texture_multi_buffer = member "GL_SGIX_texture_multi_buffer" extensions
+{-# NOINLINE gl_SGIX_texture_multi_buffer #-}
+
+pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureScaleBias.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureScaleBias.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureScaleBias.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.TextureScaleBias (
+  -- * Extension Support
+    gl_SGIX_texture_scale_bias
+
+  -- * GL_SGIX_texture_scale_bias
+  , pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX
+  , pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX
+  , pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX
+  , pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/texture_scale_bias.txt GL_SGIX_texture_scale_bias> extension is available.
+
+gl_SGIX_texture_scale_bias :: Bool
+gl_SGIX_texture_scale_bias = member "GL_SGIX_texture_scale_bias" extensions
+{-# NOINLINE gl_SGIX_texture_scale_bias #-}
+
+pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B
+
+pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179
+
+pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C
+
+pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A
diff --git a/generated-src/Graphics/GL/Ext/SGIX/VertexPreclip.hs b/generated-src/Graphics/GL/Ext/SGIX/VertexPreclip.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/VertexPreclip.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.VertexPreclip (
+  -- * Extension Support
+    gl_SGIX_vertex_preclip
+
+  -- * GL_SGIX_vertex_preclip
+  , pattern GL_VERTEX_PRECLIP_HINT_SGIX
+  , pattern GL_VERTEX_PRECLIP_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/vertex_preclip.txt GL_SGIX_vertex_preclip> extension is available.
+
+gl_SGIX_vertex_preclip :: Bool
+gl_SGIX_vertex_preclip = member "GL_SGIX_vertex_preclip" extensions
+{-# NOINLINE gl_SGIX_vertex_preclip #-}
+
+pattern GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF
+
+pattern GL_VERTEX_PRECLIP_SGIX = 0x83EE
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Ycrcb.hs b/generated-src/Graphics/GL/Ext/SGIX/Ycrcb.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Ycrcb.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Ycrcb (
+  -- * Extension Support
+    gl_SGIX_ycrcb
+
+  -- * GL_SGIX_ycrcb
+  , pattern GL_YCRCB_422_SGIX
+  , pattern GL_YCRCB_444_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SGIX/ycrcb.txt GL_SGIX_ycrcb> extension is available.
+
+gl_SGIX_ycrcb :: Bool
+gl_SGIX_ycrcb = member "GL_SGIX_ycrcb" extensions
+{-# NOINLINE gl_SGIX_ycrcb #-}
+
+pattern GL_YCRCB_422_SGIX = 0x81BB
+
+pattern GL_YCRCB_444_SGIX = 0x81BC
diff --git a/generated-src/Graphics/GL/Ext/SGIX/YcrcbSubsample.hs b/generated-src/Graphics/GL/Ext/SGIX/YcrcbSubsample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/YcrcbSubsample.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.YcrcbSubsample (
+  -- * Extension Support
+    gl_SGIX_ycrcb_subsample
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_ycrcb_subsample extension is available.
+
+gl_SGIX_ycrcb_subsample :: Bool
+gl_SGIX_ycrcb_subsample = member "GL_SGIX_ycrcb_subsample" extensions
+{-# NOINLINE gl_SGIX_ycrcb_subsample #-}
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Ycrcba.hs b/generated-src/Graphics/GL/Ext/SGIX/Ycrcba.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SGIX/Ycrcba.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SGIX.Ycrcba (
+  -- * Extension Support
+    gl_SGIX_ycrcba
+
+  -- * GL_SGIX_ycrcba
+  , pattern GL_YCRCBA_SGIX
+  , pattern GL_YCRCB_SGIX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the GL_SGIX_ycrcba extension is available.
+
+gl_SGIX_ycrcba :: Bool
+gl_SGIX_ycrcba = member "GL_SGIX_ycrcba" extensions
+{-# NOINLINE gl_SGIX_ycrcba #-}
+
+pattern GL_YCRCBA_SGIX = 0x8319
+
+pattern GL_YCRCB_SGIX = 0x8318
diff --git a/generated-src/Graphics/GL/Ext/SUN.hs b/generated-src/Graphics/GL/Ext/SUN.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUN.hs
@@ -0,0 +1,18 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUN (
+  -- * SUN Extensions
+    module Graphics.GL.Ext.SUN.ConvolutionBorderModes
+  , module Graphics.GL.Ext.SUN.GlobalAlpha
+  , module Graphics.GL.Ext.SUN.MeshArray
+  , module Graphics.GL.Ext.SUN.SliceAccum
+  , module Graphics.GL.Ext.SUN.TriangleList
+  , module Graphics.GL.Ext.SUN.Vertex
+) where
+
+import Graphics.GL.Ext.SUN.ConvolutionBorderModes
+import Graphics.GL.Ext.SUN.GlobalAlpha
+import Graphics.GL.Ext.SUN.MeshArray
+import Graphics.GL.Ext.SUN.SliceAccum
+import Graphics.GL.Ext.SUN.TriangleList
+import Graphics.GL.Ext.SUN.Vertex
diff --git a/generated-src/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs b/generated-src/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUN.ConvolutionBorderModes (
+  -- * Extension Support
+    gl_SUN_convolution_border_modes
+
+  -- * GL_SUN_convolution_border_modes
+  , pattern GL_WRAP_BORDER_SUN
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/convolution_border_modes.txt GL_SUN_convolution_border_modes> extension is available.
+
+gl_SUN_convolution_border_modes :: Bool
+gl_SUN_convolution_border_modes = member "GL_SUN_convolution_border_modes" extensions
+{-# NOINLINE gl_SUN_convolution_border_modes #-}
+
+pattern GL_WRAP_BORDER_SUN = 0x81D4
diff --git a/generated-src/Graphics/GL/Ext/SUN/GlobalAlpha.hs b/generated-src/Graphics/GL/Ext/SUN/GlobalAlpha.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUN/GlobalAlpha.hs
@@ -0,0 +1,124 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUN.GlobalAlpha (
+  -- * Extension Support
+    gl_SUN_global_alpha
+
+  -- * GL_SUN_global_alpha
+  , glGlobalAlphaFactorbSUN
+  , glGlobalAlphaFactordSUN
+  , glGlobalAlphaFactorfSUN
+  , glGlobalAlphaFactoriSUN
+  , glGlobalAlphaFactorsSUN
+  , glGlobalAlphaFactorubSUN
+  , glGlobalAlphaFactoruiSUN
+  , glGlobalAlphaFactorusSUN
+  , pattern GL_GLOBAL_ALPHA_FACTOR_SUN
+  , pattern GL_GLOBAL_ALPHA_SUN
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/global_alpha.txt GL_SUN_global_alpha> extension is available.
+
+gl_SUN_global_alpha :: Bool
+gl_SUN_global_alpha = member "GL_SUN_global_alpha" extensions
+{-# NOINLINE gl_SUN_global_alpha #-}
+
+-- | Usage: @'glGlobalAlphaFactorbSUN' factor@
+
+
+glGlobalAlphaFactorbSUN :: MonadIO m => GLbyte -> m ()
+glGlobalAlphaFactorbSUN = ffibyteIOV glGlobalAlphaFactorbSUNFunPtr
+
+glGlobalAlphaFactorbSUNFunPtr :: FunPtr (GLbyte -> IO ())
+glGlobalAlphaFactorbSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorbSUN")
+
+{-# NOINLINE glGlobalAlphaFactorbSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactordSUN' factor@
+
+
+glGlobalAlphaFactordSUN :: MonadIO m => GLdouble -> m ()
+glGlobalAlphaFactordSUN = ffidoubleIOV glGlobalAlphaFactordSUNFunPtr
+
+glGlobalAlphaFactordSUNFunPtr :: FunPtr (GLdouble -> IO ())
+glGlobalAlphaFactordSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactordSUN")
+
+{-# NOINLINE glGlobalAlphaFactordSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactorfSUN' factor@
+
+
+glGlobalAlphaFactorfSUN :: MonadIO m => GLfloat -> m ()
+glGlobalAlphaFactorfSUN = ffifloatIOV glGlobalAlphaFactorfSUNFunPtr
+
+glGlobalAlphaFactorfSUNFunPtr :: FunPtr (GLfloat -> IO ())
+glGlobalAlphaFactorfSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorfSUN")
+
+{-# NOINLINE glGlobalAlphaFactorfSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactoriSUN' factor@
+
+
+glGlobalAlphaFactoriSUN :: MonadIO m => GLint -> m ()
+glGlobalAlphaFactoriSUN = ffiintIOV glGlobalAlphaFactoriSUNFunPtr
+
+glGlobalAlphaFactoriSUNFunPtr :: FunPtr (GLint -> IO ())
+glGlobalAlphaFactoriSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactoriSUN")
+
+{-# NOINLINE glGlobalAlphaFactoriSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactorsSUN' factor@
+
+
+glGlobalAlphaFactorsSUN :: MonadIO m => GLshort -> m ()
+glGlobalAlphaFactorsSUN = ffishortIOV glGlobalAlphaFactorsSUNFunPtr
+
+glGlobalAlphaFactorsSUNFunPtr :: FunPtr (GLshort -> IO ())
+glGlobalAlphaFactorsSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorsSUN")
+
+{-# NOINLINE glGlobalAlphaFactorsSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactorubSUN' factor@
+
+
+glGlobalAlphaFactorubSUN :: MonadIO m => GLubyte -> m ()
+glGlobalAlphaFactorubSUN = ffiubyteIOV glGlobalAlphaFactorubSUNFunPtr
+
+glGlobalAlphaFactorubSUNFunPtr :: FunPtr (GLubyte -> IO ())
+glGlobalAlphaFactorubSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorubSUN")
+
+{-# NOINLINE glGlobalAlphaFactorubSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactoruiSUN' factor@
+
+
+glGlobalAlphaFactoruiSUN :: MonadIO m => GLuint -> m ()
+glGlobalAlphaFactoruiSUN = ffiuintIOV glGlobalAlphaFactoruiSUNFunPtr
+
+glGlobalAlphaFactoruiSUNFunPtr :: FunPtr (GLuint -> IO ())
+glGlobalAlphaFactoruiSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactoruiSUN")
+
+{-# NOINLINE glGlobalAlphaFactoruiSUNFunPtr #-}
+
+-- | Usage: @'glGlobalAlphaFactorusSUN' factor@
+
+
+glGlobalAlphaFactorusSUN :: MonadIO m => GLushort -> m ()
+glGlobalAlphaFactorusSUN = ffiushortIOV glGlobalAlphaFactorusSUNFunPtr
+
+glGlobalAlphaFactorusSUNFunPtr :: FunPtr (GLushort -> IO ())
+glGlobalAlphaFactorusSUNFunPtr = unsafePerformIO (getProcAddress "glGlobalAlphaFactorusSUN")
+
+{-# NOINLINE glGlobalAlphaFactorusSUNFunPtr #-}
+
+pattern GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA
+
+pattern GL_GLOBAL_ALPHA_SUN = 0x81D9
diff --git a/generated-src/Graphics/GL/Ext/SUN/MeshArray.hs b/generated-src/Graphics/GL/Ext/SUN/MeshArray.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUN/MeshArray.hs
@@ -0,0 +1,42 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUN.MeshArray (
+  -- * Extension Support
+    gl_SUN_mesh_array
+
+  -- * GL_SUN_mesh_array
+  , glDrawMeshArraysSUN
+  , pattern GL_QUAD_MESH_SUN
+  , pattern GL_TRIANGLE_MESH_SUN
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/mesh_array.txt GL_SUN_mesh_array> extension is available.
+
+gl_SUN_mesh_array :: Bool
+gl_SUN_mesh_array = member "GL_SUN_mesh_array" extensions
+{-# NOINLINE gl_SUN_mesh_array #-}
+
+-- | Usage: @'glDrawMeshArraysSUN' mode first count width@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
+glDrawMeshArraysSUN :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawMeshArraysSUN = ffienumintsizeisizeiIOV glDrawMeshArraysSUNFunPtr
+
+glDrawMeshArraysSUNFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawMeshArraysSUNFunPtr = unsafePerformIO (getProcAddress "glDrawMeshArraysSUN")
+
+{-# NOINLINE glDrawMeshArraysSUNFunPtr #-}
+
+pattern GL_QUAD_MESH_SUN = 0x8614
+
+pattern GL_TRIANGLE_MESH_SUN = 0x8615
diff --git a/generated-src/Graphics/GL/Ext/SUN/SliceAccum.hs b/generated-src/Graphics/GL/Ext/SUN/SliceAccum.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUN/SliceAccum.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUN.SliceAccum (
+  -- * Extension Support
+    gl_SUN_slice_accum
+
+  -- * GL_SUN_slice_accum
+  , pattern GL_SLICE_ACCUM_SUN
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/slice_accum.txt GL_SUN_slice_accum> extension is available.
+
+gl_SUN_slice_accum :: Bool
+gl_SUN_slice_accum = member "GL_SUN_slice_accum" extensions
+{-# NOINLINE gl_SUN_slice_accum #-}
+
+pattern GL_SLICE_ACCUM_SUN = 0x85CC
diff --git a/generated-src/Graphics/GL/Ext/SUN/TriangleList.hs b/generated-src/Graphics/GL/Ext/SUN/TriangleList.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUN/TriangleList.hs
@@ -0,0 +1,167 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUN.TriangleList (
+  -- * Extension Support
+    gl_SUN_triangle_list
+
+  -- * GL_SUN_triangle_list
+  , glReplacementCodePointerSUN
+  , glReplacementCodeubSUN
+  , glReplacementCodeubvSUN
+  , glReplacementCodeuiSUN
+  , glReplacementCodeuivSUN
+  , glReplacementCodeusSUN
+  , glReplacementCodeusvSUN
+  , pattern GL_R1UI_C3F_V3F_SUN
+  , pattern GL_R1UI_C4F_N3F_V3F_SUN
+  , pattern GL_R1UI_C4UB_V3F_SUN
+  , pattern GL_R1UI_N3F_V3F_SUN
+  , pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN
+  , pattern GL_R1UI_T2F_N3F_V3F_SUN
+  , pattern GL_R1UI_T2F_V3F_SUN
+  , pattern GL_R1UI_V3F_SUN
+  , pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN
+  , pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN
+  , pattern GL_REPLACEMENT_CODE_ARRAY_SUN
+  , pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN
+  , pattern GL_REPLACEMENT_CODE_SUN
+  , pattern GL_REPLACE_MIDDLE_SUN
+  , pattern GL_REPLACE_OLDEST_SUN
+  , pattern GL_RESTART_SUN
+  , pattern GL_TRIANGLE_LIST_SUN
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/triangle_list.txt GL_SUN_triangle_list> extension is available.
+
+gl_SUN_triangle_list :: Bool
+gl_SUN_triangle_list = member "GL_SUN_triangle_list" extensions
+{-# NOINLINE gl_SUN_triangle_list #-}
+
+-- | Usage: @'glReplacementCodePointerSUN' type stride pointer@
+--
+-- The parameter @type@ is a @ReplacementCodeTypeSUN@.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glReplacementCodePointerSUN :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
+glReplacementCodePointerSUN = ffienumsizeiPtrPtrVIOV glReplacementCodePointerSUNFunPtr
+
+glReplacementCodePointerSUNFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ())
+glReplacementCodePointerSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodePointerSUN")
+
+{-# NOINLINE glReplacementCodePointerSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeubSUN' code@
+
+
+glReplacementCodeubSUN :: MonadIO m => GLubyte -> m ()
+glReplacementCodeubSUN = ffiubyteIOV glReplacementCodeubSUNFunPtr
+
+glReplacementCodeubSUNFunPtr :: FunPtr (GLubyte -> IO ())
+glReplacementCodeubSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeubSUN")
+
+{-# NOINLINE glReplacementCodeubSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeubvSUN' code@
+--
+-- The length of @code@ should be @COMPSIZE()@.
+
+
+glReplacementCodeubvSUN :: MonadIO m => Ptr GLubyte -> m ()
+glReplacementCodeubvSUN = ffiPtrubyteIOV glReplacementCodeubvSUNFunPtr
+
+glReplacementCodeubvSUNFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glReplacementCodeubvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeubvSUN")
+
+{-# NOINLINE glReplacementCodeubvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiSUN' code@
+
+
+glReplacementCodeuiSUN :: MonadIO m => GLuint -> m ()
+glReplacementCodeuiSUN = ffiuintIOV glReplacementCodeuiSUNFunPtr
+
+glReplacementCodeuiSUNFunPtr :: FunPtr (GLuint -> IO ())
+glReplacementCodeuiSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiSUN")
+
+{-# NOINLINE glReplacementCodeuiSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuivSUN' code@
+--
+-- The length of @code@ should be @COMPSIZE()@.
+
+
+glReplacementCodeuivSUN :: MonadIO m => Ptr GLuint -> m ()
+glReplacementCodeuivSUN = ffiPtruintIOV glReplacementCodeuivSUNFunPtr
+
+glReplacementCodeuivSUNFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glReplacementCodeuivSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuivSUN")
+
+{-# NOINLINE glReplacementCodeuivSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeusSUN' code@
+
+
+glReplacementCodeusSUN :: MonadIO m => GLushort -> m ()
+glReplacementCodeusSUN = ffiushortIOV glReplacementCodeusSUNFunPtr
+
+glReplacementCodeusSUNFunPtr :: FunPtr (GLushort -> IO ())
+glReplacementCodeusSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeusSUN")
+
+{-# NOINLINE glReplacementCodeusSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeusvSUN' code@
+--
+-- The length of @code@ should be @COMPSIZE()@.
+
+
+glReplacementCodeusvSUN :: MonadIO m => Ptr GLushort -> m ()
+glReplacementCodeusvSUN = ffiPtrushortIOV glReplacementCodeusvSUNFunPtr
+
+glReplacementCodeusvSUNFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glReplacementCodeusvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeusvSUN")
+
+{-# NOINLINE glReplacementCodeusvSUNFunPtr #-}
+
+pattern GL_R1UI_C3F_V3F_SUN = 0x85C6
+
+pattern GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8
+
+pattern GL_R1UI_C4UB_V3F_SUN = 0x85C5
+
+pattern GL_R1UI_N3F_V3F_SUN = 0x85C7
+
+pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB
+
+pattern GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA
+
+pattern GL_R1UI_T2F_V3F_SUN = 0x85C9
+
+pattern GL_R1UI_V3F_SUN = 0x85C4
+
+pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3
+
+pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2
+
+pattern GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0
+
+pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1
+
+pattern GL_REPLACEMENT_CODE_SUN = 0x81D8
+
+pattern GL_REPLACE_MIDDLE_SUN = 0x0002
+
+pattern GL_REPLACE_OLDEST_SUN = 0x0003
+
+pattern GL_RESTART_SUN = 0x0001
+
+pattern GL_TRIANGLE_LIST_SUN = 0x81D7
diff --git a/generated-src/Graphics/GL/Ext/SUN/Vertex.hs b/generated-src/Graphics/GL/Ext/SUN/Vertex.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUN/Vertex.hs
@@ -0,0 +1,652 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUN.Vertex (
+  -- * Extension Support
+    gl_SUN_vertex
+
+  -- * GL_SUN_vertex
+  , glColor3fVertex3fSUN
+  , glColor3fVertex3fvSUN
+  , glColor4fNormal3fVertex3fSUN
+  , glColor4fNormal3fVertex3fvSUN
+  , glColor4ubVertex2fSUN
+  , glColor4ubVertex2fvSUN
+  , glColor4ubVertex3fSUN
+  , glColor4ubVertex3fvSUN
+  , glNormal3fVertex3fSUN
+  , glNormal3fVertex3fvSUN
+  , glReplacementCodeuiColor3fVertex3fSUN
+  , glReplacementCodeuiColor3fVertex3fvSUN
+  , glReplacementCodeuiColor4fNormal3fVertex3fSUN
+  , glReplacementCodeuiColor4fNormal3fVertex3fvSUN
+  , glReplacementCodeuiColor4ubVertex3fSUN
+  , glReplacementCodeuiColor4ubVertex3fvSUN
+  , glReplacementCodeuiNormal3fVertex3fSUN
+  , glReplacementCodeuiNormal3fVertex3fvSUN
+  , glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN
+  , glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN
+  , glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN
+  , glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN
+  , glReplacementCodeuiTexCoord2fVertex3fSUN
+  , glReplacementCodeuiTexCoord2fVertex3fvSUN
+  , glReplacementCodeuiVertex3fSUN
+  , glReplacementCodeuiVertex3fvSUN
+  , glTexCoord2fColor3fVertex3fSUN
+  , glTexCoord2fColor3fVertex3fvSUN
+  , glTexCoord2fColor4fNormal3fVertex3fSUN
+  , glTexCoord2fColor4fNormal3fVertex3fvSUN
+  , glTexCoord2fColor4ubVertex3fSUN
+  , glTexCoord2fColor4ubVertex3fvSUN
+  , glTexCoord2fNormal3fVertex3fSUN
+  , glTexCoord2fNormal3fVertex3fvSUN
+  , glTexCoord2fVertex3fSUN
+  , glTexCoord2fVertex3fvSUN
+  , glTexCoord4fColor4fNormal3fVertex4fSUN
+  , glTexCoord4fColor4fNormal3fVertex4fvSUN
+  , glTexCoord4fVertex4fSUN
+  , glTexCoord4fVertex4fvSUN
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUN/vertex.txt GL_SUN_vertex> extension is available.
+
+gl_SUN_vertex :: Bool
+gl_SUN_vertex = member "GL_SUN_vertex" extensions
+{-# NOINLINE gl_SUN_vertex #-}
+
+-- | Usage: @'glColor3fVertex3fSUN' r g b x y z@
+
+
+glColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glColor3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatIOV glColor3fVertex3fSUNFunPtr
+
+glColor3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glColor3fVertex3fSUN")
+
+{-# NOINLINE glColor3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glColor3fVertex3fvSUN' c v@
+--
+-- The length of @c@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
+glColor3fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glColor3fVertex3fvSUNFunPtr
+
+glColor3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+glColor3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor3fVertex3fvSUN")
+
+{-# NOINLINE glColor3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glColor4fNormal3fVertex3fSUN' r g b a nx ny nz x y z@
+
+
+glColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glColor4fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glColor4fNormal3fVertex3fSUNFunPtr
+
+glColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glColor4fNormal3fVertex3fSUN")
+
+{-# NOINLINE glColor4fNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glColor4fNormal3fVertex3fvSUN' c n v@
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glColor4fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glColor4fNormal3fVertex3fvSUNFunPtr
+
+glColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor4fNormal3fVertex3fvSUN")
+
+{-# NOINLINE glColor4fNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glColor4ubVertex2fSUN' r g b a x y@
+
+
+glColor4ubVertex2fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
+glColor4ubVertex2fSUN = ffiubyteubyteubyteubytefloatfloatIOV glColor4ubVertex2fSUNFunPtr
+
+glColor4ubVertex2fSUNFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ())
+glColor4ubVertex2fSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex2fSUN")
+
+{-# NOINLINE glColor4ubVertex2fSUNFunPtr #-}
+
+-- | Usage: @'glColor4ubVertex2fvSUN' c v@
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @2@.
+
+
+glColor4ubVertex2fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
+glColor4ubVertex2fvSUN = ffiPtrubytePtrfloatIOV glColor4ubVertex2fvSUNFunPtr
+
+glColor4ubVertex2fvSUNFunPtr :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ())
+glColor4ubVertex2fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex2fvSUN")
+
+{-# NOINLINE glColor4ubVertex2fvSUNFunPtr #-}
+
+-- | Usage: @'glColor4ubVertex3fSUN' r g b a x y z@
+
+
+glColor4ubVertex3fSUN :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
+glColor4ubVertex3fSUN = ffiubyteubyteubyteubytefloatfloatfloatIOV glColor4ubVertex3fSUNFunPtr
+
+glColor4ubVertex3fSUNFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor4ubVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex3fSUN")
+
+{-# NOINLINE glColor4ubVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glColor4ubVertex3fvSUN' c v@
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor4ubVertex3fvSUN :: MonadIO m => Ptr GLubyte -> Ptr GLfloat -> m ()
+glColor4ubVertex3fvSUN = ffiPtrubytePtrfloatIOV glColor4ubVertex3fvSUNFunPtr
+
+glColor4ubVertex3fvSUNFunPtr :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ())
+glColor4ubVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glColor4ubVertex3fvSUN")
+
+{-# NOINLINE glColor4ubVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glNormal3fVertex3fSUN' nx ny nz x y z@
+
+
+glNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatIOV glNormal3fVertex3fSUNFunPtr
+
+glNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glNormal3fVertex3fSUN")
+
+{-# NOINLINE glNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glNormal3fVertex3fvSUN' n v@
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
+glNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glNormal3fVertex3fvSUNFunPtr
+
+glNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+glNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glNormal3fVertex3fvSUN")
+
+{-# NOINLINE glNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiColor3fVertex3fSUN' rc r g b x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiColor3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiColor3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiColor3fVertex3fSUNFunPtr
+
+glReplacementCodeuiColor3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiColor3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor3fVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiColor3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiColor3fVertex3fvSUN' rc c v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @c@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiColor3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glReplacementCodeuiColor3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiColor3fVertex3fvSUNFunPtr
+
+glReplacementCodeuiColor3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glReplacementCodeuiColor3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor3fVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiColor3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiColor4fNormal3fVertex3fSUN' rc r g b a nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiColor4fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr
+
+glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4fNormal3fVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiColor4fNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiColor4fNormal3fVertex3fvSUN' rc c n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glReplacementCodeuiColor4fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr
+
+glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiColor4fNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiColor4ubVertex3fSUN' rc r g b a x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiColor4ubVertex3fSUN :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiColor4ubVertex3fSUN = ffiuintubyteubyteubyteubytefloatfloatfloatIOV glReplacementCodeuiColor4ubVertex3fSUNFunPtr
+
+glReplacementCodeuiColor4ubVertex3fSUNFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiColor4ubVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4ubVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiColor4ubVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiColor4ubVertex3fvSUN' rc c v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiColor4ubVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
+glReplacementCodeuiColor4ubVertex3fvSUN = ffiPtruintPtrubytePtrfloatIOV glReplacementCodeuiColor4ubVertex3fvSUNFunPtr
+
+glReplacementCodeuiColor4ubVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+glReplacementCodeuiColor4ubVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiColor4ubVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiColor4ubVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiNormal3fVertex3fSUN' rc nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiNormal3fVertex3fSUNFunPtr
+
+glReplacementCodeuiNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiNormal3fVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiNormal3fVertex3fvSUN' rc n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glReplacementCodeuiNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiNormal3fVertex3fvSUNFunPtr
+
+glReplacementCodeuiNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glReplacementCodeuiNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiNormal3fVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN' rc s t r g b a nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr
+
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN' rc tc c n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr
+
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN' rc s t nx ny nz x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr
+
+glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiTexCoord2fNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN' rc tc n v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr
+
+glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiTexCoord2fVertex3fSUN' rc s t x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiTexCoord2fVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiTexCoord2fVertex3fSUN = ffiuintfloatfloatfloatfloatfloatIOV glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr
+
+glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiTexCoord2fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiTexCoord2fVertex3fvSUN' rc tc v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glReplacementCodeuiTexCoord2fVertex3fvSUN = ffiPtruintPtrfloatPtrfloatIOV glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr
+
+glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiTexCoord2fVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiTexCoord2fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiVertex3fSUN' rc x y z@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+
+
+glReplacementCodeuiVertex3fSUN :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glReplacementCodeuiVertex3fSUN = ffiuintfloatfloatfloatIOV glReplacementCodeuiVertex3fSUNFunPtr
+
+glReplacementCodeuiVertex3fSUNFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glReplacementCodeuiVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiVertex3fSUN")
+
+{-# NOINLINE glReplacementCodeuiVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glReplacementCodeuiVertex3fvSUN' rc v@
+--
+-- The parameter @rc@ is a @ReplacementCodeSUN@.
+--
+-- The length of @rc@ should be @1@.
+--
+-- The length of @v@ should be @3@.
+
+
+glReplacementCodeuiVertex3fvSUN :: MonadIO m => Ptr GLuint -> Ptr GLfloat -> m ()
+glReplacementCodeuiVertex3fvSUN = ffiPtruintPtrfloatIOV glReplacementCodeuiVertex3fvSUNFunPtr
+
+glReplacementCodeuiVertex3fvSUNFunPtr :: FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ())
+glReplacementCodeuiVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glReplacementCodeuiVertex3fvSUN")
+
+{-# NOINLINE glReplacementCodeuiVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fColor3fVertex3fSUN' s t r g b x y z@
+
+
+glTexCoord2fColor3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord2fColor3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fColor3fVertex3fSUNFunPtr
+
+glTexCoord2fColor3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord2fColor3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor3fVertex3fSUN")
+
+{-# NOINLINE glTexCoord2fColor3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fColor3fVertex3fvSUN' tc c v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord2fColor3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glTexCoord2fColor3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glTexCoord2fColor3fVertex3fvSUNFunPtr
+
+glTexCoord2fColor3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glTexCoord2fColor3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor3fVertex3fvSUN")
+
+{-# NOINLINE glTexCoord2fColor3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fColor4fNormal3fVertex3fSUN' s t r g b a nx ny nz x y z@
+
+
+glTexCoord2fColor4fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord2fColor4fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr
+
+glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4fNormal3fVertex3fSUN")
+
+{-# NOINLINE glTexCoord2fColor4fNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fColor4fNormal3fVertex3fvSUN' tc c n v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord2fColor4fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glTexCoord2fColor4fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr
+
+glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4fNormal3fVertex3fvSUN")
+
+{-# NOINLINE glTexCoord2fColor4fNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fColor4ubVertex3fSUN' s t r g b a x y z@
+
+
+glTexCoord2fColor4ubVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord2fColor4ubVertex3fSUN = ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV glTexCoord2fColor4ubVertex3fSUNFunPtr
+
+glTexCoord2fColor4ubVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord2fColor4ubVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4ubVertex3fSUN")
+
+{-# NOINLINE glTexCoord2fColor4ubVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fColor4ubVertex3fvSUN' tc c v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord2fColor4ubVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
+glTexCoord2fColor4ubVertex3fvSUN = ffiPtrfloatPtrubytePtrfloatIOV glTexCoord2fColor4ubVertex3fvSUNFunPtr
+
+glTexCoord2fColor4ubVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+glTexCoord2fColor4ubVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fColor4ubVertex3fvSUN")
+
+{-# NOINLINE glTexCoord2fColor4ubVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fNormal3fVertex3fSUN' s t nx ny nz x y z@
+
+
+glTexCoord2fNormal3fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord2fNormal3fVertex3fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord2fNormal3fVertex3fSUNFunPtr
+
+glTexCoord2fNormal3fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord2fNormal3fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fNormal3fVertex3fSUN")
+
+{-# NOINLINE glTexCoord2fNormal3fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fNormal3fVertex3fvSUN' tc n v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord2fNormal3fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glTexCoord2fNormal3fVertex3fvSUN = ffiPtrfloatPtrfloatPtrfloatIOV glTexCoord2fNormal3fVertex3fvSUNFunPtr
+
+glTexCoord2fNormal3fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glTexCoord2fNormal3fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fNormal3fVertex3fvSUN")
+
+{-# NOINLINE glTexCoord2fNormal3fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fVertex3fSUN' s t x y z@
+
+
+glTexCoord2fVertex3fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord2fVertex3fSUN = ffifloatfloatfloatfloatfloatIOV glTexCoord2fVertex3fSUNFunPtr
+
+glTexCoord2fVertex3fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord2fVertex3fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fVertex3fSUN")
+
+{-# NOINLINE glTexCoord2fVertex3fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord2fVertex3fvSUN' tc v@
+--
+-- The length of @tc@ should be @2@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord2fVertex3fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
+glTexCoord2fVertex3fvSUN = ffiPtrfloatPtrfloatIOV glTexCoord2fVertex3fvSUNFunPtr
+
+glTexCoord2fVertex3fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+glTexCoord2fVertex3fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fVertex3fvSUN")
+
+{-# NOINLINE glTexCoord2fVertex3fvSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord4fColor4fNormal3fVertex4fSUN' s t p q r g b a nx ny nz x y z w@
+
+
+glTexCoord4fColor4fNormal3fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord4fColor4fNormal3fVertex4fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr
+
+glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fColor4fNormal3fVertex4fSUN")
+
+{-# NOINLINE glTexCoord4fColor4fNormal3fVertex4fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord4fColor4fNormal3fVertex4fvSUN' tc c n v@
+--
+-- The length of @tc@ should be @4@.
+--
+-- The length of @c@ should be @4@.
+--
+-- The length of @n@ should be @3@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4fColor4fNormal3fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+glTexCoord4fColor4fNormal3fVertex4fvSUN = ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr
+
+glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fColor4fNormal3fVertex4fvSUN")
+
+{-# NOINLINE glTexCoord4fColor4fNormal3fVertex4fvSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord4fVertex4fSUN' s t p q x y z w@
+
+
+glTexCoord4fVertex4fSUN :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord4fVertex4fSUN = ffifloatfloatfloatfloatfloatfloatfloatfloatIOV glTexCoord4fVertex4fSUNFunPtr
+
+glTexCoord4fVertex4fSUNFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord4fVertex4fSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fVertex4fSUN")
+
+{-# NOINLINE glTexCoord4fVertex4fSUNFunPtr #-}
+
+-- | Usage: @'glTexCoord4fVertex4fvSUN' tc v@
+--
+-- The length of @tc@ should be @4@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4fVertex4fvSUN :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
+glTexCoord4fVertex4fvSUN = ffiPtrfloatPtrfloatIOV glTexCoord4fVertex4fvSUNFunPtr
+
+glTexCoord4fVertex4fvSUNFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+glTexCoord4fVertex4fvSUNFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fVertex4fvSUN")
+
+{-# NOINLINE glTexCoord4fVertex4fvSUNFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/SUNX.hs b/generated-src/Graphics/GL/Ext/SUNX.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUNX.hs
@@ -0,0 +1,8 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUNX (
+  -- * SUNX Extensions
+    module Graphics.GL.Ext.SUNX.ConstantData
+) where
+
+import Graphics.GL.Ext.SUNX.ConstantData
diff --git a/generated-src/Graphics/GL/Ext/SUNX/ConstantData.hs b/generated-src/Graphics/GL/Ext/SUNX/ConstantData.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/SUNX/ConstantData.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.SUNX.ConstantData (
+  -- * Extension Support
+    gl_SUNX_constant_data
+
+  -- * GL_SUNX_constant_data
+  , glFinishTextureSUNX
+  , pattern GL_TEXTURE_CONSTANT_DATA_SUNX
+  , pattern GL_UNPACK_CONSTANT_DATA_SUNX
+) where
+
+import Control.Monad.IO.Class
+import Data.Set
+import Foreign.Ptr
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/SUNX/constant_data.txt GL_SUNX_constant_data> extension is available.
+
+gl_SUNX_constant_data :: Bool
+gl_SUNX_constant_data = member "GL_SUNX_constant_data" extensions
+{-# NOINLINE gl_SUNX_constant_data #-}
+
+-- | Usage: @'glFinishTextureSUNX'@
+
+
+glFinishTextureSUNX :: MonadIO m => m ()
+glFinishTextureSUNX = ffiIOV glFinishTextureSUNXFunPtr
+
+glFinishTextureSUNXFunPtr :: FunPtr (IO ())
+glFinishTextureSUNXFunPtr = unsafePerformIO (getProcAddress "glFinishTextureSUNX")
+
+{-# NOINLINE glFinishTextureSUNXFunPtr #-}
+
+pattern GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6
+
+pattern GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5
diff --git a/generated-src/Graphics/GL/Ext/ThreeDFX.hs b/generated-src/Graphics/GL/Ext/ThreeDFX.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ThreeDFX.hs
@@ -0,0 +1,12 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ThreeDFX (
+  -- * 3DFX Extensions
+    module Graphics.GL.Ext.ThreeDFX.Multisample
+  , module Graphics.GL.Ext.ThreeDFX.Tbuffer
+  , module Graphics.GL.Ext.ThreeDFX.TextureCompressionFXT1
+) where
+
+import Graphics.GL.Ext.ThreeDFX.Multisample
+import Graphics.GL.Ext.ThreeDFX.Tbuffer
+import Graphics.GL.Ext.ThreeDFX.TextureCompressionFXT1
diff --git a/generated-src/Graphics/GL/Ext/ThreeDFX/Multisample.hs b/generated-src/Graphics/GL/Ext/ThreeDFX/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ThreeDFX/Multisample.hs
@@ -0,0 +1,29 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ThreeDFX.Multisample (
+  -- * Extension Support
+    gl_3DFX_multisample
+
+  -- * GL_3DFX_multisample
+  , pattern GL_MULTISAMPLE_3DFX
+  , pattern GL_MULTISAMPLE_BIT_3DFX
+  , pattern GL_SAMPLES_3DFX
+  , pattern GL_SAMPLE_BUFFERS_3DFX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/3dfx_multisample.txt GL_3DFX_multisample> extension is available.
+
+gl_3DFX_multisample :: Bool
+gl_3DFX_multisample = member "GL_3DFX_multisample" extensions
+{-# NOINLINE gl_3DFX_multisample #-}
+
+pattern GL_MULTISAMPLE_3DFX = 0x86B2
+
+pattern GL_MULTISAMPLE_BIT_3DFX = 0x20000000
+
+pattern GL_SAMPLES_3DFX = 0x86B4
+
+pattern GL_SAMPLE_BUFFERS_3DFX = 0x86B3
diff --git a/generated-src/Graphics/GL/Ext/ThreeDFX/Tbuffer.hs b/generated-src/Graphics/GL/Ext/ThreeDFX/Tbuffer.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ThreeDFX/Tbuffer.hs
@@ -0,0 +1,34 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ThreeDFX.Tbuffer (
+  -- * Extension Support
+    gl_3DFX_tbuffer
+
+  -- * GL_3DFX_tbuffer
+  , glTbufferMask3DFX
+) 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.Types
+import System.IO.Unsafe
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/tbuffer.txt GL_3DFX_tbuffer> extension is available.
+
+gl_3DFX_tbuffer :: Bool
+gl_3DFX_tbuffer = member "GL_3DFX_tbuffer" extensions
+{-# NOINLINE gl_3DFX_tbuffer #-}
+
+-- | Usage: @'glTbufferMask3DFX' mask@
+
+
+glTbufferMask3DFX :: MonadIO m => GLuint -> m ()
+glTbufferMask3DFX = ffiuintIOV glTbufferMask3DFXFunPtr
+
+glTbufferMask3DFXFunPtr :: FunPtr (GLuint -> IO ())
+glTbufferMask3DFXFunPtr = unsafePerformIO (getProcAddress "glTbufferMask3DFX")
+
+{-# NOINLINE glTbufferMask3DFXFunPtr #-}
diff --git a/generated-src/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs b/generated-src/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.ThreeDFX.TextureCompressionFXT1 (
+  -- * Extension Support
+    gl_3DFX_texture_compression_FXT1
+
+  -- * GL_3DFX_texture_compression_FXT1
+  , pattern GL_COMPRESSED_RGBA_FXT1_3DFX
+  , pattern GL_COMPRESSED_RGB_FXT1_3DFX
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/3DFX/texture_compression_FXT1.txt GL_3DFX_texture_compression_FXT1> extension is available.
+
+gl_3DFX_texture_compression_FXT1 :: Bool
+gl_3DFX_texture_compression_FXT1 = member "GL_3DFX_texture_compression_FXT1" extensions
+{-# NOINLINE gl_3DFX_texture_compression_FXT1 #-}
+
+pattern GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1
+
+pattern GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0
diff --git a/generated-src/Graphics/GL/Ext/VIV.hs b/generated-src/Graphics/GL/Ext/VIV.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/VIV.hs
@@ -0,0 +1,8 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.VIV (
+  -- * VIV Extensions
+    module Graphics.GL.Ext.VIV.ShaderBinary
+) where
+
+import Graphics.GL.Ext.VIV.ShaderBinary
diff --git a/generated-src/Graphics/GL/Ext/VIV/ShaderBinary.hs b/generated-src/Graphics/GL/Ext/VIV/ShaderBinary.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/VIV/ShaderBinary.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.VIV.ShaderBinary (
+  -- * Extension Support
+    gl_VIV_shader_binary
+
+  -- * GL_VIV_shader_binary
+  , pattern GL_SHADER_BINARY_VIV
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/VIV/VIV_shader_binary.txt GL_VIV_shader_binary> extension is available.
+
+gl_VIV_shader_binary :: Bool
+gl_VIV_shader_binary = member "GL_VIV_shader_binary" extensions
+{-# NOINLINE gl_VIV_shader_binary #-}
+
+pattern GL_SHADER_BINARY_VIV = 0x8FC4
diff --git a/generated-src/Graphics/GL/Ext/WIN.hs b/generated-src/Graphics/GL/Ext/WIN.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/WIN.hs
@@ -0,0 +1,10 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.WIN (
+  -- * WIN Extensions
+    module Graphics.GL.Ext.WIN.PhongShading
+  , module Graphics.GL.Ext.WIN.SpecularFog
+) where
+
+import Graphics.GL.Ext.WIN.PhongShading
+import Graphics.GL.Ext.WIN.SpecularFog
diff --git a/generated-src/Graphics/GL/Ext/WIN/PhongShading.hs b/generated-src/Graphics/GL/Ext/WIN/PhongShading.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/WIN/PhongShading.hs
@@ -0,0 +1,23 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.WIN.PhongShading (
+  -- * Extension Support
+    gl_WIN_phong_shading
+
+  -- * GL_WIN_phong_shading
+  , pattern GL_PHONG_HINT_WIN
+  , pattern GL_PHONG_WIN
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/phong_shading.txt GL_WIN_phong_shading> extension is available.
+
+gl_WIN_phong_shading :: Bool
+gl_WIN_phong_shading = member "GL_WIN_phong_shading" extensions
+{-# NOINLINE gl_WIN_phong_shading #-}
+
+pattern GL_PHONG_HINT_WIN = 0x80EB
+
+pattern GL_PHONG_WIN = 0x80EA
diff --git a/generated-src/Graphics/GL/Ext/WIN/SpecularFog.hs b/generated-src/Graphics/GL/Ext/WIN/SpecularFog.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Ext/WIN/SpecularFog.hs
@@ -0,0 +1,20 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.WIN.SpecularFog (
+  -- * Extension Support
+    gl_WIN_specular_fog
+
+  -- * GL_WIN_specular_fog
+  , pattern GL_FOG_SPECULAR_TEXTURE_WIN
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/WIN/specular_fog.txt GL_WIN_specular_fog> extension is available.
+
+gl_WIN_specular_fog :: Bool
+gl_WIN_specular_fog = member "GL_WIN_specular_fog" extensions
+{-# NOINLINE gl_WIN_specular_fog #-}
+
+pattern GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC
diff --git a/generated-src/Graphics/GL/Internal/FFI.hs b/generated-src/Graphics/GL/Internal/FFI.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Internal/FFI.hs
@@ -0,0 +1,5358 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Internal.FFI (
+  -- * Invokers
+    ffienumfloatIOV
+  , ffienumfixedIOV
+  , ffiuintIOV
+  , ffiuintuintIOV
+  , ffienumIOV
+  , ffiuintPtrcharIOV
+  , ffienumuintuintuintuintuintIOV
+  , ffienumuintuintuintuintuintuintuintuintIOV
+  , ffienumuintuintuintuintuintuintuintuintuintuintuintIOV
+  , ffienumclampfIOV
+  , ffiIOV
+  , ffisizeiPtruintPtrbooleanIOboolean
+  , ffiintIOV
+  , ffienumintenumsizeiuintuintIOV
+  , ffihandleARBhandleARBIOV
+  , ffiuintenumIOV
+  , ffienumuintIOV
+  , ffienumuintuintIOV
+  , ffiuintuintPtrcharIOV
+  , ffihandleARBuintPtrcharARBIOV
+  , ffienumuintuintintptrIOV
+  , ffienumuintuintintptrsizeiptrIOV
+  , ffienumuintsizeiPtruintIOV
+  , ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV
+  , ffiuintuintuintPtrcharIOV
+  , ffiuintuintintbooleanintenumenumIOV
+  , ffiuintuintintbooleanintenumintIOV
+  , ffiuintsizeiPtruintIOV
+  , ffienumenumIOuint
+  , ffienumenumuintIOV
+  , ffienumIOuint
+  , ffienumenumenumIOuint
+  , ffiuintuintintptrsizeiIOV
+  , ffiuintsizeiPtruintPtrintptrPtrsizeiIOV
+  , ffiuintuintenumintptrARBIOV
+  , ffiuintuintenumenumuintIOV
+  , ffibytebytebyteIOV
+  , ffiPtrbyteIOV
+  , ffidoubledoubledoubleIOV
+  , ffiPtrdoubleIOV
+  , ffifloatfloatfloatIOV
+  , ffiPtrfloatIOV
+  , ffiintintintIOV
+  , ffiPtrintIOV
+  , ffishortshortshortIOV
+  , ffiPtrshortIOV
+  , ffienumsizeiPtrVIOV
+  , ffisizeisizeifloatfloatfloatfloatPtrubyteIOV
+  , ffisizeisizeifixedfixedfixedfixedPtrubyteIOV
+  , ffifloatfloatfloatfloatIOV
+  , ffifixedfixedfixedfixedIOV
+  , ffienumenumIOV
+  , ffiuintenumenumIOV
+  , ffienumenumenumenumIOV
+  , ffiuintenumenumenumenumIOV
+  , ffienumintIOV
+  , ffiintintintintintintintintbitfieldenumIOV
+  , ffiuintuintintintintintintintintintbitfieldenumIOV
+  , ffienumuintuint64EXTsizeiptrIOV
+  , ffienumsizeiptrPtrVenumIOV
+  , ffienumsizeiptrARBPtrVenumIOV
+  , ffienumintptrsizeiptrbooleanIOV
+  , ffienumenumintIOV
+  , ffienumsizeiptrPtrVbitfieldIOV
+  , ffienumintptrsizeiptrPtrVIOV
+  , ffienumintptrARBsizeiptrARBPtrVIOV
+  , ffisizeienumPtrVIOV
+  , ffienumIOenum
+  , ffiuintenumIOenum
+  , ffibitfieldIOV
+  , ffienumenumenumenumPtrVIOV
+  , ffienumenumintptrsizeiptrenumenumPtrVIOV
+  , ffienumintfloatintIOV
+  , ffienumintPtrfloatIOV
+  , ffienumintPtrintIOV
+  , ffienumintPtruintIOV
+  , ffiintintintintIOV
+  , ffiuintuintuintuintIOV
+  , ffidoubleIOV
+  , ffifloatIOV
+  , fficlampfIOV
+  , ffifixedIOV
+  , ffiuintenumenumenumPtrVIOV
+  , ffiuintenumintptrsizeiptrenumenumPtrVIOV
+  , ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV
+  , ffiuintenumintfloatintIOV
+  , ffiuintenumintPtrfloatIOV
+  , ffiuintenumintPtrintIOV
+  , ffiuintenumintPtruintIOV
+  , ffisizeisizeiPtruintIOV
+  , ffiuintintenumenumPtrVIOV
+  , ffiuintintintintintsizeisizeisizeienumenumPtrVIOV
+  , ffisyncbitfielduint64IOenum
+  , ffienumPtrdoubleIOV
+  , ffienumPtrfloatIOV
+  , ffienumPtrfixedIOV
+  , ffifloatfloatfloatfloatfloatfloatIOV
+  , ffiPtrfloatPtrfloatIOV
+  , ffihalfNVhalfNVhalfNVIOV
+  , ffiPtrhalfNVIOV
+  , ffiubyteubyteubyteIOV
+  , ffiPtrubyteIOV
+  , ffiuintuintuintIOV
+  , ffiPtruintIOV
+  , ffiushortushortushortIOV
+  , ffiPtrushortIOV
+  , ffifixedfixedfixedIOV
+  , ffiPtrfixedIOV
+  , ffibytebytebytebyteIOV
+  , ffidoubledoubledoubledoubleIOV
+  , ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffiPtrfloatPtrfloatPtrfloatIOV
+  , ffihalfNVhalfNVhalfNVhalfNVIOV
+  , ffishortshortshortshortIOV
+  , ffiubyteubyteubyteubyteIOV
+  , ffiubyteubyteubyteubytefloatfloatIOV
+  , ffiPtrubytePtrfloatIOV
+  , ffiubyteubyteubyteubytefloatfloatfloatIOV
+  , ffiushortushortushortushortIOV
+  , ffiintenumsizeiIOV
+  , ffienumuintuintuintuintuintuintIOV
+  , ffienumuintuintuintuintuintuintuintuintuintIOV
+  , ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV
+  , ffibooleanbooleanbooleanbooleanIOV
+  , ffiuintbooleanbooleanbooleanbooleanIOV
+  , ffienumPtruintIOV
+  , ffiintenumsizeiPtrVIOV
+  , ffiintenumsizeisizeiPtrVIOV
+  , ffiintenumintPtrPtrVintIOV
+  , ffiintenumPtrPtrVIOV
+  , ffienumsizeisizeienumenumPtrVIOV
+  , ffienumenumsizeienumenumPtrVIOV
+  , ffienumenumPtrfloatIOV
+  , ffienumenumPtrintIOV
+  , ffienumenumenumenumenumenumIOV
+  , ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV
+  , ffienumPtrintIOV
+  , ffihandleARBIOV
+  , ffiuintsizeiPtrPtrcharPtrintIOV
+  , ffienumenumintenumsizeiintsizeiPtrVIOV
+  , ffienumenumintenumsizeisizeiintsizeiPtrVIOV
+  , ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV
+  , ffienumenumintintsizeienumsizeiPtrVIOV
+  , ffienumenumintintintsizeisizeienumsizeiPtrVIOV
+  , ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV
+  , ffienumintenumsizeiintsizeiPtrVIOV
+  , ffienumintenumsizeisizeiintsizeiPtrVIOV
+  , ffienumintenumsizeisizeisizeiintsizeiPtrVIOV
+  , ffienumintintsizeienumsizeiPtrVIOV
+  , ffienumintintintsizeisizeienumsizeiPtrVIOV
+  , ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV
+  , ffiuintenumintenumsizeiintsizeiPtrVIOV
+  , ffiuintenumintenumsizeisizeiintsizeiPtrVIOV
+  , ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV
+  , ffiuintintintsizeienumsizeiPtrVIOV
+  , ffiuintenumintintsizeienumsizeiPtrVIOV
+  , ffiuintintintintsizeisizeienumsizeiPtrVIOV
+  , ffiuintenumintintintsizeisizeienumsizeiPtrVIOV
+  , ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV
+  , ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV
+  , ffienumenumsizeisizeienumenumPtrVIOV
+  , ffienumenumfloatIOV
+  , ffienumenumfixedIOV
+  , ffienumenumPtrfixedIOV
+  , ffienumenumintptrintptrsizeiptrIOV
+  , ffienumsizeiintintsizeiIOV
+  , ffienumenumintintsizeiIOV
+  , ffienumenumintintsizeisizeiIOV
+  , ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV
+  , ffienumenumintenumintintsizeiintIOV
+  , ffienumenumintenumintintsizeisizeiintIOV
+  , ffienumenumintintintintsizeiIOV
+  , ffienumenumintintintintintsizeisizeiIOV
+  , ffienumenumintintintintintintsizeisizeiIOV
+  , ffiuintuintintptrintptrsizeiptrIOV
+  , ffiintintsizeisizeienumIOV
+  , ffienumintenumintintsizeiintIOV
+  , ffienumintenumintintsizeisizeiintIOV
+  , ffienumintintintintsizeiIOV
+  , ffienumintintintintintsizeisizeiIOV
+  , ffienumintintintintintintsizeisizeiIOV
+  , ffiuintenumintenumintintsizeiintIOV
+  , ffiuintenumintenumintintsizeisizeiintIOV
+  , ffiuintuintintsizeiIOV
+  , ffiuintintintintintsizeiIOV
+  , ffiuintenumintintintintsizeiIOV
+  , ffiuintintintintintintsizeisizeiIOV
+  , ffiuintenumintintintintintsizeisizeiIOV
+  , ffiuintintintintintintintsizeisizeiIOV
+  , ffiuintenumintintintintintintsizeisizeiIOV
+  , ffisizeienumPtrVuintenumenumPtrfloatIOV
+  , ffibooleanIOV
+  , ffisizeiPtrfloatIOV
+  , ffisizeiPtruintIOV
+  , ffiuintPtruintIOV
+  , ffiIOuint
+  , ffiIOhandleARB
+  , ffienumsizeiPtruintIOV
+  , ffienumIOhandleARB
+  , ffienumPtrcharIOuint
+  , ffienumsizeiPtrPtrcharIOuint
+  , ffiPtrVPtrVbitfieldIOsync
+  , ffiDEBUGPROCPtrVIOV
+  , ffiDEBUGPROCAMDPtrVIOV
+  , ffiDEBUGPROCARBPtrVIOV
+  , ffiDEBUGPROCKHRPtrVIOV
+  , ffienumenumenumsizeiPtruintbooleanIOV
+  , ffienumenumsizeiPtruintbooleanIOV
+  , ffienumenumuintenumsizeiPtrcharIOV
+  , ffienumenumuintsizeiPtrcharIOV
+  , ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV
+  , ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV
+  , ffiuintsizeiIOV
+  , ffiintPtrcharIOV
+  , ffienumuintPtruintIOV
+  , ffisyncIOV
+  , fficlampdclampdIOV
+  , ffidoubledoubleIOV
+  , ffiuintsizeiPtrfloatIOV
+  , ffiuintsizeiPtrdoubleIOV
+  , ffiuintdoubledoubleIOV
+  , ffiuintfloatfloatIOV
+  , ffifloatfloatIOV
+  , fficlampfclampfIOV
+  , ffifixedfixedIOV
+  , ffienumsizeiPtrfloatIOV
+  , ffienumsizeiPtrenumIOV
+  , ffiuintuintuintuintuintuintIOV
+  , ffiintptrIOV
+  , ffienumintsizeiIOV
+  , ffienumPtrVIOV
+  , ffienumintsizeisizeiIOV
+  , ffienumintsizeisizeiuintIOV
+  , ffisizeiPtrenumIOV
+  , ffiintPtrenumPtrintIOV
+  , ffienumPtruint64PtrsizeiuintIOV
+  , ffienumuintPtrintptrPtrsizeiuintIOV
+  , ffiPtruint64PtrsizeiPtruintPtruintuintIOV
+  , ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV
+  , ffienumsizeiIOV
+  , ffienumsizeienumPtrVIOV
+  , ffienumsizeienumPtrVintIOV
+  , ffienumenumPtrVIOV
+  , ffienumsizeienumPtrVsizeiIOV
+  , ffienumsizeienumPtrVsizeiuintIOV
+  , ffienumsizeienumPtrVsizeiintIOV
+  , ffienumsizeienumPtrVsizeiintuintIOV
+  , ffisizeisizeienumenumPtrVIOV
+  , ffienumuintuintintsizeiIOV
+  , ffienumuintuintsizeiIOV
+  , ffienumuintuintsizeienumPtrVIOV
+  , ffienumuintuintsizeienumPtrVintIOV
+  , ffifloatfloatfloatfloatfloatIOV
+  , ffiintintintintintIOV
+  , ffishortshortshortshortshortIOV
+  , ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffifixedfixedfixedfixedfixedIOV
+  , ffienumuintsizeiIOV
+  , ffienumeglImageOESIOV
+  , ffisizeiIOV
+  , ffisizeiPtrVIOV
+  , ffisizeisizeiPtrbooleanIOV
+  , ffiintPtrPtrbooleanintIOV
+  , ffiPtrbooleanIOV
+  , ffienumintintIOV
+  , ffienumintintintintIOV
+  , ffiintintIOV
+  , ffienumuintPtrfloatIOV
+  , ffienumPtrPtrVIOV
+  , ffiPtruintintPtrintIOV
+  , ffiuintenumPtrcharPtrintIOV
+  , ffiuintenumintenumPtrintIOV
+  , ffienumintintintintsizeisizeisizeienumenumPtrVIOV
+  , ffiuintIOboolean
+  , ffisizeienumPtrfloatIOV
+  , ffisizeienumPtrfixedIOV
+  , ffienumbitfieldIOsync
+  , ffiPtruintIOint
+  , ffienumintptrsizeiptrIOV
+  , ffiuintintptrsizeiptrIOV
+  , ffienumintPtrPtrVintIOV
+  , ffihalfNVIOV
+  , ffiuintsizeiPtrenumIOV
+  , ffienumenumenumuintIOV
+  , ffienumuintsizeiPtrfloatIOV
+  , ffienumuintuintPtrfloatIOV
+  , ffienumenumuintintIOV
+  , ffienumenumenumuintintIOV
+  , ffienumenumenumuintintintintIOV
+  , ffienumenumenumuintintsizeiIOV
+  , ffienumenumenumuintintintIOV
+  , ffienumenumuintintenumIOV
+  , ffienumenumuintintintIOV
+  , ffienumenumuintintintintintIOV
+  , ffienumenumuintintsizeiintsizeiIOV
+  , ffienumenumuintintintsizeiIOV
+  , ffidoubledoubledoubledoubledoubledoubleIOV
+  , ffifixedfixedfixedfixedfixedfixedIOV
+  , ffisizeiIOuint
+  , ffiuintIOuint
+  , ffienumenumenumuintIOuint
+  , ffiuintuintenumPtrintIOV
+  , ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV
+  , ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV
+  , ffiuintenumuintsizeiPtrsizeiPtrcharIOV
+  , ffiuintenumuintenumPtrintIOV
+  , ffiuintuintsizeiPtrsizeiPtrcharIOV
+  , ffiuintsizeiPtruintenumPtrintIOV
+  , ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV
+  , ffihandleARBsizeiPtrsizeiPtrhandleARBIOV
+  , ffiuintsizeiPtrsizeiPtruintIOV
+  , ffiuintPtrcharIOint
+  , ffihandleARBPtrcharARBIOint
+  , ffienumuintPtrbooleanIOV
+  , ffienumPtrbooleanIOV
+  , ffienumenumPtrint64IOV
+  , ffienumenumPtruint64EXTIOV
+  , ffienumenumPtrPtrVIOV
+  , ffienumenumenumPtrVIOV
+  , ffienumenumenumenumPtrfloatIOV
+  , ffienumenumenumenumPtrintIOV
+  , ffienumenumenumPtrfloatIOV
+  , ffienumenumenumPtrintIOV
+  , ffienumuintIOuint
+  , ffienumenumintPtrVIOV
+  , ffienumintPtrVIOV
+  , ffiuintintsizeiPtrVIOV
+  , ffiuintenumintPtrVIOV
+  , ffiuintintintintintsizeisizeisizeisizeiPtrVIOV
+  , ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint
+  , ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint
+  , ffienumuintPtrdoubleIOV
+  , ffiuintsizeiPtrsizeiPtrcharIOV
+  , ffiPtrintsizeiPtruintIOV
+  , ffiIOenum
+  , ffiuintenumPtrintIOV
+  , ffienumenumuintuintsizeiPtrfloatIOV
+  , ffiuintIOsizei
+  , ffienumbooleanenumenumPtrVIOV
+  , ffiuintintbooleanintenumIOuint64
+  , ffihandleARBsizeiPtrsizeiPtrcharARBIOV
+  , ffiIOint
+  , ffienumuintPtrint64IOV
+  , ffienumPtrint64IOV
+  , ffienumuintPtrintIOV
+  , ffienumuintPtruint64EXTIOV
+  , ffienumPtruint64EXTIOV
+  , ffienumenumsizeienumsizeiPtrintIOV
+  , ffienumenumenumsizeiPtrint64IOV
+  , ffienumenumenumsizeiPtrintIOV
+  , ffiuintenumPtrbooleanIOV
+  , ffiuintenumPtrfloatIOV
+  , ffienumuintenumPtrfloatIOV
+  , ffienumuintenumPtrintIOV
+  , ffienumuintenumsizeisizeibooleanPtrVIOV
+  , ffienumenumPtrdoubleIOV
+  , ffienumenumenumPtrdoubleIOV
+  , ffienumenumintenumenumPtrVIOV
+  , ffienumenumintenumPtrfloatIOV
+  , ffienumenumintenumPtrintIOV
+  , ffienumenumenumPtruintIOV
+  , ffiuintenumPtrint64IOV
+  , ffiuintenumPtruint64EXTIOV
+  , ffiuintenumPtrPtrVIOV
+  , ffiuintintptrsizeiptrPtrVIOV
+  , ffiuintenumenumPtrintIOV
+  , ffiuintenumuintPtrintIOV
+  , ffiuintenumuintPtruintIOV
+  , ffiuintenumuintPtrdoubleIOV
+  , ffiuintenumuintPtrfloatIOV
+  , ffiuintenumenumPtrVIOV
+  , ffiintPtrcharsizeiPtrintPtrcharIOV
+  , ffiintPtrcharenumPtrintIOV
+  , ffienumuintsizeiPtrsizeiPtrcharIOV
+  , ffihandleARBenumPtrfloatIOV
+  , ffihandleARBenumPtrintIOV
+  , ffiPtrVsizeiPtrsizeiPtrcharIOV
+  , ffiuintenumPtruintIOV
+  , ffiuintPtrubyteIOV
+  , ffiuintPtrfloatIOV
+  , ffiuintsizeisizeiIOfloat
+  , ffibitfielduintsizeisizeiPtrfloatIOV
+  , ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV
+  , ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV
+  , ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV
+  , ffiuintenumsizeiPtruintPtrintIOV
+  , ffiuintuintenumPtrVIOV
+  , ffiuintPtrintPtrintsizeiPtruintIOV
+  , ffiuintuintsizeiPtrVPtruintIOV
+  , ffiPtrcharPtruintIOV
+  , ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV
+  , ffienumPtrushortIOV
+  , ffienumintPtrfixedIOV
+  , ffienumuintPtrPtrVIOV
+  , ffiuintsizeiPtrsizeiPtrenumPtrVIOV
+  , ffiuintsizeiPtrubytePtrdoubleIOV
+  , ffiuintsizeiPtrubytePtrfloatIOV
+  , ffienumuintenumPtrdoubleIOV
+  , ffiuintenumPtrcharIOuint
+  , ffiuintenumPtrcharIOint
+  , ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV
+  , ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV
+  , ffiuintenumPtrubyteIOV
+  , ffiuintuintenumintptrIOV
+  , ffiuintenumPtruint64IOV
+  , ffienumenumenumPtrVPtrVPtrVIOV
+  , ffienumenumPtrintPtrintIOV
+  , ffienumIOushort
+  , ffienumIOPtrubyte
+  , ffienumuintIOPtrubyte
+  , ffisyncenumsizeiPtrsizeiPtrintIOV
+  , ffienumintenumenumPtrVIOV
+  , ffienumintenumPtrfloatIOV
+  , ffienumintenumPtrintIOV
+  , ffienumintenumPtrfixedIOV
+  , ffienumenumPtruintIOV
+  , ffiuintIOuint64
+  , ffiuintintenumenumsizeiPtrVIOV
+  , ffiuintenumintenumenumPtrVIOV
+  , ffiuintintenumPtrfloatIOV
+  , ffiuintenumintenumPtrfloatIOV
+  , ffiuintintenumPtrintIOV
+  , ffiuintenumenumPtruintIOV
+  , ffiuintenumenumPtrfloatIOV
+  , ffiuintuintIOuint64
+  , ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV
+  , ffiuintuintPtrintIOV
+  , ffiuintenumuintPtrint64IOV
+  , ffiuintPtrcharIOuint
+  , ffiuintintIOint
+  , ffiuintsizeiPtrPtrcharPtruintIOV
+  , ffiuintintIOintptr
+  , ffiuintintPtrdoubleIOV
+  , ffiuintintPtrfloatIOV
+  , ffihandleARBintPtrfloatIOV
+  , ffiuintintPtrint64IOV
+  , ffiuintintPtrint64EXTIOV
+  , ffiuintintPtrintIOV
+  , ffihandleARBintPtrintIOV
+  , ffiuintintPtruint64IOV
+  , ffiuintintPtruint64EXTIOV
+  , ffiuintintPtruintIOV
+  , ffiuintuintenumPtrint64IOV
+  , ffiuintuintenumPtrPtrVIOV
+  , ffiuintenumPtrdoubleIOV
+  , ffiuintenumPtrint64EXTIOV
+  , ffiuintuintenumPtrdoubleIOV
+  , ffiuintuintenumPtrfloatIOV
+  , ffienumenumenumsizeiPtrVIOV
+  , ffienumintsizeiPtrVIOV
+  , ffienumbooleanenumenumsizeiPtrVIOV
+  , ffienumenumsizeiPtrdoubleIOV
+  , ffienumenumsizeiPtrfloatIOV
+  , ffienumenumsizeiPtrintIOV
+  , ffienumsizeiPtrushortIOV
+  , ffisizeiPtrubyteIOV
+  , ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV
+  , ffienumintenumenumsizeiPtrVIOV
+  , ffiuintintsizeiPtrdoubleIOV
+  , ffiuintintsizeiPtrfloatIOV
+  , ffiuintintsizeiPtrint64IOV
+  , ffiuintintsizeiPtrintIOV
+  , ffiuintintsizeiPtruint64IOV
+  , ffiuintintsizeiPtruintIOV
+  , ffibyteIOV
+  , ffishortIOV
+  , ffiubyteIOV
+  , ffiushortIOV
+  , ffienumsizeienumbooleanIOV
+  , ffienumintptrbitfieldIOsync
+  , ffienumsizeisizeiPtrVIOV
+  , ffisizeiPtrcharIOV
+  , ffisizeiPtrintIOV
+  , ffiuintuintuintfloatIOV
+  , ffiuintsizeiPtrenumintintsizeisizeiIOV
+  , ffienumsizeiPtrenumintintsizeisizeiIOV
+  , ffiuintintIOV
+  , ffiuintintintintintsizeisizeisizeiIOV
+  , ffienumIOboolean
+  , ffienumuintIOboolean
+  , ffiuint64IOboolean
+  , ffiintPtrcharIOboolean
+  , ffiuintuintfloatfloatIOboolean
+  , ffiuintfloatfloatIOboolean
+  , ffisyncIOboolean
+  , ffiuintenumIOboolean
+  , ffienumuintsizeiPtrcharIOV
+  , ffiintushortIOV
+  , ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV
+  , ffiuintenumfloatIOV
+  , ffiuintenumintIOV
+  , ffienumuintsizeiPtrubyteIOV
+  , ffiintsizeiIOV
+  , ffiuint64IOV
+  , ffiuint64enumIOV
+  , ffienumdoubledoubleintintPtrdoubleIOV
+  , ffienumfloatfloatintintPtrfloatIOV
+  , ffienumfixedfixedintintfixedIOV
+  , ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV
+  , ffienumfloatfloatintintfloatfloatintintPtrfloatIOV
+  , ffienumfixedfixedintintfixedfixedintintfixedIOV
+  , ffienumenumIOPtrV
+  , ffienumintptrsizeiptrbitfieldIOPtrV
+  , ffienumuintenumsizeisizeiintintbooleanPtrVIOV
+  , ffiintdoubledoubleIOV
+  , ffiintfloatfloatIOV
+  , ffiintfixedfixedIOV
+  , ffiintdoubledoubleintdoubledoubleIOV
+  , ffiintfloatfloatintfloatfloatIOV
+  , ffiintfixedfixedfixedfixedIOV
+  , ffiuintenumIOPtrV
+  , ffiuintintptrsizeiptrbitfieldIOPtrV
+  , ffiuintIOPtrV
+  , ffiuintintbitfieldPtrintPtrenumIOPtrV
+  , ffiuintuintdoubledoubleintintPtrdoubleIOV
+  , ffiuintuintfloatfloatintintPtrfloatIOV
+  , ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV
+  , ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV
+  , ffienumdoubledoubledoubledoubledoubledoubleIOV
+  , ffiintPtrubyteIOV
+  , ffiintPtruintIOV
+  , ffiintPtrushortIOV
+  , ffienumdoubledoubledoubledoubleIOV
+  , ffienumfloatfloatfloatfloatIOV
+  , ffienumdoubledoubledoubleIOV
+  , ffienumfloatfloatfloatIOV
+  , ffienumenumbooleanIOV
+  , ffienumPtrintPtrsizeisizeiIOV
+  , ffienumPtrVsizeisizeiIOV
+  , ffienumPtrVsizeisizeisizeiintIOV
+  , ffienumPtrVsizeisizeiintIOV
+  , ffienumintptrintptrsizeisizeiIOV
+  , ffienumPtrsizeienumPtrPtrVsizeiIOV
+  , ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV
+  , ffienumenumPtrVsizeisizeiIOV
+  , ffienumenumPtrVsizeisizeisizeiintIOV
+  , ffienumenumPtrVsizeisizeiintIOV
+  , ffienumenumintptrintptrsizeisizeiIOV
+  , ffienumuintuintPtrintPtrsizeisizeiIOV
+  , ffiPtrenumPtrintPtrsizeisizeiintIOV
+  , ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV
+  , ffienumbyteIOV
+  , ffienumPtrbyteIOV
+  , ffienumdoubleIOV
+  , ffienumhalfNVIOV
+  , ffienumPtrhalfNVIOV
+  , ffienumshortIOV
+  , ffienumPtrshortIOV
+  , ffienumbytebyteIOV
+  , ffienumdoubledoubleIOV
+  , ffienumfloatfloatIOV
+  , ffienumhalfNVhalfNVIOV
+  , ffienumshortshortIOV
+  , ffienumfixedfixedIOV
+  , ffienumbytebytebyteIOV
+  , ffienumhalfNVhalfNVhalfNVIOV
+  , ffienumintintintIOV
+  , ffienumshortshortshortIOV
+  , ffienumfixedfixedfixedIOV
+  , ffienumbytebytebytebyteIOV
+  , ffienumhalfNVhalfNVhalfNVhalfNVIOV
+  , ffienumshortshortshortshortIOV
+  , ffienumfixedfixedfixedfixedIOV
+  , ffienumintenumsizeiPtrVIOV
+  , ffienumenumenumfloatIOV
+  , ffienumenumenumintIOV
+  , ffienumenumenumdoubleIOV
+  , ffienumenumintintsizeiintenumenumPtrVIOV
+  , ffienumenumintintsizeisizeiintenumenumPtrVIOV
+  , ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV
+  , ffienumenumintintsizeienumenumPtrVIOV
+  , ffienumenumintintintsizeisizeienumenumPtrVIOV
+  , ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV
+  , ffiuintsizeiptrPtrVenumIOV
+  , ffiuintintptrsizeiptrbooleanIOV
+  , ffiuintsizeiptrPtrVbitfieldIOV
+  , ffiuintenumenumuintIOV
+  , ffiuintuintsizeiPtrfloatIOV
+  , ffiuintuintuintPtrfloatIOV
+  , ffiuintenumuintintIOV
+  , ffiuintenumenumuintintIOV
+  , ffiuintenumenumuintintintIOV
+  , ffiuintenumuintintenumIOV
+  , ffiuintenumuintintintIOV
+  , ffiuintenumuintdoubledoubledoubledoubleIOV
+  , ffiuintenumuintfloatfloatfloatfloatIOV
+  , ffiuintenumuintintintintintIOV
+  , ffiuintenumuintuintuintuintuintIOV
+  , ffiuintenumuintsizeiPtrfloatIOV
+  , ffiuintenumuintsizeiPtrintIOV
+  , ffiuintenumuintsizeiPtruintIOV
+  , ffiuintenumenumsizeiPtrVIOV
+  , ffiuintenumsizeisizeiIOV
+  , ffiuintsizeienumsizeisizeiIOV
+  , ffiuintsizeisizeienumsizeisizeiIOV
+  , ffienumintPtrcharintPtrcharIOV
+  , ffisizeiPtrVenumIOuint
+  , ffiPtrVsizeiPtrcharIOV
+  , ffienumuintenumIOenum
+  , ffiuintuintenumIOV
+  , ffiuintsizeiPtrubytesizeienumPtrVIOV
+  , ffiuintsizeienumPtrVIOV
+  , ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum
+  , ffienumPtrVbitfielduintfloatPtruintIOenum
+  , ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV
+  , ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV
+  , ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum
+  , ffienumintuintIOV
+  , ffiuintenumsizeiPtrVIOV
+  , ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV
+  , ffiuintsizeisizeienumPtrVIOV
+  , ffienumenumintPtrfloatIOV
+  , ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean
+  , ffiPtrintIOint
+  , ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV
+  , ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV
+  , ffifloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffisizeiPtruintPtrfloatIOV
+  , ffisizeiPtruintPtrclampfIOV
+  , ffisizeiPtruintPtrfixedIOV
+  , ffiuintenumPtrVsizeiIOV
+  , ffiuintenumPtrVintIOV
+  , ffienumuintuintsizeiPtrintIOV
+  , ffienumuintuintsizeiPtruintIOV
+  , ffienumuintuintsizeiPtrfloatIOV
+  , ffienumuintdoubledoubledoubledoubleIOV
+  , ffienumuintfloatfloatfloatfloatIOV
+  , ffienumuintintintintintIOV
+  , ffienumuintsizeiPtrintIOV
+  , ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV
+  , ffiuintsizeiPtrubytefloatfloatfloatfloatIOV
+  , ffienumuintsizeiPtrdoubleIOV
+  , ffiuintintenumintPtrfloatIOV
+  , ffienumenumsizeiPtrVIOV
+  , ffiuintintdoubleIOV
+  , ffiuintintfloatIOV
+  , ffiuintintintIOV
+  , ffiuintintint64IOV
+  , ffiuintintint64EXTIOV
+  , ffiuintintsizeiPtrint64EXTIOV
+  , ffiuintintuintIOV
+  , ffiuintintuint64IOV
+  , ffiuintintuint64EXTIOV
+  , ffiuintintsizeiPtruint64EXTIOV
+  , ffiuintintdoubledoubleIOV
+  , ffiuintintfloatfloatIOV
+  , ffiuintintintintIOV
+  , ffiuintintint64int64IOV
+  , ffiuintintint64EXTint64EXTIOV
+  , ffiuintintuintuintIOV
+  , ffiuintintuint64uint64IOV
+  , ffiuintintuint64EXTuint64EXTIOV
+  , ffiuintintdoubledoubledoubleIOV
+  , ffiuintintfloatfloatfloatIOV
+  , ffiuintintintintintIOV
+  , ffiuintintint64int64int64IOV
+  , ffiuintintint64EXTint64EXTint64EXTIOV
+  , ffiuintintuintuintuintIOV
+  , ffiuintintuint64uint64uint64IOV
+  , ffiuintintuint64EXTuint64EXTuint64EXTIOV
+  , ffiuintintdoubledoubledoubledoubleIOV
+  , ffiuintintfloatfloatfloatfloatIOV
+  , ffiuintintintintintintIOV
+  , ffiuintintint64int64int64int64IOV
+  , ffiuintintint64EXTint64EXTint64EXTint64EXTIOV
+  , ffiuintintuintuintuintuintIOV
+  , ffiuintintuint64uint64uint64uint64IOV
+  , ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV
+  , ffiuintintsizeibooleanPtrdoubleIOV
+  , ffiuintintsizeibooleanPtrfloatIOV
+  , ffiPtrfixedPtrintIObitfield
+  , ffienumuintenumuintIOV
+  , ffishortshortIOV
+  , ffiuintbooleanIOV
+  , ffiintintsizeisizeienumenumPtrVIOV
+  , ffiintintsizeisizeienumenumsizeiPtrVIOV
+  , ffiPtrdoublePtrdoubleIOV
+  , ffiPtrintPtrintIOV
+  , ffiPtrshortPtrshortIOV
+  , ffiPtrfixedPtrfixedIOV
+  , ffienumIOint
+  , ffienumenumsizeisizeiIOV
+  , ffienumsizeienumsizeisizeiIOV
+  , ffienumsizeisizeienumsizeisizeiIOV
+  , ffienumsizeiPtrPtrVIOV
+  , ffiuintfloatfloatfloatfloatfloatfloatIOV
+  , ffiPtruintPtrfloatPtrfloatIOV
+  , ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffiPtruintPtrfloatPtrfloatPtrfloatIOV
+  , ffiuintubyteubyteubyteubytefloatfloatfloatIOV
+  , ffiPtruintPtrubytePtrfloatIOV
+  , ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV
+  , ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffiuintfloatfloatfloatfloatfloatIOV
+  , ffiuintfloatfloatfloatIOV
+  , ffiPtruintPtrfloatIOV
+  , ffifloatbooleanIOV
+  , fficlampxbooleanIOV
+  , fficlampfbooleanIOV
+  , ffiuintbitfieldIOV
+  , ffiintintsizeisizeiIOV
+  , ffiuintsizeiPtrintIOV
+  , ffiuintintintsizeisizeiIOV
+  , ffiuintPtrintIOV
+  , ffiuintbooleanuintintPtruintIOV
+  , ffienumenumsizeisizeienumenumPtrVPtrVIOV
+  , ffiuintenumPtrVIOV
+  , ffisizeiPtruintenumPtrVsizeiIOV
+  , ffienumuintuintuintIOV
+  , ffienumuintuintuintuintIOV
+  , ffihandleARBsizeiPtrPtrcharARBPtrintIOV
+  , ffiuintuintuintuintbitfieldIOV
+  , ffisizeiuintIOV
+  , ffisizeienumPtrVuintenumuintenumPtrfloatIOV
+  , ffiuintenumuintIOV
+  , ffienumenumintuintIOV
+  , ffienumenumenumIOV
+  , ffisizeienumPtrVuintintuintenumPtrfloatIOV
+  , ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV
+  , ffiuintenumuintenumIOV
+  , ffisizeienumPtrVuintintuintenumenumPtrfloatIOV
+  , ffiuintintuintenumIOV
+  , ffiuintuintenumenumenumenumIOV
+  , ffienumenumuintintptrsizeiptrIOV
+  , ffibytebyteIOV
+  , ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV
+  , ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV
+  , ffiPtrfloatPtrubytePtrfloatIOV
+  , ffihalfNVhalfNVIOV
+  , ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV
+  , ffienumenumdoubleIOV
+  , ffienumintintsizeiintenumenumPtrVIOV
+  , ffienumintintsizeisizeiintenumenumPtrVIOV
+  , ffienumsizeienumsizeisizeibooleanIOV
+  , ffienumsizeisizeiintsizeisizeibooleanIOV
+  , ffienumintintsizeisizeisizeiintenumenumPtrVIOV
+  , ffienumintenumsizeisizeisizeiintenumenumPtrVIOV
+  , ffienumsizeienumsizeisizeisizeibooleanIOV
+  , ffienumsizeisizeiintsizeisizeisizeibooleanIOV
+  , ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV
+  , ffienumintintintintsizeisizeisizeibooleanIOV
+  , ffienumsizeienumsizeiIOV
+  , ffienumsizeienumsizeisizeisizeiIOV
+  , ffienumenumsizeisizeisizeisizeibitfieldIOV
+  , ffienumintintsizeienumenumPtrVIOV
+  , ffienumintintintsizeisizeienumenumPtrVIOV
+  , ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV
+  , ffiuintenumuintintptrsizeiptrIOV
+  , ffiuintenumenumuintintptrsizeiptrIOV
+  , ffiuintenumintintsizeiintenumenumPtrVIOV
+  , ffiuintenumintintsizeisizeiintenumenumPtrVIOV
+  , ffiuintenumsizeisizeiintsizeisizeibooleanIOV
+  , ffiuintenumsizeiintsizeisizeibooleanIOV
+  , ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV
+  , ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV
+  , ffiuintenumsizeiintsizeisizeisizeibooleanIOV
+  , ffiuintintintintintsizeisizeisizeibooleanIOV
+  , ffiuintenumenumfloatIOV
+  , ffiuintenumenumintIOV
+  , ffiuintsizeienumsizeiIOV
+  , ffiuintenumsizeienumsizeiIOV
+  , ffiuintenumsizeienumsizeisizeiIOV
+  , ffiuintsizeienumsizeisizeibooleanIOV
+  , ffiuintenumsizeienumsizeisizeibooleanIOV
+  , ffiuintsizeienumsizeisizeisizeiIOV
+  , ffiuintenumsizeienumsizeisizeisizeiIOV
+  , ffiuintsizeienumsizeisizeisizeibooleanIOV
+  , ffiuintenumsizeienumsizeisizeisizeibooleanIOV
+  , ffiuintenumenumsizeisizeisizeisizeibitfieldIOV
+  , ffiuintintintsizeienumenumPtrVIOV
+  , ffiuintenumintintsizeienumenumPtrVIOV
+  , ffiuintintintintsizeisizeienumenumPtrVIOV
+  , ffiuintenumintintintsizeisizeienumenumPtrVIOV
+  , ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV
+  , ffiuintenumuintenumuintuintuintuintIOV
+  , ffienumuintenumenumIOV
+  , ffisizeiPtrintenumIOV
+  , ffiuintuintuintintptrsizeiptrIOV
+  , ffisizeiPtrintsizeiPtrintenumIOV
+  , ffiuintsizeiPtrPtrcharenumIOV
+  , ffiuintsizeiPtrintenumIOV
+  , ffiintdoubleIOV
+  , ffiintsizeiPtrdoubleIOV
+  , ffiintfloatIOV
+  , ffiintsizeiPtrfloatIOV
+  , ffiintint64IOV
+  , ffiintint64EXTIOV
+  , ffiintsizeiPtrint64IOV
+  , ffiintsizeiPtrint64EXTIOV
+  , ffiintsizeiPtrintIOV
+  , ffiintuintIOV
+  , ffiintuint64IOV
+  , ffiintuint64EXTIOV
+  , ffiintsizeiPtruint64IOV
+  , ffiintsizeiPtruint64EXTIOV
+  , ffiintsizeiPtruintIOV
+  , ffiintint64int64IOV
+  , ffiintint64EXTint64EXTIOV
+  , ffiintuintuintIOV
+  , ffiintuint64uint64IOV
+  , ffiintuint64EXTuint64EXTIOV
+  , ffiintdoubledoubledoubleIOV
+  , ffiintfloatfloatfloatIOV
+  , ffiintint64int64int64IOV
+  , ffiintint64EXTint64EXTint64EXTIOV
+  , ffiintuintuintuintIOV
+  , ffiintuint64uint64uint64IOV
+  , ffiintuint64EXTuint64EXTuint64EXTIOV
+  , ffiintdoubledoubledoubledoubleIOV
+  , ffiintfloatfloatfloatfloatIOV
+  , ffiintint64int64int64int64IOV
+  , ffiintint64EXTint64EXTint64EXTint64EXTIOV
+  , ffiintuintuintuintuintIOV
+  , ffiintuint64uint64uint64uint64IOV
+  , ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV
+  , ffiintsizeibooleanPtrdoubleIOV
+  , ffiintsizeibooleanPtrfloatIOV
+  , ffiuintuintsizeiPtrVenumIOV
+  , ffiuintbitfielduintIOV
+  , ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV
+  , ffiPtrVPtrVIOV
+  , ffivdpauSurfaceNVIOboolean
+  , ffisizeiPtrvdpauSurfaceNVIOV
+  , ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV
+  , ffivdpauSurfaceNVenumIOV
+  , ffivdpauSurfaceNVIOV
+  , ffiuintenumsizeiuintuintIOV
+  , ffiuintenumuintPtrVIOV
+  , ffiuintPtrbyteIOV
+  , ffiuintPtrdoubleIOV
+  , ffiuintPtrshortIOV
+  , ffiuintPtrushortIOV
+  , ffiuintuintintenumbooleanuintIOV
+  , ffiuintuintintenumuintIOV
+  , ffiuintuintuintintptrsizeiIOV
+  , ffiuintuintintenumsizeiintptrIOV
+  , ffiuintuintsizeiintptrIOV
+  , ffiuintuintenumsizeiintptrIOV
+  , ffiuintuintenumintenumsizeiintptrIOV
+  , ffiuintuintuintintenumsizeiintptrIOV
+  , ffiuintuintuintintenumbooleansizeiintptrIOV
+  , ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV
+  , ffiuintdoubleIOV
+  , ffiuintfloatIOV
+  , ffiuinthalfNVIOV
+  , ffiuintPtrhalfNVIOV
+  , ffiuintshortIOV
+  , ffiuinthalfNVhalfNVIOV
+  , ffiuintshortshortIOV
+  , ffiuintdoubledoubledoubleIOV
+  , ffiuinthalfNVhalfNVhalfNVIOV
+  , ffiuintshortshortshortIOV
+  , ffiuintubyteubyteubyteubyteIOV
+  , ffiuintdoubledoubledoubledoubleIOV
+  , ffiuintfloatfloatfloatfloatIOV
+  , ffiuinthalfNVhalfNVhalfNVhalfNVIOV
+  , ffiuintshortshortshortshortIOV
+  , ffiuintintenumbooleansizeiuintuintIOV
+  , ffiuintintenumbooleanuintIOV
+  , ffiuintintenumbooleansizeiIOV
+  , ffiuintuintuintuintuintIOV
+  , ffiuintintenumuintIOV
+  , ffiuintintenumsizeiIOV
+  , ffiuintintenumsizeiPtrVIOV
+  , ffiuintint64EXTIOV
+  , ffiuintPtrint64EXTIOV
+  , ffiuintuint64EXTIOV
+  , ffiuintPtruint64EXTIOV
+  , ffiuintint64EXTint64EXTIOV
+  , ffiuintuint64EXTuint64EXTIOV
+  , ffiuintint64EXTint64EXTint64EXTIOV
+  , ffiuintuint64EXTuint64EXTuint64EXTIOV
+  , ffiuintint64EXTint64EXTint64EXTint64EXTIOV
+  , ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV
+  , ffiuintenumbooleanuintIOV
+  , ffiuintenumbooleanPtruintIOV
+  , ffiuintintenumbooleansizeiPtrVIOV
+  , ffiuintsizeiPtrhalfNVIOV
+  , ffiuintsizeiPtrshortIOV
+  , ffiuintsizeiPtrubyteIOV
+  , ffiuintPtruintPtruint64EXTIOenum
+  , ffisyncbitfielduint64IOV
+  , ffiuintsizeiPtruintPtrfloatIOV
+  , ffiintPtrbyteIOV
+  , ffiintPtrdoubleIOV
+  , ffiintPtrfloatIOV
+  , ffiintPtrintIOV
+  , ffiintPtrshortIOV
+  , ffienumsizeiPtrintIOV
+) where
+
+import Control.Monad.IO.Class
+import Foreign.C.Types
+import Foreign.Ptr
+import Graphics.GL.Types
+import Numeric.Fixed
+import Numeric.Half
+
+foreign import CALLCONV "dynamic" dynenumfloatIOV :: FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> IO ()
+
+ffienumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> IO ()) -> GLenum -> GLfloat -> m ()
+ffienumfloatIOV fp v0 v1 = liftIO (dynenumfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumfixedIOV :: FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> IO ()
+
+ffienumfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> IO ()) -> GLenum -> GLfixed -> m ()
+ffienumfixedIOV fp v0 v1 = liftIO (dynenumfixedIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintIOV :: FunPtr (GLuint -> IO ()) -> GLuint -> IO ()
+
+ffiuintIOV :: MonadIO m => FunPtr (GLuint -> IO ()) -> GLuint -> m ()
+ffiuintIOV fp v0 = liftIO (dynuintIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintuintIOV :: FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> IO ()
+
+ffiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> m ()
+ffiuintuintIOV fp v0 v1 = liftIO (dynuintuintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumIOV :: FunPtr (GLenum -> IO ()) -> GLenum -> IO ()
+
+ffienumIOV :: MonadIO m => FunPtr (GLenum -> IO ()) -> GLenum -> m ()
+ffienumIOV fp v0 = liftIO (dynenumIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintPtrcharIOV :: FunPtr (GLuint -> Ptr GLchar -> IO ()) -> GLuint -> Ptr GLchar -> IO ()
+
+ffiuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO ()) -> GLuint -> Ptr GLchar -> m ()
+ffiuintPtrcharIOV fp v0 v1 = liftIO (dynuintPtrcharIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynenumuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynenumclampfIOV :: FunPtr (GLenum -> GLclampf -> IO ()) -> GLenum -> GLclampf -> IO ()
+
+ffienumclampfIOV :: MonadIO m => FunPtr (GLenum -> GLclampf -> IO ()) -> GLenum -> GLclampf -> m ()
+ffienumclampfIOV fp v0 v1 = liftIO (dynenumclampfIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynIOV :: FunPtr (IO ()) -> IO ()
+
+ffiIOV :: MonadIO m => FunPtr (IO ()) -> m ()
+ffiIOV fp  = liftIO (dynIOV fp )
+
+foreign import CALLCONV "dynamic" dynsizeiPtruintPtrbooleanIOboolean :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean) -> GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean
+
+ffisizeiPtruintPtrbooleanIOboolean :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean) -> GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
+ffisizeiPtruintPtrbooleanIOboolean fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrbooleanIOboolean fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintIOV :: FunPtr (GLint -> IO ()) -> GLint -> IO ()
+
+ffiintIOV :: MonadIO m => FunPtr (GLint -> IO ()) -> GLint -> m ()
+ffiintIOV fp v0 = liftIO (dynintIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynenumintenumsizeiuintuintIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()
+
+ffienumintenumsizeiuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
+ffienumintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynhandleARBhandleARBIOV :: FunPtr (GLhandleARB -> GLhandleARB -> IO ()) -> GLhandleARB -> GLhandleARB -> IO ()
+
+ffihandleARBhandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLhandleARB -> IO ()) -> GLhandleARB -> GLhandleARB -> m ()
+ffihandleARBhandleARBIOV fp v0 v1 = liftIO (dynhandleARBhandleARBIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintenumIOV :: FunPtr (GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> IO ()
+
+ffiuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> m ()
+ffiuintenumIOV fp v0 v1 = liftIO (dynuintenumIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintIOV :: FunPtr (GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> IO ()
+
+ffienumuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> m ()
+ffienumuintIOV fp v0 v1 = liftIO (dynenumuintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> m ()
+ffienumuintuintIOV fp v0 v1 v2 = liftIO (dynenumuintuintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintPtrcharIOV :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> IO ()
+
+ffiuintuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> m ()
+ffiuintuintPtrcharIOV fp v0 v1 v2 = liftIO (dynuintuintPtrcharIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynhandleARBuintPtrcharARBIOV :: FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()
+
+ffihandleARBuintPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> Ptr GLcharARB -> m ()
+ffihandleARBuintPtrcharARBIOV fp v0 v1 v2 = liftIO (dynhandleARBuintPtrcharARBIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumuintuintintptrIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> IO ()
+
+ffienumuintuintintptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> m ()
+ffienumuintuintintptrIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintintptrIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintuintintptrsizeiptrIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+ffienumuintuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+ffienumuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtruintIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffienumuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+ffienumuintsizeiPtruintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtruintPtrintptrPtrsizeiptrIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()
+
+ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
+ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintsizeiPtruintPtrintptrPtrsizeiptrIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintuintuintPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()
+
+ffiuintuintuintPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
+ffiuintuintuintPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintPtrcharIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintintbooleanintenumenumIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()
+
+ffiuintuintintbooleanintenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
+ffiuintuintintbooleanintenumenumIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintintbooleanintenumenumIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintuintintbooleanintenumintIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()
+
+ffiuintuintintbooleanintenumintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()) -> GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> m ()
+ffiuintuintintbooleanintenumintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintintbooleanintenumintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffiuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+ffiuintsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumIOuint :: FunPtr (GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> IO GLuint
+
+ffienumenumIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> m GLuint
+ffienumenumIOuint fp v0 v1 = liftIO (dynenumenumIOuint fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumenumuintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLuint -> IO ()
+
+ffienumenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLuint -> m ()
+ffienumenumuintIOV fp v0 v1 v2 = liftIO (dynenumenumuintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumIOuint :: FunPtr (GLenum -> IO GLuint) -> GLenum -> IO GLuint
+
+ffienumIOuint :: MonadIO m => FunPtr (GLenum -> IO GLuint) -> GLenum -> m GLuint
+ffienumIOuint fp v0 = liftIO (dynenumIOuint fp v0)
+
+foreign import CALLCONV "dynamic" dynenumenumenumIOuint :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> GLenum -> IO GLuint
+
+ffienumenumenumIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint) -> GLenum -> GLenum -> GLenum -> m GLuint
+ffienumenumenumIOuint fp v0 v1 v2 = liftIO (dynenumenumenumIOuint fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintintptrsizeiIOV :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()
+
+ffiuintuintintptrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+ffiuintuintintptrsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintuintintptrsizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtruintPtrintptrPtrsizeiIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()
+
+ffiuintsizeiPtruintPtrintptrPtrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+ffiuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintenumintptrARBIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()
+
+ffiuintuintenumintptrARBIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptrARB -> m ()
+ffiuintuintenumintptrARBIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumintptrARBIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintenumenumuintIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()
+
+ffiuintuintenumenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
+ffiuintuintenumenumuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintenumenumuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynbytebytebyteIOV :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> IO ()
+
+ffibytebytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> m ()
+ffibytebytebyteIOV fp v0 v1 v2 = liftIO (dynbytebytebyteIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrbyteIOV :: FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> IO ()
+
+ffiPtrbyteIOV :: MonadIO m => FunPtr (Ptr GLbyte -> IO ()) -> Ptr GLbyte -> m ()
+ffiPtrbyteIOV fp v0 = liftIO (dynPtrbyteIOV fp v0)
+
+foreign import CALLCONV "dynamic" dyndoubledoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffidoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffidoubledoubledoubleIOV fp v0 v1 v2 = liftIO (dyndoubledoubledoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrdoubleIOV :: FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> IO ()
+
+ffiPtrdoubleIOV :: MonadIO m => FunPtr (Ptr GLdouble -> IO ()) -> Ptr GLdouble -> m ()
+ffiPtrdoubleIOV fp v0 = liftIO (dynPtrdoubleIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatIOV fp v0 v1 v2 = liftIO (dynfloatfloatfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrfloatIOV :: FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> IO ()
+
+ffiPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> IO ()) -> Ptr GLfloat -> m ()
+ffiPtrfloatIOV fp v0 = liftIO (dynPtrfloatIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynintintintIOV :: FunPtr (GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> IO ()
+
+ffiintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> m ()
+ffiintintintIOV fp v0 v1 v2 = liftIO (dynintintintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrintIOV :: FunPtr (Ptr GLint -> IO ()) -> Ptr GLint -> IO ()
+
+ffiPtrintIOV :: MonadIO m => FunPtr (Ptr GLint -> IO ()) -> Ptr GLint -> m ()
+ffiPtrintIOV fp v0 = liftIO (dynPtrintIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynshortshortshortIOV :: FunPtr (GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> IO ()
+
+ffishortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> m ()
+ffishortshortshortIOV fp v0 v1 v2 = liftIO (dynshortshortshortIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrshortIOV :: FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> IO ()
+
+ffiPtrshortIOV :: MonadIO m => FunPtr (Ptr GLshort -> IO ()) -> Ptr GLshort -> m ()
+ffiPtrshortIOV fp v0 = liftIO (dynPtrshortIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrVIOV :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumsizeiPtrVIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsizeisizeifloatfloatfloatfloatPtrubyteIOV :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()
+
+ffisizeisizeifloatfloatfloatfloatPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
+ffisizeisizeifloatfloatfloatfloatPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynsizeisizeifloatfloatfloatfloatPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynsizeisizeifixedfixedfixedfixedPtrubyteIOV :: FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()
+
+ffisizeisizeifixedfixedfixedfixedPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()) -> GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> m ()
+ffisizeisizeifixedfixedfixedfixedPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynsizeisizeifixedfixedfixedfixedPtrubyteIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynfloatfloatfloatfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynfixedfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+ffifixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+ffifixedfixedfixedfixedIOV fp v0 v1 v2 v3 = liftIO (dynfixedfixedfixedfixedIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumIOV :: FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> IO ()
+
+ffienumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> m ()
+ffienumenumIOV fp v0 v1 = liftIO (dynenumenumIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintenumenumIOV :: FunPtr (GLuint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> IO ()
+
+ffiuintenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> m ()
+ffiuintenumenumIOV fp v0 v1 v2 = liftIO (dynuintenumenumIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumenumenumIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+ffienumenumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+ffienumenumenumenumIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumenumenumIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+ffiuintenumenumenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+ffiuintenumenumenumenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumenumenumIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintIOV :: FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> IO ()
+
+ffienumintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> IO ()) -> GLenum -> GLint -> m ()
+ffienumintIOV fp v0 v1 = liftIO (dynenumintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintintintintintintintintbitfieldenumIOV :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()
+
+ffiintintintintintintintintbitfieldenumIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+ffiintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintuintintintintintintintintintbitfieldenumIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()
+
+ffiuintuintintintintintintintintintbitfieldenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()) -> GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+ffiuintuintintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintuintintintintintintintintintbitfieldenumIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynenumuintuint64EXTsizeiptrIOV :: FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()
+
+ffienumuintuint64EXTsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()) -> GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> m ()
+ffienumuintuint64EXTsizeiptrIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuint64EXTsizeiptrIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumsizeiptrPtrVenumIOV :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ()
+
+ffienumsizeiptrPtrVenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+ffienumsizeiptrPtrVenumIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeiptrPtrVenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumsizeiptrARBPtrVenumIOV :: FunPtr (GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ()
+
+ffienumsizeiptrARBPtrVenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> IO ()) -> GLenum -> GLsizeiptrARB -> Ptr () -> GLenum -> m ()
+ffienumsizeiptrARBPtrVenumIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeiptrARBPtrVenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintptrsizeiptrbooleanIOV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()
+
+ffienumintptrsizeiptrbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
+ffienumintptrsizeiptrbooleanIOV fp v0 v1 v2 v3 = liftIO (dynenumintptrsizeiptrbooleanIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumintIOV :: FunPtr (GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> IO ()
+
+ffienumenumintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> m ()
+ffienumenumintIOV fp v0 v1 v2 = liftIO (dynenumenumintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumsizeiptrPtrVbitfieldIOV :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()
+
+ffienumsizeiptrPtrVbitfieldIOV :: MonadIO m => FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+ffienumsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintptrsizeiptrPtrVIOV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()
+
+ffienumintptrsizeiptrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+ffienumintptrsizeiptrPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumintptrsizeiptrPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintptrARBsizeiptrARBPtrVIOV :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ()) -> GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ()
+
+ffienumintptrARBsizeiptrARBPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> IO ()) -> GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr () -> m ()
+ffienumintptrARBsizeiptrARBPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumintptrARBsizeiptrARBPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrVIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLenum -> Ptr () -> IO ()
+
+ffisizeienumPtrVIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLenum -> Ptr () -> m ()
+ffisizeienumPtrVIOV fp v0 v1 v2 = liftIO (dynsizeienumPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumIOenum :: FunPtr (GLenum -> IO GLenum) -> GLenum -> IO GLenum
+
+ffienumIOenum :: MonadIO m => FunPtr (GLenum -> IO GLenum) -> GLenum -> m GLenum
+ffienumIOenum fp v0 = liftIO (dynenumIOenum fp v0)
+
+foreign import CALLCONV "dynamic" dynuintenumIOenum :: FunPtr (GLuint -> GLenum -> IO GLenum) -> GLuint -> GLenum -> IO GLenum
+
+ffiuintenumIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> IO GLenum) -> GLuint -> GLenum -> m GLenum
+ffiuintenumIOenum fp v0 v1 = liftIO (dynuintenumIOenum fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynbitfieldIOV :: FunPtr (GLbitfield -> IO ()) -> GLbitfield -> IO ()
+
+ffibitfieldIOV :: MonadIO m => FunPtr (GLbitfield -> IO ()) -> GLbitfield -> m ()
+ffibitfieldIOV fp v0 = liftIO (dynbitfieldIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynenumenumenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumenumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumintptrsizeiptrenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumintfloatintIOV :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLenum -> GLint -> GLfloat -> GLint -> IO ()
+
+ffienumintfloatintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLenum -> GLint -> GLfloat -> GLint -> m ()
+ffienumintfloatintIOV fp v0 v1 v2 v3 = liftIO (dynenumintfloatintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintPtrfloatIOV :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+ffienumintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> Ptr GLfloat -> m ()
+ffienumintPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumintPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumintPtrintIOV :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ()) -> GLenum -> GLint -> Ptr GLint -> IO ()
+
+ffienumintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLint -> IO ()) -> GLenum -> GLint -> Ptr GLint -> m ()
+ffienumintPtrintIOV fp v0 v1 v2 = liftIO (dynenumintPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumintPtruintIOV :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLenum -> GLint -> Ptr GLuint -> IO ()
+
+ffienumintPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLenum -> GLint -> Ptr GLuint -> m ()
+ffienumintPtruintIOV fp v0 v1 v2 = liftIO (dynenumintPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintintintintIOV :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffiintintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> m ()
+ffiintintintintIOV fp v0 v1 v2 v3 = liftIO (dynintintintintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintuintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dyndoubleIOV :: FunPtr (GLdouble -> IO ()) -> GLdouble -> IO ()
+
+ffidoubleIOV :: MonadIO m => FunPtr (GLdouble -> IO ()) -> GLdouble -> m ()
+ffidoubleIOV fp v0 = liftIO (dyndoubleIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynfloatIOV :: FunPtr (GLfloat -> IO ()) -> GLfloat -> IO ()
+
+ffifloatIOV :: MonadIO m => FunPtr (GLfloat -> IO ()) -> GLfloat -> m ()
+ffifloatIOV fp v0 = liftIO (dynfloatIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynclampfIOV :: FunPtr (GLclampf -> IO ()) -> GLclampf -> IO ()
+
+fficlampfIOV :: MonadIO m => FunPtr (GLclampf -> IO ()) -> GLclampf -> m ()
+fficlampfIOV fp v0 = liftIO (dynclampfIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynfixedIOV :: FunPtr (GLfixed -> IO ()) -> GLfixed -> IO ()
+
+ffifixedIOV :: MonadIO m => FunPtr (GLfixed -> IO ()) -> GLfixed -> m ()
+ffifixedIOV fp v0 = liftIO (dynfixedIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintenumenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumenumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumintptrsizeiptrenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumintptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeiptrsizeiptrenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumsizeiptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeiptrsizeiptrenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumintfloatintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()
+
+ffiuintenumintfloatintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
+ffiuintenumintfloatintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumintfloatintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumintPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+ffiuintenumintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
+ffiuintenumintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumintPtrintIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()
+
+ffiuintenumintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
+ffiuintenumintPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumintPtruintIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()
+
+ffiuintenumintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
+ffiuintenumintPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynsizeisizeiPtruintIOV :: FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> GLsizei -> Ptr GLuint -> IO ()
+
+ffisizeisizeiPtruintIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> GLsizei -> Ptr GLuint -> m ()
+ffisizeisizeiPtruintIOV fp v0 v1 v2 = liftIO (dynsizeisizeiPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintenumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintintenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumenumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynsyncbitfielduint64IOenum :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum) -> GLsync -> GLbitfield -> GLuint64 -> IO GLenum
+
+ffisyncbitfielduint64IOenum :: MonadIO m => FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum) -> GLsync -> GLbitfield -> GLuint64 -> m GLenum
+ffisyncbitfielduint64IOenum fp v0 v1 v2 = liftIO (dynsyncbitfielduint64IOenum fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtrdoubleIOV :: FunPtr (GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> Ptr GLdouble -> IO ()
+
+ffienumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> Ptr GLdouble -> m ()
+ffienumPtrdoubleIOV fp v0 v1 = liftIO (dynenumPtrdoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumPtrfloatIOV :: FunPtr (GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> Ptr GLfloat -> m ()
+ffienumPtrfloatIOV fp v0 v1 = liftIO (dynenumPtrfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumPtrfixedIOV :: FunPtr (GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> Ptr GLfixed -> IO ()
+
+ffienumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> Ptr GLfixed -> m ()
+ffienumPtrfixedIOV fp v0 v1 = liftIO (dynenumPtrfixedIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynPtrfloatPtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+ffiPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> m ()
+ffiPtrfloatPtrfloatIOV fp v0 v1 = liftIO (dynPtrfloatPtrfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynhalfNVhalfNVhalfNVIOV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffihalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+ffihalfNVhalfNVhalfNVIOV fp v0 v1 v2 = liftIO (dynhalfNVhalfNVhalfNVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrhalfNVIOV :: FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> IO ()
+
+ffiPtrhalfNVIOV :: MonadIO m => FunPtr (Ptr GLhalfNV -> IO ()) -> Ptr GLhalfNV -> m ()
+ffiPtrhalfNVIOV fp v0 = liftIO (dynPtrhalfNVIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynubyteubyteubyteIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> IO ()
+
+ffiubyteubyteubyteIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> m ()
+ffiubyteubyteubyteIOV fp v0 v1 v2 = liftIO (dynubyteubyteubyteIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrubyteIOV :: FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> IO ()
+
+ffiPtrubyteIOV :: MonadIO m => FunPtr (Ptr GLubyte -> IO ()) -> Ptr GLubyte -> m ()
+ffiPtrubyteIOV fp v0 = liftIO (dynPtrubyteIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintuintuintIOV fp v0 v1 v2 = liftIO (dynuintuintuintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtruintIOV :: FunPtr (Ptr GLuint -> IO ()) -> Ptr GLuint -> IO ()
+
+ffiPtruintIOV :: MonadIO m => FunPtr (Ptr GLuint -> IO ()) -> Ptr GLuint -> m ()
+ffiPtruintIOV fp v0 = liftIO (dynPtruintIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynushortushortushortIOV :: FunPtr (GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> IO ()
+
+ffiushortushortushortIOV :: MonadIO m => FunPtr (GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> m ()
+ffiushortushortushortIOV fp v0 v1 v2 = liftIO (dynushortushortushortIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrushortIOV :: FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> IO ()
+
+ffiPtrushortIOV :: MonadIO m => FunPtr (Ptr GLushort -> IO ()) -> Ptr GLushort -> m ()
+ffiPtrushortIOV fp v0 = liftIO (dynPtrushortIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+ffifixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> m ()
+ffifixedfixedfixedIOV fp v0 v1 v2 = liftIO (dynfixedfixedfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrfixedIOV :: FunPtr (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> IO ()
+
+ffiPtrfixedIOV :: MonadIO m => FunPtr (Ptr GLfixed -> IO ()) -> Ptr GLfixed -> m ()
+ffiPtrfixedIOV fp v0 = liftIO (dynPtrfixedIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynbytebytebytebyteIOV :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()
+
+ffibytebytebytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+ffibytebytebytebyteIOV fp v0 v1 v2 v3 = liftIO (dynbytebytebytebyteIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dyndoubledoubledoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffidoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffidoubledoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dyndoubledoubledoubledoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+ffiPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+ffiPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 = liftIO (dynPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynhalfNVhalfNVhalfNVhalfNVIOV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffihalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+ffihalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 = liftIO (dynhalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynshortshortshortshortIOV :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+ffishortshortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+ffishortshortshortshortIOV fp v0 v1 v2 v3 = liftIO (dynshortshortshortshortIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynubyteubyteubyteubyteIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()
+
+ffiubyteubyteubyteubyteIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+ffiubyteubyteubyteubyteIOV fp v0 v1 v2 v3 = liftIO (dynubyteubyteubyteubyteIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynubyteubyteubyteubytefloatfloatIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()
+
+ffiubyteubyteubyteubytefloatfloatIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> m ()
+ffiubyteubyteubyteubytefloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynubyteubyteubyteubytefloatfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynPtrubytePtrfloatIOV :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+ffiPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLubyte -> Ptr GLfloat -> m ()
+ffiPtrubytePtrfloatIOV fp v0 v1 = liftIO (dynPtrubytePtrfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynubyteubyteubyteubytefloatfloatfloatIOV :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynushortushortushortushortIOV :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> GLushort -> IO ()
+
+ffiushortushortushortushortIOV :: MonadIO m => FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ()) -> GLushort -> GLushort -> GLushort -> GLushort -> m ()
+ffiushortushortushortushortIOV fp v0 v1 v2 v3 = liftIO (dynushortushortushortushortIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintenumsizeiIOV :: FunPtr (GLint -> GLenum -> GLsizei -> IO ()) -> GLint -> GLenum -> GLsizei -> IO ()
+
+ffiintenumsizeiIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> IO ()) -> GLint -> GLenum -> GLsizei -> m ()
+ffiintenumsizeiIOV fp v0 v1 v2 = liftIO (dynintenumsizeiIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintuintuintuintuintuintuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynenumuintuintuintuintuintuintuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
+
+foreign import CALLCONV "dynamic" dynbooleanbooleanbooleanbooleanIOV :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
+
+ffibooleanbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+ffibooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3 = liftIO (dynbooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintbooleanbooleanbooleanbooleanIOV :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
+
+ffiuintbooleanbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+ffiuintbooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintbooleanbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumPtruintIOV :: FunPtr (GLenum -> Ptr GLuint -> IO ()) -> GLenum -> Ptr GLuint -> IO ()
+
+ffienumPtruintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint -> IO ()) -> GLenum -> Ptr GLuint -> m ()
+ffienumPtruintIOV fp v0 v1 = liftIO (dynenumPtruintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintenumsizeiPtrVIOV :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiintenumsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynintenumsizeiPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintenumsizeisizeiPtrVIOV :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()
+
+ffiintenumsizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
+ffiintenumsizeisizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynintenumsizeisizeiPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintenumintPtrPtrVintIOV :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()
+
+ffiintenumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLint -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+ffiintenumintPtrPtrVintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintenumintPtrPtrVintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintenumPtrPtrVIOV :: FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLint -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffiintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLint -> GLenum -> Ptr (Ptr ()) -> m ()
+ffiintenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynintenumPtrPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+ffienumenumPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumenumPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrintIOV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> IO ()
+
+ffienumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> m ()
+ffienumenumPtrintIOV fp v0 v1 v2 = liftIO (dynenumenumPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumenumenumenumenumIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+ffienumenumenumenumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+ffienumenumenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumenumenumenumenumenumbooleanbooleanbooleanIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()
+
+ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> m ()
+ffienumenumenumenumenumenumenumbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumenumenumenumenumenumbooleanbooleanbooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumPtrintIOV :: FunPtr (GLenum -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLint -> IO ()
+
+ffienumPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLint -> m ()
+ffienumPtrintIOV fp v0 v1 = liftIO (dynenumPtrintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynhandleARBIOV :: FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> IO ()
+
+ffihandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> IO ()) -> GLhandleARB -> m ()
+ffihandleARBIOV fp v0 = liftIO (dynhandleARBIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrPtrcharPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()
+
+ffiuintsizeiPtrPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
+ffiuintsizeiPtrPtrcharPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumsizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffienumenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumsizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffienumenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumsizeisizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffienumenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumenumintintsizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumenumintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynenumenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynenumintenumsizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffienumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffienumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumintenumsizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffienumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffienumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumintenumsizeisizeisizeiintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffienumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffienumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumintintsizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumsizeiintsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumintenumsizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffiuintenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintenumsizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumsizeisizeiintsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumintenumsizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffiuintenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintenumsizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumsizeisizeisizeiintsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+ffiuintenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintenumsizeisizeisizeiintsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintintintsizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumintintsizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumintintsizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintintsizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintsizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumintintintsizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintintsizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintenumintintintintsizeisizeisizeienumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumenumfloatIOV :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLfloat -> IO ()
+
+ffienumenumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLfloat -> m ()
+ffienumenumfloatIOV fp v0 v1 v2 = liftIO (dynenumenumfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumfixedIOV :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ()) -> GLenum -> GLenum -> GLfixed -> IO ()
+
+ffienumenumfixedIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLfixed -> IO ()) -> GLenum -> GLenum -> GLfixed -> m ()
+ffienumenumfixedIOV fp v0 v1 v2 = liftIO (dynenumenumfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrfixedIOV :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLenum -> Ptr GLfixed -> IO ()
+
+ffienumenumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLenum -> Ptr GLfixed -> m ()
+ffienumenumPtrfixedIOV fp v0 v1 v2 = liftIO (dynenumenumPtrfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumintptrintptrsizeiptrIOV :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()
+
+ffienumenumintptrintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+ffienumenumintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumsizeiintintsizeiIOV :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()
+
+ffienumsizeiintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> m ()
+ffienumsizeiintintsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeiintintsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()
+
+ffienumenumintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> m ()
+ffienumenumintintsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintintsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumintintsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffienumenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffienumenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintintuintenumintintintintsizeisizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 = liftIO (dynuintenumintintintintuintenumintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumintintsizeiintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
+
+ffienumenumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+ffienumenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumintintsizeisizeiintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
+
+ffienumenumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+ffienumenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumenumintintintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+ffienumenumintintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+ffienumenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumenumintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffienumenumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffienumenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumenumintintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffienumenumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffienumenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintuintintptrintptrsizeiptrIOV :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()
+
+ffiuintuintintptrintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+ffiuintuintintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintintptrintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintintsizeisizeienumIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()
+
+ffiintintsizeisizeienumIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
+ffiintintsizeisizeienumIOV fp v0 v1 v2 v3 v4 = liftIO (dynintintsizeisizeienumIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintenumintintsizeiintIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
+
+ffienumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+ffienumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumintenumintintsizeisizeiintIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
+
+ffienumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+ffienumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumintintintintsizeiIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+ffienumintintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+ffienumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffienumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffienumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumintintintintintintsizeisizeiIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffienumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffienumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumintintsizeiintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
+
+ffiuintenumintenumintintsizeiintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+ffiuintenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintenumintintsizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumintintsizeisizeiintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
+
+ffiuintenumintenumintintsizeisizeiintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+ffiuintenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintenumintintsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintuintintsizeiIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()
+
+ffiuintuintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
+ffiuintuintintsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintuintintsizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintintintintsizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+ffiuintintintintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+ffiuintintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintintsizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+ffiuintenumintintintintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+ffiuintenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumintintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffiuintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffiuintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffiuintenumintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffiuintenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintintintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffiuintintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffiuintintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintintintintsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffiuintenumintintintintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffiuintenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintintintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrVuintenumenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+ffisizeienumPtrVuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+ffisizeienumPtrVuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynsizeienumPtrVuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynbooleanIOV :: FunPtr (GLboolean -> IO ()) -> GLboolean -> IO ()
+
+ffibooleanIOV :: MonadIO m => FunPtr (GLboolean -> IO ()) -> GLboolean -> m ()
+ffibooleanIOV fp v0 = liftIO (dynbooleanIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrfloatIOV :: FunPtr (GLsizei -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffisizeiPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLfloat -> m ()
+ffisizeiPtrfloatIOV fp v0 v1 = liftIO (dynsizeiPtrfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynsizeiPtruintIOV :: FunPtr (GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> Ptr GLuint -> IO ()
+
+ffisizeiPtruintIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> IO ()) -> GLsizei -> Ptr GLuint -> m ()
+ffisizeiPtruintIOV fp v0 v1 = liftIO (dynsizeiPtruintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtruintIOV :: FunPtr (GLuint -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLuint -> IO ()
+
+ffiuintPtruintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLuint -> m ()
+ffiuintPtruintIOV fp v0 v1 = liftIO (dynuintPtruintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynIOuint :: FunPtr (IO GLuint) -> IO GLuint
+
+ffiIOuint :: MonadIO m => FunPtr (IO GLuint) -> m GLuint
+ffiIOuint fp  = liftIO (dynIOuint fp )
+
+foreign import CALLCONV "dynamic" dynIOhandleARB :: FunPtr (IO GLhandleARB) -> IO GLhandleARB
+
+ffiIOhandleARB :: MonadIO m => FunPtr (IO GLhandleARB) -> m GLhandleARB
+ffiIOhandleARB fp  = liftIO (dynIOhandleARB fp )
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtruintIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLsizei -> Ptr GLuint -> IO ()
+
+ffienumsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLsizei -> Ptr GLuint -> m ()
+ffienumsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumIOhandleARB :: FunPtr (GLenum -> IO GLhandleARB) -> GLenum -> IO GLhandleARB
+
+ffienumIOhandleARB :: MonadIO m => FunPtr (GLenum -> IO GLhandleARB) -> GLenum -> m GLhandleARB
+ffienumIOhandleARB fp v0 = liftIO (dynenumIOhandleARB fp v0)
+
+foreign import CALLCONV "dynamic" dynenumPtrcharIOuint :: FunPtr (GLenum -> Ptr GLchar -> IO GLuint) -> GLenum -> Ptr GLchar -> IO GLuint
+
+ffienumPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> Ptr GLchar -> IO GLuint) -> GLenum -> Ptr GLchar -> m GLuint
+ffienumPtrcharIOuint fp v0 v1 = liftIO (dynenumPtrcharIOuint fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrPtrcharIOuint :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint) -> GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint
+
+ffienumsizeiPtrPtrcharIOuint :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint) -> GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
+ffienumsizeiPtrPtrcharIOuint fp v0 v1 v2 = liftIO (dynenumsizeiPtrPtrcharIOuint fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrVPtrVbitfieldIOsync :: FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync) -> Ptr () -> Ptr () -> GLbitfield -> IO GLsync
+
+ffiPtrVPtrVbitfieldIOsync :: MonadIO m => FunPtr (Ptr () -> Ptr () -> GLbitfield -> IO GLsync) -> Ptr () -> Ptr () -> GLbitfield -> m GLsync
+ffiPtrVPtrVbitfieldIOsync fp v0 v1 v2 = liftIO (dynPtrVPtrVbitfieldIOsync fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynDEBUGPROCPtrVIOV :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ()) -> GLDEBUGPROC -> Ptr () -> IO ()
+
+ffiDEBUGPROCPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROC -> Ptr () -> IO ()) -> GLDEBUGPROC -> Ptr () -> m ()
+ffiDEBUGPROCPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynDEBUGPROCAMDPtrVIOV :: FunPtr (GLDEBUGPROCAMD -> Ptr () -> IO ()) -> GLDEBUGPROCAMD -> Ptr () -> IO ()
+
+ffiDEBUGPROCAMDPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCAMD -> Ptr () -> IO ()) -> GLDEBUGPROCAMD -> Ptr () -> m ()
+ffiDEBUGPROCAMDPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCAMDPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynDEBUGPROCARBPtrVIOV :: FunPtr (GLDEBUGPROCARB -> Ptr () -> IO ()) -> GLDEBUGPROCARB -> Ptr () -> IO ()
+
+ffiDEBUGPROCARBPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCARB -> Ptr () -> IO ()) -> GLDEBUGPROCARB -> Ptr () -> m ()
+ffiDEBUGPROCARBPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCARBPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynDEBUGPROCKHRPtrVIOV :: FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ()) -> GLDEBUGPROCKHR -> Ptr () -> IO ()
+
+ffiDEBUGPROCKHRPtrVIOV :: MonadIO m => FunPtr (GLDEBUGPROCKHR -> Ptr () -> IO ()) -> GLDEBUGPROCKHR -> Ptr () -> m ()
+ffiDEBUGPROCKHRPtrVIOV fp v0 v1 = liftIO (dynDEBUGPROCKHRPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtruintbooleanIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()
+
+ffienumenumenumsizeiPtruintbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+ffienumenumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeiPtruintbooleanIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()
+
+ffienumenumsizeiPtruintbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+ffienumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumsizeiPtruintbooleanIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumuintenumsizeiPtrcharIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()
+
+ffienumenumuintenumsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
+ffienumenumuintenumsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumuintenumsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumuintsizeiPtrcharIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()
+
+ffienumenumuintsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+ffienumenumuintsizeiPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintsizeiPtrcharIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO (dynenumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13)
+
+foreign import CALLCONV "dynamic" dynenumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO (dynenumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13)
+
+foreign import CALLCONV "dynamic" dynuintsizeiIOV :: FunPtr (GLuint -> GLsizei -> IO ()) -> GLuint -> GLsizei -> IO ()
+
+ffiuintsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> IO ()) -> GLuint -> GLsizei -> m ()
+ffiuintsizeiIOV fp v0 v1 = liftIO (dynuintsizeiIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtrcharIOV :: FunPtr (GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> IO ()
+
+ffiintPtrcharIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> m ()
+ffiintPtrcharIOV fp v0 v1 = liftIO (dynintPtrcharIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintPtruintIOV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLuint -> IO ()
+
+ffienumuintPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLuint -> m ()
+ffienumuintPtruintIOV fp v0 v1 v2 = liftIO (dynenumuintPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsyncIOV :: FunPtr (GLsync -> IO ()) -> GLsync -> IO ()
+
+ffisyncIOV :: MonadIO m => FunPtr (GLsync -> IO ()) -> GLsync -> m ()
+ffisyncIOV fp v0 = liftIO (dynsyncIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynclampdclampdIOV :: FunPtr (GLclampd -> GLclampd -> IO ()) -> GLclampd -> GLclampd -> IO ()
+
+fficlampdclampdIOV :: MonadIO m => FunPtr (GLclampd -> GLclampd -> IO ()) -> GLclampd -> GLclampd -> m ()
+fficlampdclampdIOV fp v0 v1 = liftIO (dynclampdclampdIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dyndoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> IO ()
+
+ffidoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> m ()
+ffidoubledoubleIOV fp v0 v1 = liftIO (dyndoubledoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffiuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+ffiuintsizeiPtrfloatIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrdoubleIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()
+
+ffiuintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
+ffiuintsizeiPtrdoubleIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintdoubledoubleIOV :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> IO ()
+
+ffiuintdoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> m ()
+ffiuintdoubledoubleIOV fp v0 v1 v2 = liftIO (dynuintdoubledoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatIOV fp v0 v1 v2 = liftIO (dynuintfloatfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> m ()
+ffifloatfloatIOV fp v0 v1 = liftIO (dynfloatfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynclampfclampfIOV :: FunPtr (GLclampf -> GLclampf -> IO ()) -> GLclampf -> GLclampf -> IO ()
+
+fficlampfclampfIOV :: MonadIO m => FunPtr (GLclampf -> GLclampf -> IO ()) -> GLclampf -> GLclampf -> m ()
+fficlampfclampfIOV fp v0 v1 = liftIO (dynclampfclampfIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> IO ()
+
+ffifixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> m ()
+ffifixedfixedIOV fp v0 v1 = liftIO (dynfixedfixedIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrfloatIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffienumsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
+ffienumsizeiPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrenumIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> IO ()
+
+ffienumsizeiPtrenumIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> m ()
+ffienumsizeiPtrenumIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrenumIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintuintuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynintptrIOV :: FunPtr (GLintptr -> IO ()) -> GLintptr -> IO ()
+
+ffiintptrIOV :: MonadIO m => FunPtr (GLintptr -> IO ()) -> GLintptr -> m ()
+ffiintptrIOV fp v0 = liftIO (dynintptrIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynenumintsizeiIOV :: FunPtr (GLenum -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> IO ()
+
+ffienumintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> m ()
+ffienumintsizeiIOV fp v0 v1 v2 = liftIO (dynenumintsizeiIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtrVIOV :: FunPtr (GLenum -> Ptr () -> IO ()) -> GLenum -> Ptr () -> IO ()
+
+ffienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> IO ()) -> GLenum -> Ptr () -> m ()
+ffienumPtrVIOV fp v0 v1 = liftIO (dynenumPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumintsizeisizeiIOV :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffienumintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+ffienumintsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumintsizeisizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintsizeisizeiuintIOV :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()
+
+ffienumintsizeisizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
+ffienumintsizeisizeiuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintsizeisizeiuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrenumIOV :: FunPtr (GLsizei -> Ptr GLenum -> IO ()) -> GLsizei -> Ptr GLenum -> IO ()
+
+ffisizeiPtrenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLenum -> IO ()) -> GLsizei -> Ptr GLenum -> m ()
+ffisizeiPtrenumIOV fp v0 v1 = liftIO (dynsizeiPtrenumIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtrenumPtrintIOV :: FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLenum -> Ptr GLint -> IO ()
+
+ffiintPtrenumPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLenum -> Ptr GLint -> m ()
+ffiintPtrenumPtrintIOV fp v0 v1 v2 = liftIO (dynintPtrenumPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtruint64PtrsizeiuintIOV :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()
+
+ffienumPtruint64PtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
+ffienumPtruint64PtrsizeiuintIOV fp v0 v1 v2 v3 = liftIO (dynenumPtruint64PtrsizeiuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintPtrintptrPtrsizeiuintIOV :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()
+
+ffienumuintPtrintptrPtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
+ffienumuintPtrintptrPtrsizeiuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintPtrintptrPtrsizeiuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynPtruint64PtrsizeiPtruintPtruintuintIOV :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+ffiPtruint64PtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+ffiPtruint64PtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtruint64PtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintPtrintptrPtrsizeiPtruintPtruintuintIOV :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintPtrintptrPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumsizeiIOV :: FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> IO ()
+
+ffienumsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
+ffienumsizeiIOV fp v0 v1 = liftIO (dynenumsizeiIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumPtrVIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> IO ()
+
+ffienumsizeienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
+ffienumsizeienumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeienumPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumPtrVintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()
+
+ffienumsizeienumPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+ffienumsizeienumPtrVintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeienumPtrVintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumPtrVIOV fp v0 v1 v2 = liftIO (dynenumenumPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()
+
+ffienumsizeienumPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+ffienumsizeienumPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeienumPtrVsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiuintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ()
+
+ffienumsizeienumPtrVsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
+ffienumsizeienumPtrVsizeiuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumPtrVsizeiuintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()
+
+ffienumsizeienumPtrVsizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
+ffienumsizeienumPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumPtrVsizeiintuintIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ()
+
+ffienumsizeienumPtrVsizeiintuintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
+ffienumsizeienumPtrVsizeiintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeienumPtrVsizeiintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynsizeisizeienumenumPtrVIOV :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintuintintsizeiIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()
+
+ffienumuintuintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> m ()
+ffienumuintuintintsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintintsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintuintsizeiIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> IO ()
+
+ffienumuintuintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> m ()
+ffienumuintuintsizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintsizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintuintsizeienumPtrVIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()
+
+ffienumuintuintsizeienumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+ffienumuintuintsizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintuintsizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumuintuintsizeienumPtrVintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()
+
+ffienumuintuintsizeienumPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+ffienumuintuintsizeienumPtrVintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumuintuintsizeienumPtrVintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintintintintintIOV :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffiintintintintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+ffiintintintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintintintintintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynshortshortshortshortshortIOV :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+ffishortshortshortshortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+ffishortshortshortshortshortIOV fp v0 v1 v2 v3 v4 = liftIO (dynshortshortshortshortshortIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynfixedfixedfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+ffifixedfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+ffifixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 = liftIO (dynfixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLsizei -> IO ()
+
+ffienumuintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLsizei -> m ()
+ffienumuintsizeiIOV fp v0 v1 v2 = liftIO (dynenumuintsizeiIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumeglImageOESIOV :: FunPtr (GLenum -> GLeglImageOES -> IO ()) -> GLenum -> GLeglImageOES -> IO ()
+
+ffienumeglImageOESIOV :: MonadIO m => FunPtr (GLenum -> GLeglImageOES -> IO ()) -> GLenum -> GLeglImageOES -> m ()
+ffienumeglImageOESIOV fp v0 v1 = liftIO (dynenumeglImageOESIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynsizeiIOV :: FunPtr (GLsizei -> IO ()) -> GLsizei -> IO ()
+
+ffisizeiIOV :: MonadIO m => FunPtr (GLsizei -> IO ()) -> GLsizei -> m ()
+ffisizeiIOV fp v0 = liftIO (dynsizeiIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrVIOV :: FunPtr (GLsizei -> Ptr () -> IO ()) -> GLsizei -> Ptr () -> IO ()
+
+ffisizeiPtrVIOV :: MonadIO m => FunPtr (GLsizei -> Ptr () -> IO ()) -> GLsizei -> Ptr () -> m ()
+ffisizeiPtrVIOV fp v0 v1 = liftIO (dynsizeiPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynsizeisizeiPtrbooleanIOV :: FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ()) -> GLsizei -> GLsizei -> Ptr GLboolean -> IO ()
+
+ffisizeisizeiPtrbooleanIOV :: MonadIO m => FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ()) -> GLsizei -> GLsizei -> Ptr GLboolean -> m ()
+ffisizeisizeiPtrbooleanIOV fp v0 v1 v2 = liftIO (dynsizeisizeiPtrbooleanIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintPtrPtrbooleanintIOV :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()) -> GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()
+
+ffiintPtrPtrbooleanintIOV :: MonadIO m => FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()) -> GLint -> Ptr (Ptr GLboolean) -> GLint -> m ()
+ffiintPtrPtrbooleanintIOV fp v0 v1 v2 = liftIO (dynintPtrPtrbooleanintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrbooleanIOV :: FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> IO ()
+
+ffiPtrbooleanIOV :: MonadIO m => FunPtr (Ptr GLboolean -> IO ()) -> Ptr GLboolean -> m ()
+ffiPtrbooleanIOV fp v0 = liftIO (dynPtrbooleanIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynenumintintIOV :: FunPtr (GLenum -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> IO ()
+
+ffienumintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> m ()
+ffienumintintIOV fp v0 v1 v2 = liftIO (dynenumintintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumintintintintIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffienumintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+ffienumintintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintintintintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintintIOV :: FunPtr (GLint -> GLint -> IO ()) -> GLint -> GLint -> IO ()
+
+ffiintintIOV :: MonadIO m => FunPtr (GLint -> GLint -> IO ()) -> GLint -> GLint -> m ()
+ffiintintIOV fp v0 v1 = liftIO (dynintintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintPtrfloatIOV :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> Ptr GLfloat -> IO ()
+
+ffienumuintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> Ptr GLfloat -> m ()
+ffienumuintPtrfloatIOV fp v0 v1 v2 = liftIO (dynenumuintPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtrPtrVIOV :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffienumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> Ptr (Ptr ()) -> m ()
+ffienumPtrPtrVIOV fp v0 v1 = liftIO (dynenumPtrPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynPtruintintPtrintIOV :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ()) -> Ptr GLuint -> GLint -> Ptr GLint -> IO ()
+
+ffiPtruintintPtrintIOV :: MonadIO m => FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ()) -> Ptr GLuint -> GLint -> Ptr GLint -> m ()
+ffiPtruintintPtrintIOV fp v0 v1 v2 = liftIO (dynPtruintintPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrcharPtrintIOV :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()
+
+ffiuintenumPtrcharPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> m ()
+ffiuintenumPtrcharPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumPtrcharPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumPtrintIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+ffiuintenumintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+ffiuintenumintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumintenumPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynuintIOboolean :: FunPtr (GLuint -> IO GLboolean) -> GLuint -> IO GLboolean
+
+ffiuintIOboolean :: MonadIO m => FunPtr (GLuint -> IO GLboolean) -> GLuint -> m GLboolean
+ffiuintIOboolean fp v0 = liftIO (dynuintIOboolean fp v0)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr GLfloat -> IO ()
+
+ffisizeienumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr GLfloat -> m ()
+ffisizeienumPtrfloatIOV fp v0 v1 v2 = liftIO (dynsizeienumPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrfixedIOV :: FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ()) -> GLsizei -> GLenum -> Ptr GLfixed -> IO ()
+
+ffisizeienumPtrfixedIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ()) -> GLsizei -> GLenum -> Ptr GLfixed -> m ()
+ffisizeienumPtrfixedIOV fp v0 v1 v2 = liftIO (dynsizeienumPtrfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumbitfieldIOsync :: FunPtr (GLenum -> GLbitfield -> IO GLsync) -> GLenum -> GLbitfield -> IO GLsync
+
+ffienumbitfieldIOsync :: MonadIO m => FunPtr (GLenum -> GLbitfield -> IO GLsync) -> GLenum -> GLbitfield -> m GLsync
+ffienumbitfieldIOsync fp v0 v1 = liftIO (dynenumbitfieldIOsync fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynPtruintIOint :: FunPtr (Ptr GLuint -> IO GLint) -> Ptr GLuint -> IO GLint
+
+ffiPtruintIOint :: MonadIO m => FunPtr (Ptr GLuint -> IO GLint) -> Ptr GLuint -> m GLint
+ffiPtruintIOint fp v0 = liftIO (dynPtruintIOint fp v0)
+
+foreign import CALLCONV "dynamic" dynenumintptrsizeiptrIOV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> IO ()
+
+ffienumintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLintptr -> GLsizeiptr -> m ()
+ffienumintptrsizeiptrIOV fp v0 v1 v2 = liftIO (dynenumintptrsizeiptrIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+ffiuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+ffiuintintptrsizeiptrIOV fp v0 v1 v2 = liftIO (dynuintintptrsizeiptrIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumintPtrPtrVintIOV :: FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()
+
+ffienumintPtrPtrVintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> IO ()) -> GLenum -> GLint -> Ptr (Ptr ()) -> GLint -> m ()
+ffienumintPtrPtrVintIOV fp v0 v1 v2 v3 = liftIO (dynenumintPtrPtrVintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynhalfNVIOV :: FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> IO ()
+
+ffihalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> IO ()) -> GLhalfNV -> m ()
+ffihalfNVIOV fp v0 = liftIO (dynhalfNVIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> IO ()
+
+ffiuintsizeiPtrenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> m ()
+ffiuintsizeiPtrenumIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrenumIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumenumuintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> IO ()
+
+ffienumenumenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> m ()
+ffienumenumenumuintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffienumuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+ffienumuintsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintuintPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
+
+ffienumuintuintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLfloat -> m ()
+ffienumuintuintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumuintintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
+
+ffienumenumuintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+ffienumenumuintintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumuintintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumenumuintintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
+
+ffienumenumenumuintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+ffienumenumenumuintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumuintintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumenumuintintintintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()
+
+ffienumenumenumuintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> m ()
+ffienumenumenumuintintintintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumenumuintintintintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumenumenumuintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()
+
+ffienumenumenumuintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> m ()
+ffienumenumenumuintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumuintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumenumuintintintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+ffienumenumenumuintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+ffienumenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumuintintenumIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()
+
+ffienumenumuintintenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLenum -> m ()
+ffienumenumuintintenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintintenumIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumuintintintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+ffienumenumuintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+ffienumenumuintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintintintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumuintintintintintIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffienumenumuintintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+ffienumenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumenumuintintsizeiintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()
+
+ffienumenumuintintsizeiintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> m ()
+ffienumenumuintintsizeiintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumuintintsizeiintsizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumenumuintintintsizeiIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()
+
+ffienumenumuintintintsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> m ()
+ffienumenumuintintintsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumuintintintsizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dyndoubledoubledoubledoubledoubledoubleIOV :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffidoubledoubledoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffidoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dyndoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynfixedfixedfixedfixedfixedfixedIOV :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+ffifixedfixedfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+ffifixedfixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynfixedfixedfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynsizeiIOuint :: FunPtr (GLsizei -> IO GLuint) -> GLsizei -> IO GLuint
+
+ffisizeiIOuint :: MonadIO m => FunPtr (GLsizei -> IO GLuint) -> GLsizei -> m GLuint
+ffisizeiIOuint fp v0 = liftIO (dynsizeiIOuint fp v0)
+
+foreign import CALLCONV "dynamic" dynuintIOuint :: FunPtr (GLuint -> IO GLuint) -> GLuint -> IO GLuint
+
+ffiuintIOuint :: MonadIO m => FunPtr (GLuint -> IO GLuint) -> GLuint -> m GLuint
+ffiuintIOuint fp v0 = liftIO (dynuintIOuint fp v0)
+
+foreign import CALLCONV "dynamic" dynenumenumenumuintIOuint :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint) -> GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint
+
+ffienumenumenumuintIOuint :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint) -> GLenum -> GLenum -> GLenum -> GLuint -> m GLuint
+ffienumenumenumuintIOuint fp v0 v1 v2 v3 = liftIO (dynenumenumenumuintIOuint fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintenumPtrintIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()
+
+ffiuintuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+ffiuintuintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()
+
+ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynhandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()
+
+ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> m ()
+ffihandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynhandleARBuintsizeiPtrsizeiPtrintPtrenumPtrcharARBIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+ffiuintenumuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+ffiuintenumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumuintenumPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()
+
+ffiuintenumuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+ffiuintenumuintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintenumPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+ffiuintuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+ffiuintuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtruintenumPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()
+
+ffiuintsizeiPtruintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
+ffiuintsizeiPtruintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeiPtruintenumPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()
+
+ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
+ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynhandleARBsizeiPtrsizeiPtrhandleARBIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()
+
+ffihandleARBsizeiPtrsizeiPtrhandleARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> m ()
+ffihandleARBsizeiPtrsizeiPtrhandleARBIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrsizeiPtrhandleARBIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrsizeiPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()
+
+ffiuintsizeiPtrsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
+ffiuintsizeiPtrsizeiPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrsizeiPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintPtrcharIOint :: FunPtr (GLuint -> Ptr GLchar -> IO GLint) -> GLuint -> Ptr GLchar -> IO GLint
+
+ffiuintPtrcharIOint :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO GLint) -> GLuint -> Ptr GLchar -> m GLint
+ffiuintPtrcharIOint fp v0 v1 = liftIO (dynuintPtrcharIOint fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynhandleARBPtrcharARBIOint :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint) -> GLhandleARB -> Ptr GLcharARB -> IO GLint
+
+ffihandleARBPtrcharARBIOint :: MonadIO m => FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint) -> GLhandleARB -> Ptr GLcharARB -> m GLint
+ffihandleARBPtrcharARBIOint fp v0 v1 = liftIO (dynhandleARBPtrcharARBIOint fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintPtrbooleanIOV :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ()) -> GLenum -> GLuint -> Ptr GLboolean -> IO ()
+
+ffienumuintPtrbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ()) -> GLenum -> GLuint -> Ptr GLboolean -> m ()
+ffienumuintPtrbooleanIOV fp v0 v1 v2 = liftIO (dynenumuintPtrbooleanIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtrbooleanIOV :: FunPtr (GLenum -> Ptr GLboolean -> IO ()) -> GLenum -> Ptr GLboolean -> IO ()
+
+ffienumPtrbooleanIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLboolean -> IO ()) -> GLenum -> Ptr GLboolean -> m ()
+ffienumPtrbooleanIOV fp v0 v1 = liftIO (dynenumPtrbooleanIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrint64IOV :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> Ptr GLint64 -> IO ()
+
+ffienumenumPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> Ptr GLint64 -> m ()
+ffienumenumPtrint64IOV fp v0 v1 v2 = liftIO (dynenumenumPtrint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumPtruint64EXTIOV :: FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()
+
+ffienumenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLenum -> Ptr GLuint64EXT -> m ()
+ffienumenumPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynenumenumPtruint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrPtrVIOV :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffienumenumPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+ffienumenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumenumPtrPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumenumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumenumenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumenumenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+ffienumenumenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumenumPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumenumenumPtrintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
+
+ffienumenumenumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+ffienumenumenumenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumenumPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+ffienumenumenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumenumPtrintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
+
+ffienumenumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+ffienumenumenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintIOuint :: FunPtr (GLenum -> GLuint -> IO GLuint) -> GLenum -> GLuint -> IO GLuint
+
+ffienumuintIOuint :: MonadIO m => FunPtr (GLenum -> GLuint -> IO GLuint) -> GLenum -> GLuint -> m GLuint
+ffienumuintIOuint fp v0 v1 = liftIO (dynenumuintIOuint fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumenumintPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr () -> IO ()
+
+ffienumenumintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr () -> m ()
+ffienumenumintPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumenumintPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintPtrVIOV :: FunPtr (GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLint -> Ptr () -> IO ()
+
+ffienumintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLint -> Ptr () -> m ()
+ffienumintPtrVIOV fp v0 v1 v2 = liftIO (dynenumintPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr () -> m ()
+ffiuintintsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumintPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr () -> IO ()
+
+ffiuintenumintPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> Ptr () -> m ()
+ffiuintenumintPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumintPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeisizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintintintintsizeisizeisizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
+ffiuintintintintintsizeisizeisizeisizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintintintintintsizeisizeisizeisizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint
+
+ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint
+
+ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint) -> GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+ffiuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrenumPtruintPtruintPtrsizeiPtrcharIOuint fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumuintPtrdoubleIOV :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> Ptr GLdouble -> IO ()
+
+ffienumuintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> Ptr GLdouble -> m ()
+ffienumuintPtrdoubleIOV fp v0 v1 v2 = liftIO (dynenumuintPtrdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+ffiuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+ffiuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynPtrintsizeiPtruintIOV :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffiPtrintsizeiPtruintIOV :: MonadIO m => FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
+ffiPtrintsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynPtrintsizeiPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynIOenum :: FunPtr (IO GLenum) -> IO GLenum
+
+ffiIOenum :: MonadIO m => FunPtr (IO GLenum) -> m GLenum
+ffiIOenum fp  = liftIO (dynIOenum fp )
+
+foreign import CALLCONV "dynamic" dynuintenumPtrintIOV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLint -> IO ()
+
+ffiuintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> Ptr GLint -> m ()
+ffiuintenumPtrintIOV fp v0 v1 v2 = liftIO (dynuintenumPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumuintuintsizeiPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffienumenumuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+ffienumenumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintIOsizei :: FunPtr (GLuint -> IO GLsizei) -> GLuint -> IO GLsizei
+
+ffiuintIOsizei :: MonadIO m => FunPtr (GLuint -> IO GLsizei) -> GLuint -> m GLsizei
+ffiuintIOsizei fp v0 = liftIO (dynuintIOsizei fp v0)
+
+foreign import CALLCONV "dynamic" dynenumbooleanenumenumPtrVIOV :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumbooleanenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumbooleanenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumbooleanenumenumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintbooleanintenumIOuint64 :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64) -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64
+
+ffiuintintbooleanintenumIOuint64 :: MonadIO m => FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64) -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> m GLuint64
+ffiuintintbooleanintenumIOuint64 fp v0 v1 v2 v3 v4 = liftIO (dynuintintbooleanintenumIOuint64 fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynhandleARBsizeiPtrsizeiPtrcharARBIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()
+
+ffihandleARBsizeiPtrsizeiPtrcharARBIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()) -> GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> m ()
+ffihandleARBsizeiPtrsizeiPtrcharARBIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrsizeiPtrcharARBIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynIOint :: FunPtr (IO GLint) -> IO GLint
+
+ffiIOint :: MonadIO m => FunPtr (IO GLint) -> m GLint
+ffiIOint fp  = liftIO (dynIOint fp )
+
+foreign import CALLCONV "dynamic" dynenumuintPtrint64IOV :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLenum -> GLuint -> Ptr GLint64 -> IO ()
+
+ffienumuintPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLenum -> GLuint -> Ptr GLint64 -> m ()
+ffienumuintPtrint64IOV fp v0 v1 v2 = liftIO (dynenumuintPtrint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtrint64IOV :: FunPtr (GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> Ptr GLint64 -> IO ()
+
+ffienumPtrint64IOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint64 -> IO ()) -> GLenum -> Ptr GLint64 -> m ()
+ffienumPtrint64IOV fp v0 v1 = liftIO (dynenumPtrint64IOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintPtrintIOV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> Ptr GLint -> IO ()
+
+ffienumuintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> Ptr GLint -> m ()
+ffienumuintPtrintIOV fp v0 v1 v2 = liftIO (dynenumuintPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumuintPtruint64EXTIOV :: FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()
+
+ffienumuintPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()) -> GLenum -> GLuint -> Ptr GLuint64EXT -> m ()
+ffienumuintPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynenumuintPtruint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtruint64EXTIOV :: FunPtr (GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> Ptr GLuint64EXT -> IO ()
+
+ffienumPtruint64EXTIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint64EXT -> IO ()) -> GLenum -> Ptr GLuint64EXT -> m ()
+ffienumPtruint64EXTIOV fp v0 v1 = liftIO (dynenumPtruint64EXTIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeienumsizeiPtrintIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+ffienumenumsizeienumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> m ()
+ffienumenumsizeienumsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumsizeienumsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrint64IOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()
+
+ffienumenumenumsizeiPtrint64IOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
+ffienumenumenumsizeiPtrint64IOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumsizeiPtrint64IOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+ffienumenumenumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+ffienumenumenumsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumsizeiPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrbooleanIOV :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ()) -> GLuint -> GLenum -> Ptr GLboolean -> IO ()
+
+ffiuintenumPtrbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ()) -> GLuint -> GLenum -> Ptr GLboolean -> m ()
+ffiuintenumPtrbooleanIOV fp v0 v1 v2 = liftIO (dynuintenumPtrbooleanIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrfloatIOV :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffiuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+ffiuintenumPtrfloatIOV fp v0 v1 v2 = liftIO (dynuintenumPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumuintenumPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+ffienumuintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintenumPtrintIOV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()
+
+ffienumuintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+ffienumuintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintenumsizeisizeibooleanPtrVIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ()
+
+ffienumuintenumsizeisizeibooleanPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> m ()
+ffienumuintenumsizeisizeibooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumuintenumsizeisizeibooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrdoubleIOV :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
+
+ffienumenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> Ptr GLdouble -> m ()
+ffienumenumPtrdoubleIOV fp v0 v1 v2 = liftIO (dynenumenumPtrdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumenumPtrdoubleIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
+
+ffienumenumenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLdouble -> m ()
+ffienumenumenumPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumenumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+ffienumenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumintenumPtrintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+ffienumenumintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+ffienumenumintenumPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumintenumPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumenumPtruintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()
+
+ffienumenumenumPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLuint -> m ()
+ffienumenumenumPtruintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrint64IOV :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLint64 -> IO ()
+
+ffiuintenumPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLint64 -> m ()
+ffiuintenumPtrint64IOV fp v0 v1 v2 = liftIO (dynuintenumPtrint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumPtruint64EXTIOV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()
+
+ffiuintenumPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64EXT -> m ()
+ffiuintenumPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynuintenumPtruint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrPtrVIOV :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffiuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+ffiuintenumPtrPtrVIOV fp v0 v1 v2 = liftIO (dynuintenumPtrPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintptrsizeiptrPtrVIOV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()
+
+ffiuintintptrsizeiptrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+ffiuintintptrsizeiptrPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintintptrsizeiptrPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumPtrintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()
+
+ffiuintenumenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+ffiuintenumenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumuintPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()
+
+ffiuintenumuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+ffiuintenumuintPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumuintPtruintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()
+
+ffiuintenumuintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLuint -> m ()
+ffiuintenumuintPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumuintPtrdoubleIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()
+
+ffiuintenumuintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLdouble -> m ()
+ffiuintenumuintPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumuintPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()
+
+ffiuintenumuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLfloat -> m ()
+ffiuintenumuintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumenumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintPtrcharsizeiPtrintPtrcharIOV :: FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()
+
+ffiintPtrcharsizeiPtrintPtrcharIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()) -> GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> m ()
+ffiintPtrcharsizeiPtrintPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynintPtrcharsizeiPtrintPtrcharIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintPtrcharenumPtrintIOV :: FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()
+
+ffiintPtrcharenumPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> m ()
+ffiintPtrcharenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynintPtrcharenumPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtrsizeiPtrcharIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+ffienumuintsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+ffienumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynhandleARBenumPtrfloatIOV :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()
+
+ffihandleARBenumPtrfloatIOV :: MonadIO m => FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLfloat -> m ()
+ffihandleARBenumPtrfloatIOV fp v0 v1 v2 = liftIO (dynhandleARBenumPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynhandleARBenumPtrintIOV :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLint -> IO ()
+
+ffihandleARBenumPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ()) -> GLhandleARB -> GLenum -> Ptr GLint -> m ()
+ffihandleARBenumPtrintIOV fp v0 v1 v2 = liftIO (dynhandleARBenumPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrVsizeiPtrsizeiPtrcharIOV :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+ffiPtrVsizeiPtrsizeiPtrcharIOV :: MonadIO m => FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+ffiPtrVsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynPtrVsizeiPtrsizeiPtrcharIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumPtruintIOV :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> Ptr GLuint -> IO ()
+
+ffiuintenumPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> Ptr GLuint -> m ()
+ffiuintenumPtruintIOV fp v0 v1 v2 = liftIO (dynuintenumPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintPtrubyteIOV :: FunPtr (GLuint -> Ptr GLubyte -> IO ()) -> GLuint -> Ptr GLubyte -> IO ()
+
+ffiuintPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLubyte -> IO ()) -> GLuint -> Ptr GLubyte -> m ()
+ffiuintPtrubyteIOV fp v0 v1 = liftIO (dynuintPtrubyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtrfloatIOV :: FunPtr (GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> Ptr GLfloat -> IO ()
+
+ffiuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> Ptr GLfloat -> m ()
+ffiuintPtrfloatIOV fp v0 v1 = liftIO (dynuintPtrfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintsizeisizeiIOfloat :: FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat) -> GLuint -> GLsizei -> GLsizei -> IO GLfloat
+
+ffiuintsizeisizeiIOfloat :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat) -> GLuint -> GLsizei -> GLsizei -> m GLfloat
+ffiuintsizeisizeiIOfloat fp v0 v1 v2 = liftIO (dynuintsizeisizeiIOfloat fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynbitfielduintsizeisizeiPtrfloatIOV :: FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffibitfielduintsizeisizeiPtrfloatIOV :: MonadIO m => FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> m ()
+ffibitfielduintsizeisizeiPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynbitfielduintsizeisizeiPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynbitfieldsizeienumPtrVuintsizeiPtrfloatIOV :: FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+ffibitfieldsizeienumPtrVuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynbitfieldsizeienumPtrVuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumPtrVuintfloatfloatenumPtrfloatIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> m ()
+ffienumsizeienumPtrVuintfloatfloatenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumsizeienumPtrVuintfloatfloatenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()
+
+ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> m ()
+ffiuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintuintPtrcharuintPtrcharPtruintPtruintPtruintPtruintPtruint64IOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeiPtruintPtrintIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()
+
+ffiuintenumsizeiPtruintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
+ffiuintenumsizeiPtruintPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumsizeiPtruintPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintenumPtrVIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr () -> IO ()
+
+ffiuintuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr () -> m ()
+ffiuintuintenumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintPtrintPtrintsizeiPtruintIOV :: FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffiuintPtrintPtrintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
+ffiuintPtrintPtrintsizeiPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintPtrintPtrintsizeiPtruintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiPtrVPtruintIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ()
+
+ffiuintuintsizeiPtrVPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> Ptr GLuint -> m ()
+ffiuintuintsizeiPtrVPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintsizeiPtrVPtruintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynPtrcharPtruintIOV :: FunPtr (Ptr GLchar -> Ptr GLuint -> IO ()) -> Ptr GLchar -> Ptr GLuint -> IO ()
+
+ffiPtrcharPtruintIOV :: MonadIO m => FunPtr (Ptr GLchar -> Ptr GLuint -> IO ()) -> Ptr GLchar -> Ptr GLuint -> m ()
+ffiPtrcharPtruintIOV fp v0 v1 = liftIO (dynPtrcharPtruintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintuintPtrcharPtruintPtruintPtruintPtruintIOV :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()
+
+ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()) -> GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> m ()
+ffiuintuintPtrcharPtruintPtruintPtruintPtruintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintPtrcharPtruintPtruintPtruintPtruintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumPtrushortIOV :: FunPtr (GLenum -> Ptr GLushort -> IO ()) -> GLenum -> Ptr GLushort -> IO ()
+
+ffienumPtrushortIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLushort -> IO ()) -> GLenum -> Ptr GLushort -> m ()
+ffienumPtrushortIOV fp v0 v1 = liftIO (dynenumPtrushortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumintPtrfixedIOV :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> Ptr GLfixed -> IO ()
+
+ffienumintPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> Ptr GLfixed -> m ()
+ffienumintPtrfixedIOV fp v0 v1 v2 = liftIO (dynenumintPtrfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumuintPtrPtrVIOV :: FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()
+
+ffienumuintPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLuint -> Ptr (Ptr ()) -> m ()
+ffienumuintPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumuintPtrPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrsizeiPtrenumPtrVIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()
+
+ffiuintsizeiPtrsizeiPtrenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
+ffiuintsizeiPtrsizeiPtrenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeiPtrsizeiPtrenumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrubytePtrdoubleIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()
+
+ffiuintsizeiPtrubytePtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
+ffiuintsizeiPtrubytePtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrubytePtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrubytePtrfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+ffiuintsizeiPtrubytePtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
+ffiuintsizeiPtrubytePtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrubytePtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintenumPtrdoubleIOV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
+
+ffienumuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m ()
+ffienumuintenumPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrcharIOuint :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint) -> GLuint -> GLenum -> Ptr GLchar -> IO GLuint
+
+ffiuintenumPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint) -> GLuint -> GLenum -> Ptr GLchar -> m GLuint
+ffiuintenumPtrcharIOuint fp v0 v1 v2 = liftIO (dynuintenumPtrcharIOuint fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrcharIOint :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint) -> GLuint -> GLenum -> Ptr GLchar -> IO GLint
+
+ffiuintenumPtrcharIOint :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint) -> GLuint -> GLenum -> Ptr GLchar -> m GLint
+ffiuintenumPtrcharIOint fp v0 v1 v2 = liftIO (dynuintenumPtrcharIOint fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()
+
+ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> m ()
+ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
+
+ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrubyteIOV :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ()) -> GLuint -> GLenum -> Ptr GLubyte -> IO ()
+
+ffiuintenumPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ()) -> GLuint -> GLenum -> Ptr GLubyte -> m ()
+ffiuintenumPtrubyteIOV fp v0 v1 v2 = liftIO (dynuintenumPtrubyteIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintenumintptrIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptr -> IO ()
+
+ffiuintuintenumintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+ffiuintuintenumintptrIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumintptrIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumPtruint64IOV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64 -> IO ()
+
+ffiuintenumPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ()) -> GLuint -> GLenum -> Ptr GLuint64 -> m ()
+ffiuintenumPtruint64IOV fp v0 v1 v2 = liftIO (dynuintenumPtruint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumenumPtrVPtrVPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ()
+
+ffienumenumenumPtrVPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr () -> Ptr () -> Ptr () -> m ()
+ffienumenumenumPtrVPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumenumPtrVPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrintPtrintIOV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()
+
+ffienumenumPtrintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
+ffienumenumPtrintPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumPtrintPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumIOushort :: FunPtr (GLenum -> IO GLushort) -> GLenum -> IO GLushort
+
+ffienumIOushort :: MonadIO m => FunPtr (GLenum -> IO GLushort) -> GLenum -> m GLushort
+ffienumIOushort fp v0 = liftIO (dynenumIOushort fp v0)
+
+foreign import CALLCONV "dynamic" dynenumIOPtrubyte :: FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> IO (Ptr GLubyte)
+
+ffienumIOPtrubyte :: MonadIO m => FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> m (Ptr GLubyte)
+ffienumIOPtrubyte fp v0 = liftIO (dynenumIOPtrubyte fp v0)
+
+foreign import CALLCONV "dynamic" dynenumuintIOPtrubyte :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte)) -> GLenum -> GLuint -> IO (Ptr GLubyte)
+
+ffienumuintIOPtrubyte :: MonadIO m => FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte)) -> GLenum -> GLuint -> m (Ptr GLubyte)
+ffienumuintIOPtrubyte fp v0 v1 = liftIO (dynenumuintIOPtrubyte fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynsyncenumsizeiPtrsizeiPtrintIOV :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
+
+ffisyncenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+ffisyncenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynsyncenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintenumPtrfloatIOV :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffienumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+ffienumintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumintenumPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintenumPtrintIOV :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+ffienumintenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+ffienumintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumintenumPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintenumPtrfixedIOV :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()
+
+ffienumintenumPtrfixedIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()) -> GLenum -> GLint -> GLenum -> Ptr GLfixed -> m ()
+ffienumintenumPtrfixedIOV fp v0 v1 v2 v3 = liftIO (dynenumintenumPtrfixedIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumPtruintIOV :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> Ptr GLuint -> IO ()
+
+ffienumenumPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLenum -> GLenum -> Ptr GLuint -> m ()
+ffienumenumPtruintIOV fp v0 v1 v2 = liftIO (dynenumenumPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintIOuint64 :: FunPtr (GLuint -> IO GLuint64) -> GLuint -> IO GLuint64
+
+ffiuintIOuint64 :: MonadIO m => FunPtr (GLuint -> IO GLuint64) -> GLuint -> m GLuint64
+ffiuintIOuint64 fp v0 = liftIO (dynuintIOuint64 fp v0)
+
+foreign import CALLCONV "dynamic" dynuintintenumenumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintenumPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffiuintintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
+ffiuintintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumintenumPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffiuintenumintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+ffiuintenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumintenumPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintenumPtrintIOV :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+ffiuintintenumPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
+ffiuintintenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumPtruintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()
+
+ffiuintenumenumPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLuint -> m ()
+ffiuintenumenumPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+ffiuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+ffiuintenumenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintIOuint64 :: FunPtr (GLuint -> GLuint -> IO GLuint64) -> GLuint -> GLuint -> IO GLuint64
+
+ffiuintuintIOuint64 :: MonadIO m => FunPtr (GLuint -> GLuint -> IO GLuint64) -> GLuint -> GLuint -> m GLuint64
+ffiuintuintIOuint64 fp v0 v1 = liftIO (dynuintuintIOuint64 fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynuintuintPtrintIOV :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> Ptr GLint -> IO ()
+
+ffiuintuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ()) -> GLuint -> GLuint -> Ptr GLint -> m ()
+ffiuintuintPtrintIOV fp v0 v1 v2 = liftIO (dynuintuintPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumuintPtrint64IOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()
+
+ffiuintenumuintPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
+ffiuintenumuintPtrint64IOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrint64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintPtrcharIOuint :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint) -> GLuint -> Ptr GLchar -> IO GLuint
+
+ffiuintPtrcharIOuint :: MonadIO m => FunPtr (GLuint -> Ptr GLchar -> IO GLuint) -> GLuint -> Ptr GLchar -> m GLuint
+ffiuintPtrcharIOuint fp v0 v1 = liftIO (dynuintPtrcharIOuint fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintintIOint :: FunPtr (GLuint -> GLint -> IO GLint) -> GLuint -> GLint -> IO GLint
+
+ffiuintintIOint :: MonadIO m => FunPtr (GLuint -> GLint -> IO GLint) -> GLuint -> GLint -> m GLint
+ffiuintintIOint fp v0 v1 = liftIO (dynuintintIOint fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrPtrcharPtruintIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()
+
+ffiuintsizeiPtrPtrcharPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
+ffiuintsizeiPtrPtrcharPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintIOintptr :: FunPtr (GLuint -> GLint -> IO GLintptr) -> GLuint -> GLint -> IO GLintptr
+
+ffiuintintIOintptr :: MonadIO m => FunPtr (GLuint -> GLint -> IO GLintptr) -> GLuint -> GLint -> m GLintptr
+ffiuintintIOintptr fp v0 v1 = liftIO (dynuintintIOintptr fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintintPtrdoubleIOV :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> Ptr GLdouble -> IO ()
+
+ffiuintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> Ptr GLdouble -> m ()
+ffiuintintPtrdoubleIOV fp v0 v1 v2 = liftIO (dynuintintPtrdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintPtrfloatIOV :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> Ptr GLfloat -> IO ()
+
+ffiuintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> Ptr GLfloat -> m ()
+ffiuintintPtrfloatIOV fp v0 v1 v2 = liftIO (dynuintintPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynhandleARBintPtrfloatIOV :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLint -> Ptr GLfloat -> IO ()
+
+ffihandleARBintPtrfloatIOV :: MonadIO m => FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ()) -> GLhandleARB -> GLint -> Ptr GLfloat -> m ()
+ffihandleARBintPtrfloatIOV fp v0 v1 v2 = liftIO (dynhandleARBintPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintPtrint64IOV :: FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> Ptr GLint64 -> IO ()
+
+ffiuintintPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> Ptr GLint64 -> m ()
+ffiuintintPtrint64IOV fp v0 v1 v2 = liftIO (dynuintintPtrint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintPtrint64EXTIOV :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLint64EXT -> IO ()
+
+ffiuintintPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLint64EXT -> m ()
+ffiuintintPtrint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintPtrint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintPtrintIOV :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLint -> Ptr GLint -> IO ()
+
+ffiuintintPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLint -> IO ()) -> GLuint -> GLint -> Ptr GLint -> m ()
+ffiuintintPtrintIOV fp v0 v1 v2 = liftIO (dynuintintPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynhandleARBintPtrintIOV :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ()) -> GLhandleARB -> GLint -> Ptr GLint -> IO ()
+
+ffihandleARBintPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ()) -> GLhandleARB -> GLint -> Ptr GLint -> m ()
+ffihandleARBintPtrintIOV fp v0 v1 v2 = liftIO (dynhandleARBintPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintPtruint64IOV :: FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> Ptr GLuint64 -> IO ()
+
+ffiuintintPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> Ptr GLuint64 -> m ()
+ffiuintintPtruint64IOV fp v0 v1 v2 = liftIO (dynuintintPtruint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintPtruint64EXTIOV :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLuint64EXT -> IO ()
+
+ffiuintintPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> Ptr GLuint64EXT -> m ()
+ffiuintintPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintPtruint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintPtruintIOV :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> Ptr GLuint -> IO ()
+
+ffiuintintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> Ptr GLuint -> m ()
+ffiuintintPtruintIOV fp v0 v1 v2 = liftIO (dynuintintPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintenumPtrint64IOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()
+
+ffiuintuintenumPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
+ffiuintuintenumPtrint64IOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrint64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintenumPtrPtrVIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()
+
+ffiuintuintenumPtrPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+ffiuintuintenumPtrPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrdoubleIOV :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
+
+ffiuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLenum -> Ptr GLdouble -> m ()
+ffiuintenumPtrdoubleIOV fp v0 v1 v2 = liftIO (dynuintenumPtrdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrint64EXTIOV :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLint64EXT -> IO ()
+
+ffiuintenumPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLenum -> Ptr GLint64EXT -> m ()
+ffiuintenumPtrint64EXTIOV fp v0 v1 v2 = liftIO (dynuintenumPtrint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintenumPtrdoubleIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
+
+ffiuintuintenumPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLdouble -> m ()
+ffiuintuintenumPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintenumPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffiuintuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+ffiuintuintenumPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintenumPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLsizei -> Ptr () -> IO ()
+
+ffienumintsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLsizei -> Ptr () -> m ()
+ffienumintsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumintsizeiPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumbooleanenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumbooleanenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumbooleanenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumbooleanenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeiPtrdoubleIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()
+
+ffienumenumsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
+ffienumenumsizeiPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeiPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffienumenumsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
+ffienumenumsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeiPtrintIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+ffienumenumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+ffienumenumsizeiPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrushortIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ()) -> GLenum -> GLsizei -> Ptr GLushort -> IO ()
+
+ffienumsizeiPtrushortIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ()) -> GLenum -> GLsizei -> Ptr GLushort -> m ()
+ffienumsizeiPtrushortIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrushortIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrubyteIOV :: FunPtr (GLsizei -> Ptr GLubyte -> IO ()) -> GLsizei -> Ptr GLubyte -> IO ()
+
+ffisizeiPtrubyteIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLubyte -> IO ()) -> GLsizei -> Ptr GLubyte -> m ()
+ffisizeiPtrubyteIOV fp v0 v1 = liftIO (dynsizeiPtrubyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumenumenumsizeiPtrVsizeiPtrVPtrVIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ()
+
+ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
+ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumenumsizeiPtrVsizeiPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumintenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtrdoubleIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()
+
+ffiuintintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+ffiuintintsizeiPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffiuintintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+ffiuintintsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtrint64IOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()
+
+ffiuintintsizeiPtrint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64 -> m ()
+ffiuintintsizeiPtrint64IOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrint64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtrintIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()
+
+ffiuintintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+ffiuintintsizeiPtrintIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtruint64IOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()
+
+ffiuintintsizeiPtruint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+ffiuintintsizeiPtruint64IOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtruint64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtruintIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffiuintintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+ffiuintintsizeiPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynbyteIOV :: FunPtr (GLbyte -> IO ()) -> GLbyte -> IO ()
+
+ffibyteIOV :: MonadIO m => FunPtr (GLbyte -> IO ()) -> GLbyte -> m ()
+ffibyteIOV fp v0 = liftIO (dynbyteIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynshortIOV :: FunPtr (GLshort -> IO ()) -> GLshort -> IO ()
+
+ffishortIOV :: MonadIO m => FunPtr (GLshort -> IO ()) -> GLshort -> m ()
+ffishortIOV fp v0 = liftIO (dynshortIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynubyteIOV :: FunPtr (GLubyte -> IO ()) -> GLubyte -> IO ()
+
+ffiubyteIOV :: MonadIO m => FunPtr (GLubyte -> IO ()) -> GLubyte -> m ()
+ffiubyteIOV fp v0 = liftIO (dynubyteIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynushortIOV :: FunPtr (GLushort -> IO ()) -> GLushort -> IO ()
+
+ffiushortIOV :: MonadIO m => FunPtr (GLushort -> IO ()) -> GLushort -> m ()
+ffiushortIOV fp v0 = liftIO (dynushortIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumbooleanIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()
+
+ffienumsizeienumbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLboolean -> m ()
+ffienumsizeienumbooleanIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeienumbooleanIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintptrbitfieldIOsync :: FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync) -> GLenum -> GLintptr -> GLbitfield -> IO GLsync
+
+ffienumintptrbitfieldIOsync :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync) -> GLenum -> GLintptr -> GLbitfield -> m GLsync
+ffienumintptrbitfieldIOsync fp v0 v1 v2 = liftIO (dynenumintptrbitfieldIOsync fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumsizeisizeiPtrVIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()
+
+ffienumsizeisizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLsizei -> GLsizei -> Ptr () -> m ()
+ffienumsizeisizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeisizeiPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrcharIOV :: FunPtr (GLsizei -> Ptr GLchar -> IO ()) -> GLsizei -> Ptr GLchar -> IO ()
+
+ffisizeiPtrcharIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLchar -> IO ()) -> GLsizei -> Ptr GLchar -> m ()
+ffisizeiPtrcharIOV fp v0 v1 = liftIO (dynsizeiPtrcharIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrintIOV :: FunPtr (GLsizei -> Ptr GLint -> IO ()) -> GLsizei -> Ptr GLint -> IO ()
+
+ffisizeiPtrintIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> IO ()) -> GLsizei -> Ptr GLint -> m ()
+ffisizeiPtrintIOV fp v0 v1 = liftIO (dynsizeiPtrintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintuintuintfloatIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> GLfloat -> IO ()
+
+ffiuintuintuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> GLfloat -> m ()
+ffiuintuintuintfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrenumintintsizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffiuintsizeiPtrenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffiuintsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrenumintintsizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffienumsizeiPtrenumintintsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffienumsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeiPtrenumintintsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintintIOV :: FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> IO ()
+
+ffiuintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> IO ()) -> GLuint -> GLint -> m ()
+ffiuintintIOV fp v0 v1 = liftIO (dynuintintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+ffiuintintintintintsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+ffiuintintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintintintintintsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumIOboolean :: FunPtr (GLenum -> IO GLboolean) -> GLenum -> IO GLboolean
+
+ffienumIOboolean :: MonadIO m => FunPtr (GLenum -> IO GLboolean) -> GLenum -> m GLboolean
+ffienumIOboolean fp v0 = liftIO (dynenumIOboolean fp v0)
+
+foreign import CALLCONV "dynamic" dynenumuintIOboolean :: FunPtr (GLenum -> GLuint -> IO GLboolean) -> GLenum -> GLuint -> IO GLboolean
+
+ffienumuintIOboolean :: MonadIO m => FunPtr (GLenum -> GLuint -> IO GLboolean) -> GLenum -> GLuint -> m GLboolean
+ffienumuintIOboolean fp v0 v1 = liftIO (dynenumuintIOboolean fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuint64IOboolean :: FunPtr (GLuint64 -> IO GLboolean) -> GLuint64 -> IO GLboolean
+
+ffiuint64IOboolean :: MonadIO m => FunPtr (GLuint64 -> IO GLboolean) -> GLuint64 -> m GLboolean
+ffiuint64IOboolean fp v0 = liftIO (dynuint64IOboolean fp v0)
+
+foreign import CALLCONV "dynamic" dynintPtrcharIOboolean :: FunPtr (GLint -> Ptr GLchar -> IO GLboolean) -> GLint -> Ptr GLchar -> IO GLboolean
+
+ffiintPtrcharIOboolean :: MonadIO m => FunPtr (GLint -> Ptr GLchar -> IO GLboolean) -> GLint -> Ptr GLchar -> m GLboolean
+ffiintPtrcharIOboolean fp v0 v1 = liftIO (dynintPtrcharIOboolean fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintuintfloatfloatIOboolean :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean
+
+ffiuintuintfloatfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLuint -> GLfloat -> GLfloat -> m GLboolean
+ffiuintuintfloatfloatIOboolean fp v0 v1 v2 v3 = liftIO (dynuintuintfloatfloatIOboolean fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatIOboolean :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLfloat -> GLfloat -> IO GLboolean
+
+ffiuintfloatfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean) -> GLuint -> GLfloat -> GLfloat -> m GLboolean
+ffiuintfloatfloatIOboolean fp v0 v1 v2 = liftIO (dynuintfloatfloatIOboolean fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsyncIOboolean :: FunPtr (GLsync -> IO GLboolean) -> GLsync -> IO GLboolean
+
+ffisyncIOboolean :: MonadIO m => FunPtr (GLsync -> IO GLboolean) -> GLsync -> m GLboolean
+ffisyncIOboolean fp v0 = liftIO (dynsyncIOboolean fp v0)
+
+foreign import CALLCONV "dynamic" dynuintenumIOboolean :: FunPtr (GLuint -> GLenum -> IO GLboolean) -> GLuint -> GLenum -> IO GLboolean
+
+ffiuintenumIOboolean :: MonadIO m => FunPtr (GLuint -> GLenum -> IO GLboolean) -> GLuint -> GLenum -> m GLboolean
+ffiuintenumIOboolean fp v0 v1 = liftIO (dynuintenumIOboolean fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtrcharIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()
+
+ffienumuintsizeiPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+ffienumuintsizeiPtrcharIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrcharIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintushortIOV :: FunPtr (GLint -> GLushort -> IO ()) -> GLint -> GLushort -> IO ()
+
+ffiintushortIOV :: MonadIO m => FunPtr (GLint -> GLushort -> IO ()) -> GLint -> GLushort -> m ()
+ffiintushortIOV fp v0 v1 = liftIO (dynintushortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV :: FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+ffiuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintPtrPtrVPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumfloatIOV :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLfloat -> IO ()
+
+ffiuintenumfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLfloat -> m ()
+ffiuintenumfloatIOV fp v0 v1 v2 = liftIO (dynuintenumfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumintIOV :: FunPtr (GLuint -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> IO ()
+
+ffiuintenumintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLint -> m ()
+ffiuintenumintIOV fp v0 v1 v2 = liftIO (dynuintenumintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtrubyteIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()
+
+ffienumuintsizeiPtrubyteIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
+ffienumuintsizeiPtrubyteIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrubyteIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintsizeiIOV :: FunPtr (GLint -> GLsizei -> IO ()) -> GLint -> GLsizei -> IO ()
+
+ffiintsizeiIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> IO ()) -> GLint -> GLsizei -> m ()
+ffiintsizeiIOV fp v0 v1 = liftIO (dynintsizeiIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuint64IOV :: FunPtr (GLuint64 -> IO ()) -> GLuint64 -> IO ()
+
+ffiuint64IOV :: MonadIO m => FunPtr (GLuint64 -> IO ()) -> GLuint64 -> m ()
+ffiuint64IOV fp v0 = liftIO (dynuint64IOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuint64enumIOV :: FunPtr (GLuint64 -> GLenum -> IO ()) -> GLuint64 -> GLenum -> IO ()
+
+ffiuint64enumIOV :: MonadIO m => FunPtr (GLuint64 -> GLenum -> IO ()) -> GLuint64 -> GLenum -> m ()
+ffiuint64enumIOV fp v0 v1 = liftIO (dynuint64enumIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumdoubledoubleintintPtrdoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+ffienumdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+ffienumdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumfloatfloatintintPtrfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+ffienumfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+ffienumfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumfixedfixedintintfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()
+
+ffienumfixedfixedintintfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
+ffienumfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumfloatfloatintintfloatfloatintintPtrfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+ffienumfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+ffienumfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumfixedfixedintintfixedfixedintintfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()
+
+ffienumfixedfixedintintfixedfixedintintfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> m ()
+ffienumfixedfixedintintfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumfixedfixedintintfixedfixedintintfixedIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumenumIOPtrV :: FunPtr (GLenum -> GLenum -> IO (Ptr ())) -> GLenum -> GLenum -> IO (Ptr ())
+
+ffienumenumIOPtrV :: MonadIO m => FunPtr (GLenum -> GLenum -> IO (Ptr ())) -> GLenum -> GLenum -> m (Ptr ())
+ffienumenumIOPtrV fp v0 v1 = liftIO (dynenumenumIOPtrV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumintptrsizeiptrbitfieldIOPtrV :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())
+
+ffienumintptrsizeiptrbitfieldIOPtrV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+ffienumintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3 = liftIO (dynenumintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintenumsizeisizeiintintbooleanPtrVIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ()
+
+ffienumuintenumsizeisizeiintintbooleanPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ()) -> GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> m ()
+ffienumuintenumsizeisizeiintintbooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumuintenumsizeisizeiintintbooleanPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynintdoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> IO ()
+
+ffiintdoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> m ()
+ffiintdoubledoubleIOV fp v0 v1 v2 = liftIO (dynintdoubledoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> IO ()
+
+ffiintfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> m ()
+ffiintfloatfloatIOV fp v0 v1 v2 = liftIO (dynintfloatfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintfixedfixedIOV :: FunPtr (GLint -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> IO ()
+
+ffiintfixedfixedIOV :: MonadIO m => FunPtr (GLint -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> m ()
+ffiintfixedfixedIOV fp v0 v1 v2 = liftIO (dynintfixedfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintdoubledoubleintdoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()
+
+ffiintdoubledoubleintdoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
+ffiintdoubledoubleintdoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynintdoubledoubleintdoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynintfloatfloatintfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()
+
+ffiintfloatfloatintfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
+ffiintfloatfloatintfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynintfloatfloatintfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynintfixedfixedfixedfixedIOV :: FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+ffiintfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+ffiintfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 = liftIO (dynintfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumIOPtrV :: FunPtr (GLuint -> GLenum -> IO (Ptr ())) -> GLuint -> GLenum -> IO (Ptr ())
+
+ffiuintenumIOPtrV :: MonadIO m => FunPtr (GLuint -> GLenum -> IO (Ptr ())) -> GLuint -> GLenum -> m (Ptr ())
+ffiuintenumIOPtrV fp v0 v1 = liftIO (dynuintenumIOPtrV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintintptrsizeiptrbitfieldIOPtrV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())
+
+ffiuintintptrsizeiptrbitfieldIOPtrV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ())) -> GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+ffiuintintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3 = liftIO (dynuintintptrsizeiptrbitfieldIOPtrV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintIOPtrV :: FunPtr (GLuint -> IO (Ptr ())) -> GLuint -> IO (Ptr ())
+
+ffiuintIOPtrV :: MonadIO m => FunPtr (GLuint -> IO (Ptr ())) -> GLuint -> m (Ptr ())
+ffiuintIOPtrV fp v0 = liftIO (dynuintIOPtrV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintintbitfieldPtrintPtrenumIOPtrV :: FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ())) -> GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ())
+
+ffiuintintbitfieldPtrintPtrenumIOPtrV :: MonadIO m => FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr ())) -> GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> m (Ptr ())
+ffiuintintbitfieldPtrintPtrenumIOPtrV fp v0 v1 v2 v3 v4 = liftIO (dynuintintbitfieldPtrintPtrenumIOPtrV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+ffiuintuintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+ffiuintuintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintuintfloatfloatintintPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+ffiuintuintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+ffiuintuintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()) -> GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+ffiuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintdoubledoubleintintdoubledoubleintintPtrdoubleIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynuintuintfloatfloatintintfloatfloatintintPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+ffiuintuintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuintfloatfloatintintfloatfloatintintPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynenumdoubledoubledoubledoubledoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffienumdoubledoubledoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffienumdoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumdoubledoubledoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynintPtrubyteIOV :: FunPtr (GLint -> Ptr GLubyte -> IO ()) -> GLint -> Ptr GLubyte -> IO ()
+
+ffiintPtrubyteIOV :: MonadIO m => FunPtr (GLint -> Ptr GLubyte -> IO ()) -> GLint -> Ptr GLubyte -> m ()
+ffiintPtrubyteIOV fp v0 v1 = liftIO (dynintPtrubyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtruintIOV :: FunPtr (GLint -> Ptr GLuint -> IO ()) -> GLint -> Ptr GLuint -> IO ()
+
+ffiintPtruintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLuint -> IO ()) -> GLint -> Ptr GLuint -> m ()
+ffiintPtruintIOV fp v0 v1 = liftIO (dynintPtruintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtrushortIOV :: FunPtr (GLint -> Ptr GLushort -> IO ()) -> GLint -> Ptr GLushort -> IO ()
+
+ffiintPtrushortIOV :: MonadIO m => FunPtr (GLint -> Ptr GLushort -> IO ()) -> GLint -> Ptr GLushort -> m ()
+ffiintPtrushortIOV fp v0 v1 = liftIO (dynintPtrushortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumdoubledoubledoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffienumdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffienumdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumfloatfloatfloatfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffienumfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffienumfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumdoubledoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffienumdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffienumdoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumdoubledoubledoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumfloatfloatfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffienumfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffienumfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumfloatfloatfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumbooleanIOV :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLboolean -> IO ()
+
+ffienumenumbooleanIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLboolean -> IO ()) -> GLenum -> GLenum -> GLboolean -> m ()
+ffienumenumbooleanIOV fp v0 v1 v2 = liftIO (dynenumenumbooleanIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumPtrintPtrsizeisizeiIOV :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()
+
+ffienumPtrintPtrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+ffienumPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumPtrVsizeisizeiIOV :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()
+
+ffienumPtrVsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+ffienumPtrVsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumPtrVsizeisizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumPtrVsizeisizeisizeiintIOV :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()
+
+ffienumPtrVsizeisizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
+ffienumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumPtrVsizeisizeiintIOV :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()
+
+ffienumPtrVsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
+ffienumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintptrintptrsizeisizeiIOV :: FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()
+
+ffienumintptrintptrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
+ffienumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumPtrsizeienumPtrPtrVsizeiIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()
+
+ffienumPtrsizeienumPtrPtrVsizeiIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
+ffienumPtrsizeienumPtrPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumPtrsizeienumPtrPtrVsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumPtrsizeienumPtrPtrVsizeiPtrintIOV :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()
+
+ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
+ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrsizeienumPtrPtrVsizeiPtrintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrVsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()
+
+ffienumenumPtrVsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+ffienumenumPtrVsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumPtrVsizeisizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrVsizeisizeisizeiintIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()
+
+ffienumenumPtrVsizeisizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLsizei -> GLint -> m ()
+ffienumenumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumPtrVsizeisizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumenumPtrVsizeisizeiintIOV :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()
+
+ffienumenumPtrVsizeisizeiintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> IO ()) -> GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> GLint -> m ()
+ffienumenumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumPtrVsizeisizeiintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumintptrintptrsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()
+
+ffienumenumintptrintptrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizei -> GLsizei -> m ()
+ffienumenumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumenumintptrintptrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumuintuintPtrintPtrsizeisizeiIOV :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()
+
+ffienumuintuintPtrintPtrsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()) -> GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+ffienumuintuintPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintuintPtrintPtrsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynPtrenumPtrintPtrsizeisizeiintIOV :: FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()
+
+ffiPtrenumPtrintPtrsizeisizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> m ()
+ffiPtrenumPtrintPtrsizeisizeiintIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtrenumPtrintPtrsizeisizeiintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynPtrenumPtrsizeienumPtrPtrVsizeiintIOV :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()
+
+ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV :: MonadIO m => FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> IO ()) -> Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GLint -> m ()
+ffiPtrenumPtrsizeienumPtrPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynPtrenumPtrsizeienumPtrPtrVsizeiintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumbyteIOV :: FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> IO ()
+
+ffienumbyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> IO ()) -> GLenum -> GLbyte -> m ()
+ffienumbyteIOV fp v0 v1 = liftIO (dynenumbyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumPtrbyteIOV :: FunPtr (GLenum -> Ptr GLbyte -> IO ()) -> GLenum -> Ptr GLbyte -> IO ()
+
+ffienumPtrbyteIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLbyte -> IO ()) -> GLenum -> Ptr GLbyte -> m ()
+ffienumPtrbyteIOV fp v0 v1 = liftIO (dynenumPtrbyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumdoubleIOV :: FunPtr (GLenum -> GLdouble -> IO ()) -> GLenum -> GLdouble -> IO ()
+
+ffienumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> IO ()) -> GLenum -> GLdouble -> m ()
+ffienumdoubleIOV fp v0 v1 = liftIO (dynenumdoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> IO ()
+
+ffienumhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> m ()
+ffienumhalfNVIOV fp v0 v1 = liftIO (dynenumhalfNVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumPtrhalfNVIOV :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ()) -> GLenum -> Ptr GLhalfNV -> IO ()
+
+ffienumPtrhalfNVIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLhalfNV -> IO ()) -> GLenum -> Ptr GLhalfNV -> m ()
+ffienumPtrhalfNVIOV fp v0 v1 = liftIO (dynenumPtrhalfNVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumshortIOV :: FunPtr (GLenum -> GLshort -> IO ()) -> GLenum -> GLshort -> IO ()
+
+ffienumshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> IO ()) -> GLenum -> GLshort -> m ()
+ffienumshortIOV fp v0 v1 = liftIO (dynenumshortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumPtrshortIOV :: FunPtr (GLenum -> Ptr GLshort -> IO ()) -> GLenum -> Ptr GLshort -> IO ()
+
+ffienumPtrshortIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLshort -> IO ()) -> GLenum -> Ptr GLshort -> m ()
+ffienumPtrshortIOV fp v0 v1 = liftIO (dynenumPtrshortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumbytebyteIOV :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> IO ()
+
+ffienumbytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> m ()
+ffienumbytebyteIOV fp v0 v1 v2 = liftIO (dynenumbytebyteIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumdoubledoubleIOV :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> IO ()
+
+ffienumdoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLdouble -> GLdouble -> m ()
+ffienumdoubledoubleIOV fp v0 v1 v2 = liftIO (dynenumdoubledoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumfloatfloatIOV :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> IO ()
+
+ffienumfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLfloat -> GLfloat -> m ()
+ffienumfloatfloatIOV fp v0 v1 v2 = liftIO (dynenumfloatfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumhalfNVhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffienumhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> m ()
+ffienumhalfNVhalfNVIOV fp v0 v1 v2 = liftIO (dynenumhalfNVhalfNVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumshortshortIOV :: FunPtr (GLenum -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> IO ()
+
+ffienumshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> m ()
+ffienumshortshortIOV fp v0 v1 v2 = liftIO (dynenumshortshortIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumfixedfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> IO ()
+
+ffienumfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> m ()
+ffienumfixedfixedIOV fp v0 v1 v2 = liftIO (dynenumfixedfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumbytebytebyteIOV :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()
+
+ffienumbytebytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> m ()
+ffienumbytebytebyteIOV fp v0 v1 v2 v3 = liftIO (dynenumbytebytebyteIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumhalfNVhalfNVhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffienumhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+ffienumhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 = liftIO (dynenumhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumintintintIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> IO ()
+
+ffienumintintintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> m ()
+ffienumintintintIOV fp v0 v1 v2 v3 = liftIO (dynenumintintintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumshortshortshortIOV :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> IO ()
+
+ffienumshortshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> m ()
+ffienumshortshortshortIOV fp v0 v1 v2 v3 = liftIO (dynenumshortshortshortIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumfixedfixedfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+ffienumfixedfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> m ()
+ffienumfixedfixedfixedIOV fp v0 v1 v2 v3 = liftIO (dynenumfixedfixedfixedIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumbytebytebytebyteIOV :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()
+
+ffienumbytebytebytebyteIOV :: MonadIO m => FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()) -> GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+ffienumbytebytebytebyteIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumbytebytebytebyteIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumhalfNVhalfNVhalfNVhalfNVIOV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffienumhalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+ffienumhalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumhalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumshortshortshortshortIOV :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+ffienumshortshortshortshortIOV :: MonadIO m => FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+ffienumshortshortshortshortIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumshortshortshortshortIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumfixedfixedfixedfixedIOV :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+ffienumfixedfixedfixedfixedIOV :: MonadIO m => FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()) -> GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> m ()
+ffienumfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumfixedfixedfixedfixedIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumintenumsizeiPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumenumfloatIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLfloat -> IO ()
+
+ffienumenumenumfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLenum -> GLenum -> GLenum -> GLfloat -> m ()
+ffienumenumenumfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumenumintIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLint -> IO ()
+
+ffienumenumenumintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> GLint -> m ()
+ffienumenumenumintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumenumdoubleIOV :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> GLdouble -> IO ()
+
+ffienumenumenumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLenum -> GLdouble -> m ()
+ffienumenumenumdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumintintsizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumenumintintsizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumenumintintsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynenumenumintintsizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumenumintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumenumintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynenumenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynuintsizeiptrPtrVenumIOV :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ()
+
+ffiuintsizeiptrPtrVenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+ffiuintsizeiptrPtrVenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiptrPtrVenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintptrsizeiptrbooleanIOV :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()
+
+ffiuintintptrsizeiptrbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()) -> GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> m ()
+ffiuintintptrsizeiptrbooleanIOV fp v0 v1 v2 v3 = liftIO (dynuintintptrsizeiptrbooleanIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiptrPtrVbitfieldIOV :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()
+
+ffiuintsizeiptrPtrVbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ()) -> GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+ffiuintsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiptrPtrVbitfieldIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumuintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()
+
+ffiuintenumenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> m ()
+ffiuintenumenumuintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffiuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+ffiuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintuintPtrfloatIOV :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
+
+ffiuintuintuintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLuint -> GLuint -> Ptr GLfloat -> m ()
+ffiuintuintuintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintuintuintPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumuintintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> IO ()
+
+ffiuintenumuintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> m ()
+ffiuintenumuintintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumuintintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
+
+ffiuintenumenumuintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+ffiuintenumenumuintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumuintintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumenumuintintintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+ffiuintenumenumuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+ffiuintenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumenumuintintintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumuintintenumIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()
+
+ffiuintenumuintintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLenum -> m ()
+ffiuintenumuintintenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintintenumIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumuintintintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+ffiuintenumuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
+ffiuintenumuintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintintintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumuintdoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiuintenumuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiuintenumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumuintfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintenumuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintenumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumuintintintintintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffiuintenumuintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+ffiuintenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumuintuintuintuintuintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintenumuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintenumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrfloatIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffiuintenumuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+ffiuintenumuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtrintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+ffiuintenumuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
+ffiuintenumuintsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintsizeiPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumuintsizeiPtruintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffiuintenumuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+ffiuintenumuintsizeiPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintsizeiPtruintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumenumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+ffiuintenumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
+ffiuintenumsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintenumsizeisizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+ffiuintsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+ffiuintsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintsizeisizeienumsizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+ffiuintsizeisizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+ffiuintsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumintPtrcharintPtrcharIOV :: FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()) -> GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()
+
+ffienumintPtrcharintPtrcharIOV :: MonadIO m => FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()) -> GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> m ()
+ffienumintPtrcharintPtrcharIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumintPtrcharintPtrcharIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrVenumIOuint :: FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint) -> GLsizei -> Ptr () -> GLenum -> IO GLuint
+
+ffisizeiPtrVenumIOuint :: MonadIO m => FunPtr (GLsizei -> Ptr () -> GLenum -> IO GLuint) -> GLsizei -> Ptr () -> GLenum -> m GLuint
+ffisizeiPtrVenumIOuint fp v0 v1 v2 = liftIO (dynsizeiPtrVenumIOuint fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynPtrVsizeiPtrcharIOV :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLchar -> IO ()
+
+ffiPtrVsizeiPtrcharIOV :: MonadIO m => FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ()) -> Ptr () -> GLsizei -> Ptr GLchar -> m ()
+ffiPtrVsizeiPtrcharIOV fp v0 v1 v2 = liftIO (dynPtrVsizeiPtrcharIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumuintenumIOenum :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum) -> GLenum -> GLuint -> GLenum -> IO GLenum
+
+ffienumuintenumIOenum :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum) -> GLenum -> GLuint -> GLenum -> m GLenum
+ffienumuintenumIOenum fp v0 v1 v2 = liftIO (dynenumuintenumIOenum fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintenumIOV :: FunPtr (GLuint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> IO ()
+
+ffiuintuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> m ()
+ffiuintuintenumIOV fp v0 v1 v2 = liftIO (dynuintuintenumIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrubytesizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()
+
+ffiuintsizeiPtrubytesizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
+ffiuintsizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintsizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()
+
+ffiuintsizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+ffiuintsizeienumPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeienumPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrVbitfielduintsizeiuintfloatIOenum :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum
+
+ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
+ffiuintenumPtrVbitfielduintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumPtrVbitfielduintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumPtrVbitfielduintfloatPtruintIOenum :: FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum
+
+ffienumPtrVbitfielduintfloatPtruintIOenum :: MonadIO m => FunPtr (GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum) -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> m GLenum
+ffienumPtrVbitfielduintfloatPtruintIOenum fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumPtrVbitfielduintfloatPtruintIOenum fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrVbitfielduintsizeienumuintfloatIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()
+
+ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> m ()
+ffiuintenumPtrVbitfielduintsizeienumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumPtrVbitfielduintsizeienumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ()
+
+ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLbitfield -> GLsizei -> GLenum -> Ptr () -> GLenum -> GLuint -> GLfloat -> m ()
+ffiuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumPtrVbitfieldsizeienumPtrVenumuintfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum
+
+ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum) -> GLuint -> GLenum -> GLsizeiptr -> Ptr () -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> m GLenum
+ffiuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumsizeiptrPtrVsizeiuintsizeiuintfloatIOenum fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumintuintIOV :: FunPtr (GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLint -> GLuint -> IO ()
+
+ffienumintuintIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLint -> GLuint -> m ()
+ffienumintuintIOV fp v0 v1 v2 = liftIO (dynenumintuintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeiPtrVIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintenumsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumsizeiPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeisizeisizeiPtrubytesizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()
+
+ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr () -> m ()
+ffiuintsizeisizeisizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintsizeisizeisizeiPtrubytesizeienumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintsizeisizeienumPtrVIOV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ()
+
+ffiuintsizeisizeienumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr () -> m ()
+ffiuintsizeisizeienumPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintsizeisizeienumPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumintPtrfloatIOV :: FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+ffienumenumintPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr GLfloat -> m ()
+ffienumenumintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynenumenumintPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean) -> GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean
+
+ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean) -> GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m GLboolean
+ffiuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintsizeisizeifloatPtrfloatPtrfloatPtrfloatPtrfloatIOboolean fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynPtrintIOint :: FunPtr (Ptr GLint -> IO GLint) -> Ptr GLint -> IO GLint
+
+ffiPtrintIOint :: MonadIO m => FunPtr (Ptr GLint -> IO GLint) -> Ptr GLint -> m GLint
+ffiPtrintIOint fp v0 = liftIO (dynPtrintIOint fp v0)
+
+foreign import CALLCONV "dynamic" dynuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()
+
+ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
+ffiuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynuintuint64EXTuintuintenumenumuintenumuintenumuintenumuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
+
+foreign import CALLCONV "dynamic" dynuintuint64EXTuintuintenumenumuintuintenumuintuintIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()
+
+ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> m ()
+ffiuintuint64EXTuintuintenumenumuintuintenumuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintuint64EXTuintuintenumenumuintuintenumuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynsizeiPtruintPtrfloatIOV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()
+
+ffisizeiPtruintPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
+ffisizeiPtruintPtrfloatIOV fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsizeiPtruintPtrclampfIOV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()
+
+ffisizeiPtruintPtrclampfIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLclampf -> m ()
+ffisizeiPtruintPtrclampfIOV fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrclampfIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsizeiPtruintPtrfixedIOV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()
+
+ffisizeiPtruintPtrfixedIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()) -> GLsizei -> Ptr GLuint -> Ptr GLfixed -> m ()
+ffisizeiPtruintPtrfixedIOV fp v0 v1 v2 = liftIO (dynsizeiPtruintPtrfixedIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrVsizeiIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()
+
+ffiuintenumPtrVsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+ffiuintenumPtrVsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintenumPtrVsizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrVintIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> GLint -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLint -> IO ()
+
+ffiuintenumPtrVintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> GLint -> IO ()) -> GLuint -> GLenum -> Ptr () -> GLint -> m ()
+ffiuintenumPtrVintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumPtrVintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintuintsizeiPtrintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+ffienumuintuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> m ()
+ffienumuintuintsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintsizeiPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintuintsizeiPtruintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffienumuintuintsizeiPtruintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+ffienumuintuintsizeiPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintsizeiPtruintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintuintsizeiPtrfloatIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffienumuintuintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> m ()
+ffienumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintsizeiPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintdoubledoubledoubledoubleIOV :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffienumuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffienumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumuintfloatfloatfloatfloatIOV :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffienumuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffienumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumuintintintintintIOV :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffienumuintintintintintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+ffienumuintintintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumuintintintintintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtrintIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+ffienumuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> m ()
+ffienumuintsizeiPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrubytedoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrubytedoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrubytefloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintsizeiPtrubytefloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintsizeiPtrubytefloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeiPtrubytefloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumuintsizeiPtrdoubleIOV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()
+
+ffienumuintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m ()
+ffienumuintsizeiPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynenumuintsizeiPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintenumintPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+ffiuintintenumintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> m ()
+ffiuintintenumintPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumintPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeiPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffienumenumsizeiPtrVIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeiPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintdoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> IO ()
+
+ffiuintintdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> m ()
+ffiuintintdoubleIOV fp v0 v1 v2 = liftIO (dynuintintdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> IO ()
+
+ffiuintintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> m ()
+ffiuintintfloatIOV fp v0 v1 v2 = liftIO (dynuintintfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> IO ()
+
+ffiuintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> m ()
+ffiuintintintIOV fp v0 v1 v2 = liftIO (dynuintintintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintint64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> IO ()
+
+ffiuintintint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> m ()
+ffiuintintint64IOV fp v0 v1 v2 = liftIO (dynuintintint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> IO ()
+
+ffiuintintint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> m ()
+ffiuintintint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtrint64EXTIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()
+
+ffiuintintsizeiPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+ffiuintintsizeiPtrint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtrint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> IO ()
+
+ffiuintintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> m ()
+ffiuintintuintIOV fp v0 v1 v2 = liftIO (dynuintintuintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintuint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> IO ()
+
+ffiuintintuint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> m ()
+ffiuintintuint64IOV fp v0 v1 v2 = liftIO (dynuintintuint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> IO ()
+
+ffiuintintuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> m ()
+ffiuintintuint64EXTIOV fp v0 v1 v2 = liftIO (dynuintintuint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintsizeiPtruint64EXTIOV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()
+
+ffiuintintsizeiPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+ffiuintintsizeiPtruint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintsizeiPtruint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintdoubledoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> IO ()
+
+ffiuintintdoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> m ()
+ffiuintintdoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintintdoubledoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintfloatfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> IO ()
+
+ffiuintintfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+ffiuintintfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintintfloatfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> IO ()
+
+ffiuintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> m ()
+ffiuintintintintIOV fp v0 v1 v2 v3 = liftIO (dynuintintintintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintint64int64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> IO ()
+
+ffiuintintint64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> m ()
+ffiuintintint64int64IOV fp v0 v1 v2 v3 = liftIO (dynuintintint64int64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiuintintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
+ffiuintintint64EXTint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintint64EXTint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintuintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> IO ()
+
+ffiuintintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> m ()
+ffiuintintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynuintintuintuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintuint64uint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()
+
+ffiuintintuint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> m ()
+ffiuintintuint64uint64IOV fp v0 v1 v2 v3 = liftIO (dynuintintuint64uint64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiuintintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiuintintuint64EXTuint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintintuint64EXTuint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintdoubledoubledoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiuintintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiuintintdoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintdoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintfloatfloatfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintintfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffiuintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+ffiuintintintintintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintintintintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintint64int64int64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+ffiuintintint64int64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
+ffiuintintint64int64int64IOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintint64int64int64IOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiuintintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+ffiuintintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintuintuintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintuintuintuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintuint64uint64uint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+ffiuintintuint64uint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+ffiuintintuint64uint64uint64IOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintuint64uint64uint64IOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiuintintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiuintintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintdoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiuintintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiuintintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintintintintintIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+ffiuintintintintintintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+ffiuintintintintintintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintintintintintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintint64int64int64int64IOV :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+ffiuintintint64int64int64int64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
+ffiuintintint64int64int64int64IOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintint64int64int64int64IOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintint64EXTint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiuintintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+ffiuintintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintuintuintuintuintIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintuint64uint64uint64uint64IOV :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+ffiuintintuint64uint64uint64uint64IOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+ffiuintintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintintsizeibooleanPtrdoubleIOV :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()
+
+ffiuintintsizeibooleanPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+ffiuintintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintsizeibooleanPtrfloatIOV :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()
+
+ffiuintintsizeibooleanPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+ffiuintintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynPtrfixedPtrintIObitfield :: FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield) -> Ptr GLfixed -> Ptr GLint -> IO GLbitfield
+
+ffiPtrfixedPtrintIObitfield :: MonadIO m => FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield) -> Ptr GLfixed -> Ptr GLint -> m GLbitfield
+ffiPtrfixedPtrintIObitfield fp v0 v1 = liftIO (dynPtrfixedPtrintIObitfield fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumuintenumuintIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()
+
+ffienumuintenumuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ()) -> GLenum -> GLuint -> GLenum -> GLuint -> m ()
+ffienumuintenumuintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynshortshortIOV :: FunPtr (GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> IO ()
+
+ffishortshortIOV :: MonadIO m => FunPtr (GLshort -> GLshort -> IO ()) -> GLshort -> GLshort -> m ()
+ffishortshortIOV fp v0 v1 = liftIO (dynshortshortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintbooleanIOV :: FunPtr (GLuint -> GLboolean -> IO ()) -> GLuint -> GLboolean -> IO ()
+
+ffiuintbooleanIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> IO ()) -> GLuint -> GLboolean -> m ()
+ffiuintbooleanIOV fp v0 v1 = liftIO (dynuintbooleanIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintintsizeisizeienumenumPtrVIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffiintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynintintsizeisizeienumenumsizeiPtrVIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiintintsizeisizeienumenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiintintsizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynintintsizeisizeienumenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynPtrdoublePtrdoubleIOV :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ()) -> Ptr GLdouble -> Ptr GLdouble -> IO ()
+
+ffiPtrdoublePtrdoubleIOV :: MonadIO m => FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ()) -> Ptr GLdouble -> Ptr GLdouble -> m ()
+ffiPtrdoublePtrdoubleIOV fp v0 v1 = liftIO (dynPtrdoublePtrdoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynPtrintPtrintIOV :: FunPtr (Ptr GLint -> Ptr GLint -> IO ()) -> Ptr GLint -> Ptr GLint -> IO ()
+
+ffiPtrintPtrintIOV :: MonadIO m => FunPtr (Ptr GLint -> Ptr GLint -> IO ()) -> Ptr GLint -> Ptr GLint -> m ()
+ffiPtrintPtrintIOV fp v0 v1 = liftIO (dynPtrintPtrintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynPtrshortPtrshortIOV :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ()) -> Ptr GLshort -> Ptr GLshort -> IO ()
+
+ffiPtrshortPtrshortIOV :: MonadIO m => FunPtr (Ptr GLshort -> Ptr GLshort -> IO ()) -> Ptr GLshort -> Ptr GLshort -> m ()
+ffiPtrshortPtrshortIOV fp v0 v1 = liftIO (dynPtrshortPtrshortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynPtrfixedPtrfixedIOV :: FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ()) -> Ptr GLfixed -> Ptr GLfixed -> IO ()
+
+ffiPtrfixedPtrfixedIOV :: MonadIO m => FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ()) -> Ptr GLfixed -> Ptr GLfixed -> m ()
+ffiPtrfixedPtrfixedIOV fp v0 v1 = liftIO (dynPtrfixedPtrfixedIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumIOint :: FunPtr (GLenum -> IO GLint) -> GLenum -> IO GLint
+
+ffienumIOint :: MonadIO m => FunPtr (GLenum -> IO GLint) -> GLenum -> m GLint
+ffienumIOint fp v0 = liftIO (dynenumIOint fp v0)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeisizeiIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+ffienumenumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+ffienumenumsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumenumsizeisizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+ffienumsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+ffienumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumsizeisizeienumsizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+ffienumsizeisizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+ffienumsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeisizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrPtrVIOV :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()
+
+ffienumsizeiPtrPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr (Ptr ()) -> IO ()) -> GLenum -> GLsizei -> Ptr (Ptr ()) -> m ()
+ffienumsizeiPtrPtrVIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynPtruintPtrfloatPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+ffiPtruintPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> m ()
+ffiPtruintPtrfloatPtrfloatIOV fp v0 v1 v2 = liftIO (dynPtruintPtrfloatPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynPtruintPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+ffiPtruintPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+ffiPtruintPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynPtruintPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintubyteubyteubyteubytefloatfloatfloatIOV :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynPtruintPtrubytePtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+ffiPtruintPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> m ()
+ffiPtruintPtrubytePtrfloatIOV fp v0 v1 v2 = liftIO (dynPtruintPtrubytePtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynuintfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
+
+foreign import CALLCONV "dynamic" dynPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+ffiPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtruintPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintfloatfloatfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynPtruintPtrfloatIOV :: FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> IO ()
+
+ffiPtruintPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ()) -> Ptr GLuint -> Ptr GLfloat -> m ()
+ffiPtruintPtrfloatIOV fp v0 v1 = liftIO (dynPtruintPtrfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynfloatbooleanIOV :: FunPtr (GLfloat -> GLboolean -> IO ()) -> GLfloat -> GLboolean -> IO ()
+
+ffifloatbooleanIOV :: MonadIO m => FunPtr (GLfloat -> GLboolean -> IO ()) -> GLfloat -> GLboolean -> m ()
+ffifloatbooleanIOV fp v0 v1 = liftIO (dynfloatbooleanIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynclampxbooleanIOV :: FunPtr (GLclampx -> GLboolean -> IO ()) -> GLclampx -> GLboolean -> IO ()
+
+fficlampxbooleanIOV :: MonadIO m => FunPtr (GLclampx -> GLboolean -> IO ()) -> GLclampx -> GLboolean -> m ()
+fficlampxbooleanIOV fp v0 v1 = liftIO (dynclampxbooleanIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynclampfbooleanIOV :: FunPtr (GLclampf -> GLboolean -> IO ()) -> GLclampf -> GLboolean -> IO ()
+
+fficlampfbooleanIOV :: MonadIO m => FunPtr (GLclampf -> GLboolean -> IO ()) -> GLclampf -> GLboolean -> m ()
+fficlampfbooleanIOV fp v0 v1 = liftIO (dynclampfbooleanIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintbitfieldIOV :: FunPtr (GLuint -> GLbitfield -> IO ()) -> GLuint -> GLbitfield -> IO ()
+
+ffiuintbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLbitfield -> IO ()) -> GLuint -> GLbitfield -> m ()
+ffiuintbitfieldIOV fp v0 v1 = liftIO (dynuintbitfieldIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintintsizeisizeiIOV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffiintintsizeisizeiIOV :: MonadIO m => FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffiintintsizeisizeiIOV fp v0 v1 v2 v3 = liftIO (dynintintsizeisizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrintIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+ffiuintsizeiPtrintIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> m ()
+ffiuintsizeiPtrintIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintintintsizeisizeiIOV :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+ffiuintintintsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+ffiuintintintsizeisizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintintsizeisizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintPtrintIOV :: FunPtr (GLuint -> Ptr GLint -> IO ()) -> GLuint -> Ptr GLint -> IO ()
+
+ffiuintPtrintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint -> IO ()) -> GLuint -> Ptr GLint -> m ()
+ffiuintPtrintIOV fp v0 v1 = liftIO (dynuintPtrintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintbooleanuintintPtruintIOV :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()
+
+ffiuintbooleanuintintPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()) -> GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
+ffiuintbooleanuintintPtruintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintbooleanuintintPtruintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeisizeienumenumPtrVPtrVIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()
+
+ffienumenumsizeisizeienumenumPtrVPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> Ptr () -> m ()
+ffienumenumsizeisizeienumenumPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumenumsizeisizeienumenumPtrVPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumPtrVIOV :: FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> Ptr () -> m ()
+ffiuintenumPtrVIOV fp v0 v1 v2 = liftIO (dynuintenumPtrVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsizeiPtruintenumPtrVsizeiIOV :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()
+
+ffisizeiPtruintenumPtrVsizeiIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ()) -> GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+ffisizeiPtruintenumPtrVsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynsizeiPtruintenumPtrVsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynenumuintuintuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintuintuintuintIOV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffienumuintuintuintuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffienumuintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintuintuintuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynhandleARBsizeiPtrPtrcharARBPtrintIOV :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()
+
+ffihandleARBsizeiPtrPtrcharARBPtrintIOV :: MonadIO m => FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()) -> GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> m ()
+ffihandleARBsizeiPtrPtrcharARBPtrintIOV fp v0 v1 v2 v3 = liftIO (dynhandleARBsizeiPtrPtrcharARBPtrintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintuintuintbitfieldIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()
+
+ffiuintuintuintuintbitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> m ()
+ffiuintuintuintuintbitfieldIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintuintbitfieldIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynsizeiuintIOV :: FunPtr (GLsizei -> GLuint -> IO ()) -> GLsizei -> GLuint -> IO ()
+
+ffisizeiuintIOV :: MonadIO m => FunPtr (GLsizei -> GLuint -> IO ()) -> GLsizei -> GLuint -> m ()
+ffisizeiuintIOV fp v0 v1 = liftIO (dynsizeiuintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrVuintenumuintenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffisizeienumPtrVuintenumuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+ffisizeienumPtrVuintenumuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynsizeienumPtrVuintenumuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumuintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> IO ()
+
+ffiuintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> m ()
+ffiuintenumuintIOV fp v0 v1 v2 = liftIO (dynuintenumuintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumenumintuintIOV :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLenum -> GLint -> GLuint -> IO ()
+
+ffienumenumintuintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ()) -> GLenum -> GLenum -> GLint -> GLuint -> m ()
+ffienumenumintuintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumintuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumenumenumIOV :: FunPtr (GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> IO ()
+
+ffienumenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> IO ()) -> GLenum -> GLenum -> GLenum -> m ()
+ffienumenumenumIOV fp v0 v1 v2 = liftIO (dynenumenumenumIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrVuintintuintenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+ffisizeienumPtrVuintintuintenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> m ()
+ffisizeienumPtrVuintintuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynsizeienumPtrVuintintuintenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrVuintenumuintenumenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+ffisizeienumPtrVuintenumuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynsizeienumPtrVuintenumuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumuintenumIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> IO ()
+
+ffiuintenumuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> m ()
+ffiuintenumuintenumIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynsizeienumPtrVuintintuintenumenumPtrfloatIOV :: FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+ffisizeienumPtrVuintintuintenumenumPtrfloatIOV :: MonadIO m => FunPtr (GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()) -> GLsizei -> GLenum -> Ptr () -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> m ()
+ffisizeienumPtrVuintintuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynsizeienumPtrVuintintuintenumenumPtrfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintintuintenumIOV :: FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLint -> GLuint -> GLenum -> IO ()
+
+ffiuintintuintenumIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ()) -> GLuint -> GLint -> GLuint -> GLenum -> m ()
+ffiuintintuintenumIOV fp v0 v1 v2 v3 = liftIO (dynuintintuintenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintenumenumenumenumIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+ffiuintuintenumenumenumenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()) -> GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+ffiuintuintenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintenumenumenumenumIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumuintintptrsizeiptrIOV :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+ffienumenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+ffienumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynbytebyteIOV :: FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> IO ()
+
+ffibytebyteIOV :: MonadIO m => FunPtr (GLbyte -> GLbyte -> IO ()) -> GLbyte -> GLbyte -> m ()
+ffibytebyteIOV fp v0 v1 = liftIO (dynbytebyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynPtrfloatPtrfloatPtrfloatPtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> m ()
+ffiPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynPtrfloatPtrfloatPtrfloatPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynfloatfloatubyteubyteubyteubytefloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynfloatfloatubyteubyteubyteubytefloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynPtrfloatPtrubytePtrfloatIOV :: FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+ffiPtrfloatPtrubytePtrfloatIOV :: MonadIO m => FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()) -> Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> m ()
+ffiPtrfloatPtrubytePtrfloatIOV fp v0 v1 v2 = liftIO (dynPtrfloatPtrubytePtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynhalfNVhalfNVIOV :: FunPtr (GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffihalfNVhalfNVIOV :: MonadIO m => FunPtr (GLhalfNV -> GLhalfNV -> IO ()) -> GLhalfNV -> GLhalfNV -> m ()
+ffihalfNVhalfNVIOV fp v0 v1 = liftIO (dynhalfNVhalfNVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffifloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 = liftIO (dynfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14)
+
+foreign import CALLCONV "dynamic" dynenumenumdoubleIOV :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLdouble -> IO ()
+
+ffienumenumdoubleIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLdouble -> IO ()) -> GLenum -> GLenum -> GLdouble -> m ()
+ffienumenumdoubleIOV fp v0 v1 v2 = liftIO (dynenumenumdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynenumintintsizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumintintsizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffienumsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffienumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumsizeisizeiintsizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffienumsizeisizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffienumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumintintsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumintenumsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintenumsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintenumsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynenumintenumsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffienumsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffienumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumsizeisizeiintsizeisizeisizeibooleanIOV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffienumsizeisizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffienumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynenumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumintenumsizeisizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintenumsizeisizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynenumintenumsizeisizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynenumintintintintsizeisizeisizeibooleanIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffienumintintintintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffienumintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumsizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()
+
+ffienumsizeienumsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+ffienumsizeienumsizeiIOV fp v0 v1 v2 v3 = liftIO (dynenumsizeienumsizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumsizeienumsizeisizeisizeiIOV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+ffienumsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+ffienumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynenumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynenumenumsizeisizeisizeisizeibitfieldIOV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()
+
+ffienumenumsizeisizeisizeisizeibitfieldIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
+ffienumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumintintsizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynenumintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynenumintintintintintsizeisizeisizeisizeienumenumPtrVIOV :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffienumintintintintintsizeisizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO (dynenumintintintintintsizeisizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12)
+
+foreign import CALLCONV "dynamic" dynuintenumuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+ffiuintenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+ffiuintenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumenumuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+ffiuintenumenumuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+ffiuintenumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumenumuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumintintsizeiintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintintsizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumintintsizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumintintsizeisizeiintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintintsizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintsizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeisizeiintsizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintenumsizeisizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintenumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumsizeisizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeiintsizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintenumsizeiintsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintenumsizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeiintsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumintintsizeisizeisizeiintenumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO (dynuintenumintintsizeisizeisizeiintenumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeisizeiintsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintenumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintenumsizeisizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeiintsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintenumsizeiintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintenumsizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumsizeiintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintintintintintsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintintintintintsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintintsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumenumfloatIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> GLfloat -> IO ()
+
+ffiuintenumenumfloatIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLenum -> GLfloat -> m ()
+ffiuintenumenumfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumenumintIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLint -> IO ()
+
+ffiuintenumenumintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ()) -> GLuint -> GLenum -> GLenum -> GLint -> m ()
+ffiuintenumenumintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumenumintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeienumsizeiIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()
+
+ffiuintsizeienumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
+ffiuintsizeienumsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeienumsizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()
+
+ffiuintenumsizeienumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+ffiuintenumsizeienumsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumsizeienumsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+ffiuintenumsizeienumsizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+ffiuintenumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintenumsizeienumsizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeibooleanIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintenumsizeienumsizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintenumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeienumsizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeisizeiIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+ffiuintsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+ffiuintsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeisizeiIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+ffiuintenumsizeienumsizeisizeisizeiIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+ffiuintenumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintenumsizeienumsizeisizeisizeiIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintsizeienumsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeienumsizeisizeisizeibooleanIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+ffiuintenumsizeienumsizeisizeisizeibooleanIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+ffiuintenumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumsizeienumsizeisizeisizeibooleanIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintenumenumsizeisizeisizeisizeibitfieldIOV :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()
+
+ffiuintenumenumsizeisizeisizeisizeibitfieldIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()) -> GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> m ()
+ffiuintenumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumenumsizeisizeisizeisizeibitfieldIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintintintsizeienumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintenumintintsizeienumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintintsizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumintintsizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 = liftIO (dynuintintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintsizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintintintsizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO (dynuintenumintintintsizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9)
+
+foreign import CALLCONV "dynamic" dynuintenumintintintintsizeisizeisizeienumenumPtrVIOV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()
+
+ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+ffiuintenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO (dynuintenumintintintintsizeisizeisizeienumenumPtrVIOV fp v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11)
+
+foreign import CALLCONV "dynamic" dynuintenumuintenumuintuintuintuintIOV :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintenumuintenumuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintenumuintenumuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintenumuintenumuintuintuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynenumuintenumenumIOV :: FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ()) -> GLenum -> GLuint -> GLenum -> GLenum -> IO ()
+
+ffienumuintenumenumIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ()) -> GLenum -> GLuint -> GLenum -> GLenum -> m ()
+ffienumuintenumenumIOV fp v0 v1 v2 v3 = liftIO (dynenumuintenumenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrintenumIOV :: FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLenum -> IO ()
+
+ffisizeiPtrintenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLenum -> m ()
+ffisizeiPtrintenumIOV fp v0 v1 v2 = liftIO (dynsizeiPtrintenumIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuintuintintptrsizeiptrIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+ffiuintuintuintintptrsizeiptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+ffiuintuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintintptrsizeiptrIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrintsizeiPtrintenumIOV :: FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()
+
+ffisizeiPtrintsizeiPtrintenumIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> m ()
+ffisizeiPtrintsizeiPtrintenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynsizeiPtrintsizeiPtrintenumIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrPtrcharenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()
+
+ffiuintsizeiPtrPtrcharenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
+ffiuintsizeiPtrPtrcharenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrPtrcharenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrintenumIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()
+
+ffiuintsizeiPtrintenumIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()) -> GLuint -> GLsizei -> Ptr GLint -> GLenum -> m ()
+ffiuintsizeiPtrintenumIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtrintenumIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintdoubleIOV :: FunPtr (GLint -> GLdouble -> IO ()) -> GLint -> GLdouble -> IO ()
+
+ffiintdoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> IO ()) -> GLint -> GLdouble -> m ()
+ffiintdoubleIOV fp v0 v1 = liftIO (dynintdoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtrdoubleIOV :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> Ptr GLdouble -> IO ()
+
+ffiintsizeiPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+ffiintsizeiPtrdoubleIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrdoubleIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintfloatIOV :: FunPtr (GLint -> GLfloat -> IO ()) -> GLint -> GLfloat -> IO ()
+
+ffiintfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> IO ()) -> GLint -> GLfloat -> m ()
+ffiintfloatIOV fp v0 v1 = liftIO (dynintfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtrfloatIOV :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> Ptr GLfloat -> IO ()
+
+ffiintsizeiPtrfloatIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+ffiintsizeiPtrfloatIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrfloatIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintint64IOV :: FunPtr (GLint -> GLint64 -> IO ()) -> GLint -> GLint64 -> IO ()
+
+ffiintint64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> IO ()) -> GLint -> GLint64 -> m ()
+ffiintint64IOV fp v0 v1 = liftIO (dynintint64IOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> IO ()
+
+ffiintint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> m ()
+ffiintint64EXTIOV fp v0 v1 = liftIO (dynintint64EXTIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtrint64IOV :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLint64 -> IO ()
+
+ffiintsizeiPtrint64IOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLint64 -> m ()
+ffiintsizeiPtrint64IOV fp v0 v1 v2 = liftIO (dynintsizeiPtrint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtrint64EXTIOV :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()
+
+ffiintsizeiPtrint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+ffiintsizeiPtrint64EXTIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtrintIOV :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLint -> GLsizei -> Ptr GLint -> IO ()
+
+ffiintsizeiPtrintIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ()) -> GLint -> GLsizei -> Ptr GLint -> m ()
+ffiintsizeiPtrintIOV fp v0 v1 v2 = liftIO (dynintsizeiPtrintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintuintIOV :: FunPtr (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> IO ()
+
+ffiintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> m ()
+ffiintuintIOV fp v0 v1 = liftIO (dynintuintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintuint64IOV :: FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> IO ()
+
+ffiintuint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> m ()
+ffiintuint64IOV fp v0 v1 = liftIO (dynintuint64IOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> IO ()
+
+ffiintuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> m ()
+ffiintuint64EXTIOV fp v0 v1 = liftIO (dynintuint64EXTIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtruint64IOV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()
+
+ffiintsizeiPtruint64IOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64 -> m ()
+ffiintsizeiPtruint64IOV fp v0 v1 v2 = liftIO (dynintsizeiPtruint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtruint64EXTIOV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()
+
+ffiintsizeiPtruint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()) -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+ffiintsizeiPtruint64EXTIOV fp v0 v1 v2 = liftIO (dynintsizeiPtruint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintsizeiPtruintIOV :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+ffiintsizeiPtruintIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ()) -> GLint -> GLsizei -> Ptr GLuint -> m ()
+ffiintsizeiPtruintIOV fp v0 v1 v2 = liftIO (dynintsizeiPtruintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintint64int64IOV :: FunPtr (GLint -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> IO ()
+
+ffiintint64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> m ()
+ffiintint64int64IOV fp v0 v1 v2 = liftIO (dynintint64int64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintint64EXTint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> m ()
+ffiintint64EXTint64EXTIOV fp v0 v1 v2 = liftIO (dynintint64EXTint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintuintuintIOV :: FunPtr (GLint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> IO ()
+
+ffiintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> m ()
+ffiintuintuintIOV fp v0 v1 v2 = liftIO (dynintuintuintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintuint64uint64IOV :: FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> IO ()
+
+ffiintuint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> m ()
+ffiintuint64uint64IOV fp v0 v1 v2 = liftIO (dynintuint64uint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintuint64EXTuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiintuint64EXTuint64EXTIOV fp v0 v1 v2 = liftIO (dynintuint64EXTuint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynintdoubledoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiintdoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynintdoubledoubledoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintfloatfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiintfloatfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiintfloatfloatfloatIOV fp v0 v1 v2 v3 = liftIO (dynintfloatfloatfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintint64int64int64IOV :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+ffiintint64int64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> m ()
+ffiintint64int64int64IOV fp v0 v1 v2 v3 = liftIO (dynintint64int64int64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintint64EXTint64EXTint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+ffiintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintuintuintuintIOV :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiintuintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+ffiintuintuintuintIOV fp v0 v1 v2 v3 = liftIO (dynintuintuintuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintuint64uint64uint64IOV :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+ffiintuint64uint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+ffiintuint64uint64uint64IOV fp v0 v1 v2 v3 = liftIO (dynintuint64uint64uint64IOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintdoubledoubledoubledoubleIOV :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintfloatfloatfloatfloatIOV :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintint64int64int64int64IOV :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+ffiintint64int64int64int64IOV :: MonadIO m => FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()) -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> m ()
+ffiintint64int64int64int64IOV fp v0 v1 v2 v3 v4 = liftIO (dynintint64int64int64int64IOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintint64EXTint64EXTint64EXTint64EXTIOV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+ffiintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintuintuintuintuintIOV :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiintuintuintuintuintIOV :: MonadIO m => FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffiintuintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynintuintuintuintuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintuint64uint64uint64uint64IOV :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+ffiintuint64uint64uint64uint64IOV :: MonadIO m => FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()) -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> m ()
+ffiintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4 = liftIO (dynintuint64uint64uint64uint64IOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynintsizeibooleanPtrdoubleIOV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()
+
+ffiintsizeibooleanPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+ffiintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3 = liftIO (dynintsizeibooleanPtrdoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintsizeibooleanPtrfloatIOV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()
+
+ffiintsizeibooleanPtrfloatIOV :: MonadIO m => FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()) -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+ffiintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynintsizeibooleanPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiPtrVenumIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ()
+
+ffiuintuintsizeiPtrVenumIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr () -> GLenum -> m ()
+ffiuintuintsizeiPtrVenumIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintsizeiPtrVenumIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintbitfielduintIOV :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ()) -> GLuint -> GLbitfield -> GLuint -> IO ()
+
+ffiuintbitfielduintIOV :: MonadIO m => FunPtr (GLuint -> GLbitfield -> GLuint -> IO ()) -> GLuint -> GLbitfield -> GLuint -> m ()
+ffiuintbitfielduintIOV fp v0 v1 v2 = liftIO (dynuintbitfielduintIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynvdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
+
+ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+ffivdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4 = liftIO (dynvdpauSurfaceNVenumsizeiPtrsizeiPtrintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynPtrVPtrVIOV :: FunPtr (Ptr () -> Ptr () -> IO ()) -> Ptr () -> Ptr () -> IO ()
+
+ffiPtrVPtrVIOV :: MonadIO m => FunPtr (Ptr () -> Ptr () -> IO ()) -> Ptr () -> Ptr () -> m ()
+ffiPtrVPtrVIOV fp v0 v1 = liftIO (dynPtrVPtrVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynvdpauSurfaceNVIOboolean :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean) -> GLvdpauSurfaceNV -> IO GLboolean
+
+ffivdpauSurfaceNVIOboolean :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> IO GLboolean) -> GLvdpauSurfaceNV -> m GLboolean
+ffivdpauSurfaceNVIOboolean fp v0 = liftIO (dynvdpauSurfaceNVIOboolean fp v0)
+
+foreign import CALLCONV "dynamic" dynsizeiPtrvdpauSurfaceNVIOV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()) -> GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()
+
+ffisizeiPtrvdpauSurfaceNVIOV :: MonadIO m => FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()) -> GLsizei -> Ptr GLvdpauSurfaceNV -> m ()
+ffisizeiPtrvdpauSurfaceNVIOV fp v0 v1 = liftIO (dynsizeiPtrvdpauSurfaceNVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynPtrVenumsizeiPtruintIOvdpauSurfaceNV :: FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV) -> Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV
+
+ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV :: MonadIO m => FunPtr (Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV) -> Ptr () -> GLenum -> GLsizei -> Ptr GLuint -> m GLvdpauSurfaceNV
+ffiPtrVenumsizeiPtruintIOvdpauSurfaceNV fp v0 v1 v2 v3 = liftIO (dynPtrVenumsizeiPtruintIOvdpauSurfaceNV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynvdpauSurfaceNVenumIOV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> IO ()
+
+ffivdpauSurfaceNVenumIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ()) -> GLvdpauSurfaceNV -> GLenum -> m ()
+ffivdpauSurfaceNVenumIOV fp v0 v1 = liftIO (dynvdpauSurfaceNVenumIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynvdpauSurfaceNVIOV :: FunPtr (GLvdpauSurfaceNV -> IO ()) -> GLvdpauSurfaceNV -> IO ()
+
+ffivdpauSurfaceNVIOV :: MonadIO m => FunPtr (GLvdpauSurfaceNV -> IO ()) -> GLvdpauSurfaceNV -> m ()
+ffivdpauSurfaceNVIOV fp v0 = liftIO (dynvdpauSurfaceNVIOV fp v0)
+
+foreign import CALLCONV "dynamic" dynuintenumsizeiuintuintIOV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()
+
+ffiuintenumsizeiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> m ()
+ffiuintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintenumsizeiuintuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumuintPtrVIOV :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr () -> IO ()
+
+ffiuintenumuintPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLuint -> Ptr () -> IO ()) -> GLuint -> GLenum -> GLuint -> Ptr () -> m ()
+ffiuintenumuintPtrVIOV fp v0 v1 v2 v3 = liftIO (dynuintenumuintPtrVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintPtrbyteIOV :: FunPtr (GLuint -> Ptr GLbyte -> IO ()) -> GLuint -> Ptr GLbyte -> IO ()
+
+ffiuintPtrbyteIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLbyte -> IO ()) -> GLuint -> Ptr GLbyte -> m ()
+ffiuintPtrbyteIOV fp v0 v1 = liftIO (dynuintPtrbyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtrdoubleIOV :: FunPtr (GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> Ptr GLdouble -> IO ()
+
+ffiuintPtrdoubleIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLdouble -> IO ()) -> GLuint -> Ptr GLdouble -> m ()
+ffiuintPtrdoubleIOV fp v0 v1 = liftIO (dynuintPtrdoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtrshortIOV :: FunPtr (GLuint -> Ptr GLshort -> IO ()) -> GLuint -> Ptr GLshort -> IO ()
+
+ffiuintPtrshortIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLshort -> IO ()) -> GLuint -> Ptr GLshort -> m ()
+ffiuintPtrshortIOV fp v0 v1 = liftIO (dynuintPtrshortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtrushortIOV :: FunPtr (GLuint -> Ptr GLushort -> IO ()) -> GLuint -> Ptr GLushort -> IO ()
+
+ffiuintPtrushortIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLushort -> IO ()) -> GLuint -> Ptr GLushort -> m ()
+ffiuintPtrushortIOV fp v0 v1 = liftIO (dynuintPtrushortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintuintintenumbooleanuintIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()
+
+ffiuintuintintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+ffiuintuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintuintintenumuintIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()
+
+ffiuintuintintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+ffiuintuintintenumuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintintenumuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintuintintptrsizeiIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()
+
+ffiuintuintuintintptrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()) -> GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+ffiuintuintuintintptrsizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintintptrsizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+ffiuintuintintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+ffiuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()
+
+ffiuintuintsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLsizei -> GLintptr -> m ()
+ffiuintuintsizeiintptrIOV fp v0 v1 v2 v3 = liftIO (dynuintuintsizeiintptrIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+ffiuintuintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> m ()
+ffiuintuintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintenumsizeiintptrIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintenumintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+ffiuintuintenumintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+ffiuintuintenumintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintenumintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintuintuintintenumsizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+ffiuintuintuintintenumsizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> m ()
+ffiuintuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintuintintenumsizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintuintuintintenumbooleansizeiintptrIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()
+
+ffiuintuintuintintenumbooleansizeiintptrIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()) -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> m ()
+ffiuintuintuintintenumbooleansizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 v7 = liftIO (dynuintuintuintintenumbooleansizeiintptrIOV fp v0 v1 v2 v3 v4 v5 v6 v7)
+
+foreign import CALLCONV "dynamic" dynuintuintsizeiPtruintPtrintptrPtrsizeiIOV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()
+
+ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()) -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintuintsizeiPtruintPtrintptrPtrsizeiIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintdoubleIOV :: FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> IO ()
+
+ffiuintdoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> IO ()) -> GLuint -> GLdouble -> m ()
+ffiuintdoubleIOV fp v0 v1 = liftIO (dynuintdoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintfloatIOV :: FunPtr (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> IO ()
+
+ffiuintfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> IO ()) -> GLuint -> GLfloat -> m ()
+ffiuintfloatIOV fp v0 v1 = liftIO (dynuintfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuinthalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> IO ()
+
+ffiuinthalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> m ()
+ffiuinthalfNVIOV fp v0 v1 = liftIO (dynuinthalfNVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtrhalfNVIOV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ()) -> GLuint -> Ptr GLhalfNV -> IO ()
+
+ffiuintPtrhalfNVIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLhalfNV -> IO ()) -> GLuint -> Ptr GLhalfNV -> m ()
+ffiuintPtrhalfNVIOV fp v0 v1 = liftIO (dynuintPtrhalfNVIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintshortIOV :: FunPtr (GLuint -> GLshort -> IO ()) -> GLuint -> GLshort -> IO ()
+
+ffiuintshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> IO ()) -> GLuint -> GLshort -> m ()
+ffiuintshortIOV fp v0 v1 = liftIO (dynuintshortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuinthalfNVhalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffiuinthalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> m ()
+ffiuinthalfNVhalfNVIOV fp v0 v1 v2 = liftIO (dynuinthalfNVhalfNVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintshortshortIOV :: FunPtr (GLuint -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> IO ()
+
+ffiuintshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> m ()
+ffiuintshortshortIOV fp v0 v1 v2 = liftIO (dynuintshortshortIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintdoubledoubledoubleIOV :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiuintdoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiuintdoubledoubledoubleIOV fp v0 v1 v2 v3 = liftIO (dynuintdoubledoubledoubleIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuinthalfNVhalfNVhalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffiuinthalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+ffiuinthalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 = liftIO (dynuinthalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintshortshortshortIOV :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> IO ()
+
+ffiuintshortshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> m ()
+ffiuintshortshortshortIOV fp v0 v1 v2 v3 = liftIO (dynuintshortshortshortIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintubyteubyteubyteubyteIOV :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()
+
+ffiuintubyteubyteubyteubyteIOV :: MonadIO m => FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()) -> GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+ffiuintubyteubyteubyteubyteIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintubyteubyteubyteubyteIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintdoubledoubledoubledoubleIOV :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+ffiuintdoubledoubledoubledoubleIOV :: MonadIO m => FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+ffiuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintdoubledoubledoubledoubleIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintfloatfloatfloatfloatIOV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+ffiuintfloatfloatfloatfloatIOV :: MonadIO m => FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()) -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+ffiuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintfloatfloatfloatfloatIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuinthalfNVhalfNVhalfNVhalfNVIOV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+ffiuinthalfNVhalfNVhalfNVhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()) -> GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> m ()
+ffiuinthalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuinthalfNVhalfNVhalfNVhalfNVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintshortshortshortshortIOV :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+ffiuintshortshortshortshortIOV :: MonadIO m => FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()) -> GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+ffiuintshortshortshortshortIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintshortshortshortshortIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintenumbooleansizeiuintuintIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()
+
+ffiuintintenumbooleansizeiuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> m ()
+ffiuintintenumbooleansizeiuintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintintenumbooleansizeiuintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
+
+foreign import CALLCONV "dynamic" dynuintintenumbooleanuintIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()
+
+ffiuintintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+ffiuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumbooleanuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintenumbooleansizeiIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()
+
+ffiuintintenumbooleansizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> m ()
+ffiuintintenumbooleansizeiIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumbooleansizeiIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuintuintuintuintIOV :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+ffiuintuintuintuintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+ffiuintuintuintuintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuintuintuintuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintintenumuintIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLuint -> IO ()
+
+ffiuintintenumuintIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ()) -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+ffiuintintenumuintIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintenumsizeiIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> IO ()
+
+ffiuintintenumsizeiIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> m ()
+ffiuintintenumsizeiIOV fp v0 v1 v2 v3 = liftIO (dynuintintenumsizeiIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintenumsizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintenumsizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+ffiuintintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintintenumsizeiPtrVIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> IO ()
+
+ffiuintint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> m ()
+ffiuintint64EXTIOV fp v0 v1 = liftIO (dynuintint64EXTIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtrint64EXTIOV :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ()) -> GLuint -> Ptr GLint64EXT -> IO ()
+
+ffiuintPtrint64EXTIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLint64EXT -> IO ()) -> GLuint -> Ptr GLint64EXT -> m ()
+ffiuintPtrint64EXTIOV fp v0 v1 = liftIO (dynuintPtrint64EXTIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> IO ()
+
+ffiuintuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> m ()
+ffiuintuint64EXTIOV fp v0 v1 = liftIO (dynuintuint64EXTIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintPtruint64EXTIOV :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> Ptr GLuint64EXT -> IO ()
+
+ffiuintPtruint64EXTIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLuint64EXT -> IO ()) -> GLuint -> Ptr GLuint64EXT -> m ()
+ffiuintPtruint64EXTIOV fp v0 v1 = liftIO (dynuintPtruint64EXTIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiuintint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> m ()
+ffiuintint64EXTint64EXTIOV fp v0 v1 v2 = liftIO (dynuintint64EXTint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiuintuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiuintuint64EXTuint64EXTIOV fp v0 v1 v2 = liftIO (dynuintuint64EXTuint64EXTIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiuintint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+ffiuintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiuintuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiuintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 = liftIO (dynuintuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintint64EXTint64EXTint64EXTint64EXTIOV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+ffiuintint64EXTint64EXTint64EXTint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()) -> GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+ffiuintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintint64EXTint64EXTint64EXTint64EXTIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV :: MonadIO m => FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()) -> GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+ffiuintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4 = liftIO (dynuintuint64EXTuint64EXTuint64EXTuint64EXTIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintenumbooleanuintIOV :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> GLuint -> IO ()
+
+ffiuintenumbooleanuintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+ffiuintenumbooleanuintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumbooleanuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintenumbooleanPtruintIOV :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()
+
+ffiuintenumbooleanPtruintIOV :: MonadIO m => FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()) -> GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+ffiuintenumbooleanPtruintIOV fp v0 v1 v2 v3 = liftIO (dynuintenumbooleanPtruintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynuintintenumbooleansizeiPtrVIOV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ()
+
+ffiuintintenumbooleansizeiPtrVIOV :: MonadIO m => FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ()) -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+ffiuintintenumbooleansizeiPtrVIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintintenumbooleansizeiPtrVIOV fp v0 v1 v2 v3 v4 v5)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrhalfNVIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()) -> GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()
+
+ffiuintsizeiPtrhalfNVIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()) -> GLuint -> GLsizei -> Ptr GLhalfNV -> m ()
+ffiuintsizeiPtrhalfNVIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrhalfNVIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrshortIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()) -> GLuint -> GLsizei -> Ptr GLshort -> IO ()
+
+ffiuintsizeiPtrshortIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ()) -> GLuint -> GLsizei -> Ptr GLshort -> m ()
+ffiuintsizeiPtrshortIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrshortIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtrubyteIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()
+
+ffiuintsizeiPtrubyteIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ()) -> GLuint -> GLsizei -> Ptr GLubyte -> m ()
+ffiuintsizeiPtrubyteIOV fp v0 v1 v2 = liftIO (dynuintsizeiPtrubyteIOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintPtruintPtruint64EXTIOenum :: FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum) -> GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum
+
+ffiuintPtruintPtruint64EXTIOenum :: MonadIO m => FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum) -> GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> m GLenum
+ffiuintPtruintPtruint64EXTIOenum fp v0 v1 v2 = liftIO (dynuintPtruintPtruint64EXTIOenum fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynsyncbitfielduint64IOV :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ()) -> GLsync -> GLbitfield -> GLuint64 -> IO ()
+
+ffisyncbitfielduint64IOV :: MonadIO m => FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ()) -> GLsync -> GLbitfield -> GLuint64 -> m ()
+ffisyncbitfielduint64IOV fp v0 v1 v2 = liftIO (dynsyncbitfielduint64IOV fp v0 v1 v2)
+
+foreign import CALLCONV "dynamic" dynuintsizeiPtruintPtrfloatIOV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()
+
+ffiuintsizeiPtruintPtrfloatIOV :: MonadIO m => FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()) -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
+ffiuintsizeiPtruintPtrfloatIOV fp v0 v1 v2 v3 = liftIO (dynuintsizeiPtruintPtrfloatIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynintPtrbyteIOV :: FunPtr (GLint -> Ptr GLbyte -> IO ()) -> GLint -> Ptr GLbyte -> IO ()
+
+ffiintPtrbyteIOV :: MonadIO m => FunPtr (GLint -> Ptr GLbyte -> IO ()) -> GLint -> Ptr GLbyte -> m ()
+ffiintPtrbyteIOV fp v0 v1 = liftIO (dynintPtrbyteIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtrdoubleIOV :: FunPtr (GLint -> Ptr GLdouble -> IO ()) -> GLint -> Ptr GLdouble -> IO ()
+
+ffiintPtrdoubleIOV :: MonadIO m => FunPtr (GLint -> Ptr GLdouble -> IO ()) -> GLint -> Ptr GLdouble -> m ()
+ffiintPtrdoubleIOV fp v0 v1 = liftIO (dynintPtrdoubleIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtrfloatIOV :: FunPtr (GLint -> Ptr GLfloat -> IO ()) -> GLint -> Ptr GLfloat -> IO ()
+
+ffiintPtrfloatIOV :: MonadIO m => FunPtr (GLint -> Ptr GLfloat -> IO ()) -> GLint -> Ptr GLfloat -> m ()
+ffiintPtrfloatIOV fp v0 v1 = liftIO (dynintPtrfloatIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtrintIOV :: FunPtr (GLint -> Ptr GLint -> IO ()) -> GLint -> Ptr GLint -> IO ()
+
+ffiintPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLint -> IO ()) -> GLint -> Ptr GLint -> m ()
+ffiintPtrintIOV fp v0 v1 = liftIO (dynintPtrintIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynintPtrshortIOV :: FunPtr (GLint -> Ptr GLshort -> IO ()) -> GLint -> Ptr GLshort -> IO ()
+
+ffiintPtrshortIOV :: MonadIO m => FunPtr (GLint -> Ptr GLshort -> IO ()) -> GLint -> Ptr GLshort -> m ()
+ffiintPtrshortIOV fp v0 v1 = liftIO (dynintPtrshortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynenumsizeiPtrintIOV :: FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+ffienumsizeiPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ()) -> GLenum -> GLsizei -> Ptr GLint -> m ()
+ffienumsizeiPtrintIOV fp v0 v1 v2 = liftIO (dynenumsizeiPtrintIOV fp v0 v1 v2)
diff --git a/generated-src/Graphics/GL/Internal/Shared.hs b/generated-src/Graphics/GL/Internal/Shared.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Internal/Shared.hs
@@ -0,0 +1,21704 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Internal.Shared where
+
+import Control.Monad.IO.Class
+import Foreign.Ptr
+import Graphics.GL.Types
+import Graphics.GL.Internal.FFI
+import Graphics.GL.Internal.Proc
+import System.IO.Unsafe
+
+-- | Usage: @'glAccum' op value@
+--
+-- The parameter @op@ is a @AccumOp@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM', 'Graphics.GL.Internal.Shared.GL_LOAD', 'Graphics.GL.Internal.Shared.GL_RETURN', 'Graphics.GL.Internal.Shared.GL_MULT', 'Graphics.GL.Internal.Shared.GL_ADD'.
+--
+-- The parameter @value@ is a @CoordF@.
+
+
+glAccum :: MonadIO m => GLenum -> GLfloat -> m ()
+glAccum = ffienumfloatIOV glAccumFunPtr
+
+glAccumFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glAccumFunPtr = unsafePerformIO (getProcAddress "glAccum")
+
+{-# NOINLINE glAccumFunPtr #-}
+
+-- | Usage: @'glAlphaFunc' func ref@
+--
+-- The parameter @func@ is a @AlphaFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+
+
+glAlphaFunc :: MonadIO m => GLenum -> GLfloat -> m ()
+glAlphaFunc = ffienumfloatIOV glAlphaFuncFunPtr
+
+glAlphaFuncFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glAlphaFuncFunPtr = unsafePerformIO (getProcAddress "glAlphaFunc")
+
+{-# NOINLINE glAlphaFuncFunPtr #-}
+
+-- | Usage: @'glAreTexturesResident' n textures residences@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The parameter @residences@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @residences@ should be @n@.
+
+
+glAreTexturesResident :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean
+glAreTexturesResident = ffisizeiPtruintPtrbooleanIOboolean glAreTexturesResidentFunPtr
+
+glAreTexturesResidentFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+glAreTexturesResidentFunPtr = unsafePerformIO (getProcAddress "glAreTexturesResident")
+
+{-# NOINLINE glAreTexturesResidentFunPtr #-}
+
+-- | Usage: @'glArrayElement' i@
+
+
+glArrayElement :: MonadIO m => GLint -> m ()
+glArrayElement = ffiintIOV glArrayElementFunPtr
+
+glArrayElementFunPtr :: FunPtr (GLint -> IO ())
+glArrayElementFunPtr = unsafePerformIO (getProcAddress "glArrayElement")
+
+{-# NOINLINE glArrayElementFunPtr #-}
+
+-- | Usage: @'glBegin' mode@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+
+
+glBegin :: MonadIO m => GLenum -> m ()
+glBegin = ffienumIOV glBeginFunPtr
+
+glBeginFunPtr :: FunPtr (GLenum -> IO ())
+glBeginFunPtr = unsafePerformIO (getProcAddress "glBegin")
+
+{-# NOINLINE glBeginFunPtr #-}
+
+-- | Usage: @'glBitmap' width height xorig yorig xmove ymove bitmap@
+--
+-- The parameter @xorig@ is a @CoordF@.
+--
+-- The parameter @yorig@ is a @CoordF@.
+--
+-- The parameter @xmove@ is a @CoordF@.
+--
+-- The parameter @ymove@ is a @CoordF@.
+--
+-- The length of @bitmap@ should be @COMPSIZE(width,height)@.
+
+
+glBitmap :: MonadIO m => GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> m ()
+glBitmap = ffisizeisizeifloatfloatfloatfloatPtrubyteIOV glBitmapFunPtr
+
+glBitmapFunPtr :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
+glBitmapFunPtr = unsafePerformIO (getProcAddress "glBitmap")
+
+{-# NOINLINE glBitmapFunPtr #-}
+
+-- | Usage: @'glCallList' list@
+--
+-- The parameter @list@ is a @List@.
+
+
+glCallList :: MonadIO m => GLuint -> m ()
+glCallList = ffiuintIOV glCallListFunPtr
+
+glCallListFunPtr :: FunPtr (GLuint -> IO ())
+glCallListFunPtr = unsafePerformIO (getProcAddress "glCallList")
+
+{-# NOINLINE glCallListFunPtr #-}
+
+-- | Usage: @'glCallLists' n type lists@
+--
+-- The parameter @type@ is a @ListNameType@, one of: 'Graphics.GL.Internal.Shared.GL_2_BYTES', 'Graphics.GL.Internal.Shared.GL_3_BYTES', 'Graphics.GL.Internal.Shared.GL_4_BYTES', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @lists@ should be @COMPSIZE(n,type)@.
+
+
+glCallLists :: MonadIO m => GLsizei -> GLenum -> Ptr () -> m ()
+glCallLists = ffisizeienumPtrVIOV glCallListsFunPtr
+
+glCallListsFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr () -> IO ())
+glCallListsFunPtr = unsafePerformIO (getProcAddress "glCallLists")
+
+{-# NOINLINE glCallListsFunPtr #-}
+
+-- | Usage: @'glClearAccum' red green blue alpha@
+
+
+glClearAccum :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glClearAccum = ffifloatfloatfloatfloatIOV glClearAccumFunPtr
+
+glClearAccumFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glClearAccumFunPtr = unsafePerformIO (getProcAddress "glClearAccum")
+
+{-# NOINLINE glClearAccumFunPtr #-}
+
+-- | Usage: @'glClearIndex' c@
+--
+-- The parameter @c@ is a @MaskedColorIndexValueF@.
+
+
+glClearIndex :: MonadIO m => GLfloat -> m ()
+glClearIndex = ffifloatIOV glClearIndexFunPtr
+
+glClearIndexFunPtr :: FunPtr (GLfloat -> IO ())
+glClearIndexFunPtr = unsafePerformIO (getProcAddress "glClearIndex")
+
+{-# NOINLINE glClearIndexFunPtr #-}
+
+-- | Usage: @'glClientActiveTexture' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+
+
+glClientActiveTexture :: MonadIO m => GLenum -> m ()
+glClientActiveTexture = ffienumIOV glClientActiveTextureFunPtr
+
+glClientActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
+glClientActiveTextureFunPtr = unsafePerformIO (getProcAddress "glClientActiveTexture")
+
+{-# NOINLINE glClientActiveTextureFunPtr #-}
+
+-- | Usage: @'glClipPlane' plane equation@
+--
+-- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5'.
+--
+-- The length of @equation@ should be @4@.
+
+
+glClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glClipPlane = ffienumPtrdoubleIOV glClipPlaneFunPtr
+
+glClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glClipPlaneFunPtr = unsafePerformIO (getProcAddress "glClipPlane")
+
+{-# NOINLINE glClipPlaneFunPtr #-}
+
+-- | Usage: @'glColor3b' red green blue@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3bv'.
+
+
+glColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glColor3b = ffibytebytebyteIOV glColor3bFunPtr
+
+glColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glColor3bFunPtr = unsafePerformIO (getProcAddress "glColor3b")
+
+{-# NOINLINE glColor3bFunPtr #-}
+
+-- | Usage: @'glColor3bv' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3bv :: MonadIO m => Ptr GLbyte -> m ()
+glColor3bv = ffiPtrbyteIOV glColor3bvFunPtr
+
+glColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glColor3bvFunPtr = unsafePerformIO (getProcAddress "glColor3bv")
+
+{-# NOINLINE glColor3bvFunPtr #-}
+
+-- | Usage: @'glColor3d' red green blue@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3dv'.
+
+
+glColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glColor3d = ffidoubledoubledoubleIOV glColor3dFunPtr
+
+glColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glColor3dFunPtr = unsafePerformIO (getProcAddress "glColor3d")
+
+{-# NOINLINE glColor3dFunPtr #-}
+
+-- | Usage: @'glColor3dv' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3dv :: MonadIO m => Ptr GLdouble -> m ()
+glColor3dv = ffiPtrdoubleIOV glColor3dvFunPtr
+
+glColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glColor3dvFunPtr = unsafePerformIO (getProcAddress "glColor3dv")
+
+{-# NOINLINE glColor3dvFunPtr #-}
+
+-- | Usage: @'glColor3f' red green blue@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3fv'.
+
+
+glColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glColor3f = ffifloatfloatfloatIOV glColor3fFunPtr
+
+glColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor3fFunPtr = unsafePerformIO (getProcAddress "glColor3f")
+
+{-# NOINLINE glColor3fFunPtr #-}
+
+-- | Usage: @'glColor3fv' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3fv :: MonadIO m => Ptr GLfloat -> m ()
+glColor3fv = ffiPtrfloatIOV glColor3fvFunPtr
+
+glColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glColor3fvFunPtr = unsafePerformIO (getProcAddress "glColor3fv")
+
+{-# NOINLINE glColor3fvFunPtr #-}
+
+-- | Usage: @'glColor3i' red green blue@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3iv'.
+
+
+glColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glColor3i = ffiintintintIOV glColor3iFunPtr
+
+glColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glColor3iFunPtr = unsafePerformIO (getProcAddress "glColor3i")
+
+{-# NOINLINE glColor3iFunPtr #-}
+
+-- | Usage: @'glColor3iv' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3iv :: MonadIO m => Ptr GLint -> m ()
+glColor3iv = ffiPtrintIOV glColor3ivFunPtr
+
+glColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glColor3ivFunPtr = unsafePerformIO (getProcAddress "glColor3iv")
+
+{-# NOINLINE glColor3ivFunPtr #-}
+
+-- | Usage: @'glColor3s' red green blue@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3sv'.
+
+
+glColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glColor3s = ffishortshortshortIOV glColor3sFunPtr
+
+glColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glColor3sFunPtr = unsafePerformIO (getProcAddress "glColor3s")
+
+{-# NOINLINE glColor3sFunPtr #-}
+
+-- | Usage: @'glColor3sv' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3sv :: MonadIO m => Ptr GLshort -> m ()
+glColor3sv = ffiPtrshortIOV glColor3svFunPtr
+
+glColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glColor3svFunPtr = unsafePerformIO (getProcAddress "glColor3sv")
+
+{-# NOINLINE glColor3svFunPtr #-}
+
+-- | Usage: @'glColor3ub' red green blue@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3ubv'.
+
+
+glColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
+glColor3ub = ffiubyteubyteubyteIOV glColor3ubFunPtr
+
+glColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+glColor3ubFunPtr = unsafePerformIO (getProcAddress "glColor3ub")
+
+{-# NOINLINE glColor3ubFunPtr #-}
+
+-- | Usage: @'glColor3ubv' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
+glColor3ubv = ffiPtrubyteIOV glColor3ubvFunPtr
+
+glColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glColor3ubvFunPtr = unsafePerformIO (getProcAddress "glColor3ubv")
+
+{-# NOINLINE glColor3ubvFunPtr #-}
+
+-- | Usage: @'glColor3ui' red green blue@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3uiv'.
+
+
+glColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glColor3ui = ffiuintuintuintIOV glColor3uiFunPtr
+
+glColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glColor3uiFunPtr = unsafePerformIO (getProcAddress "glColor3ui")
+
+{-# NOINLINE glColor3uiFunPtr #-}
+
+-- | Usage: @'glColor3uiv' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3uiv :: MonadIO m => Ptr GLuint -> m ()
+glColor3uiv = ffiPtruintIOV glColor3uivFunPtr
+
+glColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glColor3uivFunPtr = unsafePerformIO (getProcAddress "glColor3uiv")
+
+{-# NOINLINE glColor3uivFunPtr #-}
+
+-- | Usage: @'glColor3us' red green blue@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor3usv'.
+
+
+glColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
+glColor3us = ffiushortushortushortIOV glColor3usFunPtr
+
+glColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+glColor3usFunPtr = unsafePerformIO (getProcAddress "glColor3us")
+
+{-# NOINLINE glColor3usFunPtr #-}
+
+-- | Usage: @'glColor3usv' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glColor3usv :: MonadIO m => Ptr GLushort -> m ()
+glColor3usv = ffiPtrushortIOV glColor3usvFunPtr
+
+glColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glColor3usvFunPtr = unsafePerformIO (getProcAddress "glColor3usv")
+
+{-# NOINLINE glColor3usvFunPtr #-}
+
+-- | Usage: @'glColor4b' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- The parameter @alpha@ is a @ColorB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4bv'.
+
+
+glColor4b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> GLbyte -> m ()
+glColor4b = ffibytebytebytebyteIOV glColor4bFunPtr
+
+glColor4bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+glColor4bFunPtr = unsafePerformIO (getProcAddress "glColor4b")
+
+{-# NOINLINE glColor4bFunPtr #-}
+
+-- | Usage: @'glColor4bv' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4bv :: MonadIO m => Ptr GLbyte -> m ()
+glColor4bv = ffiPtrbyteIOV glColor4bvFunPtr
+
+glColor4bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glColor4bvFunPtr = unsafePerformIO (getProcAddress "glColor4bv")
+
+{-# NOINLINE glColor4bvFunPtr #-}
+
+-- | Usage: @'glColor4d' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- The parameter @alpha@ is a @ColorD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4dv'.
+
+
+glColor4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glColor4d = ffidoubledoubledoubledoubleIOV glColor4dFunPtr
+
+glColor4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glColor4dFunPtr = unsafePerformIO (getProcAddress "glColor4d")
+
+{-# NOINLINE glColor4dFunPtr #-}
+
+-- | Usage: @'glColor4dv' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4dv :: MonadIO m => Ptr GLdouble -> m ()
+glColor4dv = ffiPtrdoubleIOV glColor4dvFunPtr
+
+glColor4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glColor4dvFunPtr = unsafePerformIO (getProcAddress "glColor4dv")
+
+{-# NOINLINE glColor4dvFunPtr #-}
+
+-- | Usage: @'glColor4f' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4fv'.
+
+
+glColor4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glColor4f = ffifloatfloatfloatfloatIOV glColor4fFunPtr
+
+glColor4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glColor4fFunPtr = unsafePerformIO (getProcAddress "glColor4f")
+
+{-# NOINLINE glColor4fFunPtr #-}
+
+-- | Usage: @'glColor4fv' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4fv :: MonadIO m => Ptr GLfloat -> m ()
+glColor4fv = ffiPtrfloatIOV glColor4fvFunPtr
+
+glColor4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glColor4fvFunPtr = unsafePerformIO (getProcAddress "glColor4fv")
+
+{-# NOINLINE glColor4fvFunPtr #-}
+
+-- | Usage: @'glColor4i' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- The parameter @alpha@ is a @ColorI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4iv'.
+
+
+glColor4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glColor4i = ffiintintintintIOV glColor4iFunPtr
+
+glColor4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glColor4iFunPtr = unsafePerformIO (getProcAddress "glColor4i")
+
+{-# NOINLINE glColor4iFunPtr #-}
+
+-- | Usage: @'glColor4iv' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4iv :: MonadIO m => Ptr GLint -> m ()
+glColor4iv = ffiPtrintIOV glColor4ivFunPtr
+
+glColor4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glColor4ivFunPtr = unsafePerformIO (getProcAddress "glColor4iv")
+
+{-# NOINLINE glColor4ivFunPtr #-}
+
+-- | Usage: @'glColor4s' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- The parameter @alpha@ is a @ColorS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4sv'.
+
+
+glColor4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glColor4s = ffishortshortshortshortIOV glColor4sFunPtr
+
+glColor4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glColor4sFunPtr = unsafePerformIO (getProcAddress "glColor4s")
+
+{-# NOINLINE glColor4sFunPtr #-}
+
+-- | Usage: @'glColor4sv' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4sv :: MonadIO m => Ptr GLshort -> m ()
+glColor4sv = ffiPtrshortIOV glColor4svFunPtr
+
+glColor4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glColor4svFunPtr = unsafePerformIO (getProcAddress "glColor4sv")
+
+{-# NOINLINE glColor4svFunPtr #-}
+
+-- | Usage: @'glColor4ub' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- The parameter @alpha@ is a @ColorUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4ubv'.
+
+
+glColor4ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glColor4ub = ffiubyteubyteubyteubyteIOV glColor4ubFunPtr
+
+glColor4ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glColor4ubFunPtr = unsafePerformIO (getProcAddress "glColor4ub")
+
+{-# NOINLINE glColor4ubFunPtr #-}
+
+-- | Usage: @'glColor4ubv' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4ubv :: MonadIO m => Ptr GLubyte -> m ()
+glColor4ubv = ffiPtrubyteIOV glColor4ubvFunPtr
+
+glColor4ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glColor4ubvFunPtr = unsafePerformIO (getProcAddress "glColor4ubv")
+
+{-# NOINLINE glColor4ubvFunPtr #-}
+
+-- | Usage: @'glColor4ui' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- The parameter @alpha@ is a @ColorUI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4uiv'.
+
+
+glColor4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glColor4ui = ffiuintuintuintuintIOV glColor4uiFunPtr
+
+glColor4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glColor4uiFunPtr = unsafePerformIO (getProcAddress "glColor4ui")
+
+{-# NOINLINE glColor4uiFunPtr #-}
+
+-- | Usage: @'glColor4uiv' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4uiv :: MonadIO m => Ptr GLuint -> m ()
+glColor4uiv = ffiPtruintIOV glColor4uivFunPtr
+
+glColor4uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glColor4uivFunPtr = unsafePerformIO (getProcAddress "glColor4uiv")
+
+{-# NOINLINE glColor4uivFunPtr #-}
+
+-- | Usage: @'glColor4us' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- The parameter @alpha@ is a @ColorUS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glColor4usv'.
+
+
+glColor4us :: MonadIO m => GLushort -> GLushort -> GLushort -> GLushort -> m ()
+glColor4us = ffiushortushortushortushortIOV glColor4usFunPtr
+
+glColor4usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
+glColor4usFunPtr = unsafePerformIO (getProcAddress "glColor4us")
+
+{-# NOINLINE glColor4usFunPtr #-}
+
+-- | Usage: @'glColor4usv' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glColor4usv :: MonadIO m => Ptr GLushort -> m ()
+glColor4usv = ffiPtrushortIOV glColor4usvFunPtr
+
+glColor4usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glColor4usvFunPtr = unsafePerformIO (getProcAddress "glColor4usv")
+
+{-# NOINLINE glColor4usvFunPtr #-}
+
+-- | Usage: @'glColorMaterial' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @ColorMaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+
+
+glColorMaterial :: MonadIO m => GLenum -> GLenum -> m ()
+glColorMaterial = ffienumenumIOV glColorMaterialFunPtr
+
+glColorMaterialFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glColorMaterialFunPtr = unsafePerformIO (getProcAddress "glColorMaterial")
+
+{-# NOINLINE glColorMaterialFunPtr #-}
+
+-- | Usage: @'glColorPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glColorPointer = ffiintenumsizeiPtrVIOV glColorPointerFunPtr
+
+glColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glColorPointerFunPtr = unsafePerformIO (getProcAddress "glColorPointer")
+
+{-# NOINLINE glColorPointerFunPtr #-}
+
+-- | Usage: @'glCopyPixels' x y width height type@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @type@ is a @PixelCopyType@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DEPTH', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_STENCIL', 'Graphics.GL.Ext.EXT.DiscardFramebuffer.GL_STENCIL_EXT'.
+
+
+glCopyPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> m ()
+glCopyPixels = ffiintintsizeisizeienumIOV glCopyPixelsFunPtr
+
+glCopyPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
+glCopyPixelsFunPtr = unsafePerformIO (getProcAddress "glCopyPixels")
+
+{-# NOINLINE glCopyPixelsFunPtr #-}
+
+-- | Usage: @'glDeleteLists' list range@
+--
+-- The parameter @list@ is a @List@.
+
+
+glDeleteLists :: MonadIO m => GLuint -> GLsizei -> m ()
+glDeleteLists = ffiuintsizeiIOV glDeleteListsFunPtr
+
+glDeleteListsFunPtr :: FunPtr (GLuint -> GLsizei -> IO ())
+glDeleteListsFunPtr = unsafePerformIO (getProcAddress "glDeleteLists")
+
+{-# NOINLINE glDeleteListsFunPtr #-}
+
+-- | Usage: @'glDisableClientState' array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisableClientState :: MonadIO m => GLenum -> m ()
+glDisableClientState = ffienumIOV glDisableClientStateFunPtr
+
+glDisableClientStateFunPtr :: FunPtr (GLenum -> IO ())
+glDisableClientStateFunPtr = unsafePerformIO (getProcAddress "glDisableClientState")
+
+{-# NOINLINE glDisableClientStateFunPtr #-}
+
+-- | Usage: @'glDrawPixels' width height format type pixels@
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+
+
+glDrawPixels :: MonadIO m => GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glDrawPixels = ffisizeisizeienumenumPtrVIOV glDrawPixelsFunPtr
+
+glDrawPixelsFunPtr :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glDrawPixelsFunPtr = unsafePerformIO (getProcAddress "glDrawPixels")
+
+{-# NOINLINE glDrawPixelsFunPtr #-}
+
+-- | Usage: @'glEdgeFlag' flag@
+--
+-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEdgeFlagv'.
+
+
+glEdgeFlag :: MonadIO m => GLboolean -> m ()
+glEdgeFlag = ffibooleanIOV glEdgeFlagFunPtr
+
+glEdgeFlagFunPtr :: FunPtr (GLboolean -> IO ())
+glEdgeFlagFunPtr = unsafePerformIO (getProcAddress "glEdgeFlag")
+
+{-# NOINLINE glEdgeFlagFunPtr #-}
+
+-- | Usage: @'glEdgeFlagPointer' stride pointer@
+--
+-- The length of @pointer@ should be @COMPSIZE(stride)@.
+
+
+glEdgeFlagPointer :: MonadIO m => GLsizei -> Ptr () -> m ()
+glEdgeFlagPointer = ffisizeiPtrVIOV glEdgeFlagPointerFunPtr
+
+glEdgeFlagPointerFunPtr :: FunPtr (GLsizei -> Ptr () -> IO ())
+glEdgeFlagPointerFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagPointer")
+
+{-# NOINLINE glEdgeFlagPointerFunPtr #-}
+
+-- | Usage: @'glEdgeFlagv' flag@
+--
+-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @flag@ should be @1@.
+
+
+glEdgeFlagv :: MonadIO m => Ptr GLboolean -> m ()
+glEdgeFlagv = ffiPtrbooleanIOV glEdgeFlagvFunPtr
+
+glEdgeFlagvFunPtr :: FunPtr (Ptr GLboolean -> IO ())
+glEdgeFlagvFunPtr = unsafePerformIO (getProcAddress "glEdgeFlagv")
+
+{-# NOINLINE glEdgeFlagvFunPtr #-}
+
+-- | Usage: @'glEnableClientState' array@
+--
+-- The parameter @array@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glEnableClientState :: MonadIO m => GLenum -> m ()
+glEnableClientState = ffienumIOV glEnableClientStateFunPtr
+
+glEnableClientStateFunPtr :: FunPtr (GLenum -> IO ())
+glEnableClientStateFunPtr = unsafePerformIO (getProcAddress "glEnableClientState")
+
+{-# NOINLINE glEnableClientStateFunPtr #-}
+
+-- | Usage: @'glEnd'@
+
+
+glEnd :: MonadIO m => m ()
+glEnd = ffiIOV glEndFunPtr
+
+glEndFunPtr :: FunPtr (IO ())
+glEndFunPtr = unsafePerformIO (getProcAddress "glEnd")
+
+{-# NOINLINE glEndFunPtr #-}
+
+-- | Usage: @'glEndList'@
+
+
+glEndList :: MonadIO m => m ()
+glEndList = ffiIOV glEndListFunPtr
+
+glEndListFunPtr :: FunPtr (IO ())
+glEndListFunPtr = unsafePerformIO (getProcAddress "glEndList")
+
+{-# NOINLINE glEndListFunPtr #-}
+
+-- | Usage: @'glEvalCoord1d' u@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord1dv'.
+
+
+glEvalCoord1d :: MonadIO m => GLdouble -> m ()
+glEvalCoord1d = ffidoubleIOV glEvalCoord1dFunPtr
+
+glEvalCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
+glEvalCoord1dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1d")
+
+{-# NOINLINE glEvalCoord1dFunPtr #-}
+
+-- | Usage: @'glEvalCoord1dv' u@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The length of @u@ should be @1@.
+
+
+glEvalCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
+glEvalCoord1dv = ffiPtrdoubleIOV glEvalCoord1dvFunPtr
+
+glEvalCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glEvalCoord1dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1dv")
+
+{-# NOINLINE glEvalCoord1dvFunPtr #-}
+
+-- | Usage: @'glEvalCoord1f' u@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord1fv'.
+
+
+glEvalCoord1f :: MonadIO m => GLfloat -> m ()
+glEvalCoord1f = ffifloatIOV glEvalCoord1fFunPtr
+
+glEvalCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
+glEvalCoord1fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1f")
+
+{-# NOINLINE glEvalCoord1fFunPtr #-}
+
+-- | Usage: @'glEvalCoord1fv' u@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The length of @u@ should be @1@.
+
+
+glEvalCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
+glEvalCoord1fv = ffiPtrfloatIOV glEvalCoord1fvFunPtr
+
+glEvalCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glEvalCoord1fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord1fv")
+
+{-# NOINLINE glEvalCoord1fvFunPtr #-}
+
+-- | Usage: @'glEvalCoord2d' u v@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord2dv'.
+
+
+glEvalCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glEvalCoord2d = ffidoubledoubleIOV glEvalCoord2dFunPtr
+
+glEvalCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glEvalCoord2dFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2d")
+
+{-# NOINLINE glEvalCoord2dFunPtr #-}
+
+-- | Usage: @'glEvalCoord2dv' u@
+--
+-- The parameter @u@ is a @CoordD@.
+--
+-- The length of @u@ should be @2@.
+
+
+glEvalCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
+glEvalCoord2dv = ffiPtrdoubleIOV glEvalCoord2dvFunPtr
+
+glEvalCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glEvalCoord2dvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2dv")
+
+{-# NOINLINE glEvalCoord2dvFunPtr #-}
+
+-- | Usage: @'glEvalCoord2f' u v@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glEvalCoord2fv'.
+
+
+glEvalCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glEvalCoord2f = ffifloatfloatIOV glEvalCoord2fFunPtr
+
+glEvalCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glEvalCoord2fFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2f")
+
+{-# NOINLINE glEvalCoord2fFunPtr #-}
+
+-- | Usage: @'glEvalCoord2fv' u@
+--
+-- The parameter @u@ is a @CoordF@.
+--
+-- The length of @u@ should be @2@.
+
+
+glEvalCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
+glEvalCoord2fv = ffiPtrfloatIOV glEvalCoord2fvFunPtr
+
+glEvalCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glEvalCoord2fvFunPtr = unsafePerformIO (getProcAddress "glEvalCoord2fv")
+
+{-# NOINLINE glEvalCoord2fvFunPtr #-}
+
+-- | Usage: @'glEvalMesh1' mode i1 i2@
+--
+-- The parameter @mode@ is a @MeshMode1@, one of: 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
+--
+-- The parameter @i1@ is a @CheckedInt32@.
+--
+-- The parameter @i2@ is a @CheckedInt32@.
+
+
+glEvalMesh1 :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glEvalMesh1 = ffienumintintIOV glEvalMesh1FunPtr
+
+glEvalMesh1FunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glEvalMesh1FunPtr = unsafePerformIO (getProcAddress "glEvalMesh1")
+
+{-# NOINLINE glEvalMesh1FunPtr #-}
+
+-- | Usage: @'glEvalMesh2' mode i1 i2 j1 j2@
+--
+-- The parameter @mode@ is a @MeshMode2@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
+--
+-- The parameter @i1@ is a @CheckedInt32@.
+--
+-- The parameter @i2@ is a @CheckedInt32@.
+--
+-- The parameter @j1@ is a @CheckedInt32@.
+--
+-- The parameter @j2@ is a @CheckedInt32@.
+
+
+glEvalMesh2 :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glEvalMesh2 = ffienumintintintintIOV glEvalMesh2FunPtr
+
+glEvalMesh2FunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glEvalMesh2FunPtr = unsafePerformIO (getProcAddress "glEvalMesh2")
+
+{-# NOINLINE glEvalMesh2FunPtr #-}
+
+-- | Usage: @'glEvalPoint1' i@
+
+
+glEvalPoint1 :: MonadIO m => GLint -> m ()
+glEvalPoint1 = ffiintIOV glEvalPoint1FunPtr
+
+glEvalPoint1FunPtr :: FunPtr (GLint -> IO ())
+glEvalPoint1FunPtr = unsafePerformIO (getProcAddress "glEvalPoint1")
+
+{-# NOINLINE glEvalPoint1FunPtr #-}
+
+-- | Usage: @'glEvalPoint2' i j@
+--
+-- The parameter @i@ is a @CheckedInt32@.
+--
+-- The parameter @j@ is a @CheckedInt32@.
+
+
+glEvalPoint2 :: MonadIO m => GLint -> GLint -> m ()
+glEvalPoint2 = ffiintintIOV glEvalPoint2FunPtr
+
+glEvalPoint2FunPtr :: FunPtr (GLint -> GLint -> IO ())
+glEvalPoint2FunPtr = unsafePerformIO (getProcAddress "glEvalPoint2")
+
+{-# NOINLINE glEvalPoint2FunPtr #-}
+
+-- | Usage: @'glFeedbackBuffer' size type buffer@
+--
+-- The parameter @type@ is a @FeedbackType@, one of: 'Graphics.GL.Internal.Shared.GL_2D', 'Graphics.GL.Internal.Shared.GL_3D', 'Graphics.GL.Internal.Shared.GL_3D_COLOR', 'Graphics.GL.Internal.Shared.GL_3D_COLOR_TEXTURE', 'Graphics.GL.Internal.Shared.GL_4D_COLOR_TEXTURE'.
+--
+-- The parameter @buffer@ is a @FeedbackElement@.
+--
+-- The length of @buffer@ should be @size@.
+
+
+glFeedbackBuffer :: MonadIO m => GLsizei -> GLenum -> Ptr GLfloat -> m ()
+glFeedbackBuffer = ffisizeienumPtrfloatIOV glFeedbackBufferFunPtr
+
+glFeedbackBufferFunPtr :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
+glFeedbackBufferFunPtr = unsafePerformIO (getProcAddress "glFeedbackBuffer")
+
+{-# NOINLINE glFeedbackBufferFunPtr #-}
+
+-- | Usage: @'glFogCoordPointer' type stride pointer@
+--
+-- The parameter @type@ is a @FogPointerTypeEXT@, one of: 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_DOUBLE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glFogCoordPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glFogCoordPointer = ffienumsizeiPtrVIOV glFogCoordPointerFunPtr
+
+glFogCoordPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glFogCoordPointerFunPtr = unsafePerformIO (getProcAddress "glFogCoordPointer")
+
+{-# NOINLINE glFogCoordPointerFunPtr #-}
+
+-- | Usage: @'glFogCoordd' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glFogCoorddv'.
+
+
+glFogCoordd :: MonadIO m => GLdouble -> m ()
+glFogCoordd = ffidoubleIOV glFogCoorddFunPtr
+
+glFogCoorddFunPtr :: FunPtr (GLdouble -> IO ())
+glFogCoorddFunPtr = unsafePerformIO (getProcAddress "glFogCoordd")
+
+{-# NOINLINE glFogCoorddFunPtr #-}
+
+-- | Usage: @'glFogCoorddv' coord@
+--
+-- The parameter @coord@ is a @CoordD@.
+--
+-- The length of @coord@ should be @1@.
+
+
+glFogCoorddv :: MonadIO m => Ptr GLdouble -> m ()
+glFogCoorddv = ffiPtrdoubleIOV glFogCoorddvFunPtr
+
+glFogCoorddvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glFogCoorddvFunPtr = unsafePerformIO (getProcAddress "glFogCoorddv")
+
+{-# NOINLINE glFogCoorddvFunPtr #-}
+
+-- | Usage: @'glFogCoordf' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glFogCoordfv'.
+
+
+glFogCoordf :: MonadIO m => GLfloat -> m ()
+glFogCoordf = ffifloatIOV glFogCoordfFunPtr
+
+glFogCoordfFunPtr :: FunPtr (GLfloat -> IO ())
+glFogCoordfFunPtr = unsafePerformIO (getProcAddress "glFogCoordf")
+
+{-# NOINLINE glFogCoordfFunPtr #-}
+
+-- | Usage: @'glFogCoordfv' coord@
+--
+-- The parameter @coord@ is a @CoordF@.
+--
+-- The length of @coord@ should be @1@.
+
+
+glFogCoordfv :: MonadIO m => Ptr GLfloat -> m ()
+glFogCoordfv = ffiPtrfloatIOV glFogCoordfvFunPtr
+
+glFogCoordfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glFogCoordfvFunPtr = unsafePerformIO (getProcAddress "glFogCoordfv")
+
+{-# NOINLINE glFogCoordfvFunPtr #-}
+
+-- | Usage: @'glFogf' pname param@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glFogf :: MonadIO m => GLenum -> GLfloat -> m ()
+glFogf = ffienumfloatIOV glFogfFunPtr
+
+glFogfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glFogfFunPtr = unsafePerformIO (getProcAddress "glFogf")
+
+{-# NOINLINE glFogfFunPtr #-}
+
+-- | Usage: @'glFogfv' pname params@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFogfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glFogfv = ffienumPtrfloatIOV glFogfvFunPtr
+
+glFogfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glFogfvFunPtr = unsafePerformIO (getProcAddress "glFogfv")
+
+{-# NOINLINE glFogfvFunPtr #-}
+
+-- | Usage: @'glFogi' pname param@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glFogi :: MonadIO m => GLenum -> GLint -> m ()
+glFogi = ffienumintIOV glFogiFunPtr
+
+glFogiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glFogiFunPtr = unsafePerformIO (getProcAddress "glFogi")
+
+{-# NOINLINE glFogiFunPtr #-}
+
+-- | Usage: @'glFogiv' pname params@
+--
+-- The parameter @pname@ is a @FogParameter@, one of: 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glFogiv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glFogiv = ffienumPtrintIOV glFogivFunPtr
+
+glFogivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glFogivFunPtr = unsafePerformIO (getProcAddress "glFogiv")
+
+{-# NOINLINE glFogivFunPtr #-}
+
+-- | Usage: @'glFrustum' left right bottom top zNear zFar@
+
+
+glFrustum :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glFrustum = ffidoubledoubledoubledoubledoubledoubleIOV glFrustumFunPtr
+
+glFrustumFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glFrustumFunPtr = unsafePerformIO (getProcAddress "glFrustum")
+
+{-# NOINLINE glFrustumFunPtr #-}
+
+-- | Usage: @'glGenLists' range@
+
+
+glGenLists :: MonadIO m => GLsizei -> m GLuint
+glGenLists = ffisizeiIOuint glGenListsFunPtr
+
+glGenListsFunPtr :: FunPtr (GLsizei -> IO GLuint)
+glGenListsFunPtr = unsafePerformIO (getProcAddress "glGenLists")
+
+{-# NOINLINE glGenListsFunPtr #-}
+
+-- | Usage: @'glGetClipPlane' plane equation@
+--
+-- The parameter @plane@ is a @ClipPlaneName@, one of: 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE0', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE1', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE2', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE3', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE4', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE5', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE6', 'Graphics.GL.Internal.Shared.GL_CLIP_DISTANCE7', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5'.
+--
+-- The length of @equation@ should be @4@.
+
+
+glGetClipPlane :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glGetClipPlane = ffienumPtrdoubleIOV glGetClipPlaneFunPtr
+
+glGetClipPlaneFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glGetClipPlaneFunPtr = unsafePerformIO (getProcAddress "glGetClipPlane")
+
+{-# NOINLINE glGetClipPlaneFunPtr #-}
+
+-- | Usage: @'glGetLightfv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetLightfv = ffienumenumPtrfloatIOV glGetLightfvFunPtr
+
+glGetLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetLightfvFunPtr = unsafePerformIO (getProcAddress "glGetLightfv")
+
+{-# NOINLINE glGetLightfvFunPtr #-}
+
+-- | Usage: @'glGetLightiv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetLightiv = ffienumenumPtrintIOV glGetLightivFunPtr
+
+glGetLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetLightivFunPtr = unsafePerformIO (getProcAddress "glGetLightiv")
+
+{-# NOINLINE glGetLightivFunPtr #-}
+
+-- | Usage: @'glGetMapdv' target query v@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
+--
+-- The length of @v@ should be @COMPSIZE(target,query)@.
+
+
+glGetMapdv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetMapdv = ffienumenumPtrdoubleIOV glGetMapdvFunPtr
+
+glGetMapdvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetMapdvFunPtr = unsafePerformIO (getProcAddress "glGetMapdv")
+
+{-# NOINLINE glGetMapdvFunPtr #-}
+
+-- | Usage: @'glGetMapfv' target query v@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
+--
+-- The length of @v@ should be @COMPSIZE(target,query)@.
+
+
+glGetMapfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMapfv = ffienumenumPtrfloatIOV glGetMapfvFunPtr
+
+glGetMapfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMapfvFunPtr = unsafePerformIO (getProcAddress "glGetMapfv")
+
+{-# NOINLINE glGetMapfvFunPtr #-}
+
+-- | Usage: @'glGetMapiv' target query v@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @query@ is a @GetMapQuery@, one of: 'Graphics.GL.Internal.Shared.GL_COEFF', 'Graphics.GL.Internal.Shared.GL_DOMAIN', 'Graphics.GL.Internal.Shared.GL_ORDER'.
+--
+-- The length of @v@ should be @COMPSIZE(target,query)@.
+
+
+glGetMapiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMapiv = ffienumenumPtrintIOV glGetMapivFunPtr
+
+glGetMapivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMapivFunPtr = unsafePerformIO (getProcAddress "glGetMapiv")
+
+{-# NOINLINE glGetMapivFunPtr #-}
+
+-- | Usage: @'glGetMaterialfv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetMaterialfv = ffienumenumPtrfloatIOV glGetMaterialfvFunPtr
+
+glGetMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetMaterialfvFunPtr = unsafePerformIO (getProcAddress "glGetMaterialfv")
+
+{-# NOINLINE glGetMaterialfvFunPtr #-}
+
+-- | Usage: @'glGetMaterialiv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetMaterialiv = ffienumenumPtrintIOV glGetMaterialivFunPtr
+
+glGetMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetMaterialivFunPtr = unsafePerformIO (getProcAddress "glGetMaterialiv")
+
+{-# NOINLINE glGetMaterialivFunPtr #-}
+
+-- | Usage: @'glGetPixelMapfv' map values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The length of @values@ should be @COMPSIZE(map)@.
+
+
+glGetPixelMapfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetPixelMapfv = ffienumPtrfloatIOV glGetPixelMapfvFunPtr
+
+glGetPixelMapfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapfv")
+
+{-# NOINLINE glGetPixelMapfvFunPtr #-}
+
+-- | Usage: @'glGetPixelMapuiv' map values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The length of @values@ should be @COMPSIZE(map)@.
+
+
+glGetPixelMapuiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glGetPixelMapuiv = ffienumPtruintIOV glGetPixelMapuivFunPtr
+
+glGetPixelMapuivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glGetPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapuiv")
+
+{-# NOINLINE glGetPixelMapuivFunPtr #-}
+
+-- | Usage: @'glGetPixelMapusv' map values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The length of @values@ should be @COMPSIZE(map)@.
+
+
+glGetPixelMapusv :: MonadIO m => GLenum -> Ptr GLushort -> m ()
+glGetPixelMapusv = ffienumPtrushortIOV glGetPixelMapusvFunPtr
+
+glGetPixelMapusvFunPtr :: FunPtr (GLenum -> Ptr GLushort -> IO ())
+glGetPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glGetPixelMapusv")
+
+{-# NOINLINE glGetPixelMapusvFunPtr #-}
+
+-- | Usage: @'glGetPointerv' pname params@
+--
+-- The parameter @pname@ is a @GetPointervPName@, one of: 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_POINTER_EXT', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_BUFFER_POINTER_SGIX', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_POINTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_POINTER_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_POINTER', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_POINTER_EXT'.
+--
+-- The length of @params@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetPointerv.xhtml>
+
+
+glGetPointerv :: MonadIO m => GLenum -> Ptr (Ptr ()) -> m ()
+glGetPointerv = ffienumPtrPtrVIOV glGetPointervFunPtr
+
+glGetPointervFunPtr :: FunPtr (GLenum -> Ptr (Ptr ()) -> IO ())
+glGetPointervFunPtr = unsafePerformIO (getProcAddress "glGetPointerv")
+
+{-# NOINLINE glGetPointervFunPtr #-}
+
+-- | Usage: @'glGetPolygonStipple' mask@
+--
+-- The length of @mask@ should be @COMPSIZE()@.
+
+
+glGetPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
+glGetPolygonStipple = ffiPtrubyteIOV glGetPolygonStippleFunPtr
+
+glGetPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glGetPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glGetPolygonStipple")
+
+{-# NOINLINE glGetPolygonStippleFunPtr #-}
+
+-- | Usage: @'glGetTexEnvfv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexEnvfv = ffienumenumPtrfloatIOV glGetTexEnvfvFunPtr
+
+glGetTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glGetTexEnvfv")
+
+{-# NOINLINE glGetTexEnvfvFunPtr #-}
+
+-- | Usage: @'glGetTexEnviv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexEnviv = ffienumenumPtrintIOV glGetTexEnvivFunPtr
+
+glGetTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexEnvivFunPtr = unsafePerformIO (getProcAddress "glGetTexEnviv")
+
+{-# NOINLINE glGetTexEnvivFunPtr #-}
+
+-- | Usage: @'glGetTexGendv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glGetTexGendv = ffienumenumPtrdoubleIOV glGetTexGendvFunPtr
+
+glGetTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glGetTexGendvFunPtr = unsafePerformIO (getProcAddress "glGetTexGendv")
+
+{-# NOINLINE glGetTexGendvFunPtr #-}
+
+-- | Usage: @'glGetTexGenfv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexGenfv = ffienumenumPtrfloatIOV glGetTexGenfvFunPtr
+
+glGetTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexGenfvFunPtr = unsafePerformIO (getProcAddress "glGetTexGenfv")
+
+{-# NOINLINE glGetTexGenfvFunPtr #-}
+
+-- | Usage: @'glGetTexGeniv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexGeniv = ffienumenumPtrintIOV glGetTexGenivFunPtr
+
+glGetTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexGenivFunPtr = unsafePerformIO (getProcAddress "glGetTexGeniv")
+
+{-# NOINLINE glGetTexGenivFunPtr #-}
+
+-- | Usage: @'glIndexMask' mask@
+--
+-- The parameter @mask@ is a @MaskedColorIndexValueI@.
+
+
+glIndexMask :: MonadIO m => GLuint -> m ()
+glIndexMask = ffiuintIOV glIndexMaskFunPtr
+
+glIndexMaskFunPtr :: FunPtr (GLuint -> IO ())
+glIndexMaskFunPtr = unsafePerformIO (getProcAddress "glIndexMask")
+
+{-# NOINLINE glIndexMaskFunPtr #-}
+
+-- | Usage: @'glIndexPointer' type stride pointer@
+--
+-- The parameter @type@ is a @IndexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glIndexPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glIndexPointer = ffienumsizeiPtrVIOV glIndexPointerFunPtr
+
+glIndexPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glIndexPointerFunPtr = unsafePerformIO (getProcAddress "glIndexPointer")
+
+{-# NOINLINE glIndexPointerFunPtr #-}
+
+-- | Usage: @'glIndexd' c@
+--
+-- The parameter @c@ is a @ColorIndexValueD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexdv'.
+
+
+glIndexd :: MonadIO m => GLdouble -> m ()
+glIndexd = ffidoubleIOV glIndexdFunPtr
+
+glIndexdFunPtr :: FunPtr (GLdouble -> IO ())
+glIndexdFunPtr = unsafePerformIO (getProcAddress "glIndexd")
+
+{-# NOINLINE glIndexdFunPtr #-}
+
+-- | Usage: @'glIndexdv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueD@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexdv :: MonadIO m => Ptr GLdouble -> m ()
+glIndexdv = ffiPtrdoubleIOV glIndexdvFunPtr
+
+glIndexdvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glIndexdvFunPtr = unsafePerformIO (getProcAddress "glIndexdv")
+
+{-# NOINLINE glIndexdvFunPtr #-}
+
+-- | Usage: @'glIndexf' c@
+--
+-- The parameter @c@ is a @ColorIndexValueF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexfv'.
+
+
+glIndexf :: MonadIO m => GLfloat -> m ()
+glIndexf = ffifloatIOV glIndexfFunPtr
+
+glIndexfFunPtr :: FunPtr (GLfloat -> IO ())
+glIndexfFunPtr = unsafePerformIO (getProcAddress "glIndexf")
+
+{-# NOINLINE glIndexfFunPtr #-}
+
+-- | Usage: @'glIndexfv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueF@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexfv :: MonadIO m => Ptr GLfloat -> m ()
+glIndexfv = ffiPtrfloatIOV glIndexfvFunPtr
+
+glIndexfvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glIndexfvFunPtr = unsafePerformIO (getProcAddress "glIndexfv")
+
+{-# NOINLINE glIndexfvFunPtr #-}
+
+-- | Usage: @'glIndexi' c@
+--
+-- The parameter @c@ is a @ColorIndexValueI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexiv'.
+
+
+glIndexi :: MonadIO m => GLint -> m ()
+glIndexi = ffiintIOV glIndexiFunPtr
+
+glIndexiFunPtr :: FunPtr (GLint -> IO ())
+glIndexiFunPtr = unsafePerformIO (getProcAddress "glIndexi")
+
+{-# NOINLINE glIndexiFunPtr #-}
+
+-- | Usage: @'glIndexiv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueI@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexiv :: MonadIO m => Ptr GLint -> m ()
+glIndexiv = ffiPtrintIOV glIndexivFunPtr
+
+glIndexivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glIndexivFunPtr = unsafePerformIO (getProcAddress "glIndexiv")
+
+{-# NOINLINE glIndexivFunPtr #-}
+
+-- | Usage: @'glIndexs' c@
+--
+-- The parameter @c@ is a @ColorIndexValueS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexsv'.
+
+
+glIndexs :: MonadIO m => GLshort -> m ()
+glIndexs = ffishortIOV glIndexsFunPtr
+
+glIndexsFunPtr :: FunPtr (GLshort -> IO ())
+glIndexsFunPtr = unsafePerformIO (getProcAddress "glIndexs")
+
+{-# NOINLINE glIndexsFunPtr #-}
+
+-- | Usage: @'glIndexsv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueS@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexsv :: MonadIO m => Ptr GLshort -> m ()
+glIndexsv = ffiPtrshortIOV glIndexsvFunPtr
+
+glIndexsvFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glIndexsvFunPtr = unsafePerformIO (getProcAddress "glIndexsv")
+
+{-# NOINLINE glIndexsvFunPtr #-}
+
+-- | Usage: @'glIndexub' c@
+--
+-- The parameter @c@ is a @ColorIndexValueUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glIndexubv'.
+
+
+glIndexub :: MonadIO m => GLubyte -> m ()
+glIndexub = ffiubyteIOV glIndexubFunPtr
+
+glIndexubFunPtr :: FunPtr (GLubyte -> IO ())
+glIndexubFunPtr = unsafePerformIO (getProcAddress "glIndexub")
+
+{-# NOINLINE glIndexubFunPtr #-}
+
+-- | Usage: @'glIndexubv' c@
+--
+-- The parameter @c@ is a @ColorIndexValueUB@.
+--
+-- The length of @c@ should be @1@.
+
+
+glIndexubv :: MonadIO m => Ptr GLubyte -> m ()
+glIndexubv = ffiPtrubyteIOV glIndexubvFunPtr
+
+glIndexubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glIndexubvFunPtr = unsafePerformIO (getProcAddress "glIndexubv")
+
+{-# NOINLINE glIndexubvFunPtr #-}
+
+-- | Usage: @'glInitNames'@
+
+
+glInitNames :: MonadIO m => m ()
+glInitNames = ffiIOV glInitNamesFunPtr
+
+glInitNamesFunPtr :: FunPtr (IO ())
+glInitNamesFunPtr = unsafePerformIO (getProcAddress "glInitNames")
+
+{-# NOINLINE glInitNamesFunPtr #-}
+
+-- | Usage: @'glInterleavedArrays' format stride pointer@
+--
+-- The parameter @format@ is a @InterleavedArrayFormat@, one of: 'Graphics.GL.Internal.Shared.GL_C3F_V3F', 'Graphics.GL.Internal.Shared.GL_C4F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_C4UB_V2F', 'Graphics.GL.Internal.Shared.GL_C4UB_V3F', 'Graphics.GL.Internal.Shared.GL_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C4F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_C4UB_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_N3F_V3F', 'Graphics.GL.Internal.Shared.GL_T2F_V3F', 'Graphics.GL.Internal.Shared.GL_T4F_C4F_N3F_V4F', 'Graphics.GL.Internal.Shared.GL_T4F_V4F', 'Graphics.GL.Internal.Shared.GL_V2F', 'Graphics.GL.Internal.Shared.GL_V3F'.
+--
+-- The length of @pointer@ should be @COMPSIZE(format,stride)@.
+
+
+glInterleavedArrays :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glInterleavedArrays = ffienumsizeiPtrVIOV glInterleavedArraysFunPtr
+
+glInterleavedArraysFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glInterleavedArraysFunPtr = unsafePerformIO (getProcAddress "glInterleavedArrays")
+
+{-# NOINLINE glInterleavedArraysFunPtr #-}
+
+-- | Usage: @'glIsList' list@
+--
+-- The parameter @list@ is a @List@.
+
+
+glIsList :: MonadIO m => GLuint -> m GLboolean
+glIsList = ffiuintIOboolean glIsListFunPtr
+
+glIsListFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsListFunPtr = unsafePerformIO (getProcAddress "glIsList")
+
+{-# NOINLINE glIsListFunPtr #-}
+
+-- | Usage: @'glLightModelf' pname param@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+
+
+glLightModelf :: MonadIO m => GLenum -> GLfloat -> m ()
+glLightModelf = ffienumfloatIOV glLightModelfFunPtr
+
+glLightModelfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glLightModelfFunPtr = unsafePerformIO (getProcAddress "glLightModelf")
+
+{-# NOINLINE glLightModelfFunPtr #-}
+
+-- | Usage: @'glLightModelfv' pname params@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightModelfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glLightModelfv = ffienumPtrfloatIOV glLightModelfvFunPtr
+
+glLightModelfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glLightModelfvFunPtr = unsafePerformIO (getProcAddress "glLightModelfv")
+
+{-# NOINLINE glLightModelfvFunPtr #-}
+
+-- | Usage: @'glLightModeli' pname param@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+
+
+glLightModeli :: MonadIO m => GLenum -> GLint -> m ()
+glLightModeli = ffienumintIOV glLightModeliFunPtr
+
+glLightModeliFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glLightModeliFunPtr = unsafePerformIO (getProcAddress "glLightModeli")
+
+{-# NOINLINE glLightModeliFunPtr #-}
+
+-- | Usage: @'glLightModeliv' pname params@
+--
+-- The parameter @pname@ is a @LightModelParameter@, one of: 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Ext.EXT.SeparateSpecularColor.GL_LIGHT_MODEL_COLOR_CONTROL_EXT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightModeliv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glLightModeliv = ffienumPtrintIOV glLightModelivFunPtr
+
+glLightModelivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glLightModelivFunPtr = unsafePerformIO (getProcAddress "glLightModeliv")
+
+{-# NOINLINE glLightModelivFunPtr #-}
+
+-- | Usage: @'glLightf' light pname param@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glLightf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glLightf = ffienumenumfloatIOV glLightfFunPtr
+
+glLightfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glLightfFunPtr = unsafePerformIO (getProcAddress "glLightf")
+
+{-# NOINLINE glLightfFunPtr #-}
+
+-- | Usage: @'glLightfv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glLightfv = ffienumenumPtrfloatIOV glLightfvFunPtr
+
+glLightfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glLightfvFunPtr = unsafePerformIO (getProcAddress "glLightfv")
+
+{-# NOINLINE glLightfvFunPtr #-}
+
+-- | Usage: @'glLighti' light pname param@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glLighti :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glLighti = ffienumenumintIOV glLightiFunPtr
+
+glLightiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glLightiFunPtr = unsafePerformIO (getProcAddress "glLighti")
+
+{-# NOINLINE glLightiFunPtr #-}
+
+-- | Usage: @'glLightiv' light pname params@
+--
+-- The parameter @light@ is a @LightName@, one of: 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7'.
+--
+-- The parameter @pname@ is a @LightParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_CONSTANT_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_LINEAR_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_POSITION', 'Graphics.GL.Internal.Shared.GL_QUADRATIC_ATTENUATION', 'Graphics.GL.Internal.Shared.GL_SPECULAR', 'Graphics.GL.Internal.Shared.GL_SPOT_CUTOFF', 'Graphics.GL.Internal.Shared.GL_SPOT_DIRECTION', 'Graphics.GL.Internal.Shared.GL_SPOT_EXPONENT'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glLightiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glLightiv = ffienumenumPtrintIOV glLightivFunPtr
+
+glLightivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glLightivFunPtr = unsafePerformIO (getProcAddress "glLightiv")
+
+{-# NOINLINE glLightivFunPtr #-}
+
+-- | Usage: @'glLineStipple' factor pattern@
+--
+-- The parameter @factor@ is a @CheckedInt32@.
+--
+-- The parameter @pattern@ is a @LineStipple@.
+
+
+glLineStipple :: MonadIO m => GLint -> GLushort -> m ()
+glLineStipple = ffiintushortIOV glLineStippleFunPtr
+
+glLineStippleFunPtr :: FunPtr (GLint -> GLushort -> IO ())
+glLineStippleFunPtr = unsafePerformIO (getProcAddress "glLineStipple")
+
+{-# NOINLINE glLineStippleFunPtr #-}
+
+-- | Usage: @'glListBase' base@
+--
+-- The parameter @base@ is a @List@.
+
+
+glListBase :: MonadIO m => GLuint -> m ()
+glListBase = ffiuintIOV glListBaseFunPtr
+
+glListBaseFunPtr :: FunPtr (GLuint -> IO ())
+glListBaseFunPtr = unsafePerformIO (getProcAddress "glListBase")
+
+{-# NOINLINE glListBaseFunPtr #-}
+
+-- | Usage: @'glLoadIdentity'@
+
+
+glLoadIdentity :: MonadIO m => m ()
+glLoadIdentity = ffiIOV glLoadIdentityFunPtr
+
+glLoadIdentityFunPtr :: FunPtr (IO ())
+glLoadIdentityFunPtr = unsafePerformIO (getProcAddress "glLoadIdentity")
+
+{-# NOINLINE glLoadIdentityFunPtr #-}
+
+-- | Usage: @'glLoadMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glLoadMatrixd = ffiPtrdoubleIOV glLoadMatrixdFunPtr
+
+glLoadMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glLoadMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixd")
+
+{-# NOINLINE glLoadMatrixdFunPtr #-}
+
+-- | Usage: @'glLoadMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glLoadMatrixf = ffiPtrfloatIOV glLoadMatrixfFunPtr
+
+glLoadMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glLoadMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadMatrixf")
+
+{-# NOINLINE glLoadMatrixfFunPtr #-}
+
+-- | Usage: @'glLoadName' name@
+--
+-- The parameter @name@ is a @SelectName@.
+
+
+glLoadName :: MonadIO m => GLuint -> m ()
+glLoadName = ffiuintIOV glLoadNameFunPtr
+
+glLoadNameFunPtr :: FunPtr (GLuint -> IO ())
+glLoadNameFunPtr = unsafePerformIO (getProcAddress "glLoadName")
+
+{-# NOINLINE glLoadNameFunPtr #-}
+
+-- | Usage: @'glLoadTransposeMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glLoadTransposeMatrixd = ffiPtrdoubleIOV glLoadTransposeMatrixdFunPtr
+
+glLoadTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glLoadTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixd")
+
+{-# NOINLINE glLoadTransposeMatrixdFunPtr #-}
+
+-- | Usage: @'glLoadTransposeMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glLoadTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glLoadTransposeMatrixf = ffiPtrfloatIOV glLoadTransposeMatrixfFunPtr
+
+glLoadTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glLoadTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glLoadTransposeMatrixf")
+
+{-# NOINLINE glLoadTransposeMatrixfFunPtr #-}
+
+-- | Usage: @'glMap1d' target u1 u2 stride order points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(target,stride,order)@.
+
+
+glMap1d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMap1d = ffienumdoubledoubleintintPtrdoubleIOV glMap1dFunPtr
+
+glMap1dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMap1dFunPtr = unsafePerformIO (getProcAddress "glMap1d")
+
+{-# NOINLINE glMap1dFunPtr #-}
+
+-- | Usage: @'glMap1f' target u1 u2 stride order points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @order@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(target,stride,order)@.
+
+
+glMap1f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMap1f = ffienumfloatfloatintintPtrfloatIOV glMap1fFunPtr
+
+glMap1fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMap1fFunPtr = unsafePerformIO (getProcAddress "glMap1f")
+
+{-# NOINLINE glMap1fFunPtr #-}
+
+-- | Usage: @'glMap2d' target u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordD@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.
+
+
+glMap2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
+glMap2d = ffienumdoubledoubleintintdoubledoubleintintPtrdoubleIOV glMap2dFunPtr
+
+glMap2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+glMap2dFunPtr = unsafePerformIO (getProcAddress "glMap2d")
+
+{-# NOINLINE glMap2dFunPtr #-}
+
+-- | Usage: @'glMap2f' target u1 u2 ustride uorder v1 v2 vstride vorder points@
+--
+-- The parameter @target@ is a @MapTarget@, one of: 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_GEOMETRY_DEFORMATION_SGIX', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_TEXTURE_DEFORMATION_SGIX'.
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @uorder@ is a @CheckedInt32@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The parameter @vorder@ is a @CheckedInt32@.
+--
+-- The parameter @points@ is a @CoordF@.
+--
+-- The length of @points@ should be @COMPSIZE(target,ustride,uorder,vstride,vorder)@.
+
+
+glMap2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
+glMap2f = ffienumfloatfloatintintfloatfloatintintPtrfloatIOV glMap2fFunPtr
+
+glMap2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+glMap2fFunPtr = unsafePerformIO (getProcAddress "glMap2f")
+
+{-# NOINLINE glMap2fFunPtr #-}
+
+-- | Usage: @'glMapGrid1d' un u1 u2@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+
+
+glMapGrid1d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
+glMapGrid1d = ffiintdoubledoubleIOV glMapGrid1dFunPtr
+
+glMapGrid1dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+glMapGrid1dFunPtr = unsafePerformIO (getProcAddress "glMapGrid1d")
+
+{-# NOINLINE glMapGrid1dFunPtr #-}
+
+-- | Usage: @'glMapGrid1f' un u1 u2@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+
+
+glMapGrid1f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glMapGrid1f = ffiintfloatfloatIOV glMapGrid1fFunPtr
+
+glMapGrid1fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glMapGrid1fFunPtr = unsafePerformIO (getProcAddress "glMapGrid1f")
+
+{-# NOINLINE glMapGrid1fFunPtr #-}
+
+-- | Usage: @'glMapGrid2d' un u1 u2 vn v1 v2@
+--
+-- The parameter @u1@ is a @CoordD@.
+--
+-- The parameter @u2@ is a @CoordD@.
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+
+
+glMapGrid2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> m ()
+glMapGrid2d = ffiintdoubledoubleintdoubledoubleIOV glMapGrid2dFunPtr
+
+glMapGrid2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
+glMapGrid2dFunPtr = unsafePerformIO (getProcAddress "glMapGrid2d")
+
+{-# NOINLINE glMapGrid2dFunPtr #-}
+
+-- | Usage: @'glMapGrid2f' un u1 u2 vn v1 v2@
+--
+-- The parameter @u1@ is a @CoordF@.
+--
+-- The parameter @u2@ is a @CoordF@.
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+
+
+glMapGrid2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> m ()
+glMapGrid2f = ffiintfloatfloatintfloatfloatIOV glMapGrid2fFunPtr
+
+glMapGrid2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
+glMapGrid2fFunPtr = unsafePerformIO (getProcAddress "glMapGrid2f")
+
+{-# NOINLINE glMapGrid2fFunPtr #-}
+
+-- | Usage: @'glMaterialf' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glMaterialf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glMaterialf = ffienumenumfloatIOV glMaterialfFunPtr
+
+glMaterialfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glMaterialfFunPtr = unsafePerformIO (getProcAddress "glMaterialf")
+
+{-# NOINLINE glMaterialfFunPtr #-}
+
+-- | Usage: @'glMaterialfv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMaterialfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glMaterialfv = ffienumenumPtrfloatIOV glMaterialfvFunPtr
+
+glMaterialfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glMaterialfvFunPtr = unsafePerformIO (getProcAddress "glMaterialfv")
+
+{-# NOINLINE glMaterialfvFunPtr #-}
+
+-- | Usage: @'glMateriali' face pname param@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glMateriali :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glMateriali = ffienumenumintIOV glMaterialiFunPtr
+
+glMaterialiFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glMaterialiFunPtr = unsafePerformIO (getProcAddress "glMateriali")
+
+{-# NOINLINE glMaterialiFunPtr #-}
+
+-- | Usage: @'glMaterialiv' face pname params@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @pname@ is a @MaterialParameter@, one of: 'Graphics.GL.Internal.Shared.GL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_AMBIENT_AND_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEXES', 'Graphics.GL.Internal.Shared.GL_DIFFUSE', 'Graphics.GL.Internal.Shared.GL_EMISSION', 'Graphics.GL.Internal.Shared.GL_SHININESS', 'Graphics.GL.Internal.Shared.GL_SPECULAR'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glMaterialiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glMaterialiv = ffienumenumPtrintIOV glMaterialivFunPtr
+
+glMaterialivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glMaterialivFunPtr = unsafePerformIO (getProcAddress "glMaterialiv")
+
+{-# NOINLINE glMaterialivFunPtr #-}
+
+-- | Usage: @'glMatrixMode' mode@
+--
+-- The parameter @mode@ is a @MatrixMode@, one of: 'Graphics.GL.Internal.Shared.GL_MODELVIEW', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_EXT', 'Graphics.GL.Internal.Shared.GL_PROJECTION', 'Graphics.GL.Internal.Shared.GL_TEXTURE'.
+
+
+glMatrixMode :: MonadIO m => GLenum -> m ()
+glMatrixMode = ffienumIOV glMatrixModeFunPtr
+
+glMatrixModeFunPtr :: FunPtr (GLenum -> IO ())
+glMatrixModeFunPtr = unsafePerformIO (getProcAddress "glMatrixMode")
+
+{-# NOINLINE glMatrixModeFunPtr #-}
+
+-- | Usage: @'glMultMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glMultMatrixd = ffiPtrdoubleIOV glMultMatrixdFunPtr
+
+glMultMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glMultMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultMatrixd")
+
+{-# NOINLINE glMultMatrixdFunPtr #-}
+
+-- | Usage: @'glMultMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glMultMatrixf = ffiPtrfloatIOV glMultMatrixfFunPtr
+
+glMultMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glMultMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultMatrixf")
+
+{-# NOINLINE glMultMatrixfFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixd' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultTransposeMatrixd :: MonadIO m => Ptr GLdouble -> m ()
+glMultTransposeMatrixd = ffiPtrdoubleIOV glMultTransposeMatrixdFunPtr
+
+glMultTransposeMatrixdFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glMultTransposeMatrixdFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixd")
+
+{-# NOINLINE glMultTransposeMatrixdFunPtr #-}
+
+-- | Usage: @'glMultTransposeMatrixf' m@
+--
+-- The length of @m@ should be @16@.
+
+
+glMultTransposeMatrixf :: MonadIO m => Ptr GLfloat -> m ()
+glMultTransposeMatrixf = ffiPtrfloatIOV glMultTransposeMatrixfFunPtr
+
+glMultTransposeMatrixfFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glMultTransposeMatrixfFunPtr = unsafePerformIO (getProcAddress "glMultTransposeMatrixf")
+
+{-# NOINLINE glMultTransposeMatrixfFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1d' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1dv'.
+
+
+glMultiTexCoord1d :: MonadIO m => GLenum -> GLdouble -> m ()
+glMultiTexCoord1d = ffienumdoubleIOV glMultiTexCoord1dFunPtr
+
+glMultiTexCoord1dFunPtr :: FunPtr (GLenum -> GLdouble -> IO ())
+glMultiTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1d")
+
+{-# NOINLINE glMultiTexCoord1dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord1dv = ffienumPtrdoubleIOV glMultiTexCoord1dvFunPtr
+
+glMultiTexCoord1dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1dv")
+
+{-# NOINLINE glMultiTexCoord1dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1f' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1fv'.
+
+
+glMultiTexCoord1f :: MonadIO m => GLenum -> GLfloat -> m ()
+glMultiTexCoord1f = ffienumfloatIOV glMultiTexCoord1fFunPtr
+
+glMultiTexCoord1fFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glMultiTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1f")
+
+{-# NOINLINE glMultiTexCoord1fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord1fv = ffienumPtrfloatIOV glMultiTexCoord1fvFunPtr
+
+glMultiTexCoord1fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1fv")
+
+{-# NOINLINE glMultiTexCoord1fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1i' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1iv'.
+
+
+glMultiTexCoord1i :: MonadIO m => GLenum -> GLint -> m ()
+glMultiTexCoord1i = ffienumintIOV glMultiTexCoord1iFunPtr
+
+glMultiTexCoord1iFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glMultiTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1i")
+
+{-# NOINLINE glMultiTexCoord1iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord1iv = ffienumPtrintIOV glMultiTexCoord1ivFunPtr
+
+glMultiTexCoord1ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1iv")
+
+{-# NOINLINE glMultiTexCoord1ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1s' target s@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord1sv'.
+
+
+glMultiTexCoord1s :: MonadIO m => GLenum -> GLshort -> m ()
+glMultiTexCoord1s = ffienumshortIOV glMultiTexCoord1sFunPtr
+
+glMultiTexCoord1sFunPtr :: FunPtr (GLenum -> GLshort -> IO ())
+glMultiTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1s")
+
+{-# NOINLINE glMultiTexCoord1sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord1sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @1@.
+
+
+glMultiTexCoord1sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord1sv = ffienumPtrshortIOV glMultiTexCoord1svFunPtr
+
+glMultiTexCoord1svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord1sv")
+
+{-# NOINLINE glMultiTexCoord1svFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2d' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2dv'.
+
+
+glMultiTexCoord2d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord2d = ffienumdoubledoubleIOV glMultiTexCoord2dFunPtr
+
+glMultiTexCoord2dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2d")
+
+{-# NOINLINE glMultiTexCoord2dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord2dv = ffienumPtrdoubleIOV glMultiTexCoord2dvFunPtr
+
+glMultiTexCoord2dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2dv")
+
+{-# NOINLINE glMultiTexCoord2dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2f' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2fv'.
+
+
+glMultiTexCoord2f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord2f = ffienumfloatfloatIOV glMultiTexCoord2fFunPtr
+
+glMultiTexCoord2fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2f")
+
+{-# NOINLINE glMultiTexCoord2fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord2fv = ffienumPtrfloatIOV glMultiTexCoord2fvFunPtr
+
+glMultiTexCoord2fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2fv")
+
+{-# NOINLINE glMultiTexCoord2fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2i' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2iv'.
+
+
+glMultiTexCoord2i :: MonadIO m => GLenum -> GLint -> GLint -> m ()
+glMultiTexCoord2i = ffienumintintIOV glMultiTexCoord2iFunPtr
+
+glMultiTexCoord2iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+glMultiTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2i")
+
+{-# NOINLINE glMultiTexCoord2iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord2iv = ffienumPtrintIOV glMultiTexCoord2ivFunPtr
+
+glMultiTexCoord2ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2iv")
+
+{-# NOINLINE glMultiTexCoord2ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2s' target s t@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord2sv'.
+
+
+glMultiTexCoord2s :: MonadIO m => GLenum -> GLshort -> GLshort -> m ()
+glMultiTexCoord2s = ffienumshortshortIOV glMultiTexCoord2sFunPtr
+
+glMultiTexCoord2sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+glMultiTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2s")
+
+{-# NOINLINE glMultiTexCoord2sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord2sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glMultiTexCoord2sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord2sv = ffienumPtrshortIOV glMultiTexCoord2svFunPtr
+
+glMultiTexCoord2svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord2sv")
+
+{-# NOINLINE glMultiTexCoord2svFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3d' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3dv'.
+
+
+glMultiTexCoord3d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord3d = ffienumdoubledoubledoubleIOV glMultiTexCoord3dFunPtr
+
+glMultiTexCoord3dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3d")
+
+{-# NOINLINE glMultiTexCoord3dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord3dv = ffienumPtrdoubleIOV glMultiTexCoord3dvFunPtr
+
+glMultiTexCoord3dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3dv")
+
+{-# NOINLINE glMultiTexCoord3dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3f' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3fv'.
+
+
+glMultiTexCoord3f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord3f = ffienumfloatfloatfloatIOV glMultiTexCoord3fFunPtr
+
+glMultiTexCoord3fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3f")
+
+{-# NOINLINE glMultiTexCoord3fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord3fv = ffienumPtrfloatIOV glMultiTexCoord3fvFunPtr
+
+glMultiTexCoord3fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3fv")
+
+{-# NOINLINE glMultiTexCoord3fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3i' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3iv'.
+
+
+glMultiTexCoord3i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord3i = ffienumintintintIOV glMultiTexCoord3iFunPtr
+
+glMultiTexCoord3iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3i")
+
+{-# NOINLINE glMultiTexCoord3iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord3iv = ffienumPtrintIOV glMultiTexCoord3ivFunPtr
+
+glMultiTexCoord3ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3iv")
+
+{-# NOINLINE glMultiTexCoord3ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3s' target s t r@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord3sv'.
+
+
+glMultiTexCoord3s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord3s = ffienumshortshortshortIOV glMultiTexCoord3sFunPtr
+
+glMultiTexCoord3sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3s")
+
+{-# NOINLINE glMultiTexCoord3sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord3sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glMultiTexCoord3sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord3sv = ffienumPtrshortIOV glMultiTexCoord3svFunPtr
+
+glMultiTexCoord3svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord3sv")
+
+{-# NOINLINE glMultiTexCoord3svFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4d' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The parameter @q@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4dv'.
+
+
+glMultiTexCoord4d :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glMultiTexCoord4d = ffienumdoubledoubledoubledoubleIOV glMultiTexCoord4dFunPtr
+
+glMultiTexCoord4dFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glMultiTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4d")
+
+{-# NOINLINE glMultiTexCoord4dFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4dv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4dv :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glMultiTexCoord4dv = ffienumPtrdoubleIOV glMultiTexCoord4dvFunPtr
+
+glMultiTexCoord4dvFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glMultiTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4dv")
+
+{-# NOINLINE glMultiTexCoord4dvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4f' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The parameter @q@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4fv'.
+
+
+glMultiTexCoord4f :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glMultiTexCoord4f = ffienumfloatfloatfloatfloatIOV glMultiTexCoord4fFunPtr
+
+glMultiTexCoord4fFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glMultiTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4f")
+
+{-# NOINLINE glMultiTexCoord4fFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4fv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4fv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glMultiTexCoord4fv = ffienumPtrfloatIOV glMultiTexCoord4fvFunPtr
+
+glMultiTexCoord4fvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glMultiTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4fv")
+
+{-# NOINLINE glMultiTexCoord4fvFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4i' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The parameter @q@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4iv'.
+
+
+glMultiTexCoord4i :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> m ()
+glMultiTexCoord4i = ffienumintintintintIOV glMultiTexCoord4iFunPtr
+
+glMultiTexCoord4iFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+glMultiTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4i")
+
+{-# NOINLINE glMultiTexCoord4iFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4iv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4iv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glMultiTexCoord4iv = ffienumPtrintIOV glMultiTexCoord4ivFunPtr
+
+glMultiTexCoord4ivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glMultiTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4iv")
+
+{-# NOINLINE glMultiTexCoord4ivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4s' target s t r q@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The parameter @q@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glMultiTexCoord4sv'.
+
+
+glMultiTexCoord4s :: MonadIO m => GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glMultiTexCoord4s = ffienumshortshortshortshortIOV glMultiTexCoord4sFunPtr
+
+glMultiTexCoord4sFunPtr :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glMultiTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4s")
+
+{-# NOINLINE glMultiTexCoord4sFunPtr #-}
+
+-- | Usage: @'glMultiTexCoord4sv' target v@
+--
+-- The parameter @target@ is a @TextureUnit@.
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glMultiTexCoord4sv :: MonadIO m => GLenum -> Ptr GLshort -> m ()
+glMultiTexCoord4sv = ffienumPtrshortIOV glMultiTexCoord4svFunPtr
+
+glMultiTexCoord4svFunPtr :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+glMultiTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoord4sv")
+
+{-# NOINLINE glMultiTexCoord4svFunPtr #-}
+
+-- | Usage: @'glNewList' list mode@
+--
+-- The parameter @list@ is a @List@.
+--
+-- The parameter @mode@ is a @ListMode@, one of: 'Graphics.GL.Internal.Shared.GL_COMPILE', 'Graphics.GL.Internal.Shared.GL_COMPILE_AND_EXECUTE'.
+
+
+glNewList :: MonadIO m => GLuint -> GLenum -> m ()
+glNewList = ffiuintenumIOV glNewListFunPtr
+
+glNewListFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNewListFunPtr = unsafePerformIO (getProcAddress "glNewList")
+
+{-# NOINLINE glNewListFunPtr #-}
+
+-- | Usage: @'glNormal3b' nx ny nz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3bv'.
+
+
+glNormal3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glNormal3b = ffibytebytebyteIOV glNormal3bFunPtr
+
+glNormal3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glNormal3bFunPtr = unsafePerformIO (getProcAddress "glNormal3b")
+
+{-# NOINLINE glNormal3bFunPtr #-}
+
+-- | Usage: @'glNormal3bv' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3bv :: MonadIO m => Ptr GLbyte -> m ()
+glNormal3bv = ffiPtrbyteIOV glNormal3bvFunPtr
+
+glNormal3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glNormal3bvFunPtr = unsafePerformIO (getProcAddress "glNormal3bv")
+
+{-# NOINLINE glNormal3bvFunPtr #-}
+
+-- | Usage: @'glNormal3d' nx ny nz@
+--
+-- The parameter @nx@ is a @CoordD@.
+--
+-- The parameter @ny@ is a @CoordD@.
+--
+-- The parameter @nz@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3dv'.
+
+
+glNormal3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glNormal3d = ffidoubledoubledoubleIOV glNormal3dFunPtr
+
+glNormal3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glNormal3dFunPtr = unsafePerformIO (getProcAddress "glNormal3d")
+
+{-# NOINLINE glNormal3dFunPtr #-}
+
+-- | Usage: @'glNormal3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3dv :: MonadIO m => Ptr GLdouble -> m ()
+glNormal3dv = ffiPtrdoubleIOV glNormal3dvFunPtr
+
+glNormal3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glNormal3dvFunPtr = unsafePerformIO (getProcAddress "glNormal3dv")
+
+{-# NOINLINE glNormal3dvFunPtr #-}
+
+-- | Usage: @'glNormal3f' nx ny nz@
+--
+-- The parameter @nx@ is a @CoordF@.
+--
+-- The parameter @ny@ is a @CoordF@.
+--
+-- The parameter @nz@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3fv'.
+
+
+glNormal3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glNormal3f = ffifloatfloatfloatIOV glNormal3fFunPtr
+
+glNormal3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glNormal3fFunPtr = unsafePerformIO (getProcAddress "glNormal3f")
+
+{-# NOINLINE glNormal3fFunPtr #-}
+
+-- | Usage: @'glNormal3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3fv :: MonadIO m => Ptr GLfloat -> m ()
+glNormal3fv = ffiPtrfloatIOV glNormal3fvFunPtr
+
+glNormal3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glNormal3fvFunPtr = unsafePerformIO (getProcAddress "glNormal3fv")
+
+{-# NOINLINE glNormal3fvFunPtr #-}
+
+-- | Usage: @'glNormal3i' nx ny nz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3iv'.
+
+
+glNormal3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glNormal3i = ffiintintintIOV glNormal3iFunPtr
+
+glNormal3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glNormal3iFunPtr = unsafePerformIO (getProcAddress "glNormal3i")
+
+{-# NOINLINE glNormal3iFunPtr #-}
+
+-- | Usage: @'glNormal3iv' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3iv :: MonadIO m => Ptr GLint -> m ()
+glNormal3iv = ffiPtrintIOV glNormal3ivFunPtr
+
+glNormal3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glNormal3ivFunPtr = unsafePerformIO (getProcAddress "glNormal3iv")
+
+{-# NOINLINE glNormal3ivFunPtr #-}
+
+-- | Usage: @'glNormal3s' nx ny nz@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glNormal3sv'.
+
+
+glNormal3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glNormal3s = ffishortshortshortIOV glNormal3sFunPtr
+
+glNormal3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glNormal3sFunPtr = unsafePerformIO (getProcAddress "glNormal3s")
+
+{-# NOINLINE glNormal3sFunPtr #-}
+
+-- | Usage: @'glNormal3sv' v@
+--
+-- The length of @v@ should be @3@.
+
+
+glNormal3sv :: MonadIO m => Ptr GLshort -> m ()
+glNormal3sv = ffiPtrshortIOV glNormal3svFunPtr
+
+glNormal3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glNormal3svFunPtr = unsafePerformIO (getProcAddress "glNormal3sv")
+
+{-# NOINLINE glNormal3svFunPtr #-}
+
+-- | Usage: @'glNormalPointer' type stride pointer@
+--
+-- The parameter @type@ is a @NormalPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(type,stride)@.
+
+
+glNormalPointer :: MonadIO m => GLenum -> GLsizei -> Ptr () -> m ()
+glNormalPointer = ffienumsizeiPtrVIOV glNormalPointerFunPtr
+
+glNormalPointerFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr () -> IO ())
+glNormalPointerFunPtr = unsafePerformIO (getProcAddress "glNormalPointer")
+
+{-# NOINLINE glNormalPointerFunPtr #-}
+
+-- | Usage: @'glOrtho' left right bottom top zNear zFar@
+
+
+glOrtho :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glOrtho = ffidoubledoubledoubledoubledoubledoubleIOV glOrthoFunPtr
+
+glOrthoFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glOrthoFunPtr = unsafePerformIO (getProcAddress "glOrtho")
+
+{-# NOINLINE glOrthoFunPtr #-}
+
+-- | Usage: @'glPassThrough' token@
+--
+-- The parameter @token@ is a @FeedbackElement@.
+
+
+glPassThrough :: MonadIO m => GLfloat -> m ()
+glPassThrough = ffifloatIOV glPassThroughFunPtr
+
+glPassThroughFunPtr :: FunPtr (GLfloat -> IO ())
+glPassThroughFunPtr = unsafePerformIO (getProcAddress "glPassThrough")
+
+{-# NOINLINE glPassThroughFunPtr #-}
+
+-- | Usage: @'glPixelMapfv' map mapsize values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The parameter @mapsize@ is a @CheckedInt32@.
+--
+-- The length of @values@ should be @mapsize@.
+
+
+glPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
+glPixelMapfv = ffienumsizeiPtrfloatIOV glPixelMapfvFunPtr
+
+glPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+glPixelMapfvFunPtr = unsafePerformIO (getProcAddress "glPixelMapfv")
+
+{-# NOINLINE glPixelMapfvFunPtr #-}
+
+-- | Usage: @'glPixelMapuiv' map mapsize values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The parameter @mapsize@ is a @CheckedInt32@.
+--
+-- The length of @values@ should be @mapsize@.
+
+
+glPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glPixelMapuiv = ffienumsizeiPtruintIOV glPixelMapuivFunPtr
+
+glPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glPixelMapuivFunPtr = unsafePerformIO (getProcAddress "glPixelMapuiv")
+
+{-# NOINLINE glPixelMapuivFunPtr #-}
+
+-- | Usage: @'glPixelMapusv' map mapsize values@
+--
+-- The parameter @map@ is a @PixelMap@, one of: 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S'.
+--
+-- The parameter @mapsize@ is a @CheckedInt32@.
+--
+-- The length of @values@ should be @mapsize@.
+
+
+glPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
+glPixelMapusv = ffienumsizeiPtrushortIOV glPixelMapusvFunPtr
+
+glPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+glPixelMapusvFunPtr = unsafePerformIO (getProcAddress "glPixelMapusv")
+
+{-# NOINLINE glPixelMapusvFunPtr #-}
+
+-- | Usage: @'glPixelTransferf' pname param@
+--
+-- The parameter @pname@ is a @PixelTransferParameter@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPixelTransferf :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelTransferf = ffienumfloatIOV glPixelTransferfFunPtr
+
+glPixelTransferfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelTransferfFunPtr = unsafePerformIO (getProcAddress "glPixelTransferf")
+
+{-# NOINLINE glPixelTransferfFunPtr #-}
+
+-- | Usage: @'glPixelTransferi' pname param@
+--
+-- The parameter @pname@ is a @PixelTransferParameter@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_ALPHA_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_BLUE_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_GREEN_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_BIAS', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_COLOR_MATRIX_RED_SCALE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_ALPHA_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_BLUE_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_BIAS', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.ARB.Imaging.GL_POST_CONVOLUTION_RED_SCALE', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glPixelTransferi :: MonadIO m => GLenum -> GLint -> m ()
+glPixelTransferi = ffienumintIOV glPixelTransferiFunPtr
+
+glPixelTransferiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelTransferiFunPtr = unsafePerformIO (getProcAddress "glPixelTransferi")
+
+{-# NOINLINE glPixelTransferiFunPtr #-}
+
+-- | Usage: @'glPixelZoom' xfactor yfactor@
+
+
+glPixelZoom :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPixelZoom = ffifloatfloatIOV glPixelZoomFunPtr
+
+glPixelZoomFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPixelZoomFunPtr = unsafePerformIO (getProcAddress "glPixelZoom")
+
+{-# NOINLINE glPixelZoomFunPtr #-}
+
+-- | Usage: @'glPolygonStipple' mask@
+--
+-- The length of @mask@ should be @COMPSIZE()@.
+
+
+glPolygonStipple :: MonadIO m => Ptr GLubyte -> m ()
+glPolygonStipple = ffiPtrubyteIOV glPolygonStippleFunPtr
+
+glPolygonStippleFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glPolygonStippleFunPtr = unsafePerformIO (getProcAddress "glPolygonStipple")
+
+{-# NOINLINE glPolygonStippleFunPtr #-}
+
+-- | Usage: @'glPopAttrib'@
+
+
+glPopAttrib :: MonadIO m => m ()
+glPopAttrib = ffiIOV glPopAttribFunPtr
+
+glPopAttribFunPtr :: FunPtr (IO ())
+glPopAttribFunPtr = unsafePerformIO (getProcAddress "glPopAttrib")
+
+{-# NOINLINE glPopAttribFunPtr #-}
+
+-- | Usage: @'glPopClientAttrib'@
+
+
+glPopClientAttrib :: MonadIO m => m ()
+glPopClientAttrib = ffiIOV glPopClientAttribFunPtr
+
+glPopClientAttribFunPtr :: FunPtr (IO ())
+glPopClientAttribFunPtr = unsafePerformIO (getProcAddress "glPopClientAttrib")
+
+{-# NOINLINE glPopClientAttribFunPtr #-}
+
+-- | Usage: @'glPopMatrix'@
+
+
+glPopMatrix :: MonadIO m => m ()
+glPopMatrix = ffiIOV glPopMatrixFunPtr
+
+glPopMatrixFunPtr :: FunPtr (IO ())
+glPopMatrixFunPtr = unsafePerformIO (getProcAddress "glPopMatrix")
+
+{-# NOINLINE glPopMatrixFunPtr #-}
+
+-- | Usage: @'glPopName'@
+
+
+glPopName :: MonadIO m => m ()
+glPopName = ffiIOV glPopNameFunPtr
+
+glPopNameFunPtr :: FunPtr (IO ())
+glPopNameFunPtr = unsafePerformIO (getProcAddress "glPopName")
+
+{-# NOINLINE glPopNameFunPtr #-}
+
+-- | Usage: @'glPrioritizeTextures' n textures priorities@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- The length of @priorities@ should be @n@.
+
+
+glPrioritizeTextures :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLfloat -> m ()
+glPrioritizeTextures = ffisizeiPtruintPtrfloatIOV glPrioritizeTexturesFunPtr
+
+glPrioritizeTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+glPrioritizeTexturesFunPtr = unsafePerformIO (getProcAddress "glPrioritizeTextures")
+
+{-# NOINLINE glPrioritizeTexturesFunPtr #-}
+
+-- | Usage: @'glPushAttrib' mask@
+--
+-- The parameter @mask@ is a @AttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_CURRENT_BIT', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_ENABLE_BIT', 'Graphics.GL.Internal.Shared.GL_EVAL_BIT', 'Graphics.GL.Internal.Shared.GL_FOG_BIT', 'Graphics.GL.Internal.Shared.GL_HINT_BIT', 'Graphics.GL.Internal.Shared.GL_LIGHTING_BIT', 'Graphics.GL.Internal.Shared.GL_LINE_BIT', 'Graphics.GL.Internal.Shared.GL_LIST_BIT', 'Graphics.GL.Internal.Shared.GL_MULTISAMPLE_BIT', 'Graphics.GL.Ext.ThreeDFX.Multisample.GL_MULTISAMPLE_BIT_3DFX', 'Graphics.GL.Ext.ARB.Multisample.GL_MULTISAMPLE_BIT_ARB', 'Graphics.GL.Ext.EXT.Multisample.GL_MULTISAMPLE_BIT_EXT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MODE_BIT', 'Graphics.GL.Internal.Shared.GL_POINT_BIT', 'Graphics.GL.Internal.Shared.GL_POLYGON_BIT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE_BIT', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BIT', 'Graphics.GL.Internal.Shared.GL_TRANSFORM_BIT', 'Graphics.GL.Internal.Shared.GL_VIEWPORT_BIT'.
+
+
+glPushAttrib :: MonadIO m => GLbitfield -> m ()
+glPushAttrib = ffibitfieldIOV glPushAttribFunPtr
+
+glPushAttribFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushAttribFunPtr = unsafePerformIO (getProcAddress "glPushAttrib")
+
+{-# NOINLINE glPushAttribFunPtr #-}
+
+-- | Usage: @'glPushClientAttrib' mask@
+--
+-- The parameter @mask@ is a @ClientAttribMask@, one of: 'Graphics.GL.Internal.Shared.GL_CLIENT_ALL_ATTRIB_BITS', 'Graphics.GL.Internal.Shared.GL_CLIENT_PIXEL_STORE_BIT', 'Graphics.GL.Internal.Shared.GL_CLIENT_VERTEX_ARRAY_BIT'.
+
+
+glPushClientAttrib :: MonadIO m => GLbitfield -> m ()
+glPushClientAttrib = ffibitfieldIOV glPushClientAttribFunPtr
+
+glPushClientAttribFunPtr :: FunPtr (GLbitfield -> IO ())
+glPushClientAttribFunPtr = unsafePerformIO (getProcAddress "glPushClientAttrib")
+
+{-# NOINLINE glPushClientAttribFunPtr #-}
+
+-- | Usage: @'glPushMatrix'@
+
+
+glPushMatrix :: MonadIO m => m ()
+glPushMatrix = ffiIOV glPushMatrixFunPtr
+
+glPushMatrixFunPtr :: FunPtr (IO ())
+glPushMatrixFunPtr = unsafePerformIO (getProcAddress "glPushMatrix")
+
+{-# NOINLINE glPushMatrixFunPtr #-}
+
+-- | Usage: @'glPushName' name@
+--
+-- The parameter @name@ is a @SelectName@.
+
+
+glPushName :: MonadIO m => GLuint -> m ()
+glPushName = ffiuintIOV glPushNameFunPtr
+
+glPushNameFunPtr :: FunPtr (GLuint -> IO ())
+glPushNameFunPtr = unsafePerformIO (getProcAddress "glPushName")
+
+{-# NOINLINE glPushNameFunPtr #-}
+
+-- | Usage: @'glRasterPos2d' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2dv'.
+
+
+glRasterPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glRasterPos2d = ffidoubledoubleIOV glRasterPos2dFunPtr
+
+glRasterPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glRasterPos2dFunPtr = unsafePerformIO (getProcAddress "glRasterPos2d")
+
+{-# NOINLINE glRasterPos2dFunPtr #-}
+
+-- | Usage: @'glRasterPos2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos2dv = ffiPtrdoubleIOV glRasterPos2dvFunPtr
+
+glRasterPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos2dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2dv")
+
+{-# NOINLINE glRasterPos2dvFunPtr #-}
+
+-- | Usage: @'glRasterPos2f' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2fv'.
+
+
+glRasterPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glRasterPos2f = ffifloatfloatIOV glRasterPos2fFunPtr
+
+glRasterPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glRasterPos2fFunPtr = unsafePerformIO (getProcAddress "glRasterPos2f")
+
+{-# NOINLINE glRasterPos2fFunPtr #-}
+
+-- | Usage: @'glRasterPos2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos2fv = ffiPtrfloatIOV glRasterPos2fvFunPtr
+
+glRasterPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos2fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos2fv")
+
+{-# NOINLINE glRasterPos2fvFunPtr #-}
+
+-- | Usage: @'glRasterPos2i' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2iv'.
+
+
+glRasterPos2i :: MonadIO m => GLint -> GLint -> m ()
+glRasterPos2i = ffiintintIOV glRasterPos2iFunPtr
+
+glRasterPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glRasterPos2iFunPtr = unsafePerformIO (getProcAddress "glRasterPos2i")
+
+{-# NOINLINE glRasterPos2iFunPtr #-}
+
+-- | Usage: @'glRasterPos2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos2iv = ffiPtrintIOV glRasterPos2ivFunPtr
+
+glRasterPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos2ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos2iv")
+
+{-# NOINLINE glRasterPos2ivFunPtr #-}
+
+-- | Usage: @'glRasterPos2s' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos2sv'.
+
+
+glRasterPos2s :: MonadIO m => GLshort -> GLshort -> m ()
+glRasterPos2s = ffishortshortIOV glRasterPos2sFunPtr
+
+glRasterPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glRasterPos2sFunPtr = unsafePerformIO (getProcAddress "glRasterPos2s")
+
+{-# NOINLINE glRasterPos2sFunPtr #-}
+
+-- | Usage: @'glRasterPos2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glRasterPos2sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos2sv = ffiPtrshortIOV glRasterPos2svFunPtr
+
+glRasterPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos2svFunPtr = unsafePerformIO (getProcAddress "glRasterPos2sv")
+
+{-# NOINLINE glRasterPos2svFunPtr #-}
+
+-- | Usage: @'glRasterPos3d' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3dv'.
+
+
+glRasterPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glRasterPos3d = ffidoubledoubledoubleIOV glRasterPos3dFunPtr
+
+glRasterPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glRasterPos3dFunPtr = unsafePerformIO (getProcAddress "glRasterPos3d")
+
+{-# NOINLINE glRasterPos3dFunPtr #-}
+
+-- | Usage: @'glRasterPos3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos3dv = ffiPtrdoubleIOV glRasterPos3dvFunPtr
+
+glRasterPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos3dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3dv")
+
+{-# NOINLINE glRasterPos3dvFunPtr #-}
+
+-- | Usage: @'glRasterPos3f' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3fv'.
+
+
+glRasterPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glRasterPos3f = ffifloatfloatfloatIOV glRasterPos3fFunPtr
+
+glRasterPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glRasterPos3fFunPtr = unsafePerformIO (getProcAddress "glRasterPos3f")
+
+{-# NOINLINE glRasterPos3fFunPtr #-}
+
+-- | Usage: @'glRasterPos3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos3fv = ffiPtrfloatIOV glRasterPos3fvFunPtr
+
+glRasterPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos3fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos3fv")
+
+{-# NOINLINE glRasterPos3fvFunPtr #-}
+
+-- | Usage: @'glRasterPos3i' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3iv'.
+
+
+glRasterPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glRasterPos3i = ffiintintintIOV glRasterPos3iFunPtr
+
+glRasterPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glRasterPos3iFunPtr = unsafePerformIO (getProcAddress "glRasterPos3i")
+
+{-# NOINLINE glRasterPos3iFunPtr #-}
+
+-- | Usage: @'glRasterPos3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos3iv = ffiPtrintIOV glRasterPos3ivFunPtr
+
+glRasterPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos3ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos3iv")
+
+{-# NOINLINE glRasterPos3ivFunPtr #-}
+
+-- | Usage: @'glRasterPos3s' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos3sv'.
+
+
+glRasterPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glRasterPos3s = ffishortshortshortIOV glRasterPos3sFunPtr
+
+glRasterPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glRasterPos3sFunPtr = unsafePerformIO (getProcAddress "glRasterPos3s")
+
+{-# NOINLINE glRasterPos3sFunPtr #-}
+
+-- | Usage: @'glRasterPos3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glRasterPos3sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos3sv = ffiPtrshortIOV glRasterPos3svFunPtr
+
+glRasterPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos3svFunPtr = unsafePerformIO (getProcAddress "glRasterPos3sv")
+
+{-# NOINLINE glRasterPos3svFunPtr #-}
+
+-- | Usage: @'glRasterPos4d' x y z w@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The parameter @w@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4dv'.
+
+
+glRasterPos4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRasterPos4d = ffidoubledoubledoubledoubleIOV glRasterPos4dFunPtr
+
+glRasterPos4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRasterPos4dFunPtr = unsafePerformIO (getProcAddress "glRasterPos4d")
+
+{-# NOINLINE glRasterPos4dFunPtr #-}
+
+-- | Usage: @'glRasterPos4dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4dv :: MonadIO m => Ptr GLdouble -> m ()
+glRasterPos4dv = ffiPtrdoubleIOV glRasterPos4dvFunPtr
+
+glRasterPos4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glRasterPos4dvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4dv")
+
+{-# NOINLINE glRasterPos4dvFunPtr #-}
+
+-- | Usage: @'glRasterPos4f' x y z w@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The parameter @w@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4fv'.
+
+
+glRasterPos4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRasterPos4f = ffifloatfloatfloatfloatIOV glRasterPos4fFunPtr
+
+glRasterPos4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRasterPos4fFunPtr = unsafePerformIO (getProcAddress "glRasterPos4f")
+
+{-# NOINLINE glRasterPos4fFunPtr #-}
+
+-- | Usage: @'glRasterPos4fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4fv :: MonadIO m => Ptr GLfloat -> m ()
+glRasterPos4fv = ffiPtrfloatIOV glRasterPos4fvFunPtr
+
+glRasterPos4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glRasterPos4fvFunPtr = unsafePerformIO (getProcAddress "glRasterPos4fv")
+
+{-# NOINLINE glRasterPos4fvFunPtr #-}
+
+-- | Usage: @'glRasterPos4i' x y z w@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The parameter @w@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4iv'.
+
+
+glRasterPos4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glRasterPos4i = ffiintintintintIOV glRasterPos4iFunPtr
+
+glRasterPos4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glRasterPos4iFunPtr = unsafePerformIO (getProcAddress "glRasterPos4i")
+
+{-# NOINLINE glRasterPos4iFunPtr #-}
+
+-- | Usage: @'glRasterPos4iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4iv :: MonadIO m => Ptr GLint -> m ()
+glRasterPos4iv = ffiPtrintIOV glRasterPos4ivFunPtr
+
+glRasterPos4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glRasterPos4ivFunPtr = unsafePerformIO (getProcAddress "glRasterPos4iv")
+
+{-# NOINLINE glRasterPos4ivFunPtr #-}
+
+-- | Usage: @'glRasterPos4s' x y z w@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The parameter @w@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRasterPos4sv'.
+
+
+glRasterPos4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glRasterPos4s = ffishortshortshortshortIOV glRasterPos4sFunPtr
+
+glRasterPos4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glRasterPos4sFunPtr = unsafePerformIO (getProcAddress "glRasterPos4s")
+
+{-# NOINLINE glRasterPos4sFunPtr #-}
+
+-- | Usage: @'glRasterPos4sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glRasterPos4sv :: MonadIO m => Ptr GLshort -> m ()
+glRasterPos4sv = ffiPtrshortIOV glRasterPos4svFunPtr
+
+glRasterPos4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glRasterPos4svFunPtr = unsafePerformIO (getProcAddress "glRasterPos4sv")
+
+{-# NOINLINE glRasterPos4svFunPtr #-}
+
+-- | Usage: @'glRectd' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordD@.
+--
+-- The parameter @y1@ is a @CoordD@.
+--
+-- The parameter @x2@ is a @CoordD@.
+--
+-- The parameter @y2@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectdv'.
+
+
+glRectd :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRectd = ffidoubledoubledoubledoubleIOV glRectdFunPtr
+
+glRectdFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRectdFunPtr = unsafePerformIO (getProcAddress "glRectd")
+
+{-# NOINLINE glRectdFunPtr #-}
+
+-- | Usage: @'glRectdv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordD@.
+--
+-- The parameter @v2@ is a @CoordD@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectdv :: MonadIO m => Ptr GLdouble -> Ptr GLdouble -> m ()
+glRectdv = ffiPtrdoublePtrdoubleIOV glRectdvFunPtr
+
+glRectdvFunPtr :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())
+glRectdvFunPtr = unsafePerformIO (getProcAddress "glRectdv")
+
+{-# NOINLINE glRectdvFunPtr #-}
+
+-- | Usage: @'glRectf' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordF@.
+--
+-- The parameter @y1@ is a @CoordF@.
+--
+-- The parameter @x2@ is a @CoordF@.
+--
+-- The parameter @y2@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectfv'.
+
+
+glRectf :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRectf = ffifloatfloatfloatfloatIOV glRectfFunPtr
+
+glRectfFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRectfFunPtr = unsafePerformIO (getProcAddress "glRectf")
+
+{-# NOINLINE glRectfFunPtr #-}
+
+-- | Usage: @'glRectfv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordF@.
+--
+-- The parameter @v2@ is a @CoordF@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectfv :: MonadIO m => Ptr GLfloat -> Ptr GLfloat -> m ()
+glRectfv = ffiPtrfloatPtrfloatIOV glRectfvFunPtr
+
+glRectfvFunPtr :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+glRectfvFunPtr = unsafePerformIO (getProcAddress "glRectfv")
+
+{-# NOINLINE glRectfvFunPtr #-}
+
+-- | Usage: @'glRecti' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordI@.
+--
+-- The parameter @y1@ is a @CoordI@.
+--
+-- The parameter @x2@ is a @CoordI@.
+--
+-- The parameter @y2@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectiv'.
+
+
+glRecti :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glRecti = ffiintintintintIOV glRectiFunPtr
+
+glRectiFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glRectiFunPtr = unsafePerformIO (getProcAddress "glRecti")
+
+{-# NOINLINE glRectiFunPtr #-}
+
+-- | Usage: @'glRectiv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordI@.
+--
+-- The parameter @v2@ is a @CoordI@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectiv :: MonadIO m => Ptr GLint -> Ptr GLint -> m ()
+glRectiv = ffiPtrintPtrintIOV glRectivFunPtr
+
+glRectivFunPtr :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())
+glRectivFunPtr = unsafePerformIO (getProcAddress "glRectiv")
+
+{-# NOINLINE glRectivFunPtr #-}
+
+-- | Usage: @'glRects' x1 y1 x2 y2@
+--
+-- The parameter @x1@ is a @CoordS@.
+--
+-- The parameter @y1@ is a @CoordS@.
+--
+-- The parameter @x2@ is a @CoordS@.
+--
+-- The parameter @y2@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glRectsv'.
+
+
+glRects :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glRects = ffishortshortshortshortIOV glRectsFunPtr
+
+glRectsFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glRectsFunPtr = unsafePerformIO (getProcAddress "glRects")
+
+{-# NOINLINE glRectsFunPtr #-}
+
+-- | Usage: @'glRectsv' v1 v2@
+--
+-- The parameter @v1@ is a @CoordS@.
+--
+-- The parameter @v2@ is a @CoordS@.
+--
+-- The length of @v1@ should be @2@.
+--
+-- The length of @v2@ should be @2@.
+
+
+glRectsv :: MonadIO m => Ptr GLshort -> Ptr GLshort -> m ()
+glRectsv = ffiPtrshortPtrshortIOV glRectsvFunPtr
+
+glRectsvFunPtr :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())
+glRectsvFunPtr = unsafePerformIO (getProcAddress "glRectsv")
+
+{-# NOINLINE glRectsvFunPtr #-}
+
+-- | Usage: @'glRenderMode' mode@
+--
+-- The parameter @mode@ is a @RenderingMode@, one of: 'Graphics.GL.Internal.Shared.GL_FEEDBACK', 'Graphics.GL.Internal.Shared.GL_RENDER', 'Graphics.GL.Internal.Shared.GL_SELECT'.
+
+
+glRenderMode :: MonadIO m => GLenum -> m GLint
+glRenderMode = ffienumIOint glRenderModeFunPtr
+
+glRenderModeFunPtr :: FunPtr (GLenum -> IO GLint)
+glRenderModeFunPtr = unsafePerformIO (getProcAddress "glRenderMode")
+
+{-# NOINLINE glRenderModeFunPtr #-}
+
+-- | Usage: @'glRotated' angle x y z@
+
+
+glRotated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glRotated = ffidoubledoubledoubledoubleIOV glRotatedFunPtr
+
+glRotatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glRotatedFunPtr = unsafePerformIO (getProcAddress "glRotated")
+
+{-# NOINLINE glRotatedFunPtr #-}
+
+-- | Usage: @'glRotatef' angle x y z@
+
+
+glRotatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glRotatef = ffifloatfloatfloatfloatIOV glRotatefFunPtr
+
+glRotatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glRotatefFunPtr = unsafePerformIO (getProcAddress "glRotatef")
+
+{-# NOINLINE glRotatefFunPtr #-}
+
+-- | Usage: @'glScaled' x y z@
+
+
+glScaled :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glScaled = ffidoubledoubledoubleIOV glScaledFunPtr
+
+glScaledFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glScaledFunPtr = unsafePerformIO (getProcAddress "glScaled")
+
+{-# NOINLINE glScaledFunPtr #-}
+
+-- | Usage: @'glScalef' x y z@
+
+
+glScalef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glScalef = ffifloatfloatfloatIOV glScalefFunPtr
+
+glScalefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glScalefFunPtr = unsafePerformIO (getProcAddress "glScalef")
+
+{-# NOINLINE glScalefFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3b' red green blue@
+--
+-- The parameter @red@ is a @ColorB@.
+--
+-- The parameter @green@ is a @ColorB@.
+--
+-- The parameter @blue@ is a @ColorB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3bv'.
+
+
+glSecondaryColor3b :: MonadIO m => GLbyte -> GLbyte -> GLbyte -> m ()
+glSecondaryColor3b = ffibytebytebyteIOV glSecondaryColor3bFunPtr
+
+glSecondaryColor3bFunPtr :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+glSecondaryColor3bFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3b")
+
+{-# NOINLINE glSecondaryColor3bFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3bv' v@
+--
+-- The parameter @v@ is a @ColorB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3bv :: MonadIO m => Ptr GLbyte -> m ()
+glSecondaryColor3bv = ffiPtrbyteIOV glSecondaryColor3bvFunPtr
+
+glSecondaryColor3bvFunPtr :: FunPtr (Ptr GLbyte -> IO ())
+glSecondaryColor3bvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3bv")
+
+{-# NOINLINE glSecondaryColor3bvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3d' red green blue@
+--
+-- The parameter @red@ is a @ColorD@.
+--
+-- The parameter @green@ is a @ColorD@.
+--
+-- The parameter @blue@ is a @ColorD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3dv'.
+
+
+glSecondaryColor3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glSecondaryColor3d = ffidoubledoubledoubleIOV glSecondaryColor3dFunPtr
+
+glSecondaryColor3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glSecondaryColor3dFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3d")
+
+{-# NOINLINE glSecondaryColor3dFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3dv' v@
+--
+-- The parameter @v@ is a @ColorD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3dv :: MonadIO m => Ptr GLdouble -> m ()
+glSecondaryColor3dv = ffiPtrdoubleIOV glSecondaryColor3dvFunPtr
+
+glSecondaryColor3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glSecondaryColor3dvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3dv")
+
+{-# NOINLINE glSecondaryColor3dvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3f' red green blue@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3fv'.
+
+
+glSecondaryColor3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glSecondaryColor3f = ffifloatfloatfloatIOV glSecondaryColor3fFunPtr
+
+glSecondaryColor3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glSecondaryColor3fFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3f")
+
+{-# NOINLINE glSecondaryColor3fFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3fv' v@
+--
+-- The parameter @v@ is a @ColorF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3fv :: MonadIO m => Ptr GLfloat -> m ()
+glSecondaryColor3fv = ffiPtrfloatIOV glSecondaryColor3fvFunPtr
+
+glSecondaryColor3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glSecondaryColor3fvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3fv")
+
+{-# NOINLINE glSecondaryColor3fvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3i' red green blue@
+--
+-- The parameter @red@ is a @ColorI@.
+--
+-- The parameter @green@ is a @ColorI@.
+--
+-- The parameter @blue@ is a @ColorI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3iv'.
+
+
+glSecondaryColor3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glSecondaryColor3i = ffiintintintIOV glSecondaryColor3iFunPtr
+
+glSecondaryColor3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glSecondaryColor3iFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3i")
+
+{-# NOINLINE glSecondaryColor3iFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3iv' v@
+--
+-- The parameter @v@ is a @ColorI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3iv :: MonadIO m => Ptr GLint -> m ()
+glSecondaryColor3iv = ffiPtrintIOV glSecondaryColor3ivFunPtr
+
+glSecondaryColor3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glSecondaryColor3ivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3iv")
+
+{-# NOINLINE glSecondaryColor3ivFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3s' red green blue@
+--
+-- The parameter @red@ is a @ColorS@.
+--
+-- The parameter @green@ is a @ColorS@.
+--
+-- The parameter @blue@ is a @ColorS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3sv'.
+
+
+glSecondaryColor3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glSecondaryColor3s = ffishortshortshortIOV glSecondaryColor3sFunPtr
+
+glSecondaryColor3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glSecondaryColor3sFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3s")
+
+{-# NOINLINE glSecondaryColor3sFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3sv' v@
+--
+-- The parameter @v@ is a @ColorS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3sv :: MonadIO m => Ptr GLshort -> m ()
+glSecondaryColor3sv = ffiPtrshortIOV glSecondaryColor3svFunPtr
+
+glSecondaryColor3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glSecondaryColor3svFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3sv")
+
+{-# NOINLINE glSecondaryColor3svFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ub' red green blue@
+--
+-- The parameter @red@ is a @ColorUB@.
+--
+-- The parameter @green@ is a @ColorUB@.
+--
+-- The parameter @blue@ is a @ColorUB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3ubv'.
+
+
+glSecondaryColor3ub :: MonadIO m => GLubyte -> GLubyte -> GLubyte -> m ()
+glSecondaryColor3ub = ffiubyteubyteubyteIOV glSecondaryColor3ubFunPtr
+
+glSecondaryColor3ubFunPtr :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+glSecondaryColor3ubFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ub")
+
+{-# NOINLINE glSecondaryColor3ubFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ubv' v@
+--
+-- The parameter @v@ is a @ColorUB@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3ubv :: MonadIO m => Ptr GLubyte -> m ()
+glSecondaryColor3ubv = ffiPtrubyteIOV glSecondaryColor3ubvFunPtr
+
+glSecondaryColor3ubvFunPtr :: FunPtr (Ptr GLubyte -> IO ())
+glSecondaryColor3ubvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ubv")
+
+{-# NOINLINE glSecondaryColor3ubvFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3ui' red green blue@
+--
+-- The parameter @red@ is a @ColorUI@.
+--
+-- The parameter @green@ is a @ColorUI@.
+--
+-- The parameter @blue@ is a @ColorUI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3uiv'.
+
+
+glSecondaryColor3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glSecondaryColor3ui = ffiuintuintuintIOV glSecondaryColor3uiFunPtr
+
+glSecondaryColor3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glSecondaryColor3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3ui")
+
+{-# NOINLINE glSecondaryColor3uiFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3uiv' v@
+--
+-- The parameter @v@ is a @ColorUI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3uiv :: MonadIO m => Ptr GLuint -> m ()
+glSecondaryColor3uiv = ffiPtruintIOV glSecondaryColor3uivFunPtr
+
+glSecondaryColor3uivFunPtr :: FunPtr (Ptr GLuint -> IO ())
+glSecondaryColor3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3uiv")
+
+{-# NOINLINE glSecondaryColor3uivFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3us' red green blue@
+--
+-- The parameter @red@ is a @ColorUS@.
+--
+-- The parameter @green@ is a @ColorUS@.
+--
+-- The parameter @blue@ is a @ColorUS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glSecondaryColor3usv'.
+
+
+glSecondaryColor3us :: MonadIO m => GLushort -> GLushort -> GLushort -> m ()
+glSecondaryColor3us = ffiushortushortushortIOV glSecondaryColor3usFunPtr
+
+glSecondaryColor3usFunPtr :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+glSecondaryColor3usFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3us")
+
+{-# NOINLINE glSecondaryColor3usFunPtr #-}
+
+-- | Usage: @'glSecondaryColor3usv' v@
+--
+-- The parameter @v@ is a @ColorUS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glSecondaryColor3usv :: MonadIO m => Ptr GLushort -> m ()
+glSecondaryColor3usv = ffiPtrushortIOV glSecondaryColor3usvFunPtr
+
+glSecondaryColor3usvFunPtr :: FunPtr (Ptr GLushort -> IO ())
+glSecondaryColor3usvFunPtr = unsafePerformIO (getProcAddress "glSecondaryColor3usv")
+
+{-# NOINLINE glSecondaryColor3usvFunPtr #-}
+
+-- | Usage: @'glSecondaryColorPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @ColorPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glSecondaryColorPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glSecondaryColorPointer = ffiintenumsizeiPtrVIOV glSecondaryColorPointerFunPtr
+
+glSecondaryColorPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glSecondaryColorPointerFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorPointer")
+
+{-# NOINLINE glSecondaryColorPointerFunPtr #-}
+
+-- | Usage: @'glSelectBuffer' size buffer@
+--
+-- The parameter @buffer@ is a @SelectName@.
+--
+-- The length of @buffer@ should be @size@.
+
+
+glSelectBuffer :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glSelectBuffer = ffisizeiPtruintIOV glSelectBufferFunPtr
+
+glSelectBufferFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glSelectBufferFunPtr = unsafePerformIO (getProcAddress "glSelectBuffer")
+
+{-# NOINLINE glSelectBufferFunPtr #-}
+
+-- | Usage: @'glShadeModel' mode@
+--
+-- The parameter @mode@ is a @ShadingModel@, one of: 'Graphics.GL.Internal.Shared.GL_FLAT', 'Graphics.GL.Internal.Shared.GL_SMOOTH'.
+
+
+glShadeModel :: MonadIO m => GLenum -> m ()
+glShadeModel = ffienumIOV glShadeModelFunPtr
+
+glShadeModelFunPtr :: FunPtr (GLenum -> IO ())
+glShadeModelFunPtr = unsafePerformIO (getProcAddress "glShadeModel")
+
+{-# NOINLINE glShadeModelFunPtr #-}
+
+-- | Usage: @'glTexCoord1d' s@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1dv'.
+
+
+glTexCoord1d :: MonadIO m => GLdouble -> m ()
+glTexCoord1d = ffidoubleIOV glTexCoord1dFunPtr
+
+glTexCoord1dFunPtr :: FunPtr (GLdouble -> IO ())
+glTexCoord1dFunPtr = unsafePerformIO (getProcAddress "glTexCoord1d")
+
+{-# NOINLINE glTexCoord1dFunPtr #-}
+
+-- | Usage: @'glTexCoord1dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord1dv = ffiPtrdoubleIOV glTexCoord1dvFunPtr
+
+glTexCoord1dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord1dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1dv")
+
+{-# NOINLINE glTexCoord1dvFunPtr #-}
+
+-- | Usage: @'glTexCoord1f' s@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1fv'.
+
+
+glTexCoord1f :: MonadIO m => GLfloat -> m ()
+glTexCoord1f = ffifloatIOV glTexCoord1fFunPtr
+
+glTexCoord1fFunPtr :: FunPtr (GLfloat -> IO ())
+glTexCoord1fFunPtr = unsafePerformIO (getProcAddress "glTexCoord1f")
+
+{-# NOINLINE glTexCoord1fFunPtr #-}
+
+-- | Usage: @'glTexCoord1fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord1fv = ffiPtrfloatIOV glTexCoord1fvFunPtr
+
+glTexCoord1fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord1fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord1fv")
+
+{-# NOINLINE glTexCoord1fvFunPtr #-}
+
+-- | Usage: @'glTexCoord1i' s@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1iv'.
+
+
+glTexCoord1i :: MonadIO m => GLint -> m ()
+glTexCoord1i = ffiintIOV glTexCoord1iFunPtr
+
+glTexCoord1iFunPtr :: FunPtr (GLint -> IO ())
+glTexCoord1iFunPtr = unsafePerformIO (getProcAddress "glTexCoord1i")
+
+{-# NOINLINE glTexCoord1iFunPtr #-}
+
+-- | Usage: @'glTexCoord1iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord1iv = ffiPtrintIOV glTexCoord1ivFunPtr
+
+glTexCoord1ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord1ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord1iv")
+
+{-# NOINLINE glTexCoord1ivFunPtr #-}
+
+-- | Usage: @'glTexCoord1s' s@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord1sv'.
+
+
+glTexCoord1s :: MonadIO m => GLshort -> m ()
+glTexCoord1s = ffishortIOV glTexCoord1sFunPtr
+
+glTexCoord1sFunPtr :: FunPtr (GLshort -> IO ())
+glTexCoord1sFunPtr = unsafePerformIO (getProcAddress "glTexCoord1s")
+
+{-# NOINLINE glTexCoord1sFunPtr #-}
+
+-- | Usage: @'glTexCoord1sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @1@.
+
+
+glTexCoord1sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord1sv = ffiPtrshortIOV glTexCoord1svFunPtr
+
+glTexCoord1svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord1svFunPtr = unsafePerformIO (getProcAddress "glTexCoord1sv")
+
+{-# NOINLINE glTexCoord1svFunPtr #-}
+
+-- | Usage: @'glTexCoord2d' s t@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2dv'.
+
+
+glTexCoord2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glTexCoord2d = ffidoubledoubleIOV glTexCoord2dFunPtr
+
+glTexCoord2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glTexCoord2dFunPtr = unsafePerformIO (getProcAddress "glTexCoord2d")
+
+{-# NOINLINE glTexCoord2dFunPtr #-}
+
+-- | Usage: @'glTexCoord2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord2dv = ffiPtrdoubleIOV glTexCoord2dvFunPtr
+
+glTexCoord2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord2dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2dv")
+
+{-# NOINLINE glTexCoord2dvFunPtr #-}
+
+-- | Usage: @'glTexCoord2f' s t@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2fv'.
+
+
+glTexCoord2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glTexCoord2f = ffifloatfloatIOV glTexCoord2fFunPtr
+
+glTexCoord2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glTexCoord2fFunPtr = unsafePerformIO (getProcAddress "glTexCoord2f")
+
+{-# NOINLINE glTexCoord2fFunPtr #-}
+
+-- | Usage: @'glTexCoord2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord2fv = ffiPtrfloatIOV glTexCoord2fvFunPtr
+
+glTexCoord2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord2fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord2fv")
+
+{-# NOINLINE glTexCoord2fvFunPtr #-}
+
+-- | Usage: @'glTexCoord2i' s t@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2iv'.
+
+
+glTexCoord2i :: MonadIO m => GLint -> GLint -> m ()
+glTexCoord2i = ffiintintIOV glTexCoord2iFunPtr
+
+glTexCoord2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glTexCoord2iFunPtr = unsafePerformIO (getProcAddress "glTexCoord2i")
+
+{-# NOINLINE glTexCoord2iFunPtr #-}
+
+-- | Usage: @'glTexCoord2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord2iv = ffiPtrintIOV glTexCoord2ivFunPtr
+
+glTexCoord2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord2ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord2iv")
+
+{-# NOINLINE glTexCoord2ivFunPtr #-}
+
+-- | Usage: @'glTexCoord2s' s t@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord2sv'.
+
+
+glTexCoord2s :: MonadIO m => GLshort -> GLshort -> m ()
+glTexCoord2s = ffishortshortIOV glTexCoord2sFunPtr
+
+glTexCoord2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glTexCoord2sFunPtr = unsafePerformIO (getProcAddress "glTexCoord2s")
+
+{-# NOINLINE glTexCoord2sFunPtr #-}
+
+-- | Usage: @'glTexCoord2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glTexCoord2sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord2sv = ffiPtrshortIOV glTexCoord2svFunPtr
+
+glTexCoord2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord2svFunPtr = unsafePerformIO (getProcAddress "glTexCoord2sv")
+
+{-# NOINLINE glTexCoord2svFunPtr #-}
+
+-- | Usage: @'glTexCoord3d' s t r@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3dv'.
+
+
+glTexCoord3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glTexCoord3d = ffidoubledoubledoubleIOV glTexCoord3dFunPtr
+
+glTexCoord3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glTexCoord3dFunPtr = unsafePerformIO (getProcAddress "glTexCoord3d")
+
+{-# NOINLINE glTexCoord3dFunPtr #-}
+
+-- | Usage: @'glTexCoord3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord3dv = ffiPtrdoubleIOV glTexCoord3dvFunPtr
+
+glTexCoord3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord3dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3dv")
+
+{-# NOINLINE glTexCoord3dvFunPtr #-}
+
+-- | Usage: @'glTexCoord3f' s t r@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3fv'.
+
+
+glTexCoord3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord3f = ffifloatfloatfloatIOV glTexCoord3fFunPtr
+
+glTexCoord3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord3fFunPtr = unsafePerformIO (getProcAddress "glTexCoord3f")
+
+{-# NOINLINE glTexCoord3fFunPtr #-}
+
+-- | Usage: @'glTexCoord3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord3fv = ffiPtrfloatIOV glTexCoord3fvFunPtr
+
+glTexCoord3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord3fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord3fv")
+
+{-# NOINLINE glTexCoord3fvFunPtr #-}
+
+-- | Usage: @'glTexCoord3i' s t r@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3iv'.
+
+
+glTexCoord3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glTexCoord3i = ffiintintintIOV glTexCoord3iFunPtr
+
+glTexCoord3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glTexCoord3iFunPtr = unsafePerformIO (getProcAddress "glTexCoord3i")
+
+{-# NOINLINE glTexCoord3iFunPtr #-}
+
+-- | Usage: @'glTexCoord3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord3iv = ffiPtrintIOV glTexCoord3ivFunPtr
+
+glTexCoord3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord3ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord3iv")
+
+{-# NOINLINE glTexCoord3ivFunPtr #-}
+
+-- | Usage: @'glTexCoord3s' s t r@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord3sv'.
+
+
+glTexCoord3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glTexCoord3s = ffishortshortshortIOV glTexCoord3sFunPtr
+
+glTexCoord3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glTexCoord3sFunPtr = unsafePerformIO (getProcAddress "glTexCoord3s")
+
+{-# NOINLINE glTexCoord3sFunPtr #-}
+
+-- | Usage: @'glTexCoord3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glTexCoord3sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord3sv = ffiPtrshortIOV glTexCoord3svFunPtr
+
+glTexCoord3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord3svFunPtr = unsafePerformIO (getProcAddress "glTexCoord3sv")
+
+{-# NOINLINE glTexCoord3svFunPtr #-}
+
+-- | Usage: @'glTexCoord4d' s t r q@
+--
+-- The parameter @s@ is a @CoordD@.
+--
+-- The parameter @t@ is a @CoordD@.
+--
+-- The parameter @r@ is a @CoordD@.
+--
+-- The parameter @q@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4dv'.
+
+
+glTexCoord4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glTexCoord4d = ffidoubledoubledoubledoubleIOV glTexCoord4dFunPtr
+
+glTexCoord4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glTexCoord4dFunPtr = unsafePerformIO (getProcAddress "glTexCoord4d")
+
+{-# NOINLINE glTexCoord4dFunPtr #-}
+
+-- | Usage: @'glTexCoord4dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4dv :: MonadIO m => Ptr GLdouble -> m ()
+glTexCoord4dv = ffiPtrdoubleIOV glTexCoord4dvFunPtr
+
+glTexCoord4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glTexCoord4dvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4dv")
+
+{-# NOINLINE glTexCoord4dvFunPtr #-}
+
+-- | Usage: @'glTexCoord4f' s t r q@
+--
+-- The parameter @s@ is a @CoordF@.
+--
+-- The parameter @t@ is a @CoordF@.
+--
+-- The parameter @r@ is a @CoordF@.
+--
+-- The parameter @q@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4fv'.
+
+
+glTexCoord4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glTexCoord4f = ffifloatfloatfloatfloatIOV glTexCoord4fFunPtr
+
+glTexCoord4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glTexCoord4fFunPtr = unsafePerformIO (getProcAddress "glTexCoord4f")
+
+{-# NOINLINE glTexCoord4fFunPtr #-}
+
+-- | Usage: @'glTexCoord4fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4fv :: MonadIO m => Ptr GLfloat -> m ()
+glTexCoord4fv = ffiPtrfloatIOV glTexCoord4fvFunPtr
+
+glTexCoord4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glTexCoord4fvFunPtr = unsafePerformIO (getProcAddress "glTexCoord4fv")
+
+{-# NOINLINE glTexCoord4fvFunPtr #-}
+
+-- | Usage: @'glTexCoord4i' s t r q@
+--
+-- The parameter @s@ is a @CoordI@.
+--
+-- The parameter @t@ is a @CoordI@.
+--
+-- The parameter @r@ is a @CoordI@.
+--
+-- The parameter @q@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4iv'.
+
+
+glTexCoord4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glTexCoord4i = ffiintintintintIOV glTexCoord4iFunPtr
+
+glTexCoord4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glTexCoord4iFunPtr = unsafePerformIO (getProcAddress "glTexCoord4i")
+
+{-# NOINLINE glTexCoord4iFunPtr #-}
+
+-- | Usage: @'glTexCoord4iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4iv :: MonadIO m => Ptr GLint -> m ()
+glTexCoord4iv = ffiPtrintIOV glTexCoord4ivFunPtr
+
+glTexCoord4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glTexCoord4ivFunPtr = unsafePerformIO (getProcAddress "glTexCoord4iv")
+
+{-# NOINLINE glTexCoord4ivFunPtr #-}
+
+-- | Usage: @'glTexCoord4s' s t r q@
+--
+-- The parameter @s@ is a @CoordS@.
+--
+-- The parameter @t@ is a @CoordS@.
+--
+-- The parameter @r@ is a @CoordS@.
+--
+-- The parameter @q@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glTexCoord4sv'.
+
+
+glTexCoord4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glTexCoord4s = ffishortshortshortshortIOV glTexCoord4sFunPtr
+
+glTexCoord4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glTexCoord4sFunPtr = unsafePerformIO (getProcAddress "glTexCoord4s")
+
+{-# NOINLINE glTexCoord4sFunPtr #-}
+
+-- | Usage: @'glTexCoord4sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glTexCoord4sv :: MonadIO m => Ptr GLshort -> m ()
+glTexCoord4sv = ffiPtrshortIOV glTexCoord4svFunPtr
+
+glTexCoord4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glTexCoord4svFunPtr = unsafePerformIO (getProcAddress "glTexCoord4sv")
+
+{-# NOINLINE glTexCoord4svFunPtr #-}
+
+-- | Usage: @'glTexCoordPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @TexCoordPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glTexCoordPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glTexCoordPointer = ffiintenumsizeiPtrVIOV glTexCoordPointerFunPtr
+
+glTexCoordPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glTexCoordPointerFunPtr = unsafePerformIO (getProcAddress "glTexCoordPointer")
+
+{-# NOINLINE glTexCoordPointerFunPtr #-}
+
+-- | Usage: @'glTexEnvf' target pname param@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glTexEnvf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexEnvf = ffienumenumfloatIOV glTexEnvfFunPtr
+
+glTexEnvfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexEnvfFunPtr = unsafePerformIO (getProcAddress "glTexEnvf")
+
+{-# NOINLINE glTexEnvfFunPtr #-}
+
+-- | Usage: @'glTexEnvfv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexEnvfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexEnvfv = ffienumenumPtrfloatIOV glTexEnvfvFunPtr
+
+glTexEnvfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexEnvfvFunPtr = unsafePerformIO (getProcAddress "glTexEnvfv")
+
+{-# NOINLINE glTexEnvfvFunPtr #-}
+
+-- | Usage: @'glTexEnvi' target pname param@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glTexEnvi :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexEnvi = ffienumenumintIOV glTexEnviFunPtr
+
+glTexEnviFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexEnviFunPtr = unsafePerformIO (getProcAddress "glTexEnvi")
+
+{-# NOINLINE glTexEnviFunPtr #-}
+
+-- | Usage: @'glTexEnviv' target pname params@
+--
+-- The parameter @target@ is a @TextureEnvTarget@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV'.
+--
+-- The parameter @pname@ is a @TextureEnvParameter@, one of: 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_COLOR', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ENV_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexEnviv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexEnviv = ffienumenumPtrintIOV glTexEnvivFunPtr
+
+glTexEnvivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexEnvivFunPtr = unsafePerformIO (getProcAddress "glTexEnviv")
+
+{-# NOINLINE glTexEnvivFunPtr #-}
+
+-- | Usage: @'glTexGend' coord pname param@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+
+
+glTexGend :: MonadIO m => GLenum -> GLenum -> GLdouble -> m ()
+glTexGend = ffienumenumdoubleIOV glTexGendFunPtr
+
+glTexGendFunPtr :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())
+glTexGendFunPtr = unsafePerformIO (getProcAddress "glTexGend")
+
+{-# NOINLINE glTexGendFunPtr #-}
+
+-- | Usage: @'glTexGendv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGendv :: MonadIO m => GLenum -> GLenum -> Ptr GLdouble -> m ()
+glTexGendv = ffienumenumPtrdoubleIOV glTexGendvFunPtr
+
+glTexGendvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+glTexGendvFunPtr = unsafePerformIO (getProcAddress "glTexGendv")
+
+{-# NOINLINE glTexGendvFunPtr #-}
+
+-- | Usage: @'glTexGenf' coord pname param@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glTexGenf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexGenf = ffienumenumfloatIOV glTexGenfFunPtr
+
+glTexGenfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexGenfFunPtr = unsafePerformIO (getProcAddress "glTexGenf")
+
+{-# NOINLINE glTexGenfFunPtr #-}
+
+-- | Usage: @'glTexGenfv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGenfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexGenfv = ffienumenumPtrfloatIOV glTexGenfvFunPtr
+
+glTexGenfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexGenfvFunPtr = unsafePerformIO (getProcAddress "glTexGenfv")
+
+{-# NOINLINE glTexGenfvFunPtr #-}
+
+-- | Usage: @'glTexGeni' coord pname param@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glTexGeni :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexGeni = ffienumenumintIOV glTexGeniFunPtr
+
+glTexGeniFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexGeniFunPtr = unsafePerformIO (getProcAddress "glTexGeni")
+
+{-# NOINLINE glTexGeniFunPtr #-}
+
+-- | Usage: @'glTexGeniv' coord pname params@
+--
+-- The parameter @coord@ is a @TextureCoordName@, one of: 'Graphics.GL.Internal.Shared.GL_S', 'Graphics.GL.Internal.Shared.GL_T', 'Graphics.GL.Internal.Shared.GL_R', 'Graphics.GL.Internal.Shared.GL_Q'.
+--
+-- The parameter @pname@ is a @TextureGenParameter@, one of: 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_EYE_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_EYE_POINT_SGIS', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_LINE_SGIS', 'Graphics.GL.Internal.Shared.GL_OBJECT_PLANE', 'Graphics.GL.Ext.SGIS.PointLineTexgen.GL_OBJECT_POINT_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_MODE'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGeniv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexGeniv = ffienumenumPtrintIOV glTexGenivFunPtr
+
+glTexGenivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexGenivFunPtr = unsafePerformIO (getProcAddress "glTexGeniv")
+
+{-# NOINLINE glTexGenivFunPtr #-}
+
+-- | Usage: @'glTranslated' x y z@
+
+
+glTranslated :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glTranslated = ffidoubledoubledoubleIOV glTranslatedFunPtr
+
+glTranslatedFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glTranslatedFunPtr = unsafePerformIO (getProcAddress "glTranslated")
+
+{-# NOINLINE glTranslatedFunPtr #-}
+
+-- | Usage: @'glTranslatef' x y z@
+
+
+glTranslatef :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glTranslatef = ffifloatfloatfloatIOV glTranslatefFunPtr
+
+glTranslatefFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glTranslatefFunPtr = unsafePerformIO (getProcAddress "glTranslatef")
+
+{-# NOINLINE glTranslatefFunPtr #-}
+
+-- | Usage: @'glVertex2d' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2dv'.
+
+
+glVertex2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glVertex2d = ffidoubledoubleIOV glVertex2dFunPtr
+
+glVertex2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glVertex2dFunPtr = unsafePerformIO (getProcAddress "glVertex2d")
+
+{-# NOINLINE glVertex2dFunPtr #-}
+
+-- | Usage: @'glVertex2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex2dv = ffiPtrdoubleIOV glVertex2dvFunPtr
+
+glVertex2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex2dvFunPtr = unsafePerformIO (getProcAddress "glVertex2dv")
+
+{-# NOINLINE glVertex2dvFunPtr #-}
+
+-- | Usage: @'glVertex2f' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2fv'.
+
+
+glVertex2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glVertex2f = ffifloatfloatIOV glVertex2fFunPtr
+
+glVertex2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glVertex2fFunPtr = unsafePerformIO (getProcAddress "glVertex2f")
+
+{-# NOINLINE glVertex2fFunPtr #-}
+
+-- | Usage: @'glVertex2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex2fv = ffiPtrfloatIOV glVertex2fvFunPtr
+
+glVertex2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex2fvFunPtr = unsafePerformIO (getProcAddress "glVertex2fv")
+
+{-# NOINLINE glVertex2fvFunPtr #-}
+
+-- | Usage: @'glVertex2i' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2iv'.
+
+
+glVertex2i :: MonadIO m => GLint -> GLint -> m ()
+glVertex2i = ffiintintIOV glVertex2iFunPtr
+
+glVertex2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glVertex2iFunPtr = unsafePerformIO (getProcAddress "glVertex2i")
+
+{-# NOINLINE glVertex2iFunPtr #-}
+
+-- | Usage: @'glVertex2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2iv :: MonadIO m => Ptr GLint -> m ()
+glVertex2iv = ffiPtrintIOV glVertex2ivFunPtr
+
+glVertex2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex2ivFunPtr = unsafePerformIO (getProcAddress "glVertex2iv")
+
+{-# NOINLINE glVertex2ivFunPtr #-}
+
+-- | Usage: @'glVertex2s' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex2sv'.
+
+
+glVertex2s :: MonadIO m => GLshort -> GLshort -> m ()
+glVertex2s = ffishortshortIOV glVertex2sFunPtr
+
+glVertex2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glVertex2sFunPtr = unsafePerformIO (getProcAddress "glVertex2s")
+
+{-# NOINLINE glVertex2sFunPtr #-}
+
+-- | Usage: @'glVertex2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glVertex2sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex2sv = ffiPtrshortIOV glVertex2svFunPtr
+
+glVertex2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex2svFunPtr = unsafePerformIO (getProcAddress "glVertex2sv")
+
+{-# NOINLINE glVertex2svFunPtr #-}
+
+-- | Usage: @'glVertex3d' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3dv'.
+
+
+glVertex3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glVertex3d = ffidoubledoubledoubleIOV glVertex3dFunPtr
+
+glVertex3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertex3dFunPtr = unsafePerformIO (getProcAddress "glVertex3d")
+
+{-# NOINLINE glVertex3dFunPtr #-}
+
+-- | Usage: @'glVertex3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex3dv = ffiPtrdoubleIOV glVertex3dvFunPtr
+
+glVertex3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex3dvFunPtr = unsafePerformIO (getProcAddress "glVertex3dv")
+
+{-# NOINLINE glVertex3dvFunPtr #-}
+
+-- | Usage: @'glVertex3f' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3fv'.
+
+
+glVertex3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glVertex3f = ffifloatfloatfloatIOV glVertex3fFunPtr
+
+glVertex3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertex3fFunPtr = unsafePerformIO (getProcAddress "glVertex3f")
+
+{-# NOINLINE glVertex3fFunPtr #-}
+
+-- | Usage: @'glVertex3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex3fv = ffiPtrfloatIOV glVertex3fvFunPtr
+
+glVertex3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex3fvFunPtr = unsafePerformIO (getProcAddress "glVertex3fv")
+
+{-# NOINLINE glVertex3fvFunPtr #-}
+
+-- | Usage: @'glVertex3i' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3iv'.
+
+
+glVertex3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glVertex3i = ffiintintintIOV glVertex3iFunPtr
+
+glVertex3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glVertex3iFunPtr = unsafePerformIO (getProcAddress "glVertex3i")
+
+{-# NOINLINE glVertex3iFunPtr #-}
+
+-- | Usage: @'glVertex3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3iv :: MonadIO m => Ptr GLint -> m ()
+glVertex3iv = ffiPtrintIOV glVertex3ivFunPtr
+
+glVertex3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex3ivFunPtr = unsafePerformIO (getProcAddress "glVertex3iv")
+
+{-# NOINLINE glVertex3ivFunPtr #-}
+
+-- | Usage: @'glVertex3s' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex3sv'.
+
+
+glVertex3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glVertex3s = ffishortshortshortIOV glVertex3sFunPtr
+
+glVertex3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glVertex3sFunPtr = unsafePerformIO (getProcAddress "glVertex3s")
+
+{-# NOINLINE glVertex3sFunPtr #-}
+
+-- | Usage: @'glVertex3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glVertex3sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex3sv = ffiPtrshortIOV glVertex3svFunPtr
+
+glVertex3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex3svFunPtr = unsafePerformIO (getProcAddress "glVertex3sv")
+
+{-# NOINLINE glVertex3svFunPtr #-}
+
+-- | Usage: @'glVertex4d' x y z w@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The parameter @w@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4dv'.
+
+
+glVertex4d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertex4d = ffidoubledoubledoubledoubleIOV glVertex4dFunPtr
+
+glVertex4dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertex4dFunPtr = unsafePerformIO (getProcAddress "glVertex4d")
+
+{-# NOINLINE glVertex4dFunPtr #-}
+
+-- | Usage: @'glVertex4dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4dv :: MonadIO m => Ptr GLdouble -> m ()
+glVertex4dv = ffiPtrdoubleIOV glVertex4dvFunPtr
+
+glVertex4dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glVertex4dvFunPtr = unsafePerformIO (getProcAddress "glVertex4dv")
+
+{-# NOINLINE glVertex4dvFunPtr #-}
+
+-- | Usage: @'glVertex4f' x y z w@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The parameter @w@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4fv'.
+
+
+glVertex4f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertex4f = ffifloatfloatfloatfloatIOV glVertex4fFunPtr
+
+glVertex4fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertex4fFunPtr = unsafePerformIO (getProcAddress "glVertex4f")
+
+{-# NOINLINE glVertex4fFunPtr #-}
+
+-- | Usage: @'glVertex4fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4fv :: MonadIO m => Ptr GLfloat -> m ()
+glVertex4fv = ffiPtrfloatIOV glVertex4fvFunPtr
+
+glVertex4fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glVertex4fvFunPtr = unsafePerformIO (getProcAddress "glVertex4fv")
+
+{-# NOINLINE glVertex4fvFunPtr #-}
+
+-- | Usage: @'glVertex4i' x y z w@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The parameter @w@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4iv'.
+
+
+glVertex4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glVertex4i = ffiintintintintIOV glVertex4iFunPtr
+
+glVertex4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glVertex4iFunPtr = unsafePerformIO (getProcAddress "glVertex4i")
+
+{-# NOINLINE glVertex4iFunPtr #-}
+
+-- | Usage: @'glVertex4iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4iv :: MonadIO m => Ptr GLint -> m ()
+glVertex4iv = ffiPtrintIOV glVertex4ivFunPtr
+
+glVertex4ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glVertex4ivFunPtr = unsafePerformIO (getProcAddress "glVertex4iv")
+
+{-# NOINLINE glVertex4ivFunPtr #-}
+
+-- | Usage: @'glVertex4s' x y z w@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The parameter @w@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertex4sv'.
+
+
+glVertex4s :: MonadIO m => GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertex4s = ffishortshortshortshortIOV glVertex4sFunPtr
+
+glVertex4sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertex4sFunPtr = unsafePerformIO (getProcAddress "glVertex4s")
+
+{-# NOINLINE glVertex4sFunPtr #-}
+
+-- | Usage: @'glVertex4sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @4@.
+
+
+glVertex4sv :: MonadIO m => Ptr GLshort -> m ()
+glVertex4sv = ffiPtrshortIOV glVertex4svFunPtr
+
+glVertex4svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glVertex4svFunPtr = unsafePerformIO (getProcAddress "glVertex4sv")
+
+{-# NOINLINE glVertex4svFunPtr #-}
+
+-- | Usage: @'glVertexPointer' size type stride pointer@
+--
+-- The parameter @type@ is a @VertexPointerType@, one of: 'Graphics.GL.Internal.Shared.GL_DOUBLE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glVertexPointer :: MonadIO m => GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexPointer = ffiintenumsizeiPtrVIOV glVertexPointerFunPtr
+
+glVertexPointerFunPtr :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexPointerFunPtr = unsafePerformIO (getProcAddress "glVertexPointer")
+
+{-# NOINLINE glVertexPointerFunPtr #-}
+
+-- | Usage: @'glWindowPos2d' x y@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2dv'.
+
+
+glWindowPos2d :: MonadIO m => GLdouble -> GLdouble -> m ()
+glWindowPos2d = ffidoubledoubleIOV glWindowPos2dFunPtr
+
+glWindowPos2dFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glWindowPos2dFunPtr = unsafePerformIO (getProcAddress "glWindowPos2d")
+
+{-# NOINLINE glWindowPos2dFunPtr #-}
+
+-- | Usage: @'glWindowPos2dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2dv :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos2dv = ffiPtrdoubleIOV glWindowPos2dvFunPtr
+
+glWindowPos2dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos2dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2dv")
+
+{-# NOINLINE glWindowPos2dvFunPtr #-}
+
+-- | Usage: @'glWindowPos2f' x y@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2fv'.
+
+
+glWindowPos2f :: MonadIO m => GLfloat -> GLfloat -> m ()
+glWindowPos2f = ffifloatfloatIOV glWindowPos2fFunPtr
+
+glWindowPos2fFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glWindowPos2fFunPtr = unsafePerformIO (getProcAddress "glWindowPos2f")
+
+{-# NOINLINE glWindowPos2fFunPtr #-}
+
+-- | Usage: @'glWindowPos2fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2fv :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos2fv = ffiPtrfloatIOV glWindowPos2fvFunPtr
+
+glWindowPos2fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos2fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos2fv")
+
+{-# NOINLINE glWindowPos2fvFunPtr #-}
+
+-- | Usage: @'glWindowPos2i' x y@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2iv'.
+
+
+glWindowPos2i :: MonadIO m => GLint -> GLint -> m ()
+glWindowPos2i = ffiintintIOV glWindowPos2iFunPtr
+
+glWindowPos2iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glWindowPos2iFunPtr = unsafePerformIO (getProcAddress "glWindowPos2i")
+
+{-# NOINLINE glWindowPos2iFunPtr #-}
+
+-- | Usage: @'glWindowPos2iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2iv :: MonadIO m => Ptr GLint -> m ()
+glWindowPos2iv = ffiPtrintIOV glWindowPos2ivFunPtr
+
+glWindowPos2ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos2ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos2iv")
+
+{-# NOINLINE glWindowPos2ivFunPtr #-}
+
+-- | Usage: @'glWindowPos2s' x y@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos2sv'.
+
+
+glWindowPos2s :: MonadIO m => GLshort -> GLshort -> m ()
+glWindowPos2s = ffishortshortIOV glWindowPos2sFunPtr
+
+glWindowPos2sFunPtr :: FunPtr (GLshort -> GLshort -> IO ())
+glWindowPos2sFunPtr = unsafePerformIO (getProcAddress "glWindowPos2s")
+
+{-# NOINLINE glWindowPos2sFunPtr #-}
+
+-- | Usage: @'glWindowPos2sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @2@.
+
+
+glWindowPos2sv :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos2sv = ffiPtrshortIOV glWindowPos2svFunPtr
+
+glWindowPos2svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos2svFunPtr = unsafePerformIO (getProcAddress "glWindowPos2sv")
+
+{-# NOINLINE glWindowPos2svFunPtr #-}
+
+-- | Usage: @'glWindowPos3d' x y z@
+--
+-- The parameter @x@ is a @CoordD@.
+--
+-- The parameter @y@ is a @CoordD@.
+--
+-- The parameter @z@ is a @CoordD@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3dv'.
+
+
+glWindowPos3d :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> m ()
+glWindowPos3d = ffidoubledoubledoubleIOV glWindowPos3dFunPtr
+
+glWindowPos3dFunPtr :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+glWindowPos3dFunPtr = unsafePerformIO (getProcAddress "glWindowPos3d")
+
+{-# NOINLINE glWindowPos3dFunPtr #-}
+
+-- | Usage: @'glWindowPos3dv' v@
+--
+-- The parameter @v@ is a @CoordD@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3dv :: MonadIO m => Ptr GLdouble -> m ()
+glWindowPos3dv = ffiPtrdoubleIOV glWindowPos3dvFunPtr
+
+glWindowPos3dvFunPtr :: FunPtr (Ptr GLdouble -> IO ())
+glWindowPos3dvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3dv")
+
+{-# NOINLINE glWindowPos3dvFunPtr #-}
+
+-- | Usage: @'glWindowPos3f' x y z@
+--
+-- The parameter @x@ is a @CoordF@.
+--
+-- The parameter @y@ is a @CoordF@.
+--
+-- The parameter @z@ is a @CoordF@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3fv'.
+
+
+glWindowPos3f :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> m ()
+glWindowPos3f = ffifloatfloatfloatIOV glWindowPos3fFunPtr
+
+glWindowPos3fFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+glWindowPos3fFunPtr = unsafePerformIO (getProcAddress "glWindowPos3f")
+
+{-# NOINLINE glWindowPos3fFunPtr #-}
+
+-- | Usage: @'glWindowPos3fv' v@
+--
+-- The parameter @v@ is a @CoordF@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3fv :: MonadIO m => Ptr GLfloat -> m ()
+glWindowPos3fv = ffiPtrfloatIOV glWindowPos3fvFunPtr
+
+glWindowPos3fvFunPtr :: FunPtr (Ptr GLfloat -> IO ())
+glWindowPos3fvFunPtr = unsafePerformIO (getProcAddress "glWindowPos3fv")
+
+{-# NOINLINE glWindowPos3fvFunPtr #-}
+
+-- | Usage: @'glWindowPos3i' x y z@
+--
+-- The parameter @x@ is a @CoordI@.
+--
+-- The parameter @y@ is a @CoordI@.
+--
+-- The parameter @z@ is a @CoordI@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3iv'.
+
+
+glWindowPos3i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glWindowPos3i = ffiintintintIOV glWindowPos3iFunPtr
+
+glWindowPos3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glWindowPos3iFunPtr = unsafePerformIO (getProcAddress "glWindowPos3i")
+
+{-# NOINLINE glWindowPos3iFunPtr #-}
+
+-- | Usage: @'glWindowPos3iv' v@
+--
+-- The parameter @v@ is a @CoordI@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3iv :: MonadIO m => Ptr GLint -> m ()
+glWindowPos3iv = ffiPtrintIOV glWindowPos3ivFunPtr
+
+glWindowPos3ivFunPtr :: FunPtr (Ptr GLint -> IO ())
+glWindowPos3ivFunPtr = unsafePerformIO (getProcAddress "glWindowPos3iv")
+
+{-# NOINLINE glWindowPos3ivFunPtr #-}
+
+-- | Usage: @'glWindowPos3s' x y z@
+--
+-- The parameter @x@ is a @CoordS@.
+--
+-- The parameter @y@ is a @CoordS@.
+--
+-- The parameter @z@ is a @CoordS@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glWindowPos3sv'.
+
+
+glWindowPos3s :: MonadIO m => GLshort -> GLshort -> GLshort -> m ()
+glWindowPos3s = ffishortshortshortIOV glWindowPos3sFunPtr
+
+glWindowPos3sFunPtr :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+glWindowPos3sFunPtr = unsafePerformIO (getProcAddress "glWindowPos3s")
+
+{-# NOINLINE glWindowPos3sFunPtr #-}
+
+-- | Usage: @'glWindowPos3sv' v@
+--
+-- The parameter @v@ is a @CoordS@.
+--
+-- The length of @v@ should be @3@.
+
+
+glWindowPos3sv :: MonadIO m => Ptr GLshort -> m ()
+glWindowPos3sv = ffiPtrshortIOV glWindowPos3svFunPtr
+
+glWindowPos3svFunPtr :: FunPtr (Ptr GLshort -> IO ())
+glWindowPos3svFunPtr = unsafePerformIO (getProcAddress "glWindowPos3sv")
+
+{-# NOINLINE glWindowPos3svFunPtr #-}
+
+pattern GL_2D = 0x0600
+
+pattern GL_2_BYTES = 0x1407
+
+pattern GL_3D = 0x0601
+
+pattern GL_3D_COLOR = 0x0602
+
+pattern GL_3D_COLOR_TEXTURE = 0x0603
+
+pattern GL_3_BYTES = 0x1408
+
+pattern GL_4D_COLOR_TEXTURE = 0x0604
+
+pattern GL_4_BYTES = 0x1409
+
+pattern GL_ACCUM = 0x0100
+
+pattern GL_ACCUM_ALPHA_BITS = 0x0D5B
+
+pattern GL_ACCUM_BLUE_BITS = 0x0D5A
+
+pattern GL_ACCUM_BUFFER_BIT = 0x00000200
+
+pattern GL_ACCUM_CLEAR_VALUE = 0x0B80
+
+pattern GL_ACCUM_GREEN_BITS = 0x0D59
+
+pattern GL_ACCUM_RED_BITS = 0x0D58
+
+pattern GL_ADD = 0x0104
+
+pattern GL_ADD_SIGNED = 0x8574
+
+pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D
+
+pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_ALPHA12 = 0x803D
+
+pattern GL_ALPHA16 = 0x803E
+
+pattern GL_ALPHA4 = 0x803B
+
+pattern GL_ALPHA8 = 0x803C
+
+pattern GL_ALPHA_BIAS = 0x0D1D
+
+pattern GL_ALPHA_BITS = 0x0D55
+
+pattern GL_ALPHA_INTEGER = 0x8D97
+
+pattern GL_ALPHA_SCALE = 0x0D1C
+
+pattern GL_ALPHA_TEST = 0x0BC0
+
+pattern GL_ALPHA_TEST_FUNC = 0x0BC1
+
+pattern GL_ALPHA_TEST_REF = 0x0BC2
+
+pattern GL_AMBIENT = 0x1200
+
+pattern GL_AMBIENT_AND_DIFFUSE = 0x1602
+
+pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0
+
+pattern GL_AUTO_NORMAL = 0x0D80
+
+pattern GL_AUX0 = 0x0409
+
+pattern GL_AUX1 = 0x040A
+
+pattern GL_AUX2 = 0x040B
+
+pattern GL_AUX3 = 0x040C
+
+pattern GL_AUX_BUFFERS = 0x0C00
+
+pattern GL_BITMAP = 0x1A00
+
+pattern GL_BITMAP_TOKEN = 0x0704
+
+pattern GL_BLUE_BIAS = 0x0D1B
+
+pattern GL_BLUE_BITS = 0x0D54
+
+pattern GL_BLUE_SCALE = 0x0D1A
+
+pattern GL_C3F_V3F = 0x2A24
+
+pattern GL_C4F_N3F_V3F = 0x2A26
+
+pattern GL_C4UB_V2F = 0x2A22
+
+pattern GL_C4UB_V3F = 0x2A23
+
+pattern GL_CLAMP = 0x2900
+
+pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B
+
+pattern GL_CLAMP_VERTEX_COLOR = 0x891A
+
+pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1
+
+pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+
+pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001
+
+pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+pattern GL_CLIP_PLANE0 = 0x3000
+
+pattern GL_CLIP_PLANE1 = 0x3001
+
+pattern GL_CLIP_PLANE2 = 0x3002
+
+pattern GL_CLIP_PLANE3 = 0x3003
+
+pattern GL_CLIP_PLANE4 = 0x3004
+
+pattern GL_CLIP_PLANE5 = 0x3005
+
+pattern GL_COEFF = 0x0A00
+
+pattern GL_COLOR_ARRAY = 0x8076
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898
+
+pattern GL_COLOR_ARRAY_POINTER = 0x8090
+
+pattern GL_COLOR_ARRAY_SIZE = 0x8081
+
+pattern GL_COLOR_ARRAY_STRIDE = 0x8083
+
+pattern GL_COLOR_ARRAY_TYPE = 0x8082
+
+pattern GL_COLOR_INDEX = 0x1900
+
+pattern GL_COLOR_INDEXES = 0x1603
+
+pattern GL_COLOR_MATERIAL = 0x0B57
+
+pattern GL_COLOR_MATERIAL_FACE = 0x0B55
+
+pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56
+
+pattern GL_COLOR_SUM = 0x8458
+
+pattern GL_COMBINE = 0x8570
+
+pattern GL_COMBINE_ALPHA = 0x8572
+
+pattern GL_COMBINE_RGB = 0x8571
+
+pattern GL_COMPARE_R_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE = 0x1300
+
+pattern GL_COMPILE_AND_EXECUTE = 0x1301
+
+pattern GL_COMPRESSED_ALPHA = 0x84E9
+
+pattern GL_COMPRESSED_INTENSITY = 0x84EC
+
+pattern GL_COMPRESSED_LUMINANCE = 0x84EA
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+
+pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+
+pattern GL_CONSTANT = 0x8576
+
+pattern GL_CONSTANT_ATTENUATION = 0x1207
+
+pattern GL_COORD_REPLACE = 0x8862
+
+pattern GL_COPY_PIXEL_TOKEN = 0x0706
+
+pattern GL_CURRENT_BIT = 0x00000001
+
+pattern GL_CURRENT_COLOR = 0x0B00
+
+pattern GL_CURRENT_FOG_COORD = 0x8453
+
+pattern GL_CURRENT_FOG_COORDINATE = 0x8453
+
+pattern GL_CURRENT_INDEX = 0x0B01
+
+pattern GL_CURRENT_NORMAL = 0x0B02
+
+pattern GL_CURRENT_RASTER_COLOR = 0x0B04
+
+pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09
+
+pattern GL_CURRENT_RASTER_INDEX = 0x0B05
+
+pattern GL_CURRENT_RASTER_POSITION = 0x0B07
+
+pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08
+
+pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+
+pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+
+pattern GL_CURRENT_SECONDARY_COLOR = 0x8459
+
+pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03
+
+pattern GL_DECAL = 0x2101
+
+pattern GL_DEPTH_BIAS = 0x0D1F
+
+pattern GL_DEPTH_BITS = 0x0D56
+
+pattern GL_DEPTH_SCALE = 0x0D1E
+
+pattern GL_DEPTH_TEXTURE_MODE = 0x884B
+
+pattern GL_DIFFUSE = 0x1201
+
+pattern GL_DOMAIN = 0x0A02
+
+pattern GL_DOT3_RGB = 0x86AE
+
+pattern GL_DOT3_RGBA = 0x86AF
+
+pattern GL_DRAW_PIXEL_TOKEN = 0x0705
+
+pattern GL_EDGE_FLAG = 0x0B43
+
+pattern GL_EDGE_FLAG_ARRAY = 0x8079
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C
+
+pattern GL_EMISSION = 0x1600
+
+pattern GL_ENABLE_BIT = 0x00002000
+
+pattern GL_EVAL_BIT = 0x00010000
+
+pattern GL_EXP = 0x0800
+
+pattern GL_EXP2 = 0x0801
+
+pattern GL_EYE_LINEAR = 0x2400
+
+pattern GL_EYE_PLANE = 0x2502
+
+pattern GL_FEEDBACK = 0x1C01
+
+pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0
+
+pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1
+
+pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2
+
+pattern GL_FLAT = 0x1D00
+
+pattern GL_FOG = 0x0B60
+
+pattern GL_FOG_BIT = 0x00000080
+
+pattern GL_FOG_COLOR = 0x0B66
+
+pattern GL_FOG_COORD = 0x8451
+
+pattern GL_FOG_COORDINATE = 0x8451
+
+pattern GL_FOG_COORDINATE_ARRAY = 0x8457
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORDINATE_SOURCE = 0x8450
+
+pattern GL_FOG_COORD_ARRAY = 0x8457
+
+pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORD_SRC = 0x8450
+
+pattern GL_FOG_DENSITY = 0x0B62
+
+pattern GL_FOG_END = 0x0B64
+
+pattern GL_FOG_HINT = 0x0C54
+
+pattern GL_FOG_INDEX = 0x0B61
+
+pattern GL_FOG_MODE = 0x0B65
+
+pattern GL_FOG_START = 0x0B63
+
+pattern GL_FRAGMENT_DEPTH = 0x8452
+
+pattern GL_GENERATE_MIPMAP = 0x8191
+
+pattern GL_GENERATE_MIPMAP_HINT = 0x8192
+
+pattern GL_GREEN_BIAS = 0x0D19
+
+pattern GL_GREEN_BITS = 0x0D53
+
+pattern GL_GREEN_SCALE = 0x0D18
+
+pattern GL_HINT_BIT = 0x00008000
+
+pattern GL_INDEX_ARRAY = 0x8077
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899
+
+pattern GL_INDEX_ARRAY_POINTER = 0x8091
+
+pattern GL_INDEX_ARRAY_STRIDE = 0x8086
+
+pattern GL_INDEX_ARRAY_TYPE = 0x8085
+
+pattern GL_INDEX_BITS = 0x0D51
+
+pattern GL_INDEX_CLEAR_VALUE = 0x0C20
+
+pattern GL_INDEX_LOGIC_OP = 0x0BF1
+
+pattern GL_INDEX_MODE = 0x0C30
+
+pattern GL_INDEX_OFFSET = 0x0D13
+
+pattern GL_INDEX_SHIFT = 0x0D12
+
+pattern GL_INDEX_WRITEMASK = 0x0C21
+
+pattern GL_INTENSITY = 0x8049
+
+pattern GL_INTENSITY12 = 0x804C
+
+pattern GL_INTENSITY16 = 0x804D
+
+pattern GL_INTENSITY4 = 0x804A
+
+pattern GL_INTENSITY8 = 0x804B
+
+pattern GL_INTERPOLATE = 0x8575
+
+pattern GL_LIGHT0 = 0x4000
+
+pattern GL_LIGHT1 = 0x4001
+
+pattern GL_LIGHT2 = 0x4002
+
+pattern GL_LIGHT3 = 0x4003
+
+pattern GL_LIGHT4 = 0x4004
+
+pattern GL_LIGHT5 = 0x4005
+
+pattern GL_LIGHT6 = 0x4006
+
+pattern GL_LIGHT7 = 0x4007
+
+pattern GL_LIGHTING = 0x0B50
+
+pattern GL_LIGHTING_BIT = 0x00000040
+
+pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+
+pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+
+pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52
+
+pattern GL_LINEAR_ATTENUATION = 0x1208
+
+pattern GL_LINE_BIT = 0x00000004
+
+pattern GL_LINE_RESET_TOKEN = 0x0707
+
+pattern GL_LINE_STIPPLE = 0x0B24
+
+pattern GL_LINE_STIPPLE_PATTERN = 0x0B25
+
+pattern GL_LINE_STIPPLE_REPEAT = 0x0B26
+
+pattern GL_LINE_TOKEN = 0x0702
+
+pattern GL_LIST_BASE = 0x0B32
+
+pattern GL_LIST_BIT = 0x00020000
+
+pattern GL_LIST_INDEX = 0x0B33
+
+pattern GL_LIST_MODE = 0x0B30
+
+pattern GL_LOAD = 0x0101
+
+pattern GL_LOGIC_OP = 0x0BF1
+
+pattern GL_LUMINANCE = 0x1909
+
+pattern GL_LUMINANCE12 = 0x8041
+
+pattern GL_LUMINANCE12_ALPHA12 = 0x8047
+
+pattern GL_LUMINANCE12_ALPHA4 = 0x8046
+
+pattern GL_LUMINANCE16 = 0x8042
+
+pattern GL_LUMINANCE16_ALPHA16 = 0x8048
+
+pattern GL_LUMINANCE4 = 0x803F
+
+pattern GL_LUMINANCE4_ALPHA4 = 0x8043
+
+pattern GL_LUMINANCE6_ALPHA2 = 0x8044
+
+pattern GL_LUMINANCE8 = 0x8040
+
+pattern GL_LUMINANCE8_ALPHA8 = 0x8045
+
+pattern GL_LUMINANCE_ALPHA = 0x190A
+
+pattern GL_MAP1_COLOR_4 = 0x0D90
+
+pattern GL_MAP1_GRID_DOMAIN = 0x0DD0
+
+pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1
+
+pattern GL_MAP1_INDEX = 0x0D91
+
+pattern GL_MAP1_NORMAL = 0x0D92
+
+pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93
+
+pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94
+
+pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95
+
+pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96
+
+pattern GL_MAP1_VERTEX_3 = 0x0D97
+
+pattern GL_MAP1_VERTEX_4 = 0x0D98
+
+pattern GL_MAP2_COLOR_4 = 0x0DB0
+
+pattern GL_MAP2_GRID_DOMAIN = 0x0DD2
+
+pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3
+
+pattern GL_MAP2_INDEX = 0x0DB1
+
+pattern GL_MAP2_NORMAL = 0x0DB2
+
+pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3
+
+pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4
+
+pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5
+
+pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6
+
+pattern GL_MAP2_VERTEX_3 = 0x0DB7
+
+pattern GL_MAP2_VERTEX_4 = 0x0DB8
+
+pattern GL_MAP_COLOR = 0x0D10
+
+pattern GL_MAP_STENCIL = 0x0D11
+
+pattern GL_MATRIX_MODE = 0x0BA0
+
+pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35
+
+pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+
+pattern GL_MAX_CLIP_PLANES = 0x0D32
+
+pattern GL_MAX_EVAL_ORDER = 0x0D30
+
+pattern GL_MAX_LIGHTS = 0x0D31
+
+pattern GL_MAX_LIST_NESTING = 0x0B31
+
+pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+
+pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37
+
+pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34
+
+pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38
+
+pattern GL_MAX_TEXTURE_COORDS = 0x8871
+
+pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39
+
+pattern GL_MAX_TEXTURE_UNITS = 0x84E2
+
+pattern GL_MODELVIEW = 0x1700
+
+pattern GL_MODELVIEW_MATRIX = 0x0BA6
+
+pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3
+
+pattern GL_MODULATE = 0x2100
+
+pattern GL_MULT = 0x0103
+
+pattern GL_MULTISAMPLE_BIT = 0x20000000
+
+pattern GL_N3F_V3F = 0x2A25
+
+pattern GL_NAME_STACK_DEPTH = 0x0D70
+
+pattern GL_NORMALIZE = 0x0BA1
+
+pattern GL_NORMAL_ARRAY = 0x8075
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+
+pattern GL_NORMAL_ARRAY_POINTER = 0x808F
+
+pattern GL_NORMAL_ARRAY_STRIDE = 0x807F
+
+pattern GL_NORMAL_ARRAY_TYPE = 0x807E
+
+pattern GL_NORMAL_MAP = 0x8511
+
+pattern GL_OBJECT_LINEAR = 0x2401
+
+pattern GL_OBJECT_PLANE = 0x2501
+
+pattern GL_OPERAND0_ALPHA = 0x8598
+
+pattern GL_OPERAND0_RGB = 0x8590
+
+pattern GL_OPERAND1_ALPHA = 0x8599
+
+pattern GL_OPERAND1_RGB = 0x8591
+
+pattern GL_OPERAND2_ALPHA = 0x859A
+
+pattern GL_OPERAND2_RGB = 0x8592
+
+pattern GL_ORDER = 0x0A01
+
+pattern GL_PASS_THROUGH_TOKEN = 0x0700
+
+pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50
+
+pattern GL_PIXEL_MAP_A_TO_A = 0x0C79
+
+pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+
+pattern GL_PIXEL_MAP_B_TO_B = 0x0C78
+
+pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+
+pattern GL_PIXEL_MAP_G_TO_G = 0x0C77
+
+pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+
+pattern GL_PIXEL_MAP_I_TO_A = 0x0C75
+
+pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+
+pattern GL_PIXEL_MAP_I_TO_B = 0x0C74
+
+pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+
+pattern GL_PIXEL_MAP_I_TO_G = 0x0C73
+
+pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+
+pattern GL_PIXEL_MAP_I_TO_I = 0x0C70
+
+pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+
+pattern GL_PIXEL_MAP_I_TO_R = 0x0C72
+
+pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+
+pattern GL_PIXEL_MAP_R_TO_R = 0x0C76
+
+pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+
+pattern GL_PIXEL_MAP_S_TO_S = 0x0C71
+
+pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+
+pattern GL_PIXEL_MODE_BIT = 0x00000020
+
+pattern GL_POINT_BIT = 0x00000002
+
+pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129
+
+pattern GL_POINT_SIZE_MAX = 0x8127
+
+pattern GL_POINT_SIZE_MIN = 0x8126
+
+pattern GL_POINT_SMOOTH = 0x0B10
+
+pattern GL_POINT_SMOOTH_HINT = 0x0C51
+
+pattern GL_POINT_SPRITE = 0x8861
+
+pattern GL_POINT_TOKEN = 0x0701
+
+pattern GL_POLYGON = 0x0009
+
+pattern GL_POLYGON_BIT = 0x00000008
+
+pattern GL_POLYGON_STIPPLE = 0x0B42
+
+pattern GL_POLYGON_STIPPLE_BIT = 0x00000010
+
+pattern GL_POLYGON_TOKEN = 0x0703
+
+pattern GL_POSITION = 0x1203
+
+pattern GL_PREVIOUS = 0x8578
+
+pattern GL_PRIMARY_COLOR = 0x8577
+
+pattern GL_PROJECTION = 0x1701
+
+pattern GL_PROJECTION_MATRIX = 0x0BA7
+
+pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4
+
+pattern GL_Q = 0x2003
+
+pattern GL_QUADRATIC_ATTENUATION = 0x1209
+
+pattern GL_QUADS = 0x0007
+
+pattern GL_QUAD_STRIP = 0x0008
+
+pattern GL_R = 0x2002
+
+pattern GL_RED_BIAS = 0x0D15
+
+pattern GL_RED_BITS = 0x0D52
+
+pattern GL_RED_SCALE = 0x0D14
+
+pattern GL_REFLECTION_MAP = 0x8512
+
+pattern GL_RENDER = 0x1C00
+
+pattern GL_RENDER_MODE = 0x0C40
+
+pattern GL_RESCALE_NORMAL = 0x803A
+
+pattern GL_RETURN = 0x0102
+
+pattern GL_RGBA_MODE = 0x0C31
+
+pattern GL_RGB_SCALE = 0x8573
+
+pattern GL_S = 0x2000
+
+pattern GL_SCISSOR_BIT = 0x00080000
+
+pattern GL_SECONDARY_COLOR_ARRAY = 0x845E
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+
+pattern GL_SELECT = 0x1C02
+
+pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3
+
+pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4
+
+pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA
+
+pattern GL_SHADE_MODEL = 0x0B54
+
+pattern GL_SHININESS = 0x1601
+
+pattern GL_SINGLE_COLOR = 0x81F9
+
+pattern GL_SLUMINANCE = 0x8C46
+
+pattern GL_SLUMINANCE8 = 0x8C47
+
+pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45
+
+pattern GL_SLUMINANCE_ALPHA = 0x8C44
+
+pattern GL_SMOOTH = 0x1D01
+
+pattern GL_SOURCE0_ALPHA = 0x8588
+
+pattern GL_SOURCE0_RGB = 0x8580
+
+pattern GL_SOURCE1_ALPHA = 0x8589
+
+pattern GL_SOURCE1_RGB = 0x8581
+
+pattern GL_SOURCE2_ALPHA = 0x858A
+
+pattern GL_SOURCE2_RGB = 0x8582
+
+pattern GL_SPECULAR = 0x1202
+
+pattern GL_SPHERE_MAP = 0x2402
+
+pattern GL_SPOT_CUTOFF = 0x1206
+
+pattern GL_SPOT_DIRECTION = 0x1204
+
+pattern GL_SPOT_EXPONENT = 0x1205
+
+pattern GL_SRC0_ALPHA = 0x8588
+
+pattern GL_SRC0_RGB = 0x8580
+
+pattern GL_SRC1_RGB = 0x8581
+
+pattern GL_SRC2_ALPHA = 0x858A
+
+pattern GL_SRC2_RGB = 0x8582
+
+pattern GL_STACK_OVERFLOW = 0x0503
+
+pattern GL_STACK_UNDERFLOW = 0x0504
+
+pattern GL_STENCIL_BITS = 0x0D57
+
+pattern GL_SUBTRACT = 0x84E7
+
+pattern GL_T = 0x2001
+
+pattern GL_T2F_C3F_V3F = 0x2A2A
+
+pattern GL_T2F_C4F_N3F_V3F = 0x2A2C
+
+pattern GL_T2F_C4UB_V3F = 0x2A29
+
+pattern GL_T2F_N3F_V3F = 0x2A2B
+
+pattern GL_T2F_V3F = 0x2A27
+
+pattern GL_T4F_C4F_N3F_V4F = 0x2A2D
+
+pattern GL_T4F_V4F = 0x2A28
+
+pattern GL_TEXTURE_BIT = 0x00040000
+
+pattern GL_TEXTURE_BORDER = 0x1005
+
+pattern GL_TEXTURE_COMPONENTS = 0x1003
+
+pattern GL_TEXTURE_COORD_ARRAY = 0x8078
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089
+
+pattern GL_TEXTURE_ENV = 0x2300
+
+pattern GL_TEXTURE_ENV_COLOR = 0x2201
+
+pattern GL_TEXTURE_ENV_MODE = 0x2200
+
+pattern GL_TEXTURE_FILTER_CONTROL = 0x8500
+
+pattern GL_TEXTURE_GEN_MODE = 0x2500
+
+pattern GL_TEXTURE_GEN_Q = 0x0C63
+
+pattern GL_TEXTURE_GEN_R = 0x0C62
+
+pattern GL_TEXTURE_GEN_S = 0x0C60
+
+pattern GL_TEXTURE_GEN_T = 0x0C61
+
+pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061
+
+pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15
+
+pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060
+
+pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14
+
+pattern GL_TEXTURE_MATRIX = 0x0BA8
+
+pattern GL_TEXTURE_PRIORITY = 0x8066
+
+pattern GL_TEXTURE_RESIDENT = 0x8067
+
+pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5
+
+pattern GL_TRANSFORM_BIT = 0x00001000
+
+pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+
+pattern GL_V2F = 0x2A20
+
+pattern GL_V3F = 0x2A21
+
+pattern GL_VERTEX_ARRAY = 0x8074
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+
+pattern GL_VERTEX_ARRAY_POINTER = 0x808E
+
+pattern GL_VERTEX_ARRAY_SIZE = 0x807A
+
+pattern GL_VERTEX_ARRAY_STRIDE = 0x807C
+
+pattern GL_VERTEX_ARRAY_TYPE = 0x807B
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643
+
+pattern GL_VIEWPORT_BIT = 0x00000800
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+
+pattern GL_ZOOM_X = 0x0D16
+
+pattern GL_ZOOM_Y = 0x0D17
+
+-- | Usage: @'glColorP3ui' type color@
+
+
+glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP3ui = ffienumuintIOV glColorP3uiFunPtr
+
+glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP3uiFunPtr = unsafePerformIO (getProcAddress "glColorP3ui")
+
+{-# NOINLINE glColorP3uiFunPtr #-}
+
+-- | Usage: @'glColorP3uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP3uiv = ffienumPtruintIOV glColorP3uivFunPtr
+
+glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP3uivFunPtr = unsafePerformIO (getProcAddress "glColorP3uiv")
+
+{-# NOINLINE glColorP3uivFunPtr #-}
+
+-- | Usage: @'glColorP4ui' type color@
+
+
+glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP4ui = ffienumuintIOV glColorP4uiFunPtr
+
+glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP4uiFunPtr = unsafePerformIO (getProcAddress "glColorP4ui")
+
+{-# NOINLINE glColorP4uiFunPtr #-}
+
+-- | Usage: @'glColorP4uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP4uiv = ffienumPtruintIOV glColorP4uivFunPtr
+
+glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP4uivFunPtr = unsafePerformIO (getProcAddress "glColorP4uiv")
+
+{-# NOINLINE glColorP4uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP1ui' texture type coords@
+
+
+glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP1ui = ffienumenumuintIOV glMultiTexCoordP1uiFunPtr
+
+glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1ui")
+
+{-# NOINLINE glMultiTexCoordP1uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP1uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP1uiv = ffienumenumPtruintIOV glMultiTexCoordP1uivFunPtr
+
+glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1uiv")
+
+{-# NOINLINE glMultiTexCoordP1uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP2ui' texture type coords@
+
+
+glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP2ui = ffienumenumuintIOV glMultiTexCoordP2uiFunPtr
+
+glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2ui")
+
+{-# NOINLINE glMultiTexCoordP2uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP2uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP2uiv = ffienumenumPtruintIOV glMultiTexCoordP2uivFunPtr
+
+glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2uiv")
+
+{-# NOINLINE glMultiTexCoordP2uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP3ui' texture type coords@
+
+
+glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP3ui = ffienumenumuintIOV glMultiTexCoordP3uiFunPtr
+
+glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3ui")
+
+{-# NOINLINE glMultiTexCoordP3uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP3uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP3uiv = ffienumenumPtruintIOV glMultiTexCoordP3uivFunPtr
+
+glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3uiv")
+
+{-# NOINLINE glMultiTexCoordP3uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP4ui' texture type coords@
+
+
+glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP4ui = ffienumenumuintIOV glMultiTexCoordP4uiFunPtr
+
+glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4ui")
+
+{-# NOINLINE glMultiTexCoordP4uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP4uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP4uiv = ffienumenumPtruintIOV glMultiTexCoordP4uivFunPtr
+
+glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4uiv")
+
+{-# NOINLINE glMultiTexCoordP4uivFunPtr #-}
+
+-- | Usage: @'glNormalP3ui' type coords@
+
+
+glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glNormalP3ui = ffienumuintIOV glNormalP3uiFunPtr
+
+glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glNormalP3uiFunPtr = unsafePerformIO (getProcAddress "glNormalP3ui")
+
+{-# NOINLINE glNormalP3uiFunPtr #-}
+
+-- | Usage: @'glNormalP3uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glNormalP3uiv = ffienumPtruintIOV glNormalP3uivFunPtr
+
+glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glNormalP3uivFunPtr = unsafePerformIO (getProcAddress "glNormalP3uiv")
+
+{-# NOINLINE glNormalP3uivFunPtr #-}
+
+-- | Usage: @'glSecondaryColorP3ui' type color@
+
+
+glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glSecondaryColorP3ui = ffienumuintIOV glSecondaryColorP3uiFunPtr
+
+glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glSecondaryColorP3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3ui")
+
+{-# NOINLINE glSecondaryColorP3uiFunPtr #-}
+
+-- | Usage: @'glSecondaryColorP3uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glSecondaryColorP3uiv = ffienumPtruintIOV glSecondaryColorP3uivFunPtr
+
+glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glSecondaryColorP3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3uiv")
+
+{-# NOINLINE glSecondaryColorP3uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP1ui' type coords@
+
+
+glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP1ui = ffienumuintIOV glTexCoordP1uiFunPtr
+
+glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1ui")
+
+{-# NOINLINE glTexCoordP1uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP1uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP1uiv = ffienumPtruintIOV glTexCoordP1uivFunPtr
+
+glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1uiv")
+
+{-# NOINLINE glTexCoordP1uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP2ui' type coords@
+
+
+glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP2ui = ffienumuintIOV glTexCoordP2uiFunPtr
+
+glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2ui")
+
+{-# NOINLINE glTexCoordP2uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP2uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP2uiv = ffienumPtruintIOV glTexCoordP2uivFunPtr
+
+glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2uiv")
+
+{-# NOINLINE glTexCoordP2uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP3ui' type coords@
+
+
+glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP3ui = ffienumuintIOV glTexCoordP3uiFunPtr
+
+glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3ui")
+
+{-# NOINLINE glTexCoordP3uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP3uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP3uiv = ffienumPtruintIOV glTexCoordP3uivFunPtr
+
+glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3uiv")
+
+{-# NOINLINE glTexCoordP3uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP4ui' type coords@
+
+
+glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP4ui = ffienumuintIOV glTexCoordP4uiFunPtr
+
+glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4ui")
+
+{-# NOINLINE glTexCoordP4uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP4uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP4uiv = ffienumPtruintIOV glTexCoordP4uivFunPtr
+
+glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4uiv")
+
+{-# NOINLINE glTexCoordP4uivFunPtr #-}
+
+-- | Usage: @'glVertexP2ui' type value@
+
+
+glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP2ui = ffienumuintIOV glVertexP2uiFunPtr
+
+glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexP2ui")
+
+{-# NOINLINE glVertexP2uiFunPtr #-}
+
+-- | Usage: @'glVertexP2uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP2uiv = ffienumPtruintIOV glVertexP2uivFunPtr
+
+glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexP2uiv")
+
+{-# NOINLINE glVertexP2uivFunPtr #-}
+
+-- | Usage: @'glVertexP3ui' type value@
+
+
+glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP3ui = ffienumuintIOV glVertexP3uiFunPtr
+
+glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexP3ui")
+
+{-# NOINLINE glVertexP3uiFunPtr #-}
+
+-- | Usage: @'glVertexP3uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP3uiv = ffienumPtruintIOV glVertexP3uivFunPtr
+
+glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexP3uiv")
+
+{-# NOINLINE glVertexP3uivFunPtr #-}
+
+-- | Usage: @'glVertexP4ui' type value@
+
+
+glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP4ui = ffienumuintIOV glVertexP4uiFunPtr
+
+glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexP4ui")
+
+{-# NOINLINE glVertexP4uiFunPtr #-}
+
+-- | Usage: @'glVertexP4uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP4uiv = ffienumPtruintIOV glVertexP4uivFunPtr
+
+glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexP4uiv")
+
+{-# NOINLINE glVertexP4uivFunPtr #-}
+
+pattern GL_DISPLAY_LIST = 0x82E7
+
+-- | Usage: @'glActiveTexture' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml>
+
+
+glActiveTexture :: MonadIO m => GLenum -> m ()
+glActiveTexture = ffienumIOV glActiveTextureFunPtr
+
+glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
+glActiveTextureFunPtr = unsafePerformIO (getProcAddress "glActiveTexture")
+
+{-# NOINLINE glActiveTextureFunPtr #-}
+
+-- | Usage: @'glAttachShader' program shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml>
+
+
+glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glAttachShader = ffiuintuintIOV glAttachShaderFunPtr
+
+glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glAttachShaderFunPtr = unsafePerformIO (getProcAddress "glAttachShader")
+
+{-# NOINLINE glAttachShaderFunPtr #-}
+
+-- | Usage: @'glBeginConditionalRender' id mode@
+--
+-- The parameter @mode@ is a @TypeEnum@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml>
+
+
+glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
+glBeginConditionalRender = ffiuintenumIOV glBeginConditionalRenderFunPtr
+
+glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBeginConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRender")
+
+{-# NOINLINE glBeginConditionalRenderFunPtr #-}
+
+-- | Usage: @'glBeginQuery' target id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml>
+
+
+glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQuery = ffienumuintIOV glBeginQueryFunPtr
+
+glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryFunPtr = unsafePerformIO (getProcAddress "glBeginQuery")
+
+{-# NOINLINE glBeginQueryFunPtr #-}
+
+-- | Usage: @'glBeginTransformFeedback' primitiveMode@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml>
+
+
+glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
+glBeginTransformFeedback = ffienumIOV glBeginTransformFeedbackFunPtr
+
+glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())
+glBeginTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedback")
+
+{-# NOINLINE glBeginTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glBindAttribLocation' program index name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml>
+
+
+glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindAttribLocation = ffiuintuintPtrcharIOV glBindAttribLocationFunPtr
+
+glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindAttribLocationFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocation")
+
+{-# NOINLINE glBindAttribLocationFunPtr #-}
+
+-- | Usage: @'glBindBuffer' target buffer@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml>
+
+
+glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindBuffer = ffienumuintIOV glBindBufferFunPtr
+
+glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindBufferFunPtr = unsafePerformIO (getProcAddress "glBindBuffer")
+
+{-# NOINLINE glBindBufferFunPtr #-}
+
+-- | Usage: @'glBindBufferBase' target index buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml>
+
+
+glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBindBufferBase = ffienumuintuintIOV glBindBufferBaseFunPtr
+
+glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBindBufferBaseFunPtr = unsafePerformIO (getProcAddress "glBindBufferBase")
+
+{-# NOINLINE glBindBufferBaseFunPtr #-}
+
+-- | Usage: @'glBindBufferRange' target index buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml>
+
+
+glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glBindBufferRange = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeFunPtr
+
+glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glBindBufferRangeFunPtr = unsafePerformIO (getProcAddress "glBindBufferRange")
+
+{-# NOINLINE glBindBufferRangeFunPtr #-}
+
+-- | Usage: @'glBindFragDataLocation' program color name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml>
+
+
+glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocation = ffiuintuintPtrcharIOV glBindFragDataLocationFunPtr
+
+glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocation")
+
+{-# NOINLINE glBindFragDataLocationFunPtr #-}
+
+-- | Usage: @'glBindFramebuffer' target framebuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml>
+
+
+glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindFramebuffer = ffienumuintIOV glBindFramebufferFunPtr
+
+glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindFramebufferFunPtr = unsafePerformIO (getProcAddress "glBindFramebuffer")
+
+{-# NOINLINE glBindFramebufferFunPtr #-}
+
+-- | Usage: @'glBindRenderbuffer' target renderbuffer@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml>
+
+
+glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindRenderbuffer = ffienumuintIOV glBindRenderbufferFunPtr
+
+glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindRenderbufferFunPtr = unsafePerformIO (getProcAddress "glBindRenderbuffer")
+
+{-# NOINLINE glBindRenderbufferFunPtr #-}
+
+-- | Usage: @'glBindTexture' target texture@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml>
+
+
+glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTexture = ffienumuintIOV glBindTextureFunPtr
+
+glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTextureFunPtr = unsafePerformIO (getProcAddress "glBindTexture")
+
+{-# NOINLINE glBindTextureFunPtr #-}
+
+-- | Usage: @'glBindVertexArray' array@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml>
+
+
+glBindVertexArray :: MonadIO m => GLuint -> m ()
+glBindVertexArray = ffiuintIOV glBindVertexArrayFunPtr
+
+glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())
+glBindVertexArrayFunPtr = unsafePerformIO (getProcAddress "glBindVertexArray")
+
+{-# NOINLINE glBindVertexArrayFunPtr #-}
+
+-- | Usage: @'glBlendColor' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml>
+
+
+glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glBlendColor = ffifloatfloatfloatfloatIOV glBlendColorFunPtr
+
+glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glBlendColorFunPtr = unsafePerformIO (getProcAddress "glBlendColor")
+
+{-# NOINLINE glBlendColorFunPtr #-}
+
+-- | Usage: @'glBlendEquation' mode@
+--
+-- The parameter @mode@ is a @BlendEquationMode@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml>
+
+
+glBlendEquation :: MonadIO m => GLenum -> m ()
+glBlendEquation = ffienumIOV glBlendEquationFunPtr
+
+glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())
+glBlendEquationFunPtr = unsafePerformIO (getProcAddress "glBlendEquation")
+
+{-# NOINLINE glBlendEquationFunPtr #-}
+
+-- | Usage: @'glBlendEquationSeparate' modeRGB modeAlpha@
+--
+-- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml>
+
+
+glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendEquationSeparate = ffienumenumIOV glBlendEquationSeparateFunPtr
+
+glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendEquationSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparate")
+
+{-# NOINLINE glBlendEquationSeparateFunPtr #-}
+
+-- | Usage: @'glBlendFunc' sfactor dfactor@
+--
+-- The parameter @sfactor@ is a @BlendingFactorSrc@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA_SATURATE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dfactor@ is a @BlendingFactorDest@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml>
+
+
+glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendFunc = ffienumenumIOV glBlendFuncFunPtr
+
+glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendFuncFunPtr = unsafePerformIO (getProcAddress "glBlendFunc")
+
+{-# NOINLINE glBlendFuncFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparate' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
+--
+-- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml>
+
+
+glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparate = ffienumenumenumenumIOV glBlendFuncSeparateFunPtr
+
+glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparate")
+
+{-# NOINLINE glBlendFuncSeparateFunPtr #-}
+
+-- | Usage: @'glBlitFramebuffer' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml>
+
+
+glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitFramebuffer = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferFunPtr
+
+glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitFramebuffer")
+
+{-# NOINLINE glBlitFramebufferFunPtr #-}
+
+-- | Usage: @'glBufferData' target size data usage@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The parameter @usage@ is a @BufferUsageARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml>
+
+
+glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glBufferData = ffienumsizeiptrPtrVenumIOV glBufferDataFunPtr
+
+glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glBufferDataFunPtr = unsafePerformIO (getProcAddress "glBufferData")
+
+{-# NOINLINE glBufferDataFunPtr #-}
+
+-- | Usage: @'glBufferSubData' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml>
+
+
+glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glBufferSubData = ffienumintptrsizeiptrPtrVIOV glBufferSubDataFunPtr
+
+glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glBufferSubData")
+
+{-# NOINLINE glBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCheckFramebufferStatus' target@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml>
+
+
+glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
+glCheckFramebufferStatus = ffienumIOenum glCheckFramebufferStatusFunPtr
+
+glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)
+glCheckFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatus")
+
+{-# NOINLINE glCheckFramebufferStatusFunPtr #-}
+
+-- | Usage: @'glClampColor' target clamp@
+--
+-- The parameter @target@ is a @ClampColorTargetARB@.
+--
+-- The parameter @clamp@ is a @ClampColorModeARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml>
+
+
+glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
+glClampColor = ffienumenumIOV glClampColorFunPtr
+
+glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClampColorFunPtr = unsafePerformIO (getProcAddress "glClampColor")
+
+{-# NOINLINE glClampColorFunPtr #-}
+
+-- | Usage: @'glClear' mask@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClear.xhtml>
+
+
+glClear :: MonadIO m => GLbitfield -> m ()
+glClear = ffibitfieldIOV glClearFunPtr
+
+glClearFunPtr :: FunPtr (GLbitfield -> IO ())
+glClearFunPtr = unsafePerformIO (getProcAddress "glClear")
+
+{-# NOINLINE glClearFunPtr #-}
+
+-- | Usage: @'glClearBufferfi' buffer drawbuffer depth stencil@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+
+
+glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
+glClearBufferfi = ffienumintfloatintIOV glClearBufferfiFunPtr
+
+glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
+glClearBufferfiFunPtr = unsafePerformIO (getProcAddress "glClearBufferfi")
+
+{-# NOINLINE glClearBufferfiFunPtr #-}
+
+-- | Usage: @'glClearBufferfv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearBufferfv = ffienumintPtrfloatIOV glClearBufferfvFunPtr
+
+glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearBufferfvFunPtr = unsafePerformIO (getProcAddress "glClearBufferfv")
+
+{-# NOINLINE glClearBufferfvFunPtr #-}
+
+-- | Usage: @'glClearBufferiv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
+glClearBufferiv = ffienumintPtrintIOV glClearBufferivFunPtr
+
+glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
+glClearBufferivFunPtr = unsafePerformIO (getProcAddress "glClearBufferiv")
+
+{-# NOINLINE glClearBufferivFunPtr #-}
+
+-- | Usage: @'glClearBufferuiv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glClearBufferuiv = ffienumintPtruintIOV glClearBufferuivFunPtr
+
+glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearBufferuivFunPtr = unsafePerformIO (getProcAddress "glClearBufferuiv")
+
+{-# NOINLINE glClearBufferuivFunPtr #-}
+
+-- | Usage: @'glClearColor' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml>
+
+
+glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glClearColor = ffifloatfloatfloatfloatIOV glClearColorFunPtr
+
+glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glClearColorFunPtr = unsafePerformIO (getProcAddress "glClearColor")
+
+{-# NOINLINE glClearColorFunPtr #-}
+
+-- | Usage: @'glClearDepth' depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml>
+
+
+glClearDepth :: MonadIO m => GLdouble -> m ()
+glClearDepth = ffidoubleIOV glClearDepthFunPtr
+
+glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())
+glClearDepthFunPtr = unsafePerformIO (getProcAddress "glClearDepth")
+
+{-# NOINLINE glClearDepthFunPtr #-}
+
+-- | Usage: @'glClearStencil' s@
+--
+-- The parameter @s@ is a @StencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml>
+
+
+glClearStencil :: MonadIO m => GLint -> m ()
+glClearStencil = ffiintIOV glClearStencilFunPtr
+
+glClearStencilFunPtr :: FunPtr (GLint -> IO ())
+glClearStencilFunPtr = unsafePerformIO (getProcAddress "glClearStencil")
+
+{-# NOINLINE glClearStencilFunPtr #-}
+
+-- | Usage: @'glClientWaitSync' sync flags timeout@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml>
+
+
+glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
+glClientWaitSync = ffisyncbitfielduint64IOenum glClientWaitSyncFunPtr
+
+glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+glClientWaitSyncFunPtr = unsafePerformIO (getProcAddress "glClientWaitSync")
+
+{-# NOINLINE glClientWaitSyncFunPtr #-}
+
+-- | Usage: @'glColorMask' red green blue alpha@
+--
+-- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml>
+
+
+glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMask = ffibooleanbooleanbooleanbooleanIOV glColorMaskFunPtr
+
+glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskFunPtr = unsafePerformIO (getProcAddress "glColorMask")
+
+{-# NOINLINE glColorMaskFunPtr #-}
+
+-- | Usage: @'glColorMaski' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMaski = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiFunPtr
+
+glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskiFunPtr = unsafePerformIO (getProcAddress "glColorMaski")
+
+{-# NOINLINE glColorMaskiFunPtr #-}
+
+-- | Usage: @'glCompileShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml>
+
+
+glCompileShader :: MonadIO m => GLuint -> m ()
+glCompileShader = ffiuintIOV glCompileShaderFunPtr
+
+glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())
+glCompileShaderFunPtr = unsafePerformIO (getProcAddress "glCompileShader")
+
+{-# NOINLINE glCompileShaderFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage1D' target level internalformat width border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml>
+
+
+glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage1D = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DFunPtr
+
+glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1D")
+
+{-# NOINLINE glCompressedTexImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage2D' target level internalformat width height border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml>
+
+
+glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage2D = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DFunPtr
+
+glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2D")
+
+{-# NOINLINE glCompressedTexImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage3D' target level internalformat width height depth border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml>
+
+
+glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage3D = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DFunPtr
+
+glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3D")
+
+{-# NOINLINE glCompressedTexImage3DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage1D' target level xoffset width format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml>
+
+
+glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage1D = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DFunPtr
+
+glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1D")
+
+{-# NOINLINE glCompressedTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage2D' target level xoffset yoffset width height format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml>
+
+
+glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage2D = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DFunPtr
+
+glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2D")
+
+{-# NOINLINE glCompressedTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage3D' target level xoffset yoffset zoffset width height depth format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml>
+
+
+glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage3D = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DFunPtr
+
+glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3D")
+
+{-# NOINLINE glCompressedTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glCopyBufferSubData' readTarget writeTarget readOffset writeOffset size@
+--
+-- The parameter @readOffset@ is a @BufferOffset@.
+--
+-- The parameter @writeOffset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml>
+
+
+glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glCopyBufferSubData = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataFunPtr
+
+glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glCopyBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubData")
+
+{-# NOINLINE glCopyBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCopyTexImage1D' target level internalformat x y width border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml>
+
+
+glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyTexImage1D = ffienumintenumintintsizeiintIOV glCopyTexImage1DFunPtr
+
+glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1D")
+
+{-# NOINLINE glCopyTexImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTexImage2D' target level internalformat x y width height border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml>
+
+
+glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyTexImage2D = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DFunPtr
+
+glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2D")
+
+{-# NOINLINE glCopyTexImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage1D' target level xoffset x y width@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml>
+
+
+glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTexSubImage1D = ffienumintintintintsizeiIOV glCopyTexSubImage1DFunPtr
+
+glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1D")
+
+{-# NOINLINE glCopyTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage2D' target level xoffset yoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml>
+
+
+glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage2D = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DFunPtr
+
+glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2D")
+
+{-# NOINLINE glCopyTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage3D' target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml>
+
+
+glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage3D = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DFunPtr
+
+glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3D")
+
+{-# NOINLINE glCopyTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glCreateProgram'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml>
+
+
+glCreateProgram :: MonadIO m => m GLuint
+glCreateProgram = ffiIOuint glCreateProgramFunPtr
+
+glCreateProgramFunPtr :: FunPtr (IO GLuint)
+glCreateProgramFunPtr = unsafePerformIO (getProcAddress "glCreateProgram")
+
+{-# NOINLINE glCreateProgramFunPtr #-}
+
+-- | Usage: @'glCreateShader' type@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml>
+
+
+glCreateShader :: MonadIO m => GLenum -> m GLuint
+glCreateShader = ffienumIOuint glCreateShaderFunPtr
+
+glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)
+glCreateShaderFunPtr = unsafePerformIO (getProcAddress "glCreateShader")
+
+{-# NOINLINE glCreateShaderFunPtr #-}
+
+-- | Usage: @'glCullFace' mode@
+--
+-- The parameter @mode@ is a @CullFaceMode@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml>
+
+
+glCullFace :: MonadIO m => GLenum -> m ()
+glCullFace = ffienumIOV glCullFaceFunPtr
+
+glCullFaceFunPtr :: FunPtr (GLenum -> IO ())
+glCullFaceFunPtr = unsafePerformIO (getProcAddress "glCullFace")
+
+{-# NOINLINE glCullFaceFunPtr #-}
+
+-- | Usage: @'glDeleteBuffers' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml>
+
+
+glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteBuffers = ffisizeiPtruintIOV glDeleteBuffersFunPtr
+
+glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteBuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffers")
+
+{-# NOINLINE glDeleteBuffersFunPtr #-}
+
+-- | Usage: @'glDeleteFramebuffers' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml>
+
+
+glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFramebuffers = ffisizeiPtruintIOV glDeleteFramebuffersFunPtr
+
+glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFramebuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffers")
+
+{-# NOINLINE glDeleteFramebuffersFunPtr #-}
+
+-- | Usage: @'glDeleteProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml>
+
+
+glDeleteProgram :: MonadIO m => GLuint -> m ()
+glDeleteProgram = ffiuintIOV glDeleteProgramFunPtr
+
+glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteProgramFunPtr = unsafePerformIO (getProcAddress "glDeleteProgram")
+
+{-# NOINLINE glDeleteProgramFunPtr #-}
+
+-- | Usage: @'glDeleteQueries' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml>
+
+
+glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueries = ffisizeiPtruintIOV glDeleteQueriesFunPtr
+
+glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesFunPtr = unsafePerformIO (getProcAddress "glDeleteQueries")
+
+{-# NOINLINE glDeleteQueriesFunPtr #-}
+
+-- | Usage: @'glDeleteRenderbuffers' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml>
+
+
+glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteRenderbuffers = ffisizeiPtruintIOV glDeleteRenderbuffersFunPtr
+
+glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffers")
+
+{-# NOINLINE glDeleteRenderbuffersFunPtr #-}
+
+-- | Usage: @'glDeleteShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml>
+
+
+glDeleteShader :: MonadIO m => GLuint -> m ()
+glDeleteShader = ffiuintIOV glDeleteShaderFunPtr
+
+glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteShaderFunPtr = unsafePerformIO (getProcAddress "glDeleteShader")
+
+{-# NOINLINE glDeleteShaderFunPtr #-}
+
+-- | Usage: @'glDeleteSync' sync@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml>
+
+
+glDeleteSync :: MonadIO m => GLsync -> m ()
+glDeleteSync = ffisyncIOV glDeleteSyncFunPtr
+
+glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())
+glDeleteSyncFunPtr = unsafePerformIO (getProcAddress "glDeleteSync")
+
+{-# NOINLINE glDeleteSyncFunPtr #-}
+
+-- | Usage: @'glDeleteTextures' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml>
+
+
+glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTextures = ffisizeiPtruintIOV glDeleteTexturesFunPtr
+
+glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTexturesFunPtr = unsafePerformIO (getProcAddress "glDeleteTextures")
+
+{-# NOINLINE glDeleteTexturesFunPtr #-}
+
+-- | Usage: @'glDeleteVertexArrays' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml>
+
+
+glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteVertexArrays = ffisizeiPtruintIOV glDeleteVertexArraysFunPtr
+
+glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteVertexArraysFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArrays")
+
+{-# NOINLINE glDeleteVertexArraysFunPtr #-}
+
+-- | Usage: @'glDepthFunc' func@
+--
+-- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml>
+
+
+glDepthFunc :: MonadIO m => GLenum -> m ()
+glDepthFunc = ffienumIOV glDepthFuncFunPtr
+
+glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())
+glDepthFuncFunPtr = unsafePerformIO (getProcAddress "glDepthFunc")
+
+{-# NOINLINE glDepthFuncFunPtr #-}
+
+-- | Usage: @'glDepthMask' flag@
+--
+-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml>
+
+
+glDepthMask :: MonadIO m => GLboolean -> m ()
+glDepthMask = ffibooleanIOV glDepthMaskFunPtr
+
+glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())
+glDepthMaskFunPtr = unsafePerformIO (getProcAddress "glDepthMask")
+
+{-# NOINLINE glDepthMaskFunPtr #-}
+
+-- | Usage: @'glDepthRange' near far@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml>
+
+
+glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
+glDepthRange = ffidoubledoubleIOV glDepthRangeFunPtr
+
+glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glDepthRangeFunPtr = unsafePerformIO (getProcAddress "glDepthRange")
+
+{-# NOINLINE glDepthRangeFunPtr #-}
+
+-- | Usage: @'glDetachShader' program shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml>
+
+
+glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glDetachShader = ffiuintuintIOV glDetachShaderFunPtr
+
+glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDetachShaderFunPtr = unsafePerformIO (getProcAddress "glDetachShader")
+
+{-# NOINLINE glDetachShaderFunPtr #-}
+
+-- | Usage: @'glDisable' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisable :: MonadIO m => GLenum -> m ()
+glDisable = ffienumIOV glDisableFunPtr
+
+glDisableFunPtr :: FunPtr (GLenum -> IO ())
+glDisableFunPtr = unsafePerformIO (getProcAddress "glDisable")
+
+{-# NOINLINE glDisableFunPtr #-}
+
+-- | Usage: @'glDisableVertexAttribArray' index@
+
+
+glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArray = ffiuintIOV glDisableVertexAttribArrayFunPtr
+
+glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArray")
+
+{-# NOINLINE glDisableVertexAttribArrayFunPtr #-}
+
+-- | Usage: @'glDisablei' target index@
+
+
+glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
+glDisablei = ffienumuintIOV glDisableiFunPtr
+
+glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiFunPtr = unsafePerformIO (getProcAddress "glDisablei")
+
+{-# NOINLINE glDisableiFunPtr #-}
+
+-- | Usage: @'glDrawArrays' mode first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml>
+
+
+glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
+glDrawArrays = ffienumintsizeiIOV glDrawArraysFunPtr
+
+glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+glDrawArraysFunPtr = unsafePerformIO (getProcAddress "glDrawArrays")
+
+{-# NOINLINE glDrawArraysFunPtr #-}
+
+-- | Usage: @'glDrawArraysInstanced' mode first count instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml>
+
+
+glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstanced = ffienumintsizeisizeiIOV glDrawArraysInstancedFunPtr
+
+glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstanced")
+
+{-# NOINLINE glDrawArraysInstancedFunPtr #-}
+
+-- | Usage: @'glDrawBuffer' buf@
+--
+-- The parameter @buf@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml>
+
+
+glDrawBuffer :: MonadIO m => GLenum -> m ()
+glDrawBuffer = ffienumIOV glDrawBufferFunPtr
+
+glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())
+glDrawBufferFunPtr = unsafePerformIO (getProcAddress "glDrawBuffer")
+
+{-# NOINLINE glDrawBufferFunPtr #-}
+
+-- | Usage: @'glDrawBuffers' n bufs@
+--
+-- The parameter @bufs@ is a @DrawBufferModeATI@.
+--
+-- The length of @bufs@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml>
+
+
+glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffers = ffisizeiPtrenumIOV glDrawBuffersFunPtr
+
+glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glDrawBuffers")
+
+{-# NOINLINE glDrawBuffersFunPtr #-}
+
+-- | Usage: @'glDrawElements' mode count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml>
+
+
+glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawElements = ffienumsizeienumPtrVIOV glDrawElementsFunPtr
+
+glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawElementsFunPtr = unsafePerformIO (getProcAddress "glDrawElements")
+
+{-# NOINLINE glDrawElementsFunPtr #-}
+
+-- | Usage: @'glDrawElementsBaseVertex' mode count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml>
+
+
+glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawElementsBaseVertex = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexFunPtr
+
+glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertex")
+
+{-# NOINLINE glDrawElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstanced' mode count type indices instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml>
+
+
+glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstanced = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedFunPtr
+
+glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstanced")
+
+{-# NOINLINE glDrawElementsInstancedFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertex' mode count type indices instancecount basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml>
+
+
+glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
+glDrawElementsInstancedBaseVertex = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexFunPtr
+
+glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
+glDrawElementsInstancedBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertex")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexFunPtr #-}
+
+-- | Usage: @'glDrawRangeElements' mode start end count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml>
+
+
+glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawRangeElements = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsFunPtr
+
+glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawRangeElementsFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElements")
+
+{-# NOINLINE glDrawRangeElementsFunPtr #-}
+
+-- | Usage: @'glDrawRangeElementsBaseVertex' mode start end count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml>
+
+
+glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawRangeElementsBaseVertex = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexFunPtr
+
+glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawRangeElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertex")
+
+{-# NOINLINE glDrawRangeElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glEnable' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml>
+
+
+glEnable :: MonadIO m => GLenum -> m ()
+glEnable = ffienumIOV glEnableFunPtr
+
+glEnableFunPtr :: FunPtr (GLenum -> IO ())
+glEnableFunPtr = unsafePerformIO (getProcAddress "glEnable")
+
+{-# NOINLINE glEnableFunPtr #-}
+
+-- | Usage: @'glEnableVertexAttribArray' index@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml>
+
+
+glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArray = ffiuintIOV glEnableVertexAttribArrayFunPtr
+
+glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArray")
+
+{-# NOINLINE glEnableVertexAttribArrayFunPtr #-}
+
+-- | Usage: @'glEnablei' target index@
+
+
+glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
+glEnablei = ffienumuintIOV glEnableiFunPtr
+
+glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiFunPtr = unsafePerformIO (getProcAddress "glEnablei")
+
+{-# NOINLINE glEnableiFunPtr #-}
+
+-- | Usage: @'glEndConditionalRender'@
+
+
+glEndConditionalRender :: MonadIO m => m ()
+glEndConditionalRender = ffiIOV glEndConditionalRenderFunPtr
+
+glEndConditionalRenderFunPtr :: FunPtr (IO ())
+glEndConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRender")
+
+{-# NOINLINE glEndConditionalRenderFunPtr #-}
+
+-- | Usage: @'glEndQuery' target@
+
+
+glEndQuery :: MonadIO m => GLenum -> m ()
+glEndQuery = ffienumIOV glEndQueryFunPtr
+
+glEndQueryFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryFunPtr = unsafePerformIO (getProcAddress "glEndQuery")
+
+{-# NOINLINE glEndQueryFunPtr #-}
+
+-- | Usage: @'glEndTransformFeedback'@
+
+
+glEndTransformFeedback :: MonadIO m => m ()
+glEndTransformFeedback = ffiIOV glEndTransformFeedbackFunPtr
+
+glEndTransformFeedbackFunPtr :: FunPtr (IO ())
+glEndTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedback")
+
+{-# NOINLINE glEndTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glFenceSync' condition flags@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml>
+
+
+glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
+glFenceSync = ffienumbitfieldIOsync glFenceSyncFunPtr
+
+glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+glFenceSyncFunPtr = unsafePerformIO (getProcAddress "glFenceSync")
+
+{-# NOINLINE glFenceSyncFunPtr #-}
+
+-- | Usage: @'glFinish'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml>
+
+
+glFinish :: MonadIO m => m ()
+glFinish = ffiIOV glFinishFunPtr
+
+glFinishFunPtr :: FunPtr (IO ())
+glFinishFunPtr = unsafePerformIO (getProcAddress "glFinish")
+
+{-# NOINLINE glFinishFunPtr #-}
+
+-- | Usage: @'glFlush'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml>
+
+
+glFlush :: MonadIO m => m ()
+glFlush = ffiIOV glFlushFunPtr
+
+glFlushFunPtr :: FunPtr (IO ())
+glFlushFunPtr = unsafePerformIO (getProcAddress "glFlush")
+
+{-# NOINLINE glFlushFunPtr #-}
+
+-- | Usage: @'glFlushMappedBufferRange' target offset length@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml>
+
+
+glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedBufferRange = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeFunPtr
+
+glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRange")
+
+{-# NOINLINE glFlushMappedBufferRangeFunPtr #-}
+
+-- | Usage: @'glFramebufferRenderbuffer' target attachment renderbuffertarget renderbuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml>
+
+
+glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glFramebufferRenderbuffer = ffienumenumenumuintIOV glFramebufferRenderbufferFunPtr
+
+glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbuffer")
+
+{-# NOINLINE glFramebufferRenderbufferFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture' target attachment texture level@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml>
+
+
+glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture = ffienumenumuintintIOV glFramebufferTextureFunPtr
+
+glFramebufferTextureFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture")
+
+{-# NOINLINE glFramebufferTextureFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture1D' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture1D = ffienumenumenumuintintIOV glFramebufferTexture1DFunPtr
+
+glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture1DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1D")
+
+{-# NOINLINE glFramebufferTexture1DFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture2D' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture2D = ffienumenumenumuintintIOV glFramebufferTexture2DFunPtr
+
+glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture2DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2D")
+
+{-# NOINLINE glFramebufferTexture2DFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture3D' target attachment textarget texture level zoffset@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTexture3D = ffienumenumenumuintintintIOV glFramebufferTexture3DFunPtr
+
+glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTexture3DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3D")
+
+{-# NOINLINE glFramebufferTexture3DFunPtr #-}
+
+-- | Usage: @'glFramebufferTextureLayer' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml>
+
+
+glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayer = ffienumenumuintintintIOV glFramebufferTextureLayerFunPtr
+
+glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayer")
+
+{-# NOINLINE glFramebufferTextureLayerFunPtr #-}
+
+-- | Usage: @'glFrontFace' mode@
+--
+-- The parameter @mode@ is a @FrontFaceDirection@, one of: 'Graphics.GL.Internal.Shared.GL_CCW', 'Graphics.GL.Internal.Shared.GL_CW'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml>
+
+
+glFrontFace :: MonadIO m => GLenum -> m ()
+glFrontFace = ffienumIOV glFrontFaceFunPtr
+
+glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())
+glFrontFaceFunPtr = unsafePerformIO (getProcAddress "glFrontFace")
+
+{-# NOINLINE glFrontFaceFunPtr #-}
+
+-- | Usage: @'glGenBuffers' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml>
+
+
+glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenBuffers = ffisizeiPtruintIOV glGenBuffersFunPtr
+
+glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenBuffersFunPtr = unsafePerformIO (getProcAddress "glGenBuffers")
+
+{-# NOINLINE glGenBuffersFunPtr #-}
+
+-- | Usage: @'glGenFramebuffers' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml>
+
+
+glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFramebuffers = ffisizeiPtruintIOV glGenFramebuffersFunPtr
+
+glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFramebuffersFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffers")
+
+{-# NOINLINE glGenFramebuffersFunPtr #-}
+
+-- | Usage: @'glGenQueries' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml>
+
+
+glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueries = ffisizeiPtruintIOV glGenQueriesFunPtr
+
+glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesFunPtr = unsafePerformIO (getProcAddress "glGenQueries")
+
+{-# NOINLINE glGenQueriesFunPtr #-}
+
+-- | Usage: @'glGenRenderbuffers' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml>
+
+
+glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenRenderbuffers = ffisizeiPtruintIOV glGenRenderbuffersFunPtr
+
+glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffers")
+
+{-# NOINLINE glGenRenderbuffersFunPtr #-}
+
+-- | Usage: @'glGenTextures' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml>
+
+
+glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTextures = ffisizeiPtruintIOV glGenTexturesFunPtr
+
+glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTexturesFunPtr = unsafePerformIO (getProcAddress "glGenTextures")
+
+{-# NOINLINE glGenTexturesFunPtr #-}
+
+-- | Usage: @'glGenVertexArrays' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml>
+
+
+glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenVertexArrays = ffisizeiPtruintIOV glGenVertexArraysFunPtr
+
+glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenVertexArraysFunPtr = unsafePerformIO (getProcAddress "glGenVertexArrays")
+
+{-# NOINLINE glGenVertexArraysFunPtr #-}
+
+-- | Usage: @'glGenerateMipmap' target@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml>
+
+
+glGenerateMipmap :: MonadIO m => GLenum -> m ()
+glGenerateMipmap = ffienumIOV glGenerateMipmapFunPtr
+
+glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())
+glGenerateMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmap")
+
+{-# NOINLINE glGenerateMipmapFunPtr #-}
+
+-- | Usage: @'glGetActiveAttrib' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml>
+
+
+glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveAttrib = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveAttribFunPtr
+
+glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveAttribFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttrib")
+
+{-# NOINLINE glGetActiveAttribFunPtr #-}
+
+-- | Usage: @'glGetActiveUniform' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml>
+
+
+glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveUniform = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveUniformFunPtr
+
+glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveUniformFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniform")
+
+{-# NOINLINE glGetActiveUniformFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformBlockName' program uniformBlockIndex bufSize length uniformBlockName@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @uniformBlockName@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml>
+
+
+glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformBlockName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformBlockNameFunPtr
+
+glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformBlockNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockName")
+
+{-# NOINLINE glGetActiveUniformBlockNameFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformBlockiv' program uniformBlockIndex pname params@
+--
+-- The length of @params@ should be @COMPSIZE(program,uniformBlockIndex,pname)@.
+
+
+glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformBlockiv = ffiuintuintenumPtrintIOV glGetActiveUniformBlockivFunPtr
+
+glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformBlockivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockiv")
+
+{-# NOINLINE glGetActiveUniformBlockivFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformName' program uniformIndex bufSize length uniformName@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @uniformName@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml>
+
+
+glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformNameFunPtr
+
+glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformName")
+
+{-# NOINLINE glGetActiveUniformNameFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformsiv' program uniformCount uniformIndices pname params@
+--
+-- The length of @uniformIndices@ should be @uniformCount@.
+--
+-- The length of @params@ should be @COMPSIZE(uniformCount,pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml>
+
+
+glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformsiv = ffiuintsizeiPtruintenumPtrintIOV glGetActiveUniformsivFunPtr
+
+glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformsivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformsiv")
+
+{-# NOINLINE glGetActiveUniformsivFunPtr #-}
+
+-- | Usage: @'glGetAttachedShaders' program maxCount count shaders@
+--
+-- The length of @count@ should be @1@.
+--
+-- The length of @shaders@ should be @maxCount@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml>
+
+
+glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
+glGetAttachedShaders = ffiuintsizeiPtrsizeiPtruintIOV glGetAttachedShadersFunPtr
+
+glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
+glGetAttachedShadersFunPtr = unsafePerformIO (getProcAddress "glGetAttachedShaders")
+
+{-# NOINLINE glGetAttachedShadersFunPtr #-}
+
+-- | Usage: @'glGetAttribLocation' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml>
+
+
+glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetAttribLocation = ffiuintPtrcharIOint glGetAttribLocationFunPtr
+
+glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetAttribLocationFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocation")
+
+{-# NOINLINE glGetAttribLocationFunPtr #-}
+
+-- | Usage: @'glGetBooleani_v' target index data@
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleani_v = ffienumuintPtrbooleanIOV glGetBooleani_vFunPtr
+
+glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleani_vFunPtr = unsafePerformIO (getProcAddress "glGetBooleani_v")
+
+{-# NOINLINE glGetBooleani_vFunPtr #-}
+
+-- | Usage: @'glGetBooleanv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
+glGetBooleanv = ffienumPtrbooleanIOV glGetBooleanvFunPtr
+
+glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
+glGetBooleanvFunPtr = unsafePerformIO (getProcAddress "glGetBooleanv")
+
+{-# NOINLINE glGetBooleanvFunPtr #-}
+
+-- | Usage: @'glGetBufferParameteri64v' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
+glGetBufferParameteri64v = ffienumenumPtrint64IOV glGetBufferParameteri64vFunPtr
+
+glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
+glGetBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteri64v")
+
+{-# NOINLINE glGetBufferParameteri64vFunPtr #-}
+
+-- | Usage: @'glGetBufferParameteriv' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetBufferParameteriv = ffienumenumPtrintIOV glGetBufferParameterivFunPtr
+
+glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteriv")
+
+{-# NOINLINE glGetBufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetBufferPointerv' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPointerNameARB@.
+--
+-- The length of @params@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml>
+
+
+glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetBufferPointerv = ffienumenumPtrPtrVIOV glGetBufferPointervFunPtr
+
+glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointerv")
+
+{-# NOINLINE glGetBufferPointervFunPtr #-}
+
+-- | Usage: @'glGetBufferSubData' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml>
+
+
+glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetBufferSubData = ffienumintptrsizeiptrPtrVIOV glGetBufferSubDataFunPtr
+
+glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubData")
+
+{-# NOINLINE glGetBufferSubDataFunPtr #-}
+
+-- | Usage: @'glGetCompressedTexImage' target level img@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @img@ is a @CompressedTextureARB@.
+--
+-- The length of @img@ should be @COMPSIZE(target,level)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml>
+
+
+glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedTexImage = ffienumintPtrVIOV glGetCompressedTexImageFunPtr
+
+glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImage")
+
+{-# NOINLINE glGetCompressedTexImageFunPtr #-}
+
+-- | Usage: @'glGetDoublev' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glGetDoublev = ffienumPtrdoubleIOV glGetDoublevFunPtr
+
+glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glGetDoublevFunPtr = unsafePerformIO (getProcAddress "glGetDoublev")
+
+{-# NOINLINE glGetDoublevFunPtr #-}
+
+-- | Usage: @'glGetError'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml>
+
+
+glGetError :: MonadIO m => m GLenum
+glGetError = ffiIOenum glGetErrorFunPtr
+
+glGetErrorFunPtr :: FunPtr (IO GLenum)
+glGetErrorFunPtr = unsafePerformIO (getProcAddress "glGetError")
+
+{-# NOINLINE glGetErrorFunPtr #-}
+
+-- | Usage: @'glGetFloatv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetFloatv = ffienumPtrfloatIOV glGetFloatvFunPtr
+
+glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetFloatvFunPtr = unsafePerformIO (getProcAddress "glGetFloatv")
+
+{-# NOINLINE glGetFloatvFunPtr #-}
+
+-- | Usage: @'glGetFragDataLocation' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml>
+
+
+glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataLocation = ffiuintPtrcharIOint glGetFragDataLocationFunPtr
+
+glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glGetFragDataLocation")
+
+{-# NOINLINE glGetFragDataLocationFunPtr #-}
+
+-- | Usage: @'glGetFramebufferAttachmentParameteriv' target attachment pname params@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferAttachmentParameteriv = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivFunPtr
+
+glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetFramebufferAttachmentParameterivFunPtr #-}
+
+-- | Usage: @'glGetInteger64i_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetInteger64i_v = ffienumuintPtrint64IOV glGetInteger64i_vFunPtr
+
+glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetInteger64i_vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64i_v")
+
+{-# NOINLINE glGetInteger64i_vFunPtr #-}
+
+-- | Usage: @'glGetInteger64v' pname data@
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
+glGetInteger64v = ffienumPtrint64IOV glGetInteger64vFunPtr
+
+glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+glGetInteger64vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64v")
+
+{-# NOINLINE glGetInteger64vFunPtr #-}
+
+-- | Usage: @'glGetIntegeri_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegeri_v = ffienumuintPtrintIOV glGetIntegeri_vFunPtr
+
+glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegeri_vFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_v")
+
+{-# NOINLINE glGetIntegeri_vFunPtr #-}
+
+-- | Usage: @'glGetIntegerv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glGetIntegerv = ffienumPtrintIOV glGetIntegervFunPtr
+
+glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glGetIntegervFunPtr = unsafePerformIO (getProcAddress "glGetIntegerv")
+
+{-# NOINLINE glGetIntegervFunPtr #-}
+
+-- | Usage: @'glGetMultisamplefv' pname index val@
+--
+-- The length of @val@ should be @COMPSIZE(pname)@.
+
+
+glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetMultisamplefv = ffienumuintPtrfloatIOV glGetMultisamplefvFunPtr
+
+glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetMultisamplefvFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefv")
+
+{-# NOINLINE glGetMultisamplefvFunPtr #-}
+
+-- | Usage: @'glGetProgramInfoLog' program bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml>
+
+
+glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramInfoLogFunPtr
+
+glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramInfoLog")
+
+{-# NOINLINE glGetProgramInfoLogFunPtr #-}
+
+-- | Usage: @'glGetProgramiv' program pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramiv = ffiuintenumPtrintIOV glGetProgramivFunPtr
+
+glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivFunPtr = unsafePerformIO (getProcAddress "glGetProgramiv")
+
+{-# NOINLINE glGetProgramivFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectiv' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryObjectiv = ffiuintenumPtrintIOV glGetQueryObjectivFunPtr
+
+glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectiv")
+
+{-# NOINLINE glGetQueryObjectivFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectuiv' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuiv = ffiuintenumPtruintIOV glGetQueryObjectuivFunPtr
+
+glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuiv")
+
+{-# NOINLINE glGetQueryObjectuivFunPtr #-}
+
+-- | Usage: @'glGetQueryiv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml>
+
+
+glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryiv = ffienumenumPtrintIOV glGetQueryivFunPtr
+
+glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivFunPtr = unsafePerformIO (getProcAddress "glGetQueryiv")
+
+{-# NOINLINE glGetQueryivFunPtr #-}
+
+-- | Usage: @'glGetRenderbufferParameteriv' target pname params@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetRenderbufferParameteriv = ffienumenumPtrintIOV glGetRenderbufferParameterivFunPtr
+
+glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameteriv")
+
+{-# NOINLINE glGetRenderbufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetShaderInfoLog' shader bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml>
+
+
+glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderInfoLogFunPtr
+
+glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetShaderInfoLog")
+
+{-# NOINLINE glGetShaderInfoLogFunPtr #-}
+
+-- | Usage: @'glGetShaderSource' shader bufSize length source@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @source@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml>
+
+
+glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderSource = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderSourceFunPtr
+
+glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderSourceFunPtr = unsafePerformIO (getProcAddress "glGetShaderSource")
+
+{-# NOINLINE glGetShaderSourceFunPtr #-}
+
+-- | Usage: @'glGetShaderiv' shader pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetShaderiv = ffiuintenumPtrintIOV glGetShaderivFunPtr
+
+glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetShaderivFunPtr = unsafePerformIO (getProcAddress "glGetShaderiv")
+
+{-# NOINLINE glGetShaderivFunPtr #-}
+
+-- | Usage: @'glGetString' name@
+--
+-- The parameter @name@ is a @StringName@, one of: 'Graphics.GL.Internal.Shared.GL_EXTENSIONS', 'Graphics.GL.Internal.Shared.GL_RENDERER', 'Graphics.GL.Internal.Shared.GL_VENDOR', 'Graphics.GL.Internal.Shared.GL_VERSION'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml>
+
+
+glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
+glGetString = ffienumIOPtrubyte glGetStringFunPtr
+
+glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))
+glGetStringFunPtr = unsafePerformIO (getProcAddress "glGetString")
+
+{-# NOINLINE glGetStringFunPtr #-}
+
+-- | Usage: @'glGetStringi' name index@
+
+
+glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
+glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
+
+glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
+glGetStringiFunPtr = unsafePerformIO (getProcAddress "glGetStringi")
+
+{-# NOINLINE glGetStringiFunPtr #-}
+
+-- | Usage: @'glGetSynciv' sync pname bufSize length values@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetSynciv = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivFunPtr
+
+glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetSyncivFunPtr = unsafePerformIO (getProcAddress "glGetSynciv")
+
+{-# NOINLINE glGetSyncivFunPtr #-}
+
+-- | Usage: @'glGetTexImage' target level format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml>
+
+
+glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetTexImage = ffienumintenumenumPtrVIOV glGetTexImageFunPtr
+
+glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetTexImageFunPtr = unsafePerformIO (getProcAddress "glGetTexImage")
+
+{-# NOINLINE glGetTexImageFunPtr #-}
+
+-- | Usage: @'glGetTexLevelParameterfv' target level pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTexLevelParameterfv = ffienumintenumPtrfloatIOV glGetTexLevelParameterfvFunPtr
+
+glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterfv")
+
+{-# NOINLINE glGetTexLevelParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTexLevelParameteriv' target level pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTexLevelParameteriv = ffienumintenumPtrintIOV glGetTexLevelParameterivFunPtr
+
+glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTexLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameteriv")
+
+{-# NOINLINE glGetTexLevelParameterivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIiv = ffienumenumPtrintIOV glGetTexParameterIivFunPtr
+
+glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIiv")
+
+{-# NOINLINE glGetTexParameterIivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIuiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuiv = ffienumenumPtruintIOV glGetTexParameterIuivFunPtr
+
+glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuiv")
+
+{-# NOINLINE glGetTexParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterfv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexParameterfv = ffienumenumPtrfloatIOV glGetTexParameterfvFunPtr
+
+glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterfv")
+
+{-# NOINLINE glGetTexParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTexParameteriv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameteriv = ffienumenumPtrintIOV glGetTexParameterivFunPtr
+
+glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameteriv")
+
+{-# NOINLINE glGetTexParameterivFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackVarying' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml>
+
+
+glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetTransformFeedbackVarying = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingFunPtr
+
+glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetTransformFeedbackVaryingFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVarying")
+
+{-# NOINLINE glGetTransformFeedbackVaryingFunPtr #-}
+
+-- | Usage: @'glGetUniformBlockIndex' program uniformBlockName@
+--
+-- The length of @uniformBlockName@ should be @COMPSIZE()@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml>
+
+
+glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
+glGetUniformBlockIndex = ffiuintPtrcharIOuint glGetUniformBlockIndexFunPtr
+
+glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
+glGetUniformBlockIndexFunPtr = unsafePerformIO (getProcAddress "glGetUniformBlockIndex")
+
+{-# NOINLINE glGetUniformBlockIndexFunPtr #-}
+
+-- | Usage: @'glGetUniformIndices' program uniformCount uniformNames uniformIndices@
+--
+-- The length of @uniformNames@ should be @COMPSIZE(uniformCount)@.
+--
+-- The length of @uniformIndices@ should be @COMPSIZE(uniformCount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml>
+
+
+glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
+glGetUniformIndices = ffiuintsizeiPtrPtrcharPtruintIOV glGetUniformIndicesFunPtr
+
+glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
+glGetUniformIndicesFunPtr = unsafePerformIO (getProcAddress "glGetUniformIndices")
+
+{-# NOINLINE glGetUniformIndicesFunPtr #-}
+
+-- | Usage: @'glGetUniformLocation' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml>
+
+
+glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetUniformLocation = ffiuintPtrcharIOint glGetUniformLocationFunPtr
+
+glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocation")
+
+{-# NOINLINE glGetUniformLocationFunPtr #-}
+
+-- | Usage: @'glGetUniformfv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
+glGetUniformfv = ffiuintintPtrfloatIOV glGetUniformfvFunPtr
+
+glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
+glGetUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetUniformfv")
+
+{-# NOINLINE glGetUniformfvFunPtr #-}
+
+-- | Usage: @'glGetUniformiv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
+glGetUniformiv = ffiuintintPtrintIOV glGetUniformivFunPtr
+
+glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
+glGetUniformivFunPtr = unsafePerformIO (getProcAddress "glGetUniformiv")
+
+{-# NOINLINE glGetUniformivFunPtr #-}
+
+-- | Usage: @'glGetUniformuiv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
+glGetUniformuiv = ffiuintintPtruintIOV glGetUniformuivFunPtr
+
+glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+glGetUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformuiv")
+
+{-# NOINLINE glGetUniformuivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribIiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribIiv = ffiuintenumPtrintIOV glGetVertexAttribIivFunPtr
+
+glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribIivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIiv")
+
+{-# NOINLINE glGetVertexAttribIivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribIuiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetVertexAttribIuiv = ffiuintenumPtruintIOV glGetVertexAttribIuivFunPtr
+
+glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetVertexAttribIuivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuiv")
+
+{-# NOINLINE glGetVertexAttribIuivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribPointerv' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml>
+
+
+glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointerv = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervFunPtr
+
+glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexAttribPointervFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointerv")
+
+{-# NOINLINE glGetVertexAttribPointervFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribdv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdv = ffiuintenumPtrdoubleIOV glGetVertexAttribdvFunPtr
+
+glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdv")
+
+{-# NOINLINE glGetVertexAttribdvFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribfv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfv = ffiuintenumPtrfloatIOV glGetVertexAttribfvFunPtr
+
+glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfv")
+
+{-# NOINLINE glGetVertexAttribfvFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribiv = ffiuintenumPtrintIOV glGetVertexAttribivFunPtr
+
+glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribiv")
+
+{-# NOINLINE glGetVertexAttribivFunPtr #-}
+
+-- | Usage: @'glHint' target mode@
+--
+-- The parameter @target@ is a @HintTarget@, one of: 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_FRG_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_MEM_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_OBJ_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_WIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_FAST_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_SOFT_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_BACK_NORMALS_HINT_PGI', 'Graphics.GL.Ext.QCOM.BinningControl.GL_BINNING_CONTROL_HINT_QCOM', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_FAR_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_NEAR_HINT_PGI', 'Graphics.GL.Ext.EXT.ClipVolumeHint.GL_CLIP_VOLUME_CLIPPING_HINT_EXT', 'Graphics.GL.Ext.PGI.MiscHints.GL_CONSERVE_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FRAGMENT_SHADER_DERIVATIVE_HINT', 'Graphics.GL.Ext.ARB.FragmentShader.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB', 'Graphics.GL.Ext.OES.StandardDerivatives.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES', 'Graphics.GL.Ext.PGI.MiscHints.GL_FULL_STIPPLE_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP_HINT', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', @GL_LINE_QUALITY_HINT_SGIX@, 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.VertexHints.GL_MATERIAL_SIDE_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_MAX_VERTEX_HINT_PGI', 'Graphics.GL.Ext.NV.MultisampleFilterHint.GL_MULTISAMPLE_FILTER_HINT_NV', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_END_HINT_PGI', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Ext.WIN.PhongShading.GL_PHONG_HINT_WIN', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_PREFER_DOUBLEBUFFER_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_PROGRAM_BINARY_RETRIEVABLE_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_RECLAIM_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ScalebiasHint.GL_SCALEBIAS_HINT_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_DEPTHFUNC_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_LIGHTING_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_SCISSOR_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPRESSION_HINT', 'Graphics.GL.Ext.ARB.TextureCompression.GL_TEXTURE_COMPRESSION_HINT_ARB', 'Graphics.GL.Ext.SGIX.TextureMultiBuffer.GL_TEXTURE_MULTI_BUFFER_HINT_SGIX', 'Graphics.GL.Ext.APPLE.TextureRange.GL_TEXTURE_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.APPLE.TransformHint.GL_TRANSFORM_HINT_APPLE', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.APPLE.VertexArrayRange.GL_VERTEX_ARRAY_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_CONSISTENT_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_DATA_HINT_PGI', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_WIDE_LINE_HINT_PGI'.
+--
+-- The parameter @mode@ is a @HintMode@, one of: 'Graphics.GL.Internal.Shared.GL_DONT_CARE', 'Graphics.GL.Internal.Shared.GL_FASTEST', 'Graphics.GL.Internal.Shared.GL_NICEST'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glHint.xhtml>
+
+
+glHint :: MonadIO m => GLenum -> GLenum -> m ()
+glHint = ffienumenumIOV glHintFunPtr
+
+glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glHintFunPtr = unsafePerformIO (getProcAddress "glHint")
+
+{-# NOINLINE glHintFunPtr #-}
+
+-- | Usage: @'glIsBuffer' buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml>
+
+
+glIsBuffer :: MonadIO m => GLuint -> m GLboolean
+glIsBuffer = ffiuintIOboolean glIsBufferFunPtr
+
+glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsBufferFunPtr = unsafePerformIO (getProcAddress "glIsBuffer")
+
+{-# NOINLINE glIsBufferFunPtr #-}
+
+-- | Usage: @'glIsEnabled' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml>
+
+
+glIsEnabled :: MonadIO m => GLenum -> m GLboolean
+glIsEnabled = ffienumIOboolean glIsEnabledFunPtr
+
+glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glIsEnabledFunPtr = unsafePerformIO (getProcAddress "glIsEnabled")
+
+{-# NOINLINE glIsEnabledFunPtr #-}
+
+-- | Usage: @'glIsEnabledi' target index@
+
+
+glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledi = ffienumuintIOboolean glIsEnablediFunPtr
+
+glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediFunPtr = unsafePerformIO (getProcAddress "glIsEnabledi")
+
+{-# NOINLINE glIsEnablediFunPtr #-}
+
+-- | Usage: @'glIsFramebuffer' framebuffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml>
+
+
+glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
+glIsFramebuffer = ffiuintIOboolean glIsFramebufferFunPtr
+
+glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFramebufferFunPtr = unsafePerformIO (getProcAddress "glIsFramebuffer")
+
+{-# NOINLINE glIsFramebufferFunPtr #-}
+
+-- | Usage: @'glIsProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml>
+
+
+glIsProgram :: MonadIO m => GLuint -> m GLboolean
+glIsProgram = ffiuintIOboolean glIsProgramFunPtr
+
+glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramFunPtr = unsafePerformIO (getProcAddress "glIsProgram")
+
+{-# NOINLINE glIsProgramFunPtr #-}
+
+-- | Usage: @'glIsQuery' id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml>
+
+
+glIsQuery :: MonadIO m => GLuint -> m GLboolean
+glIsQuery = ffiuintIOboolean glIsQueryFunPtr
+
+glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryFunPtr = unsafePerformIO (getProcAddress "glIsQuery")
+
+{-# NOINLINE glIsQueryFunPtr #-}
+
+-- | Usage: @'glIsRenderbuffer' renderbuffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml>
+
+
+glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
+glIsRenderbuffer = ffiuintIOboolean glIsRenderbufferFunPtr
+
+glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsRenderbufferFunPtr = unsafePerformIO (getProcAddress "glIsRenderbuffer")
+
+{-# NOINLINE glIsRenderbufferFunPtr #-}
+
+-- | Usage: @'glIsShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml>
+
+
+glIsShader :: MonadIO m => GLuint -> m GLboolean
+glIsShader = ffiuintIOboolean glIsShaderFunPtr
+
+glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsShaderFunPtr = unsafePerformIO (getProcAddress "glIsShader")
+
+{-# NOINLINE glIsShaderFunPtr #-}
+
+-- | Usage: @'glIsSync' sync@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml>
+
+
+glIsSync :: MonadIO m => GLsync -> m GLboolean
+glIsSync = ffisyncIOboolean glIsSyncFunPtr
+
+glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)
+glIsSyncFunPtr = unsafePerformIO (getProcAddress "glIsSync")
+
+{-# NOINLINE glIsSyncFunPtr #-}
+
+-- | Usage: @'glIsTexture' texture@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml>
+
+
+glIsTexture :: MonadIO m => GLuint -> m GLboolean
+glIsTexture = ffiuintIOboolean glIsTextureFunPtr
+
+glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTextureFunPtr = unsafePerformIO (getProcAddress "glIsTexture")
+
+{-# NOINLINE glIsTextureFunPtr #-}
+
+-- | Usage: @'glIsVertexArray' array@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml>
+
+
+glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
+glIsVertexArray = ffiuintIOboolean glIsVertexArrayFunPtr
+
+glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsVertexArrayFunPtr = unsafePerformIO (getProcAddress "glIsVertexArray")
+
+{-# NOINLINE glIsVertexArrayFunPtr #-}
+
+-- | Usage: @'glLineWidth' width@
+--
+-- The parameter @width@ is a @CheckedFloat32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml>
+
+
+glLineWidth :: MonadIO m => GLfloat -> m ()
+glLineWidth = ffifloatIOV glLineWidthFunPtr
+
+glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())
+glLineWidthFunPtr = unsafePerformIO (getProcAddress "glLineWidth")
+
+{-# NOINLINE glLineWidthFunPtr #-}
+
+-- | Usage: @'glLinkProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml>
+
+
+glLinkProgram :: MonadIO m => GLuint -> m ()
+glLinkProgram = ffiuintIOV glLinkProgramFunPtr
+
+glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())
+glLinkProgramFunPtr = unsafePerformIO (getProcAddress "glLinkProgram")
+
+{-# NOINLINE glLinkProgramFunPtr #-}
+
+-- | Usage: @'glLogicOp' opcode@
+--
+-- The parameter @opcode@ is a @LogicOp@, one of: 'Graphics.GL.Internal.Shared.GL_AND', 'Graphics.GL.Internal.Shared.GL_AND_INVERTED', 'Graphics.GL.Internal.Shared.GL_AND_REVERSE', 'Graphics.GL.Internal.Shared.GL_CLEAR', 'Graphics.GL.Internal.Shared.GL_COPY', 'Graphics.GL.Internal.Shared.GL_COPY_INVERTED', 'Graphics.GL.Internal.Shared.GL_EQUIV', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_NAND', 'Graphics.GL.Internal.Shared.GL_NOOP', 'Graphics.GL.Internal.Shared.GL_NOR', 'Graphics.GL.Internal.Shared.GL_OR', 'Graphics.GL.Internal.Shared.GL_OR_INVERTED', 'Graphics.GL.Internal.Shared.GL_OR_REVERSE', 'Graphics.GL.Internal.Shared.GL_SET', 'Graphics.GL.Internal.Shared.GL_XOR'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml>
+
+
+glLogicOp :: MonadIO m => GLenum -> m ()
+glLogicOp = ffienumIOV glLogicOpFunPtr
+
+glLogicOpFunPtr :: FunPtr (GLenum -> IO ())
+glLogicOpFunPtr = unsafePerformIO (getProcAddress "glLogicOp")
+
+{-# NOINLINE glLogicOpFunPtr #-}
+
+-- | Usage: @'glMapBuffer' target access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @access@ is a @BufferAccessARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml>
+
+
+glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
+glMapBuffer = ffienumenumIOPtrV glMapBufferFunPtr
+
+glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
+glMapBufferFunPtr = unsafePerformIO (getProcAddress "glMapBuffer")
+
+{-# NOINLINE glMapBufferFunPtr #-}
+
+-- | Usage: @'glMapBufferRange' target offset length access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- The parameter @access@ is a @BufferAccessMask@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml>
+
+
+glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapBufferRange = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeFunPtr
+
+glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapBufferRange")
+
+{-# NOINLINE glMapBufferRangeFunPtr #-}
+
+-- | Usage: @'glMultiDrawArrays' mode first count drawcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @COMPSIZE(count)@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml>
+
+
+glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+glMultiDrawArrays = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysFunPtr
+
+glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArrays")
+
+{-# NOINLINE glMultiDrawArraysFunPtr #-}
+
+-- | Usage: @'glMultiDrawElements' mode count type indices drawcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml>
+
+
+glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
+glMultiDrawElements = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsFunPtr
+
+glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
+glMultiDrawElementsFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElements")
+
+{-# NOINLINE glMultiDrawElementsFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsBaseVertex' mode count type indices drawcount basevertex@
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml>
+
+
+glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
+glMultiDrawElementsBaseVertex = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexFunPtr
+
+glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
+glMultiDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertex")
+
+{-# NOINLINE glMultiDrawElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glPixelStoref' pname param@
+--
+-- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelStoref = ffienumfloatIOV glPixelStorefFunPtr
+
+glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelStorefFunPtr = unsafePerformIO (getProcAddress "glPixelStoref")
+
+{-# NOINLINE glPixelStorefFunPtr #-}
+
+-- | Usage: @'glPixelStorei' pname param@
+--
+-- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
+glPixelStorei = ffienumintIOV glPixelStoreiFunPtr
+
+glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelStoreiFunPtr = unsafePerformIO (getProcAddress "glPixelStorei")
+
+{-# NOINLINE glPixelStoreiFunPtr #-}
+
+-- | Usage: @'glPointParameterf' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
+glPointParameterf = ffienumfloatIOV glPointParameterfFunPtr
+
+glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPointParameterfFunPtr = unsafePerformIO (getProcAddress "glPointParameterf")
+
+{-# NOINLINE glPointParameterfFunPtr #-}
+
+-- | Usage: @'glPointParameterfv' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPointParameterfv = ffienumPtrfloatIOV glPointParameterfvFunPtr
+
+glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPointParameterfvFunPtr = unsafePerformIO (getProcAddress "glPointParameterfv")
+
+{-# NOINLINE glPointParameterfvFunPtr #-}
+
+-- | Usage: @'glPointParameteri' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+
+
+glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPointParameteri = ffienumintIOV glPointParameteriFunPtr
+
+glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPointParameteriFunPtr = unsafePerformIO (getProcAddress "glPointParameteri")
+
+{-# NOINLINE glPointParameteriFunPtr #-}
+
+-- | Usage: @'glPointParameteriv' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glPointParameteriv = ffienumPtrintIOV glPointParameterivFunPtr
+
+glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glPointParameterivFunPtr = unsafePerformIO (getProcAddress "glPointParameteriv")
+
+{-# NOINLINE glPointParameterivFunPtr #-}
+
+-- | Usage: @'glPointSize' size@
+--
+-- The parameter @size@ is a @CheckedFloat32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml>
+
+
+glPointSize :: MonadIO m => GLfloat -> m ()
+glPointSize = ffifloatIOV glPointSizeFunPtr
+
+glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())
+glPointSizeFunPtr = unsafePerformIO (getProcAddress "glPointSize")
+
+{-# NOINLINE glPointSizeFunPtr #-}
+
+-- | Usage: @'glPolygonMode' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml>
+
+
+glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
+glPolygonMode = ffienumenumIOV glPolygonModeFunPtr
+
+glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glPolygonModeFunPtr = unsafePerformIO (getProcAddress "glPolygonMode")
+
+{-# NOINLINE glPolygonModeFunPtr #-}
+
+-- | Usage: @'glPolygonOffset' factor units@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml>
+
+
+glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPolygonOffset = ffifloatfloatIOV glPolygonOffsetFunPtr
+
+glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPolygonOffsetFunPtr = unsafePerformIO (getProcAddress "glPolygonOffset")
+
+{-# NOINLINE glPolygonOffsetFunPtr #-}
+
+-- | Usage: @'glPrimitiveRestartIndex' index@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml>
+
+
+glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
+glPrimitiveRestartIndex = ffiuintIOV glPrimitiveRestartIndexFunPtr
+
+glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())
+glPrimitiveRestartIndexFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndex")
+
+{-# NOINLINE glPrimitiveRestartIndexFunPtr #-}
+
+-- | Usage: @'glProvokingVertex' mode@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml>
+
+
+glProvokingVertex :: MonadIO m => GLenum -> m ()
+glProvokingVertex = ffienumIOV glProvokingVertexFunPtr
+
+glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())
+glProvokingVertexFunPtr = unsafePerformIO (getProcAddress "glProvokingVertex")
+
+{-# NOINLINE glProvokingVertexFunPtr #-}
+
+-- | Usage: @'glReadBuffer' src@
+--
+-- The parameter @src@ is a @ReadBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml>
+
+
+glReadBuffer :: MonadIO m => GLenum -> m ()
+glReadBuffer = ffienumIOV glReadBufferFunPtr
+
+glReadBufferFunPtr :: FunPtr (GLenum -> IO ())
+glReadBufferFunPtr = unsafePerformIO (getProcAddress "glReadBuffer")
+
+{-# NOINLINE glReadBufferFunPtr #-}
+
+-- | Usage: @'glReadPixels' x y width height format type pixels@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml>
+
+
+glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glReadPixels = ffiintintsizeisizeienumenumPtrVIOV glReadPixelsFunPtr
+
+glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glReadPixelsFunPtr = unsafePerformIO (getProcAddress "glReadPixels")
+
+{-# NOINLINE glReadPixelsFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorage' target internalformat width height@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml>
+
+
+glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorage = ffienumenumsizeisizeiIOV glRenderbufferStorageFunPtr
+
+glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorage")
+
+{-# NOINLINE glRenderbufferStorageFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageMultisample' target samples internalformat width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml>
+
+
+glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisample = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleFunPtr
+
+glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisample")
+
+{-# NOINLINE glRenderbufferStorageMultisampleFunPtr #-}
+
+-- | Usage: @'glSampleCoverage' value invert@
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml>
+
+
+glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
+glSampleCoverage = ffifloatbooleanIOV glSampleCoverageFunPtr
+
+glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
+glSampleCoverageFunPtr = unsafePerformIO (getProcAddress "glSampleCoverage")
+
+{-# NOINLINE glSampleCoverageFunPtr #-}
+
+-- | Usage: @'glSampleMaski' maskNumber mask@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml>
+
+
+glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
+glSampleMaski = ffiuintbitfieldIOV glSampleMaskiFunPtr
+
+glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
+glSampleMaskiFunPtr = unsafePerformIO (getProcAddress "glSampleMaski")
+
+{-# NOINLINE glSampleMaskiFunPtr #-}
+
+-- | Usage: @'glScissor' x y width height@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml>
+
+
+glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissor = ffiintintsizeisizeiIOV glScissorFunPtr
+
+glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorFunPtr = unsafePerformIO (getProcAddress "glScissor")
+
+{-# NOINLINE glScissorFunPtr #-}
+
+-- | Usage: @'glShaderSource' shader count string length@
+--
+-- The length of @string@ should be @count@.
+--
+-- The length of @length@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml>
+
+
+glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
+glShaderSource = ffiuintsizeiPtrPtrcharPtrintIOV glShaderSourceFunPtr
+
+glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
+glShaderSourceFunPtr = unsafePerformIO (getProcAddress "glShaderSource")
+
+{-# NOINLINE glShaderSourceFunPtr #-}
+
+-- | Usage: @'glStencilFunc' func ref mask@
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml>
+
+
+glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
+glStencilFunc = ffienumintuintIOV glStencilFuncFunPtr
+
+glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncFunPtr = unsafePerformIO (getProcAddress "glStencilFunc")
+
+{-# NOINLINE glStencilFuncFunPtr #-}
+
+-- | Usage: @'glStencilFuncSeparate' face func ref mask@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml>
+
+
+glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
+glStencilFuncSeparate = ffienumenumintuintIOV glStencilFuncSeparateFunPtr
+
+glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparate")
+
+{-# NOINLINE glStencilFuncSeparateFunPtr #-}
+
+-- | Usage: @'glStencilMask' mask@
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml>
+
+
+glStencilMask :: MonadIO m => GLuint -> m ()
+glStencilMask = ffiuintIOV glStencilMaskFunPtr
+
+glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())
+glStencilMaskFunPtr = unsafePerformIO (getProcAddress "glStencilMask")
+
+{-# NOINLINE glStencilMaskFunPtr #-}
+
+-- | Usage: @'glStencilMaskSeparate' face mask@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml>
+
+
+glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
+glStencilMaskSeparate = ffienumuintIOV glStencilMaskSeparateFunPtr
+
+glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glStencilMaskSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilMaskSeparate")
+
+{-# NOINLINE glStencilMaskSeparateFunPtr #-}
+
+-- | Usage: @'glStencilOp' fail zfail zpass@
+--
+-- The parameter @fail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @zfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @zpass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml>
+
+
+glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
+glStencilOp = ffienumenumenumIOV glStencilOpFunPtr
+
+glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpFunPtr = unsafePerformIO (getProcAddress "glStencilOp")
+
+{-# NOINLINE glStencilOpFunPtr #-}
+
+-- | Usage: @'glStencilOpSeparate' face sfail dpfail dppass@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml>
+
+
+glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glStencilOpSeparate = ffienumenumenumenumIOV glStencilOpSeparateFunPtr
+
+glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparate")
+
+{-# NOINLINE glStencilOpSeparateFunPtr #-}
+
+-- | Usage: @'glTexBuffer' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml>
+
+
+glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBuffer = ffienumenumuintIOV glTexBufferFunPtr
+
+glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferFunPtr = unsafePerformIO (getProcAddress "glTexBuffer")
+
+{-# NOINLINE glTexBufferFunPtr #-}
+
+-- | Usage: @'glTexImage1D' target level internalformat width border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml>
+
+
+glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage1D = ffienumintintsizeiintenumenumPtrVIOV glTexImage1DFunPtr
+
+glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage1DFunPtr = unsafePerformIO (getProcAddress "glTexImage1D")
+
+{-# NOINLINE glTexImage1DFunPtr #-}
+
+-- | Usage: @'glTexImage2D' target level internalformat width height border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml>
+
+
+glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage2D = ffienumintintsizeisizeiintenumenumPtrVIOV glTexImage2DFunPtr
+
+glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage2DFunPtr = unsafePerformIO (getProcAddress "glTexImage2D")
+
+{-# NOINLINE glTexImage2DFunPtr #-}
+
+-- | Usage: @'glTexImage2DMultisample' target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml>
+
+
+glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexImage2DMultisampleFunPtr
+
+glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisample")
+
+{-# NOINLINE glTexImage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexImage3D' target level internalformat width height depth border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml>
+
+
+glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage3D = ffienumintintsizeisizeisizeiintenumenumPtrVIOV glTexImage3DFunPtr
+
+glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage3DFunPtr = unsafePerformIO (getProcAddress "glTexImage3D")
+
+{-# NOINLINE glTexImage3DFunPtr #-}
+
+-- | Usage: @'glTexImage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml>
+
+
+glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexImage3DMultisampleFunPtr
+
+glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisample")
+
+{-# NOINLINE glTexImage3DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexParameterIiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIiv = ffienumenumPtrintIOV glTexParameterIivFunPtr
+
+glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIiv")
+
+{-# NOINLINE glTexParameterIivFunPtr #-}
+
+-- | Usage: @'glTexParameterIuiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuiv = ffienumenumPtruintIOV glTexParameterIuivFunPtr
+
+glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuiv")
+
+{-# NOINLINE glTexParameterIuivFunPtr #-}
+
+-- | Usage: @'glTexParameterf' target pname param@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexParameterf = ffienumenumfloatIOV glTexParameterfFunPtr
+
+glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexParameterfFunPtr = unsafePerformIO (getProcAddress "glTexParameterf")
+
+{-# NOINLINE glTexParameterfFunPtr #-}
+
+-- | Usage: @'glTexParameterfv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexParameterfv = ffienumenumPtrfloatIOV glTexParameterfvFunPtr
+
+glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glTexParameterfv")
+
+{-# NOINLINE glTexParameterfvFunPtr #-}
+
+-- | Usage: @'glTexParameteri' target pname param@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexParameteri = ffienumenumintIOV glTexParameteriFunPtr
+
+glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexParameteriFunPtr = unsafePerformIO (getProcAddress "glTexParameteri")
+
+{-# NOINLINE glTexParameteriFunPtr #-}
+
+-- | Usage: @'glTexParameteriv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameteriv = ffienumenumPtrintIOV glTexParameterivFunPtr
+
+glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterivFunPtr = unsafePerformIO (getProcAddress "glTexParameteriv")
+
+{-# NOINLINE glTexParameterivFunPtr #-}
+
+-- | Usage: @'glTexSubImage1D' target level xoffset width format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml>
+
+
+glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage1D = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DFunPtr
+
+glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1D")
+
+{-# NOINLINE glTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glTexSubImage2D' target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml>
+
+
+glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage2D = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DFunPtr
+
+glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2D")
+
+{-# NOINLINE glTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glTexSubImage3D' target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml>
+
+
+glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage3D = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DFunPtr
+
+glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3D")
+
+{-# NOINLINE glTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackVaryings' program count varyings bufferMode@
+--
+-- The length of @varyings@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml>
+
+
+glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
+glTransformFeedbackVaryings = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsFunPtr
+
+glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
+glTransformFeedbackVaryingsFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryings")
+
+{-# NOINLINE glTransformFeedbackVaryingsFunPtr #-}
+
+-- | Usage: @'glUniform1f' location v0@
+
+
+glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
+glUniform1f = ffiintfloatIOV glUniform1fFunPtr
+
+glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
+glUniform1fFunPtr = unsafePerformIO (getProcAddress "glUniform1f")
+
+{-# NOINLINE glUniform1fFunPtr #-}
+
+-- | Usage: @'glUniform1fv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform1fv = ffiintsizeiPtrfloatIOV glUniform1fvFunPtr
+
+glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform1fvFunPtr = unsafePerformIO (getProcAddress "glUniform1fv")
+
+{-# NOINLINE glUniform1fvFunPtr #-}
+
+-- | Usage: @'glUniform1i' location v0@
+
+
+glUniform1i :: MonadIO m => GLint -> GLint -> m ()
+glUniform1i = ffiintintIOV glUniform1iFunPtr
+
+glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glUniform1iFunPtr = unsafePerformIO (getProcAddress "glUniform1i")
+
+{-# NOINLINE glUniform1iFunPtr #-}
+
+-- | Usage: @'glUniform1iv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform1iv = ffiintsizeiPtrintIOV glUniform1ivFunPtr
+
+glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform1ivFunPtr = unsafePerformIO (getProcAddress "glUniform1iv")
+
+{-# NOINLINE glUniform1ivFunPtr #-}
+
+-- | Usage: @'glUniform1ui' location v0@
+
+
+glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
+glUniform1ui = ffiintuintIOV glUniform1uiFunPtr
+
+glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())
+glUniform1uiFunPtr = unsafePerformIO (getProcAddress "glUniform1ui")
+
+{-# NOINLINE glUniform1uiFunPtr #-}
+
+-- | Usage: @'glUniform1uiv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform1uiv = ffiintsizeiPtruintIOV glUniform1uivFunPtr
+
+glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform1uivFunPtr = unsafePerformIO (getProcAddress "glUniform1uiv")
+
+{-# NOINLINE glUniform1uivFunPtr #-}
+
+-- | Usage: @'glUniform2f' location v0 v1@
+
+
+glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glUniform2f = ffiintfloatfloatIOV glUniform2fFunPtr
+
+glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glUniform2fFunPtr = unsafePerformIO (getProcAddress "glUniform2f")
+
+{-# NOINLINE glUniform2fFunPtr #-}
+
+-- | Usage: @'glUniform2fv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform2fv = ffiintsizeiPtrfloatIOV glUniform2fvFunPtr
+
+glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform2fvFunPtr = unsafePerformIO (getProcAddress "glUniform2fv")
+
+{-# NOINLINE glUniform2fvFunPtr #-}
+
+-- | Usage: @'glUniform2i' location v0 v1@
+
+
+glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glUniform2i = ffiintintintIOV glUniform2iFunPtr
+
+glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glUniform2iFunPtr = unsafePerformIO (getProcAddress "glUniform2i")
+
+{-# NOINLINE glUniform2iFunPtr #-}
+
+-- | Usage: @'glUniform2iv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform2iv = ffiintsizeiPtrintIOV glUniform2ivFunPtr
+
+glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform2ivFunPtr = unsafePerformIO (getProcAddress "glUniform2iv")
+
+{-# NOINLINE glUniform2ivFunPtr #-}
+
+-- | Usage: @'glUniform2ui' location v0 v1@
+
+
+glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
+glUniform2ui = ffiintuintuintIOV glUniform2uiFunPtr
+
+glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+glUniform2uiFunPtr = unsafePerformIO (getProcAddress "glUniform2ui")
+
+{-# NOINLINE glUniform2uiFunPtr #-}
+
+-- | Usage: @'glUniform2uiv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform2uiv = ffiintsizeiPtruintIOV glUniform2uivFunPtr
+
+glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform2uivFunPtr = unsafePerformIO (getProcAddress "glUniform2uiv")
+
+{-# NOINLINE glUniform2uivFunPtr #-}
+
+-- | Usage: @'glUniform3f' location v0 v1 v2@
+
+
+glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform3f = ffiintfloatfloatfloatIOV glUniform3fFunPtr
+
+glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform3fFunPtr = unsafePerformIO (getProcAddress "glUniform3f")
+
+{-# NOINLINE glUniform3fFunPtr #-}
+
+-- | Usage: @'glUniform3fv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform3fv = ffiintsizeiPtrfloatIOV glUniform3fvFunPtr
+
+glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform3fvFunPtr = unsafePerformIO (getProcAddress "glUniform3fv")
+
+{-# NOINLINE glUniform3fvFunPtr #-}
+
+-- | Usage: @'glUniform3i' location v0 v1 v2@
+
+
+glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glUniform3i = ffiintintintintIOV glUniform3iFunPtr
+
+glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform3iFunPtr = unsafePerformIO (getProcAddress "glUniform3i")
+
+{-# NOINLINE glUniform3iFunPtr #-}
+
+-- | Usage: @'glUniform3iv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform3iv = ffiintsizeiPtrintIOV glUniform3ivFunPtr
+
+glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform3ivFunPtr = unsafePerformIO (getProcAddress "glUniform3iv")
+
+{-# NOINLINE glUniform3ivFunPtr #-}
+
+-- | Usage: @'glUniform3ui' location v0 v1 v2@
+
+
+glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform3ui = ffiintuintuintuintIOV glUniform3uiFunPtr
+
+glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform3uiFunPtr = unsafePerformIO (getProcAddress "glUniform3ui")
+
+{-# NOINLINE glUniform3uiFunPtr #-}
+
+-- | Usage: @'glUniform3uiv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform3uiv = ffiintsizeiPtruintIOV glUniform3uivFunPtr
+
+glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform3uivFunPtr = unsafePerformIO (getProcAddress "glUniform3uiv")
+
+{-# NOINLINE glUniform3uivFunPtr #-}
+
+-- | Usage: @'glUniform4f' location v0 v1 v2 v3@
+
+
+glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform4f = ffiintfloatfloatfloatfloatIOV glUniform4fFunPtr
+
+glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform4fFunPtr = unsafePerformIO (getProcAddress "glUniform4f")
+
+{-# NOINLINE glUniform4fFunPtr #-}
+
+-- | Usage: @'glUniform4fv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform4fv = ffiintsizeiPtrfloatIOV glUniform4fvFunPtr
+
+glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform4fvFunPtr = unsafePerformIO (getProcAddress "glUniform4fv")
+
+{-# NOINLINE glUniform4fvFunPtr #-}
+
+-- | Usage: @'glUniform4i' location v0 v1 v2 v3@
+
+
+glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glUniform4i = ffiintintintintintIOV glUniform4iFunPtr
+
+glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform4iFunPtr = unsafePerformIO (getProcAddress "glUniform4i")
+
+{-# NOINLINE glUniform4iFunPtr #-}
+
+-- | Usage: @'glUniform4iv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform4iv = ffiintsizeiPtrintIOV glUniform4ivFunPtr
+
+glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform4ivFunPtr = unsafePerformIO (getProcAddress "glUniform4iv")
+
+{-# NOINLINE glUniform4ivFunPtr #-}
+
+-- | Usage: @'glUniform4ui' location v0 v1 v2 v3@
+
+
+glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform4ui = ffiintuintuintuintuintIOV glUniform4uiFunPtr
+
+glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform4uiFunPtr = unsafePerformIO (getProcAddress "glUniform4ui")
+
+{-# NOINLINE glUniform4uiFunPtr #-}
+
+-- | Usage: @'glUniform4uiv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform4uiv = ffiintsizeiPtruintIOV glUniform4uivFunPtr
+
+glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform4uivFunPtr = unsafePerformIO (getProcAddress "glUniform4uiv")
+
+{-# NOINLINE glUniform4uivFunPtr #-}
+
+-- | Usage: @'glUniformBlockBinding' program uniformBlockIndex uniformBlockBinding@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml>
+
+
+glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glUniformBlockBinding = ffiuintuintuintIOV glUniformBlockBindingFunPtr
+
+glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glUniformBlockBindingFunPtr = unsafePerformIO (getProcAddress "glUniformBlockBinding")
+
+{-# NOINLINE glUniformBlockBindingFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvFunPtr
+
+glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fv")
+
+{-# NOINLINE glUniformMatrix2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvFunPtr
+
+glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fv")
+
+{-# NOINLINE glUniformMatrix2x3fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvFunPtr
+
+glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fv")
+
+{-# NOINLINE glUniformMatrix2x4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvFunPtr
+
+glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fv")
+
+{-# NOINLINE glUniformMatrix3fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvFunPtr
+
+glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fv")
+
+{-# NOINLINE glUniformMatrix3x2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvFunPtr
+
+glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fv")
+
+{-# NOINLINE glUniformMatrix3x4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvFunPtr
+
+glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fv")
+
+{-# NOINLINE glUniformMatrix4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvFunPtr
+
+glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fv")
+
+{-# NOINLINE glUniformMatrix4x2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvFunPtr
+
+glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fv")
+
+{-# NOINLINE glUniformMatrix4x3fvFunPtr #-}
+
+-- | Usage: @'glUnmapBuffer' target@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml>
+
+
+glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
+glUnmapBuffer = ffienumIOboolean glUnmapBufferFunPtr
+
+glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glUnmapBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapBuffer")
+
+{-# NOINLINE glUnmapBufferFunPtr #-}
+
+-- | Usage: @'glUseProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml>
+
+
+glUseProgram :: MonadIO m => GLuint -> m ()
+glUseProgram = ffiuintIOV glUseProgramFunPtr
+
+glUseProgramFunPtr :: FunPtr (GLuint -> IO ())
+glUseProgramFunPtr = unsafePerformIO (getProcAddress "glUseProgram")
+
+{-# NOINLINE glUseProgramFunPtr #-}
+
+-- | Usage: @'glValidateProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml>
+
+
+glValidateProgram :: MonadIO m => GLuint -> m ()
+glValidateProgram = ffiuintIOV glValidateProgramFunPtr
+
+glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramFunPtr = unsafePerformIO (getProcAddress "glValidateProgram")
+
+{-# NOINLINE glValidateProgramFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1d' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
+
+
+glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1d = ffiuintdoubleIOV glVertexAttrib1dFunPtr
+
+glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1d")
+
+{-# NOINLINE glVertexAttrib1dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dv = ffiuintPtrdoubleIOV glVertexAttrib1dvFunPtr
+
+glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dv")
+
+{-# NOINLINE glVertexAttrib1dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1f' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
+
+
+glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1f = ffiuintfloatIOV glVertexAttrib1fFunPtr
+
+glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1f")
+
+{-# NOINLINE glVertexAttrib1fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fv = ffiuintPtrfloatIOV glVertexAttrib1fvFunPtr
+
+glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fv")
+
+{-# NOINLINE glVertexAttrib1fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1s' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
+
+
+glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1s = ffiuintshortIOV glVertexAttrib1sFunPtr
+
+glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1s")
+
+{-# NOINLINE glVertexAttrib1sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1sv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1sv = ffiuintPtrshortIOV glVertexAttrib1svFunPtr
+
+glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sv")
+
+{-# NOINLINE glVertexAttrib1svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2d' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
+
+
+glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2d = ffiuintdoubledoubleIOV glVertexAttrib2dFunPtr
+
+glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2d")
+
+{-# NOINLINE glVertexAttrib2dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dv = ffiuintPtrdoubleIOV glVertexAttrib2dvFunPtr
+
+glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dv")
+
+{-# NOINLINE glVertexAttrib2dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2f' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
+
+
+glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2f = ffiuintfloatfloatIOV glVertexAttrib2fFunPtr
+
+glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2f")
+
+{-# NOINLINE glVertexAttrib2fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fv = ffiuintPtrfloatIOV glVertexAttrib2fvFunPtr
+
+glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fv")
+
+{-# NOINLINE glVertexAttrib2fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2s' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
+
+
+glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2s = ffiuintshortshortIOV glVertexAttrib2sFunPtr
+
+glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2s")
+
+{-# NOINLINE glVertexAttrib2sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2sv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2sv = ffiuintPtrshortIOV glVertexAttrib2svFunPtr
+
+glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sv")
+
+{-# NOINLINE glVertexAttrib2svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3d' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
+
+
+glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3d = ffiuintdoubledoubledoubleIOV glVertexAttrib3dFunPtr
+
+glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3d")
+
+{-# NOINLINE glVertexAttrib3dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dv = ffiuintPtrdoubleIOV glVertexAttrib3dvFunPtr
+
+glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dv")
+
+{-# NOINLINE glVertexAttrib3dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3f' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
+
+
+glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3f = ffiuintfloatfloatfloatIOV glVertexAttrib3fFunPtr
+
+glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3f")
+
+{-# NOINLINE glVertexAttrib3fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fv = ffiuintPtrfloatIOV glVertexAttrib3fvFunPtr
+
+glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fv")
+
+{-# NOINLINE glVertexAttrib3fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3s' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
+
+
+glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3s = ffiuintshortshortshortIOV glVertexAttrib3sFunPtr
+
+glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3s")
+
+{-# NOINLINE glVertexAttrib3sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3sv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3sv = ffiuintPtrshortIOV glVertexAttrib3svFunPtr
+
+glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sv")
+
+{-# NOINLINE glVertexAttrib3svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nbv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4Nbv = ffiuintPtrbyteIOV glVertexAttrib4NbvFunPtr
+
+glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nbv")
+
+{-# NOINLINE glVertexAttrib4NbvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Niv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4Niv = ffiuintPtrintIOV glVertexAttrib4NivFunPtr
+
+glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Niv")
+
+{-# NOINLINE glVertexAttrib4NivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nsv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4Nsv = ffiuintPtrshortIOV glVertexAttrib4NsvFunPtr
+
+glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nsv")
+
+{-# NOINLINE glVertexAttrib4NsvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nub' index x y z w@
+
+
+glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4Nub = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubFunPtr
+
+glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nub")
+
+{-# NOINLINE glVertexAttrib4NubFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4Nubv = ffiuintPtrubyteIOV glVertexAttrib4NubvFunPtr
+
+glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nubv")
+
+{-# NOINLINE glVertexAttrib4NubvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nuiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4Nuiv = ffiuintPtruintIOV glVertexAttrib4NuivFunPtr
+
+glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nuiv")
+
+{-# NOINLINE glVertexAttrib4NuivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nusv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4Nusv = ffiuintPtrushortIOV glVertexAttrib4NusvFunPtr
+
+glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nusv")
+
+{-# NOINLINE glVertexAttrib4NusvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4bv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bv = ffiuintPtrbyteIOV glVertexAttrib4bvFunPtr
+
+glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bv")
+
+{-# NOINLINE glVertexAttrib4bvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4d' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
+
+
+glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dFunPtr
+
+glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4d")
+
+{-# NOINLINE glVertexAttrib4dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dv = ffiuintPtrdoubleIOV glVertexAttrib4dvFunPtr
+
+glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dv")
+
+{-# NOINLINE glVertexAttrib4dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4f' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
+
+
+glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4f = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fFunPtr
+
+glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4f")
+
+{-# NOINLINE glVertexAttrib4fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fv = ffiuintPtrfloatIOV glVertexAttrib4fvFunPtr
+
+glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fv")
+
+{-# NOINLINE glVertexAttrib4fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4iv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4iv = ffiuintPtrintIOV glVertexAttrib4ivFunPtr
+
+glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4iv")
+
+{-# NOINLINE glVertexAttrib4ivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4s' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
+
+
+glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4s = ffiuintshortshortshortshortIOV glVertexAttrib4sFunPtr
+
+glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4s")
+
+{-# NOINLINE glVertexAttrib4sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4sv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4sv = ffiuintPtrshortIOV glVertexAttrib4svFunPtr
+
+glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sv")
+
+{-# NOINLINE glVertexAttrib4svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubv = ffiuintPtrubyteIOV glVertexAttrib4ubvFunPtr
+
+glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubv")
+
+{-# NOINLINE glVertexAttrib4ubvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4uiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uiv = ffiuintPtruintIOV glVertexAttrib4uivFunPtr
+
+glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uiv")
+
+{-# NOINLINE glVertexAttrib4uivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4usv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usv = ffiuintPtrushortIOV glVertexAttrib4usvFunPtr
+
+glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usv")
+
+{-# NOINLINE glVertexAttrib4usvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1i' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1iv'.
+
+
+glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
+glVertexAttribI1i = ffiuintintIOV glVertexAttribI1iFunPtr
+
+glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glVertexAttribI1iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1i")
+
+{-# NOINLINE glVertexAttribI1iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1iv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI1iv = ffiuintPtrintIOV glVertexAttribI1ivFunPtr
+
+glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI1ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iv")
+
+{-# NOINLINE glVertexAttribI1ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1ui' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1uiv'.
+
+
+glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribI1ui = ffiuintuintIOV glVertexAttribI1uiFunPtr
+
+glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribI1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ui")
+
+{-# NOINLINE glVertexAttribI1uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1uiv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI1uiv = ffiuintPtruintIOV glVertexAttribI1uivFunPtr
+
+glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiv")
+
+{-# NOINLINE glVertexAttribI1uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2i' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2iv'.
+
+
+glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glVertexAttribI2i = ffiuintintintIOV glVertexAttribI2iFunPtr
+
+glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glVertexAttribI2iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2i")
+
+{-# NOINLINE glVertexAttribI2iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2iv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI2iv = ffiuintPtrintIOV glVertexAttribI2ivFunPtr
+
+glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI2ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iv")
+
+{-# NOINLINE glVertexAttribI2ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2ui' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2uiv'.
+
+
+glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI2ui = ffiuintuintuintIOV glVertexAttribI2uiFunPtr
+
+glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ui")
+
+{-# NOINLINE glVertexAttribI2uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2uiv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI2uiv = ffiuintPtruintIOV glVertexAttribI2uivFunPtr
+
+glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiv")
+
+{-# NOINLINE glVertexAttribI2uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3i' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3iv'.
+
+
+glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI3i = ffiuintintintintIOV glVertexAttribI3iFunPtr
+
+glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI3iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3i")
+
+{-# NOINLINE glVertexAttribI3iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3iv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI3iv = ffiuintPtrintIOV glVertexAttribI3ivFunPtr
+
+glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI3ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iv")
+
+{-# NOINLINE glVertexAttribI3ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3ui' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3uiv'.
+
+
+glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI3ui = ffiuintuintuintuintIOV glVertexAttribI3uiFunPtr
+
+glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ui")
+
+{-# NOINLINE glVertexAttribI3uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3uiv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI3uiv = ffiuintPtruintIOV glVertexAttribI3uivFunPtr
+
+glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiv")
+
+{-# NOINLINE glVertexAttribI3uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4bv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttribI4bv = ffiuintPtrbyteIOV glVertexAttribI4bvFunPtr
+
+glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttribI4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bv")
+
+{-# NOINLINE glVertexAttribI4bvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4i' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4iv'.
+
+
+glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI4i = ffiuintintintintintIOV glVertexAttribI4iFunPtr
+
+glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI4iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4i")
+
+{-# NOINLINE glVertexAttribI4iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4iv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI4iv = ffiuintPtrintIOV glVertexAttribI4ivFunPtr
+
+glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iv")
+
+{-# NOINLINE glVertexAttribI4ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4sv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttribI4sv = ffiuintPtrshortIOV glVertexAttribI4svFunPtr
+
+glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttribI4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4sv")
+
+{-# NOINLINE glVertexAttribI4svFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttribI4ubv = ffiuintPtrubyteIOV glVertexAttribI4ubvFunPtr
+
+glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttribI4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubv")
+
+{-# NOINLINE glVertexAttribI4ubvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ui' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4uiv'.
+
+
+glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI4ui = ffiuintuintuintuintuintIOV glVertexAttribI4uiFunPtr
+
+glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ui")
+
+{-# NOINLINE glVertexAttribI4uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4uiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI4uiv = ffiuintPtruintIOV glVertexAttribI4uivFunPtr
+
+glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiv")
+
+{-# NOINLINE glVertexAttribI4uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4usv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttribI4usv = ffiuintPtrushortIOV glVertexAttribI4usvFunPtr
+
+glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttribI4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usv")
+
+{-# NOINLINE glVertexAttribI4usvFunPtr #-}
+
+-- | Usage: @'glVertexAttribIPointer' index size type stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribEnum@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribIPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerFunPtr
+
+glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribIPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointer")
+
+{-# NOINLINE glVertexAttribIPointerFunPtr #-}
+
+-- | Usage: @'glVertexAttribPointer' index size type normalized stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml>
+
+
+glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointer = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerFunPtr
+
+glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointer")
+
+{-# NOINLINE glVertexAttribPointerFunPtr #-}
+
+-- | Usage: @'glViewport' x y width height@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml>
+
+
+glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glViewport = ffiintintsizeisizeiIOV glViewportFunPtr
+
+glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glViewportFunPtr = unsafePerformIO (getProcAddress "glViewport")
+
+{-# NOINLINE glViewportFunPtr #-}
+
+-- | Usage: @'glWaitSync' sync flags timeout@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml>
+
+
+glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
+glWaitSync = ffisyncbitfielduint64IOV glWaitSyncFunPtr
+
+glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+glWaitSyncFunPtr = unsafePerformIO (getProcAddress "glWaitSync")
+
+{-# NOINLINE glWaitSyncFunPtr #-}
+
+pattern GL_ACTIVE_ATTRIBUTES = 0x8B89
+
+pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+
+pattern GL_ACTIVE_TEXTURE = 0x84E0
+
+pattern GL_ACTIVE_UNIFORMS = 0x8B86
+
+pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36
+
+pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+
+pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+
+pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E
+
+pattern GL_ALPHA = 0x1906
+
+pattern GL_ALREADY_SIGNALED = 0x911A
+
+pattern GL_ALWAYS = 0x0207
+
+pattern GL_AND = 0x1501
+
+pattern GL_AND_INVERTED = 0x1504
+
+pattern GL_AND_REVERSE = 0x1502
+
+pattern GL_ARRAY_BUFFER = 0x8892
+
+pattern GL_ARRAY_BUFFER_BINDING = 0x8894
+
+pattern GL_ATTACHED_SHADERS = 0x8B85
+
+pattern GL_BACK = 0x0405
+
+pattern GL_BACK_LEFT = 0x0402
+
+pattern GL_BACK_RIGHT = 0x0403
+
+pattern GL_BGR = 0x80E0
+
+pattern GL_BGRA = 0x80E1
+
+pattern GL_BGRA_INTEGER = 0x8D9B
+
+pattern GL_BGR_INTEGER = 0x8D9A
+
+pattern GL_BLEND = 0x0BE2
+
+pattern GL_BLEND_COLOR = 0x8005
+
+pattern GL_BLEND_DST = 0x0BE0
+
+pattern GL_BLEND_DST_ALPHA = 0x80CA
+
+pattern GL_BLEND_DST_RGB = 0x80C8
+
+pattern GL_BLEND_EQUATION_ALPHA = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB = 0x8009
+
+pattern GL_BLEND_SRC = 0x0BE1
+
+pattern GL_BLEND_SRC_ALPHA = 0x80CB
+
+pattern GL_BLEND_SRC_RGB = 0x80C9
+
+pattern GL_BLUE = 0x1905
+
+pattern GL_BLUE_INTEGER = 0x8D96
+
+pattern GL_BOOL = 0x8B56
+
+pattern GL_BOOL_VEC2 = 0x8B57
+
+pattern GL_BOOL_VEC3 = 0x8B58
+
+pattern GL_BOOL_VEC4 = 0x8B59
+
+pattern GL_BUFFER_ACCESS = 0x88BB
+
+pattern GL_BUFFER_ACCESS_FLAGS = 0x911F
+
+pattern GL_BUFFER_MAPPED = 0x88BC
+
+pattern GL_BUFFER_MAP_LENGTH = 0x9120
+
+pattern GL_BUFFER_MAP_OFFSET = 0x9121
+
+pattern GL_BUFFER_MAP_POINTER = 0x88BD
+
+pattern GL_BUFFER_SIZE = 0x8764
+
+pattern GL_BUFFER_USAGE = 0x8765
+
+pattern GL_BYTE = 0x1400
+
+pattern GL_CCW = 0x0901
+
+pattern GL_CLAMP_READ_COLOR = 0x891C
+
+pattern GL_CLAMP_TO_BORDER = 0x812D
+
+pattern GL_CLAMP_TO_EDGE = 0x812F
+
+pattern GL_CLEAR = 0x1500
+
+pattern GL_CLIP_DISTANCE0 = 0x3000
+
+pattern GL_CLIP_DISTANCE1 = 0x3001
+
+pattern GL_CLIP_DISTANCE2 = 0x3002
+
+pattern GL_CLIP_DISTANCE3 = 0x3003
+
+pattern GL_CLIP_DISTANCE4 = 0x3004
+
+pattern GL_CLIP_DISTANCE5 = 0x3005
+
+pattern GL_CLIP_DISTANCE6 = 0x3006
+
+pattern GL_CLIP_DISTANCE7 = 0x3007
+
+pattern GL_COLOR = 0x1800
+
+pattern GL_COLOR_ATTACHMENT0 = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT1 = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT10 = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11 = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12 = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13 = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14 = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15 = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT16 = 0x8CF0
+
+pattern GL_COLOR_ATTACHMENT17 = 0x8CF1
+
+pattern GL_COLOR_ATTACHMENT18 = 0x8CF2
+
+pattern GL_COLOR_ATTACHMENT19 = 0x8CF3
+
+pattern GL_COLOR_ATTACHMENT2 = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT20 = 0x8CF4
+
+pattern GL_COLOR_ATTACHMENT21 = 0x8CF5
+
+pattern GL_COLOR_ATTACHMENT22 = 0x8CF6
+
+pattern GL_COLOR_ATTACHMENT23 = 0x8CF7
+
+pattern GL_COLOR_ATTACHMENT24 = 0x8CF8
+
+pattern GL_COLOR_ATTACHMENT25 = 0x8CF9
+
+pattern GL_COLOR_ATTACHMENT26 = 0x8CFA
+
+pattern GL_COLOR_ATTACHMENT27 = 0x8CFB
+
+pattern GL_COLOR_ATTACHMENT28 = 0x8CFC
+
+pattern GL_COLOR_ATTACHMENT29 = 0x8CFD
+
+pattern GL_COLOR_ATTACHMENT3 = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT30 = 0x8CFE
+
+pattern GL_COLOR_ATTACHMENT31 = 0x8CFF
+
+pattern GL_COLOR_ATTACHMENT4 = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5 = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6 = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7 = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8 = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9 = 0x8CE9
+
+pattern GL_COLOR_BUFFER_BIT = 0x00004000
+
+pattern GL_COLOR_CLEAR_VALUE = 0x0C22
+
+pattern GL_COLOR_LOGIC_OP = 0x0BF2
+
+pattern GL_COLOR_WRITEMASK = 0x0C23
+
+pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE_STATUS = 0x8B81
+
+pattern GL_COMPRESSED_RED = 0x8225
+
+pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB
+
+pattern GL_COMPRESSED_RG = 0x8226
+
+pattern GL_COMPRESSED_RGB = 0x84ED
+
+pattern GL_COMPRESSED_RGBA = 0x84EE
+
+pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+
+pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+
+pattern GL_COMPRESSED_SRGB = 0x8C48
+
+pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3
+
+pattern GL_CONDITION_SATISFIED = 0x911C
+
+pattern GL_CONSTANT_ALPHA = 0x8003
+
+pattern GL_CONSTANT_COLOR = 0x8001
+
+pattern GL_CONTEXT_FLAGS = 0x821E
+
+pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+pattern GL_COPY = 0x1503
+
+pattern GL_COPY_INVERTED = 0x150C
+
+pattern GL_COPY_READ_BUFFER = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER = 0x8F37
+
+pattern GL_CULL_FACE = 0x0B44
+
+pattern GL_CULL_FACE_MODE = 0x0B45
+
+pattern GL_CURRENT_PROGRAM = 0x8B8D
+
+pattern GL_CURRENT_QUERY = 0x8865
+
+pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626
+
+pattern GL_CW = 0x0900
+
+pattern GL_DECR = 0x1E03
+
+pattern GL_DECR_WRAP = 0x8508
+
+pattern GL_DELETE_STATUS = 0x8B80
+
+pattern GL_DEPTH = 0x1801
+
+pattern GL_DEPTH24_STENCIL8 = 0x88F0
+
+pattern GL_DEPTH32F_STENCIL8 = 0x8CAD
+
+pattern GL_DEPTH_ATTACHMENT = 0x8D00
+
+pattern GL_DEPTH_BUFFER_BIT = 0x00000100
+
+pattern GL_DEPTH_CLAMP = 0x864F
+
+pattern GL_DEPTH_CLEAR_VALUE = 0x0B73
+
+pattern GL_DEPTH_COMPONENT = 0x1902
+
+pattern GL_DEPTH_COMPONENT16 = 0x81A5
+
+pattern GL_DEPTH_COMPONENT24 = 0x81A6
+
+pattern GL_DEPTH_COMPONENT32 = 0x81A7
+
+pattern GL_DEPTH_COMPONENT32F = 0x8CAC
+
+pattern GL_DEPTH_FUNC = 0x0B74
+
+pattern GL_DEPTH_RANGE = 0x0B70
+
+pattern GL_DEPTH_STENCIL = 0x84F9
+
+pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A
+
+pattern GL_DEPTH_TEST = 0x0B71
+
+pattern GL_DEPTH_WRITEMASK = 0x0B72
+
+pattern GL_DITHER = 0x0BD0
+
+pattern GL_DONT_CARE = 0x1100
+
+pattern GL_DOUBLE = 0x140A
+
+pattern GL_DOUBLEBUFFER = 0x0C32
+
+pattern GL_DRAW_BUFFER = 0x0C01
+
+pattern GL_DRAW_BUFFER0 = 0x8825
+
+pattern GL_DRAW_BUFFER1 = 0x8826
+
+pattern GL_DRAW_BUFFER10 = 0x882F
+
+pattern GL_DRAW_BUFFER11 = 0x8830
+
+pattern GL_DRAW_BUFFER12 = 0x8831
+
+pattern GL_DRAW_BUFFER13 = 0x8832
+
+pattern GL_DRAW_BUFFER14 = 0x8833
+
+pattern GL_DRAW_BUFFER15 = 0x8834
+
+pattern GL_DRAW_BUFFER2 = 0x8827
+
+pattern GL_DRAW_BUFFER3 = 0x8828
+
+pattern GL_DRAW_BUFFER4 = 0x8829
+
+pattern GL_DRAW_BUFFER5 = 0x882A
+
+pattern GL_DRAW_BUFFER6 = 0x882B
+
+pattern GL_DRAW_BUFFER7 = 0x882C
+
+pattern GL_DRAW_BUFFER8 = 0x882D
+
+pattern GL_DRAW_BUFFER9 = 0x882E
+
+pattern GL_DRAW_FRAMEBUFFER = 0x8CA9
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_DST_ALPHA = 0x0304
+
+pattern GL_DST_COLOR = 0x0306
+
+pattern GL_DYNAMIC_COPY = 0x88EA
+
+pattern GL_DYNAMIC_DRAW = 0x88E8
+
+pattern GL_DYNAMIC_READ = 0x88E9
+
+pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+
+pattern GL_EQUAL = 0x0202
+
+pattern GL_EQUIV = 0x1509
+
+pattern GL_EXTENSIONS = 0x1F03
+
+pattern GL_FALSE = 0
+
+pattern GL_FASTEST = 0x1101
+
+pattern GL_FILL = 0x1B02
+
+pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D
+
+pattern GL_FIXED_ONLY = 0x891D
+
+pattern GL_FLOAT = 0x1406
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+
+pattern GL_FLOAT_MAT2 = 0x8B5A
+
+pattern GL_FLOAT_MAT2x3 = 0x8B65
+
+pattern GL_FLOAT_MAT2x4 = 0x8B66
+
+pattern GL_FLOAT_MAT3 = 0x8B5B
+
+pattern GL_FLOAT_MAT3x2 = 0x8B67
+
+pattern GL_FLOAT_MAT3x4 = 0x8B68
+
+pattern GL_FLOAT_MAT4 = 0x8B5C
+
+pattern GL_FLOAT_MAT4x2 = 0x8B69
+
+pattern GL_FLOAT_MAT4x3 = 0x8B6A
+
+pattern GL_FLOAT_VEC2 = 0x8B50
+
+pattern GL_FLOAT_VEC3 = 0x8B51
+
+pattern GL_FLOAT_VEC4 = 0x8B52
+
+pattern GL_FRAGMENT_SHADER = 0x8B30
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+
+pattern GL_FRAMEBUFFER = 0x8D40
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+
+pattern GL_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5
+
+pattern GL_FRAMEBUFFER_DEFAULT = 0x8218
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+
+pattern GL_FRAMEBUFFER_SRGB = 0x8DB9
+
+pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+
+pattern GL_FRONT = 0x0404
+
+pattern GL_FRONT_AND_BACK = 0x0408
+
+pattern GL_FRONT_FACE = 0x0B46
+
+pattern GL_FRONT_LEFT = 0x0400
+
+pattern GL_FRONT_RIGHT = 0x0401
+
+pattern GL_FUNC_ADD = 0x8006
+
+pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B
+
+pattern GL_FUNC_SUBTRACT = 0x800A
+
+pattern GL_GEOMETRY_INPUT_TYPE = 0x8917
+
+pattern GL_GEOMETRY_OUTPUT_TYPE = 0x8918
+
+pattern GL_GEOMETRY_SHADER = 0x8DD9
+
+pattern GL_GEOMETRY_VERTICES_OUT = 0x8916
+
+pattern GL_GEQUAL = 0x0206
+
+pattern GL_GREATER = 0x0204
+
+pattern GL_GREEN = 0x1904
+
+pattern GL_GREEN_INTEGER = 0x8D95
+
+pattern GL_HALF_FLOAT = 0x140B
+
+pattern GL_INCR = 0x1E02
+
+pattern GL_INCR_WRAP = 0x8507
+
+pattern GL_INDEX = 0x8222
+
+pattern GL_INFO_LOG_LENGTH = 0x8B84
+
+pattern GL_INT = 0x1404
+
+pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C
+
+pattern GL_INT_SAMPLER_1D = 0x8DC9
+
+pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE
+
+pattern GL_INT_SAMPLER_2D = 0x8DCA
+
+pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+
+pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD
+
+pattern GL_INT_SAMPLER_3D = 0x8DCB
+
+pattern GL_INT_SAMPLER_BUFFER = 0x8DD0
+
+pattern GL_INT_SAMPLER_CUBE = 0x8DCC
+
+pattern GL_INT_VEC2 = 0x8B53
+
+pattern GL_INT_VEC3 = 0x8B54
+
+pattern GL_INT_VEC4 = 0x8B55
+
+pattern GL_INVALID_ENUM = 0x0500
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506
+
+pattern GL_INVALID_INDEX = 0xFFFFFFFF
+
+pattern GL_INVALID_OPERATION = 0x0502
+
+pattern GL_INVALID_VALUE = 0x0501
+
+pattern GL_INVERT = 0x150A
+
+pattern GL_KEEP = 0x1E00
+
+pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E
+
+pattern GL_LEFT = 0x0406
+
+pattern GL_LEQUAL = 0x0203
+
+pattern GL_LESS = 0x0201
+
+pattern GL_LINE = 0x1B01
+
+pattern GL_LINEAR = 0x2601
+
+pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703
+
+pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701
+
+pattern GL_LINES = 0x0001
+
+pattern GL_LINES_ADJACENCY = 0x000A
+
+pattern GL_LINE_LOOP = 0x0002
+
+pattern GL_LINE_SMOOTH = 0x0B20
+
+pattern GL_LINE_SMOOTH_HINT = 0x0C52
+
+pattern GL_LINE_STRIP = 0x0003
+
+pattern GL_LINE_STRIP_ADJACENCY = 0x000B
+
+pattern GL_LINE_WIDTH = 0x0B21
+
+pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_LINK_STATUS = 0x8B82
+
+pattern GL_LOGIC_OP_MODE = 0x0BF0
+
+pattern GL_LOWER_LEFT = 0x8CA1
+
+pattern GL_MAJOR_VERSION = 0x821B
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004
+
+pattern GL_MAP_READ_BIT = 0x0001
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020
+
+pattern GL_MAP_WRITE_BIT = 0x0002
+
+pattern GL_MAX = 0x8008
+
+pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+
+pattern GL_MAX_CLIP_DISTANCES = 0x0D32
+
+pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF
+
+pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+
+pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+
+pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+
+pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+
+pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+
+pattern GL_MAX_DRAW_BUFFERS = 0x8824
+
+pattern GL_MAX_ELEMENTS_INDICES = 0x80E9
+
+pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8
+
+pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+
+pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+
+pattern GL_MAX_INTEGER_SAMPLES = 0x9110
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+
+pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8
+
+pattern GL_MAX_SAMPLES = 0x8D57
+
+pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872
+
+pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD
+
+pattern GL_MAX_TEXTURE_SIZE = 0x0D33
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+
+pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+
+pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+
+pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B
+
+pattern GL_MAX_VARYING_FLOATS = 0x8B4B
+
+pattern GL_MAX_VERTEX_ATTRIBS = 0x8869
+
+pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+
+pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+
+pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A
+
+pattern GL_MIN = 0x8007
+
+pattern GL_MINOR_VERSION = 0x821C
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+
+pattern GL_MIRRORED_REPEAT = 0x8370
+
+pattern GL_MULTISAMPLE = 0x809D
+
+pattern GL_NAND = 0x150E
+
+pattern GL_NEAREST = 0x2600
+
+pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702
+
+pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700
+
+pattern GL_NEVER = 0x0200
+
+pattern GL_NICEST = 0x1102
+
+pattern GL_NONE = 0
+
+pattern GL_NOOP = 0x1505
+
+pattern GL_NOR = 0x1508
+
+pattern GL_NOTEQUAL = 0x0205
+
+pattern GL_NO_ERROR = 0
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+
+pattern GL_NUM_EXTENSIONS = 0x821D
+
+pattern GL_OBJECT_TYPE = 0x9112
+
+pattern GL_ONE = 1
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002
+
+pattern GL_ONE_MINUS_DST_ALPHA = 0x0305
+
+pattern GL_ONE_MINUS_DST_COLOR = 0x0307
+
+pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303
+
+pattern GL_ONE_MINUS_SRC_COLOR = 0x0301
+
+pattern GL_OR = 0x1507
+
+pattern GL_OR_INVERTED = 0x150D
+
+pattern GL_OR_REVERSE = 0x150B
+
+pattern GL_OUT_OF_MEMORY = 0x0505
+
+pattern GL_PACK_ALIGNMENT = 0x0D05
+
+pattern GL_PACK_IMAGE_HEIGHT = 0x806C
+
+pattern GL_PACK_LSB_FIRST = 0x0D01
+
+pattern GL_PACK_ROW_LENGTH = 0x0D02
+
+pattern GL_PACK_SKIP_IMAGES = 0x806B
+
+pattern GL_PACK_SKIP_PIXELS = 0x0D04
+
+pattern GL_PACK_SKIP_ROWS = 0x0D03
+
+pattern GL_PACK_SWAP_BYTES = 0x0D00
+
+pattern GL_PIXEL_PACK_BUFFER = 0x88EB
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED
+
+pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+
+pattern GL_POINT = 0x1B00
+
+pattern GL_POINTS = 0x0000
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128
+
+pattern GL_POINT_SIZE = 0x0B11
+
+pattern GL_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+
+pattern GL_POLYGON_MODE = 0x0B40
+
+pattern GL_POLYGON_OFFSET_FACTOR = 0x8038
+
+pattern GL_POLYGON_OFFSET_FILL = 0x8037
+
+pattern GL_POLYGON_OFFSET_LINE = 0x2A02
+
+pattern GL_POLYGON_OFFSET_POINT = 0x2A01
+
+pattern GL_POLYGON_OFFSET_UNITS = 0x2A00
+
+pattern GL_POLYGON_SMOOTH = 0x0B41
+
+pattern GL_POLYGON_SMOOTH_HINT = 0x0C53
+
+pattern GL_PRIMITIVES_GENERATED = 0x8C87
+
+pattern GL_PRIMITIVE_RESTART = 0x8F9D
+
+pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E
+
+pattern GL_PROVOKING_VERTEX = 0x8E4F
+
+pattern GL_PROXY_TEXTURE_1D = 0x8063
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19
+
+pattern GL_PROXY_TEXTURE_2D = 0x8064
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+
+pattern GL_PROXY_TEXTURE_3D = 0x8070
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B
+
+pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+
+pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16
+
+pattern GL_QUERY_BY_REGION_WAIT = 0x8E15
+
+pattern GL_QUERY_COUNTER_BITS = 0x8864
+
+pattern GL_QUERY_NO_WAIT = 0x8E14
+
+pattern GL_QUERY_RESULT = 0x8866
+
+pattern GL_QUERY_RESULT_AVAILABLE = 0x8867
+
+pattern GL_QUERY_WAIT = 0x8E13
+
+pattern GL_R11F_G11F_B10F = 0x8C3A
+
+pattern GL_R16 = 0x822A
+
+pattern GL_R16F = 0x822D
+
+pattern GL_R16I = 0x8233
+
+pattern GL_R16UI = 0x8234
+
+pattern GL_R16_SNORM = 0x8F98
+
+pattern GL_R32F = 0x822E
+
+pattern GL_R32I = 0x8235
+
+pattern GL_R32UI = 0x8236
+
+pattern GL_R3_G3_B2 = 0x2A10
+
+pattern GL_R8 = 0x8229
+
+pattern GL_R8I = 0x8231
+
+pattern GL_R8UI = 0x8232
+
+pattern GL_R8_SNORM = 0x8F94
+
+pattern GL_RASTERIZER_DISCARD = 0x8C89
+
+pattern GL_READ_BUFFER = 0x0C02
+
+pattern GL_READ_FRAMEBUFFER = 0x8CA8
+
+pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA
+
+pattern GL_READ_ONLY = 0x88B8
+
+pattern GL_READ_WRITE = 0x88BA
+
+pattern GL_RED = 0x1903
+
+pattern GL_RED_INTEGER = 0x8D94
+
+pattern GL_RENDERBUFFER = 0x8D41
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53
+
+pattern GL_RENDERBUFFER_BINDING = 0x8CA7
+
+pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54
+
+pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51
+
+pattern GL_RENDERBUFFER_HEIGHT = 0x8D43
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+
+pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50
+
+pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55
+
+pattern GL_RENDERBUFFER_WIDTH = 0x8D42
+
+pattern GL_RENDERER = 0x1F01
+
+pattern GL_REPEAT = 0x2901
+
+pattern GL_REPLACE = 0x1E01
+
+pattern GL_RG = 0x8227
+
+pattern GL_RG16 = 0x822C
+
+pattern GL_RG16F = 0x822F
+
+pattern GL_RG16I = 0x8239
+
+pattern GL_RG16UI = 0x823A
+
+pattern GL_RG16_SNORM = 0x8F99
+
+pattern GL_RG32F = 0x8230
+
+pattern GL_RG32I = 0x823B
+
+pattern GL_RG32UI = 0x823C
+
+pattern GL_RG8 = 0x822B
+
+pattern GL_RG8I = 0x8237
+
+pattern GL_RG8UI = 0x8238
+
+pattern GL_RG8_SNORM = 0x8F95
+
+pattern GL_RGB = 0x1907
+
+pattern GL_RGB10 = 0x8052
+
+pattern GL_RGB10_A2 = 0x8059
+
+pattern GL_RGB12 = 0x8053
+
+pattern GL_RGB16 = 0x8054
+
+pattern GL_RGB16F = 0x881B
+
+pattern GL_RGB16I = 0x8D89
+
+pattern GL_RGB16UI = 0x8D77
+
+pattern GL_RGB16_SNORM = 0x8F9A
+
+pattern GL_RGB32F = 0x8815
+
+pattern GL_RGB32I = 0x8D83
+
+pattern GL_RGB32UI = 0x8D71
+
+pattern GL_RGB4 = 0x804F
+
+pattern GL_RGB5 = 0x8050
+
+pattern GL_RGB5_A1 = 0x8057
+
+pattern GL_RGB8 = 0x8051
+
+pattern GL_RGB8I = 0x8D8F
+
+pattern GL_RGB8UI = 0x8D7D
+
+pattern GL_RGB8_SNORM = 0x8F96
+
+pattern GL_RGB9_E5 = 0x8C3D
+
+pattern GL_RGBA = 0x1908
+
+pattern GL_RGBA12 = 0x805A
+
+pattern GL_RGBA16 = 0x805B
+
+pattern GL_RGBA16F = 0x881A
+
+pattern GL_RGBA16I = 0x8D88
+
+pattern GL_RGBA16UI = 0x8D76
+
+pattern GL_RGBA16_SNORM = 0x8F9B
+
+pattern GL_RGBA2 = 0x8055
+
+pattern GL_RGBA32F = 0x8814
+
+pattern GL_RGBA32I = 0x8D82
+
+pattern GL_RGBA32UI = 0x8D70
+
+pattern GL_RGBA4 = 0x8056
+
+pattern GL_RGBA8 = 0x8058
+
+pattern GL_RGBA8I = 0x8D8E
+
+pattern GL_RGBA8UI = 0x8D7C
+
+pattern GL_RGBA8_SNORM = 0x8F97
+
+pattern GL_RGBA_INTEGER = 0x8D99
+
+pattern GL_RGB_INTEGER = 0x8D98
+
+pattern GL_RG_INTEGER = 0x8228
+
+pattern GL_RIGHT = 0x0407
+
+pattern GL_SAMPLER_1D = 0x8B5D
+
+pattern GL_SAMPLER_1D_ARRAY = 0x8DC0
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+
+pattern GL_SAMPLER_1D_SHADOW = 0x8B61
+
+pattern GL_SAMPLER_2D = 0x8B5E
+
+pattern GL_SAMPLER_2D_ARRAY = 0x8DC1
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+
+pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+
+pattern GL_SAMPLER_2D_RECT = 0x8B63
+
+pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64
+
+pattern GL_SAMPLER_2D_SHADOW = 0x8B62
+
+pattern GL_SAMPLER_3D = 0x8B5F
+
+pattern GL_SAMPLER_BUFFER = 0x8DC2
+
+pattern GL_SAMPLER_CUBE = 0x8B60
+
+pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5
+
+pattern GL_SAMPLES = 0x80A9
+
+pattern GL_SAMPLES_PASSED = 0x8914
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+
+pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F
+
+pattern GL_SAMPLE_BUFFERS = 0x80A8
+
+pattern GL_SAMPLE_COVERAGE = 0x80A0
+
+pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB
+
+pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA
+
+pattern GL_SAMPLE_MASK = 0x8E51
+
+pattern GL_SAMPLE_MASK_VALUE = 0x8E52
+
+pattern GL_SAMPLE_POSITION = 0x8E50
+
+pattern GL_SCISSOR_BOX = 0x0C10
+
+pattern GL_SCISSOR_TEST = 0x0C11
+
+pattern GL_SEPARATE_ATTRIBS = 0x8C8D
+
+pattern GL_SET = 0x150F
+
+pattern GL_SHADER_SOURCE_LENGTH = 0x8B88
+
+pattern GL_SHADER_TYPE = 0x8B4F
+
+pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C
+
+pattern GL_SHORT = 0x1402
+
+pattern GL_SIGNALED = 0x9119
+
+pattern GL_SIGNED_NORMALIZED = 0x8F9C
+
+pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_SRC1_ALPHA = 0x8589
+
+pattern GL_SRC_ALPHA = 0x0302
+
+pattern GL_SRC_ALPHA_SATURATE = 0x0308
+
+pattern GL_SRC_COLOR = 0x0300
+
+pattern GL_SRGB = 0x8C40
+
+pattern GL_SRGB8 = 0x8C41
+
+pattern GL_SRGB8_ALPHA8 = 0x8C43
+
+pattern GL_SRGB_ALPHA = 0x8C42
+
+pattern GL_STATIC_COPY = 0x88E6
+
+pattern GL_STATIC_DRAW = 0x88E4
+
+pattern GL_STATIC_READ = 0x88E5
+
+pattern GL_STENCIL = 0x1802
+
+pattern GL_STENCIL_ATTACHMENT = 0x8D20
+
+pattern GL_STENCIL_BACK_FAIL = 0x8801
+
+pattern GL_STENCIL_BACK_FUNC = 0x8800
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+
+pattern GL_STENCIL_BACK_REF = 0x8CA3
+
+pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4
+
+pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5
+
+pattern GL_STENCIL_BUFFER_BIT = 0x00000400
+
+pattern GL_STENCIL_CLEAR_VALUE = 0x0B91
+
+pattern GL_STENCIL_FAIL = 0x0B94
+
+pattern GL_STENCIL_FUNC = 0x0B92
+
+pattern GL_STENCIL_INDEX = 0x1901
+
+pattern GL_STENCIL_INDEX1 = 0x8D46
+
+pattern GL_STENCIL_INDEX16 = 0x8D49
+
+pattern GL_STENCIL_INDEX4 = 0x8D47
+
+pattern GL_STENCIL_INDEX8 = 0x8D48
+
+pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95
+
+pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96
+
+pattern GL_STENCIL_REF = 0x0B97
+
+pattern GL_STENCIL_TEST = 0x0B90
+
+pattern GL_STENCIL_VALUE_MASK = 0x0B93
+
+pattern GL_STENCIL_WRITEMASK = 0x0B98
+
+pattern GL_STEREO = 0x0C33
+
+pattern GL_STREAM_COPY = 0x88E2
+
+pattern GL_STREAM_DRAW = 0x88E0
+
+pattern GL_STREAM_READ = 0x88E1
+
+pattern GL_SUBPIXEL_BITS = 0x0D50
+
+pattern GL_SYNC_CONDITION = 0x9113
+
+pattern GL_SYNC_FENCE = 0x9116
+
+pattern GL_SYNC_FLAGS = 0x9115
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+
+pattern GL_SYNC_STATUS = 0x9114
+
+pattern GL_TEXTURE = 0x1702
+
+pattern GL_TEXTURE0 = 0x84C0
+
+pattern GL_TEXTURE1 = 0x84C1
+
+pattern GL_TEXTURE10 = 0x84CA
+
+pattern GL_TEXTURE11 = 0x84CB
+
+pattern GL_TEXTURE12 = 0x84CC
+
+pattern GL_TEXTURE13 = 0x84CD
+
+pattern GL_TEXTURE14 = 0x84CE
+
+pattern GL_TEXTURE15 = 0x84CF
+
+pattern GL_TEXTURE16 = 0x84D0
+
+pattern GL_TEXTURE17 = 0x84D1
+
+pattern GL_TEXTURE18 = 0x84D2
+
+pattern GL_TEXTURE19 = 0x84D3
+
+pattern GL_TEXTURE2 = 0x84C2
+
+pattern GL_TEXTURE20 = 0x84D4
+
+pattern GL_TEXTURE21 = 0x84D5
+
+pattern GL_TEXTURE22 = 0x84D6
+
+pattern GL_TEXTURE23 = 0x84D7
+
+pattern GL_TEXTURE24 = 0x84D8
+
+pattern GL_TEXTURE25 = 0x84D9
+
+pattern GL_TEXTURE26 = 0x84DA
+
+pattern GL_TEXTURE27 = 0x84DB
+
+pattern GL_TEXTURE28 = 0x84DC
+
+pattern GL_TEXTURE29 = 0x84DD
+
+pattern GL_TEXTURE3 = 0x84C3
+
+pattern GL_TEXTURE30 = 0x84DE
+
+pattern GL_TEXTURE31 = 0x84DF
+
+pattern GL_TEXTURE4 = 0x84C4
+
+pattern GL_TEXTURE5 = 0x84C5
+
+pattern GL_TEXTURE6 = 0x84C6
+
+pattern GL_TEXTURE7 = 0x84C7
+
+pattern GL_TEXTURE8 = 0x84C8
+
+pattern GL_TEXTURE9 = 0x84C9
+
+pattern GL_TEXTURE_1D = 0x0DE0
+
+pattern GL_TEXTURE_1D_ARRAY = 0x8C18
+
+pattern GL_TEXTURE_2D = 0x0DE1
+
+pattern GL_TEXTURE_2D_ARRAY = 0x8C1A
+
+pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+
+pattern GL_TEXTURE_3D = 0x806F
+
+pattern GL_TEXTURE_ALPHA_SIZE = 0x805F
+
+pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13
+
+pattern GL_TEXTURE_BASE_LEVEL = 0x813C
+
+pattern GL_TEXTURE_BINDING_1D = 0x8068
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+
+pattern GL_TEXTURE_BINDING_2D = 0x8069
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+
+pattern GL_TEXTURE_BINDING_3D = 0x806A
+
+pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514
+
+pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6
+
+pattern GL_TEXTURE_BLUE_SIZE = 0x805E
+
+pattern GL_TEXTURE_BLUE_TYPE = 0x8C12
+
+pattern GL_TEXTURE_BORDER_COLOR = 0x1004
+
+pattern GL_TEXTURE_BUFFER = 0x8C2A
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+
+pattern GL_TEXTURE_COMPARE_FUNC = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE = 0x884C
+
+pattern GL_TEXTURE_COMPRESSED = 0x86A1
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+
+pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF
+
+pattern GL_TEXTURE_CUBE_MAP = 0x8513
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+
+pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+
+pattern GL_TEXTURE_DEPTH = 0x8071
+
+pattern GL_TEXTURE_DEPTH_SIZE = 0x884A
+
+pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16
+
+pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+
+pattern GL_TEXTURE_GREEN_SIZE = 0x805D
+
+pattern GL_TEXTURE_GREEN_TYPE = 0x8C11
+
+pattern GL_TEXTURE_HEIGHT = 0x1001
+
+pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003
+
+pattern GL_TEXTURE_LOD_BIAS = 0x8501
+
+pattern GL_TEXTURE_MAG_FILTER = 0x2800
+
+pattern GL_TEXTURE_MAX_LEVEL = 0x813D
+
+pattern GL_TEXTURE_MAX_LOD = 0x813B
+
+pattern GL_TEXTURE_MIN_FILTER = 0x2801
+
+pattern GL_TEXTURE_MIN_LOD = 0x813A
+
+pattern GL_TEXTURE_RECTANGLE = 0x84F5
+
+pattern GL_TEXTURE_RED_SIZE = 0x805C
+
+pattern GL_TEXTURE_RED_TYPE = 0x8C10
+
+pattern GL_TEXTURE_SAMPLES = 0x9106
+
+pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F
+
+pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1
+
+pattern GL_TEXTURE_WIDTH = 0x1000
+
+pattern GL_TEXTURE_WRAP_R = 0x8072
+
+pattern GL_TEXTURE_WRAP_S = 0x2802
+
+pattern GL_TEXTURE_WRAP_T = 0x2803
+
+pattern GL_TIMEOUT_EXPIRED = 0x911B
+
+pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+
+pattern GL_TRIANGLES = 0x0004
+
+pattern GL_TRIANGLES_ADJACENCY = 0x000C
+
+pattern GL_TRIANGLE_FAN = 0x0006
+
+pattern GL_TRIANGLE_STRIP = 0x0005
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+pattern GL_TRUE = 1
+
+pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+
+pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F
+
+pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+
+pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A
+
+pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+
+pattern GL_UNIFORM_BUFFER = 0x8A11
+
+pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28
+
+pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+
+pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A
+
+pattern GL_UNIFORM_BUFFER_START = 0x8A29
+
+pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E
+
+pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D
+
+pattern GL_UNIFORM_NAME_LENGTH = 0x8A39
+
+pattern GL_UNIFORM_OFFSET = 0x8A3B
+
+pattern GL_UNIFORM_SIZE = 0x8A38
+
+pattern GL_UNIFORM_TYPE = 0x8A37
+
+pattern GL_UNPACK_ALIGNMENT = 0x0CF5
+
+pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E
+
+pattern GL_UNPACK_LSB_FIRST = 0x0CF1
+
+pattern GL_UNPACK_ROW_LENGTH = 0x0CF2
+
+pattern GL_UNPACK_SKIP_IMAGES = 0x806D
+
+pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4
+
+pattern GL_UNPACK_SKIP_ROWS = 0x0CF3
+
+pattern GL_UNPACK_SWAP_BYTES = 0x0CF0
+
+pattern GL_UNSIGNALED = 0x9118
+
+pattern GL_UNSIGNED_BYTE = 0x1401
+
+pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362
+
+pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032
+
+pattern GL_UNSIGNED_INT = 0x1405
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+
+pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036
+
+pattern GL_UNSIGNED_INT_24_8 = 0x84FA
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+
+pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035
+
+pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+
+pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6
+
+pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7
+
+pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8
+
+pattern GL_UNSIGNED_NORMALIZED = 0x8C17
+
+pattern GL_UNSIGNED_SHORT = 0x1403
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363
+
+pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364
+
+pattern GL_UPPER_LEFT = 0x8CA2
+
+pattern GL_VALIDATE_STATUS = 0x8B83
+
+pattern GL_VENDOR = 0x1F00
+
+pattern GL_VERSION = 0x1F02
+
+pattern GL_VERTEX_ARRAY_BINDING = 0x85B5
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642
+
+pattern GL_VERTEX_SHADER = 0x8B31
+
+pattern GL_VIEWPORT = 0x0BA2
+
+pattern GL_WAIT_FAILED = 0x911D
+
+pattern GL_WRITE_ONLY = 0x88B9
+
+pattern GL_XOR = 0x1506
+
+pattern GL_ZERO = 0
+
+-- | Usage: @'glBindFragDataLocationIndexed' program colorNumber index name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml>
+
+
+glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocationIndexed = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedFunPtr
+
+glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationIndexedFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexed")
+
+{-# NOINLINE glBindFragDataLocationIndexedFunPtr #-}
+
+-- | Usage: @'glBindSampler' unit sampler@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml>
+
+
+glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
+glBindSampler = ffiuintuintIOV glBindSamplerFunPtr
+
+glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindSamplerFunPtr = unsafePerformIO (getProcAddress "glBindSampler")
+
+{-# NOINLINE glBindSamplerFunPtr #-}
+
+-- | Usage: @'glDeleteSamplers' count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml>
+
+
+glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteSamplers = ffisizeiPtruintIOV glDeleteSamplersFunPtr
+
+glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteSamplersFunPtr = unsafePerformIO (getProcAddress "glDeleteSamplers")
+
+{-# NOINLINE glDeleteSamplersFunPtr #-}
+
+-- | Usage: @'glGenSamplers' count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml>
+
+
+glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenSamplers = ffisizeiPtruintIOV glGenSamplersFunPtr
+
+glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenSamplersFunPtr = unsafePerformIO (getProcAddress "glGenSamplers")
+
+{-# NOINLINE glGenSamplersFunPtr #-}
+
+-- | Usage: @'glGetFragDataIndex' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml>
+
+
+glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataIndex = ffiuintPtrcharIOint glGetFragDataIndexFunPtr
+
+glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataIndexFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndex")
+
+{-# NOINLINE glGetFragDataIndexFunPtr #-}
+
+-- | Usage: @'glGetQueryObjecti64v' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64v = ffiuintenumPtrint64IOV glGetQueryObjecti64vFunPtr
+
+glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64v")
+
+{-# NOINLINE glGetQueryObjecti64vFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectui64v' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64v = ffiuintenumPtruint64IOV glGetQueryObjectui64vFunPtr
+
+glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64v")
+
+{-# NOINLINE glGetQueryObjectui64vFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIiv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameterIiv = ffiuintenumPtrintIOV glGetSamplerParameterIivFunPtr
+
+glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIiv")
+
+{-# NOINLINE glGetSamplerParameterIivFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIuiv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetSamplerParameterIuiv = ffiuintenumPtruintIOV glGetSamplerParameterIuivFunPtr
+
+glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuiv")
+
+{-# NOINLINE glGetSamplerParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterfv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetSamplerParameterfv = ffiuintenumPtrfloatIOV glGetSamplerParameterfvFunPtr
+
+glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterfv")
+
+{-# NOINLINE glGetSamplerParameterfvFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameteriv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameteriv = ffiuintenumPtrintIOV glGetSamplerParameterivFunPtr
+
+glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameteriv")
+
+{-# NOINLINE glGetSamplerParameterivFunPtr #-}
+
+-- | Usage: @'glIsSampler' sampler@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml>
+
+
+glIsSampler :: MonadIO m => GLuint -> m GLboolean
+glIsSampler = ffiuintIOboolean glIsSamplerFunPtr
+
+glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsSamplerFunPtr = unsafePerformIO (getProcAddress "glIsSampler")
+
+{-# NOINLINE glIsSamplerFunPtr #-}
+
+-- | Usage: @'glQueryCounter' id target@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml>
+
+
+glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
+glQueryCounter = ffiuintenumIOV glQueryCounterFunPtr
+
+glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glQueryCounterFunPtr = unsafePerformIO (getProcAddress "glQueryCounter")
+
+{-# NOINLINE glQueryCounterFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIiv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameterIiv = ffiuintenumPtrintIOV glSamplerParameterIivFunPtr
+
+glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIiv")
+
+{-# NOINLINE glSamplerParameterIivFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIuiv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glSamplerParameterIuiv = ffiuintenumPtruintIOV glSamplerParameterIuivFunPtr
+
+glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuiv")
+
+{-# NOINLINE glSamplerParameterIuivFunPtr #-}
+
+-- | Usage: @'glSamplerParameterf' sampler pname param@
+
+
+glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glSamplerParameterf = ffiuintenumfloatIOV glSamplerParameterfFunPtr
+
+glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glSamplerParameterfFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterf")
+
+{-# NOINLINE glSamplerParameterfFunPtr #-}
+
+-- | Usage: @'glSamplerParameterfv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glSamplerParameterfv = ffiuintenumPtrfloatIOV glSamplerParameterfvFunPtr
+
+glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterfv")
+
+{-# NOINLINE glSamplerParameterfvFunPtr #-}
+
+-- | Usage: @'glSamplerParameteri' sampler pname param@
+
+
+glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glSamplerParameteri = ffiuintenumintIOV glSamplerParameteriFunPtr
+
+glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glSamplerParameteriFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteri")
+
+{-# NOINLINE glSamplerParameteriFunPtr #-}
+
+-- | Usage: @'glSamplerParameteriv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameteriv = ffiuintenumPtrintIOV glSamplerParameterivFunPtr
+
+glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteriv")
+
+{-# NOINLINE glSamplerParameterivFunPtr #-}
+
+-- | Usage: @'glVertexAttribDivisor' index divisor@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml>
+
+
+glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribDivisor = ffiuintuintIOV glVertexAttribDivisorFunPtr
+
+glVertexAttribDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisor")
+
+{-# NOINLINE glVertexAttribDivisorFunPtr #-}
+
+-- | Usage: @'glVertexAttribP1ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP1ui = ffiuintenumbooleanuintIOV glVertexAttribP1uiFunPtr
+
+glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1ui")
+
+{-# NOINLINE glVertexAttribP1uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP1uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP1uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP1uivFunPtr
+
+glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1uiv")
+
+{-# NOINLINE glVertexAttribP1uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP2ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP2ui = ffiuintenumbooleanuintIOV glVertexAttribP2uiFunPtr
+
+glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2ui")
+
+{-# NOINLINE glVertexAttribP2uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP2uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP2uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP2uivFunPtr
+
+glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2uiv")
+
+{-# NOINLINE glVertexAttribP2uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP3ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP3ui = ffiuintenumbooleanuintIOV glVertexAttribP3uiFunPtr
+
+glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3ui")
+
+{-# NOINLINE glVertexAttribP3uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP3uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP3uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP3uivFunPtr
+
+glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3uiv")
+
+{-# NOINLINE glVertexAttribP3uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP4ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP4ui = ffiuintenumbooleanuintIOV glVertexAttribP4uiFunPtr
+
+glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4ui")
+
+{-# NOINLINE glVertexAttribP4uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP4uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP4uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP4uivFunPtr
+
+glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4uiv")
+
+{-# NOINLINE glVertexAttribP4uivFunPtr #-}
+
+pattern GL_ANY_SAMPLES_PASSED = 0x8C2F
+
+pattern GL_INT_2_10_10_10_REV = 0x8D9F
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+
+pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB
+
+pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA
+
+pattern GL_RGB10_A2UI = 0x906F
+
+pattern GL_SAMPLER_BINDING = 0x8919
+
+pattern GL_SRC1_COLOR = 0x88F9
+
+pattern GL_TEXTURE_SWIZZLE_A = 0x8E45
+
+pattern GL_TEXTURE_SWIZZLE_B = 0x8E44
+
+pattern GL_TEXTURE_SWIZZLE_G = 0x8E43
+
+pattern GL_TEXTURE_SWIZZLE_R = 0x8E42
+
+pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46
+
+pattern GL_TIMESTAMP = 0x8E28
+
+pattern GL_TIME_ELAPSED = 0x88BF
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+
+-- | Usage: @'glBeginQueryIndexed' target index id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml>
+
+
+glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBeginQueryIndexed = ffienumuintuintIOV glBeginQueryIndexedFunPtr
+
+glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBeginQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glBeginQueryIndexed")
+
+{-# NOINLINE glBeginQueryIndexedFunPtr #-}
+
+-- | Usage: @'glBindTransformFeedback' target id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml>
+
+
+glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTransformFeedback = ffienumuintIOV glBindTransformFeedbackFunPtr
+
+glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedback")
+
+{-# NOINLINE glBindTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glBlendEquationSeparatei' buf modeRGB modeAlpha@
+
+
+glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendEquationSeparatei = ffiuintenumenumIOV glBlendEquationSeparateiFunPtr
+
+glBlendEquationSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendEquationSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparatei")
+
+{-# NOINLINE glBlendEquationSeparateiFunPtr #-}
+
+-- | Usage: @'glBlendEquationi' buf mode@
+
+
+glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()
+glBlendEquationi = ffiuintenumIOV glBlendEquationiFunPtr
+
+glBlendEquationiFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBlendEquationiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationi")
+
+{-# NOINLINE glBlendEquationiFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparatei' buf srcRGB dstRGB srcAlpha dstAlpha@
+
+
+glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparatei = ffiuintenumenumenumenumIOV glBlendFuncSeparateiFunPtr
+
+glBlendFuncSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparatei")
+
+{-# NOINLINE glBlendFuncSeparateiFunPtr #-}
+
+-- | Usage: @'glBlendFunci' buf src dst@
+
+
+glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendFunci = ffiuintenumenumIOV glBlendFunciFunPtr
+
+glBlendFunciFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendFunciFunPtr = unsafePerformIO (getProcAddress "glBlendFunci")
+
+{-# NOINLINE glBlendFunciFunPtr #-}
+
+-- | Usage: @'glDeleteTransformFeedbacks' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml>
+
+
+glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTransformFeedbacks = ffisizeiPtruintIOV glDeleteTransformFeedbacksFunPtr
+
+glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacks")
+
+{-# NOINLINE glDeleteTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glDrawArraysIndirect' mode indirect@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml>
+
+
+glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
+glDrawArraysIndirect = ffienumPtrVIOV glDrawArraysIndirectFunPtr
+
+glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawArraysIndirect")
+
+{-# NOINLINE glDrawArraysIndirectFunPtr #-}
+
+-- | Usage: @'glDrawElementsIndirect' mode type indirect@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml>
+
+
+glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glDrawElementsIndirect = ffienumenumPtrVIOV glDrawElementsIndirectFunPtr
+
+glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawElementsIndirect")
+
+{-# NOINLINE glDrawElementsIndirectFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedback' mode id@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml>
+
+
+glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glDrawTransformFeedback = ffienumuintIOV glDrawTransformFeedbackFunPtr
+
+glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDrawTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedback")
+
+{-# NOINLINE glDrawTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackStream' mode id stream@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml>
+
+
+glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glDrawTransformFeedbackStream = ffienumuintuintIOV glDrawTransformFeedbackStreamFunPtr
+
+glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glDrawTransformFeedbackStreamFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStream")
+
+{-# NOINLINE glDrawTransformFeedbackStreamFunPtr #-}
+
+-- | Usage: @'glEndQueryIndexed' target index@
+
+
+glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
+glEndQueryIndexed = ffienumuintIOV glEndQueryIndexedFunPtr
+
+glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEndQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glEndQueryIndexed")
+
+{-# NOINLINE glEndQueryIndexedFunPtr #-}
+
+-- | Usage: @'glGenTransformFeedbacks' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml>
+
+
+glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTransformFeedbacks = ffisizeiPtruintIOV glGenTransformFeedbacksFunPtr
+
+glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacks")
+
+{-# NOINLINE glGenTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineName' program shadertype index bufsize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufsize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml>
+
+
+glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineNameFunPtr
+
+glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineName")
+
+{-# NOINLINE glGetActiveSubroutineNameFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineUniformName' program shadertype index bufsize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufsize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml>
+
+
+glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineUniformName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineUniformNameFunPtr
+
+glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformName")
+
+{-# NOINLINE glGetActiveSubroutineUniformNameFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineUniformiv' program shadertype index pname values@
+--
+-- The length of @values@ should be @COMPSIZE(pname)@.
+
+
+glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveSubroutineUniformiv = ffiuintenumuintenumPtrintIOV glGetActiveSubroutineUniformivFunPtr
+
+glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveSubroutineUniformivFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformiv")
+
+{-# NOINLINE glGetActiveSubroutineUniformivFunPtr #-}
+
+-- | Usage: @'glGetProgramStageiv' program shadertype pname values@
+--
+-- The length of @values@ should be @1@.
+
+
+glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramStageiv = ffiuintenumenumPtrintIOV glGetProgramStageivFunPtr
+
+glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramStageivFunPtr = unsafePerformIO (getProcAddress "glGetProgramStageiv")
+
+{-# NOINLINE glGetProgramStageivFunPtr #-}
+
+-- | Usage: @'glGetQueryIndexediv' target index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryIndexediv = ffienumuintenumPtrintIOV glGetQueryIndexedivFunPtr
+
+glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetQueryIndexediv")
+
+{-# NOINLINE glGetQueryIndexedivFunPtr #-}
+
+-- | Usage: @'glGetSubroutineIndex' program shadertype name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml>
+
+
+glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetSubroutineIndex = ffiuintenumPtrcharIOuint glGetSubroutineIndexFunPtr
+
+glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetSubroutineIndexFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineIndex")
+
+{-# NOINLINE glGetSubroutineIndexFunPtr #-}
+
+-- | Usage: @'glGetSubroutineUniformLocation' program shadertype name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml>
+
+
+glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetSubroutineUniformLocation = ffiuintenumPtrcharIOint glGetSubroutineUniformLocationFunPtr
+
+glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetSubroutineUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineUniformLocation")
+
+{-# NOINLINE glGetSubroutineUniformLocationFunPtr #-}
+
+-- | Usage: @'glGetUniformSubroutineuiv' shadertype location params@
+--
+-- The length of @params@ should be @1@.
+
+
+glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glGetUniformSubroutineuiv = ffienumintPtruintIOV glGetUniformSubroutineuivFunPtr
+
+glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glGetUniformSubroutineuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformSubroutineuiv")
+
+{-# NOINLINE glGetUniformSubroutineuivFunPtr #-}
+
+-- | Usage: @'glGetUniformdv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
+glGetUniformdv = ffiuintintPtrdoubleIOV glGetUniformdvFunPtr
+
+glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
+glGetUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetUniformdv")
+
+{-# NOINLINE glGetUniformdvFunPtr #-}
+
+-- | Usage: @'glIsTransformFeedback' id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml>
+
+
+glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
+glIsTransformFeedback = ffiuintIOboolean glIsTransformFeedbackFunPtr
+
+glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedback")
+
+{-# NOINLINE glIsTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glMinSampleShading' value@
+--
+-- The parameter @value@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml>
+
+
+glMinSampleShading :: MonadIO m => GLfloat -> m ()
+glMinSampleShading = ffifloatIOV glMinSampleShadingFunPtr
+
+glMinSampleShadingFunPtr :: FunPtr (GLfloat -> IO ())
+glMinSampleShadingFunPtr = unsafePerformIO (getProcAddress "glMinSampleShading")
+
+{-# NOINLINE glMinSampleShadingFunPtr #-}
+
+-- | Usage: @'glPatchParameterfv' pname values@
+--
+-- The length of @values@ should be @COMPSIZE(pname)@.
+
+
+glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPatchParameterfv = ffienumPtrfloatIOV glPatchParameterfvFunPtr
+
+glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPatchParameterfvFunPtr = unsafePerformIO (getProcAddress "glPatchParameterfv")
+
+{-# NOINLINE glPatchParameterfvFunPtr #-}
+
+-- | Usage: @'glPatchParameteri' pname value@
+
+
+glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPatchParameteri = ffienumintIOV glPatchParameteriFunPtr
+
+glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPatchParameteriFunPtr = unsafePerformIO (getProcAddress "glPatchParameteri")
+
+{-# NOINLINE glPatchParameteriFunPtr #-}
+
+-- | Usage: @'glPauseTransformFeedback'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml>
+
+
+glPauseTransformFeedback :: MonadIO m => m ()
+glPauseTransformFeedback = ffiIOV glPauseTransformFeedbackFunPtr
+
+glPauseTransformFeedbackFunPtr :: FunPtr (IO ())
+glPauseTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedback")
+
+{-# NOINLINE glPauseTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glResumeTransformFeedback'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml>
+
+
+glResumeTransformFeedback :: MonadIO m => m ()
+glResumeTransformFeedback = ffiIOV glResumeTransformFeedbackFunPtr
+
+glResumeTransformFeedbackFunPtr :: FunPtr (IO ())
+glResumeTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedback")
+
+{-# NOINLINE glResumeTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glUniform1d' location x@
+
+
+glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
+glUniform1d = ffiintdoubleIOV glUniform1dFunPtr
+
+glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())
+glUniform1dFunPtr = unsafePerformIO (getProcAddress "glUniform1d")
+
+{-# NOINLINE glUniform1dFunPtr #-}
+
+-- | Usage: @'glUniform1dv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform1dv = ffiintsizeiPtrdoubleIOV glUniform1dvFunPtr
+
+glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform1dvFunPtr = unsafePerformIO (getProcAddress "glUniform1dv")
+
+{-# NOINLINE glUniform1dvFunPtr #-}
+
+-- | Usage: @'glUniform2d' location x y@
+
+
+glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
+glUniform2d = ffiintdoubledoubleIOV glUniform2dFunPtr
+
+glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+glUniform2dFunPtr = unsafePerformIO (getProcAddress "glUniform2d")
+
+{-# NOINLINE glUniform2dFunPtr #-}
+
+-- | Usage: @'glUniform2dv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform2dv = ffiintsizeiPtrdoubleIOV glUniform2dvFunPtr
+
+glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform2dvFunPtr = unsafePerformIO (getProcAddress "glUniform2dv")
+
+{-# NOINLINE glUniform2dvFunPtr #-}
+
+-- | Usage: @'glUniform3d' location x y z@
+
+
+glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform3d = ffiintdoubledoubledoubleIOV glUniform3dFunPtr
+
+glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform3dFunPtr = unsafePerformIO (getProcAddress "glUniform3d")
+
+{-# NOINLINE glUniform3dFunPtr #-}
+
+-- | Usage: @'glUniform3dv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform3dv = ffiintsizeiPtrdoubleIOV glUniform3dvFunPtr
+
+glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform3dvFunPtr = unsafePerformIO (getProcAddress "glUniform3dv")
+
+{-# NOINLINE glUniform3dvFunPtr #-}
+
+-- | Usage: @'glUniform4d' location x y z w@
+
+
+glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform4d = ffiintdoubledoubledoubledoubleIOV glUniform4dFunPtr
+
+glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform4dFunPtr = unsafePerformIO (getProcAddress "glUniform4d")
+
+{-# NOINLINE glUniform4dFunPtr #-}
+
+-- | Usage: @'glUniform4dv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform4dv = ffiintsizeiPtrdoubleIOV glUniform4dvFunPtr
+
+glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform4dvFunPtr = unsafePerformIO (getProcAddress "glUniform4dv")
+
+{-# NOINLINE glUniform4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2dvFunPtr
+
+glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2dv")
+
+{-# NOINLINE glUniformMatrix2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x3dvFunPtr
+
+glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3dv")
+
+{-# NOINLINE glUniformMatrix2x3dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x4dvFunPtr
+
+glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4dv")
+
+{-# NOINLINE glUniformMatrix2x4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3dvFunPtr
+
+glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3dv")
+
+{-# NOINLINE glUniformMatrix3dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x2dvFunPtr
+
+glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2dv")
+
+{-# NOINLINE glUniformMatrix3x2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x4dvFunPtr
+
+glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4dv")
+
+{-# NOINLINE glUniformMatrix3x4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4dvFunPtr
+
+glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4dv")
+
+{-# NOINLINE glUniformMatrix4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x2dvFunPtr
+
+glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2dv")
+
+{-# NOINLINE glUniformMatrix4x2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x3dvFunPtr
+
+glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3dv")
+
+{-# NOINLINE glUniformMatrix4x3dvFunPtr #-}
+
+-- | Usage: @'glUniformSubroutinesuiv' shadertype count indices@
+--
+-- The length of @indices@ should be @count@.
+
+
+glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glUniformSubroutinesuiv = ffienumsizeiPtruintIOV glUniformSubroutinesuivFunPtr
+
+glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glUniformSubroutinesuivFunPtr = unsafePerformIO (getProcAddress "glUniformSubroutinesuiv")
+
+{-# NOINLINE glUniformSubroutinesuivFunPtr #-}
+
+pattern GL_ACTIVE_SUBROUTINES = 0x8DE5
+
+pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+
+pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B
+
+pattern GL_DOUBLE_MAT2 = 0x8F46
+
+pattern GL_DOUBLE_MAT2x3 = 0x8F49
+
+pattern GL_DOUBLE_MAT2x4 = 0x8F4A
+
+pattern GL_DOUBLE_MAT3 = 0x8F47
+
+pattern GL_DOUBLE_MAT3x2 = 0x8F4B
+
+pattern GL_DOUBLE_MAT3x4 = 0x8F4C
+
+pattern GL_DOUBLE_MAT4 = 0x8F48
+
+pattern GL_DOUBLE_MAT4x2 = 0x8F4D
+
+pattern GL_DOUBLE_MAT4x3 = 0x8F4E
+
+pattern GL_DOUBLE_VEC2 = 0x8FFC
+
+pattern GL_DOUBLE_VEC3 = 0x8FFD
+
+pattern GL_DOUBLE_VEC4 = 0x8FFE
+
+pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F
+
+pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+
+pattern GL_FRACTIONAL_EVEN = 0x8E7C
+
+pattern GL_FRACTIONAL_ODD = 0x8E7B
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+
+pattern GL_ISOLINES = 0x8E7A
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+
+pattern GL_MAX_PATCH_VERTICES = 0x8E7D
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+
+pattern GL_MAX_SUBROUTINES = 0x8DE7
+
+pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+
+pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+
+pattern GL_MAX_VERTEX_STREAMS = 0x8E71
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37
+
+pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+
+pattern GL_PATCHES = 0x000E
+
+pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+
+pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+
+pattern GL_PATCH_VERTICES = 0x8E72
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+
+pattern GL_SAMPLE_SHADING = 0x8C36
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+
+pattern GL_TESS_CONTROL_SHADER = 0x8E88
+
+pattern GL_TESS_EVALUATION_SHADER = 0x8E87
+
+pattern GL_TESS_GEN_MODE = 0x8E76
+
+pattern GL_TESS_GEN_POINT_MODE = 0x8E79
+
+pattern GL_TESS_GEN_SPACING = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009
+
+pattern GL_TRANSFORM_FEEDBACK = 0x8E22
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+
+-- | Usage: @'glActiveShaderProgram' pipeline program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml>
+
+
+glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
+glActiveShaderProgram = ffiuintuintIOV glActiveShaderProgramFunPtr
+
+glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glActiveShaderProgramFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgram")
+
+{-# NOINLINE glActiveShaderProgramFunPtr #-}
+
+-- | Usage: @'glBindProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml>
+
+
+glBindProgramPipeline :: MonadIO m => GLuint -> m ()
+glBindProgramPipeline = ffiuintIOV glBindProgramPipelineFunPtr
+
+glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glBindProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipeline")
+
+{-# NOINLINE glBindProgramPipelineFunPtr #-}
+
+-- | Usage: @'glClearDepthf' d@
+
+
+glClearDepthf :: MonadIO m => GLfloat -> m ()
+glClearDepthf = ffifloatIOV glClearDepthfFunPtr
+
+glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())
+glClearDepthfFunPtr = unsafePerformIO (getProcAddress "glClearDepthf")
+
+{-# NOINLINE glClearDepthfFunPtr #-}
+
+-- | Usage: @'glCreateShaderProgramv' type count strings@
+--
+-- The length of @strings@ should be @count@.
+
+
+glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
+glCreateShaderProgramv = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvFunPtr
+
+glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
+glCreateShaderProgramvFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramv")
+
+{-# NOINLINE glCreateShaderProgramvFunPtr #-}
+
+-- | Usage: @'glDeleteProgramPipelines' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml>
+
+
+glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramPipelines = ffisizeiPtruintIOV glDeleteProgramPipelinesFunPtr
+
+glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelines")
+
+{-# NOINLINE glDeleteProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glDepthRangeArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glDepthRangeArrayv = ffiuintsizeiPtrdoubleIOV glDepthRangeArrayvFunPtr
+
+glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glDepthRangeArrayvFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayv")
+
+{-# NOINLINE glDepthRangeArrayvFunPtr #-}
+
+-- | Usage: @'glDepthRangeIndexed' index n f@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml>
+
+
+glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glDepthRangeIndexed = ffiuintdoubledoubleIOV glDepthRangeIndexedFunPtr
+
+glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glDepthRangeIndexedFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexed")
+
+{-# NOINLINE glDepthRangeIndexedFunPtr #-}
+
+-- | Usage: @'glDepthRangef' n f@
+
+
+glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
+glDepthRangef = ffifloatfloatIOV glDepthRangefFunPtr
+
+glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glDepthRangefFunPtr = unsafePerformIO (getProcAddress "glDepthRangef")
+
+{-# NOINLINE glDepthRangefFunPtr #-}
+
+-- | Usage: @'glGenProgramPipelines' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml>
+
+
+glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramPipelines = ffisizeiPtruintIOV glGenProgramPipelinesFunPtr
+
+glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelines")
+
+{-# NOINLINE glGenProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glGetDoublei_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoublei_v = ffienumuintPtrdoubleIOV glGetDoublei_vFunPtr
+
+glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoublei_vFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_v")
+
+{-# NOINLINE glGetDoublei_vFunPtr #-}
+
+-- | Usage: @'glGetFloati_v' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_v = ffienumuintPtrfloatIOV glGetFloati_vFunPtr
+
+glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vFunPtr = unsafePerformIO (getProcAddress "glGetFloati_v")
+
+{-# NOINLINE glGetFloati_vFunPtr #-}
+
+-- | Usage: @'glGetProgramBinary' program bufSize length binaryFormat binary@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @binaryFormat@ should be @1@.
+--
+-- The length of @binary@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml>
+
+
+glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
+glGetProgramBinary = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryFunPtr
+
+glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
+glGetProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinary")
+
+{-# NOINLINE glGetProgramBinaryFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineInfoLog' pipeline bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml>
+
+
+glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramPipelineInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogFunPtr
+
+glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramPipelineInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLog")
+
+{-# NOINLINE glGetProgramPipelineInfoLogFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineiv' pipeline pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramPipelineiv = ffiuintenumPtrintIOV glGetProgramPipelineivFunPtr
+
+glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramPipelineivFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineiv")
+
+{-# NOINLINE glGetProgramPipelineivFunPtr #-}
+
+-- | Usage: @'glGetShaderPrecisionFormat' shadertype precisiontype range precision@
+--
+-- The length of @range@ should be @2@.
+--
+-- The length of @precision@ should be @2@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml>
+
+
+glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
+glGetShaderPrecisionFormat = ffienumenumPtrintPtrintIOV glGetShaderPrecisionFormatFunPtr
+
+glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
+glGetShaderPrecisionFormatFunPtr = unsafePerformIO (getProcAddress "glGetShaderPrecisionFormat")
+
+{-# NOINLINE glGetShaderPrecisionFormatFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribLdv' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribLdv = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvFunPtr
+
+glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribLdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdv")
+
+{-# NOINLINE glGetVertexAttribLdvFunPtr #-}
+
+-- | Usage: @'glIsProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml>
+
+
+glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
+glIsProgramPipeline = ffiuintIOboolean glIsProgramPipelineFunPtr
+
+glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipeline")
+
+{-# NOINLINE glIsProgramPipelineFunPtr #-}
+
+-- | Usage: @'glProgramBinary' program binaryFormat binary length@
+--
+-- The length of @binary@ should be @length@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml>
+
+
+glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glProgramBinary = ffiuintenumPtrVsizeiIOV glProgramBinaryFunPtr
+
+glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glProgramBinary")
+
+{-# NOINLINE glProgramBinaryFunPtr #-}
+
+-- | Usage: @'glProgramParameteri' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+
+
+glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteri = ffiuintenumintIOV glProgramParameteriFunPtr
+
+glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriFunPtr = unsafePerformIO (getProcAddress "glProgramParameteri")
+
+{-# NOINLINE glProgramParameteriFunPtr #-}
+
+-- | Usage: @'glProgramUniform1d' program location v0@
+
+
+glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
+glProgramUniform1d = ffiuintintdoubleIOV glProgramUniform1dFunPtr
+
+glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+glProgramUniform1dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1d")
+
+{-# NOINLINE glProgramUniform1dFunPtr #-}
+
+-- | Usage: @'glProgramUniform1dv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform1dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvFunPtr
+
+glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform1dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dv")
+
+{-# NOINLINE glProgramUniform1dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform1f' program location v0@
+
+
+glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1f = ffiuintintfloatIOV glProgramUniform1fFunPtr
+
+glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1f")
+
+{-# NOINLINE glProgramUniform1fFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fv = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvFunPtr
+
+glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fv")
+
+{-# NOINLINE glProgramUniform1fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i' program location v0@
+
+
+glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1i = ffiuintintintIOV glProgramUniform1iFunPtr
+
+glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i")
+
+{-# NOINLINE glProgramUniform1iFunPtr #-}
+
+-- | Usage: @'glProgramUniform1iv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1iv = ffiuintintsizeiPtrintIOV glProgramUniform1ivFunPtr
+
+glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iv")
+
+{-# NOINLINE glProgramUniform1ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui' program location v0@
+
+
+glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1ui = ffiuintintuintIOV glProgramUniform1uiFunPtr
+
+glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui")
+
+{-# NOINLINE glProgramUniform1uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uiv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uiv = ffiuintintsizeiPtruintIOV glProgramUniform1uivFunPtr
+
+glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiv")
+
+{-# NOINLINE glProgramUniform1uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform2d' program location v0 v1@
+
+
+glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
+glProgramUniform2d = ffiuintintdoubledoubleIOV glProgramUniform2dFunPtr
+
+glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+glProgramUniform2dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2d")
+
+{-# NOINLINE glProgramUniform2dFunPtr #-}
+
+-- | Usage: @'glProgramUniform2dv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform2dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvFunPtr
+
+glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dv")
+
+{-# NOINLINE glProgramUniform2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform2f' program location v0 v1@
+
+
+glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2f = ffiuintintfloatfloatIOV glProgramUniform2fFunPtr
+
+glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2f")
+
+{-# NOINLINE glProgramUniform2fFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fv = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvFunPtr
+
+glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fv")
+
+{-# NOINLINE glProgramUniform2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i' program location v0 v1@
+
+
+glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2i = ffiuintintintintIOV glProgramUniform2iFunPtr
+
+glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i")
+
+{-# NOINLINE glProgramUniform2iFunPtr #-}
+
+-- | Usage: @'glProgramUniform2iv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2iv = ffiuintintsizeiPtrintIOV glProgramUniform2ivFunPtr
+
+glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iv")
+
+{-# NOINLINE glProgramUniform2ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui' program location v0 v1@
+
+
+glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2ui = ffiuintintuintuintIOV glProgramUniform2uiFunPtr
+
+glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui")
+
+{-# NOINLINE glProgramUniform2uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uiv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uiv = ffiuintintsizeiPtruintIOV glProgramUniform2uivFunPtr
+
+glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiv")
+
+{-# NOINLINE glProgramUniform2uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform3d' program location v0 v1 v2@
+
+
+glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform3d = ffiuintintdoubledoubledoubleIOV glProgramUniform3dFunPtr
+
+glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform3dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3d")
+
+{-# NOINLINE glProgramUniform3dFunPtr #-}
+
+-- | Usage: @'glProgramUniform3dv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform3dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvFunPtr
+
+glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dv")
+
+{-# NOINLINE glProgramUniform3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform3f' program location v0 v1 v2@
+
+
+glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3f = ffiuintintfloatfloatfloatIOV glProgramUniform3fFunPtr
+
+glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3f")
+
+{-# NOINLINE glProgramUniform3fFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fv = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvFunPtr
+
+glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fv")
+
+{-# NOINLINE glProgramUniform3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i' program location v0 v1 v2@
+
+
+glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3i = ffiuintintintintintIOV glProgramUniform3iFunPtr
+
+glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i")
+
+{-# NOINLINE glProgramUniform3iFunPtr #-}
+
+-- | Usage: @'glProgramUniform3iv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3iv = ffiuintintsizeiPtrintIOV glProgramUniform3ivFunPtr
+
+glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iv")
+
+{-# NOINLINE glProgramUniform3ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui' program location v0 v1 v2@
+
+
+glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3ui = ffiuintintuintuintuintIOV glProgramUniform3uiFunPtr
+
+glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui")
+
+{-# NOINLINE glProgramUniform3uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uiv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uiv = ffiuintintsizeiPtruintIOV glProgramUniform3uivFunPtr
+
+glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiv")
+
+{-# NOINLINE glProgramUniform3uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform4d' program location v0 v1 v2 v3@
+
+
+glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform4d = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dFunPtr
+
+glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform4dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4d")
+
+{-# NOINLINE glProgramUniform4dFunPtr #-}
+
+-- | Usage: @'glProgramUniform4dv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform4dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvFunPtr
+
+glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dv")
+
+{-# NOINLINE glProgramUniform4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform4f' program location v0 v1 v2 v3@
+
+
+glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4f = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fFunPtr
+
+glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4f")
+
+{-# NOINLINE glProgramUniform4fFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fv = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvFunPtr
+
+glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fv")
+
+{-# NOINLINE glProgramUniform4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i' program location v0 v1 v2 v3@
+
+
+glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4i = ffiuintintintintintintIOV glProgramUniform4iFunPtr
+
+glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i")
+
+{-# NOINLINE glProgramUniform4iFunPtr #-}
+
+-- | Usage: @'glProgramUniform4iv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4iv = ffiuintintsizeiPtrintIOV glProgramUniform4ivFunPtr
+
+glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iv")
+
+{-# NOINLINE glProgramUniform4ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui' program location v0 v1 v2 v3@
+
+
+glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4ui = ffiuintintuintuintuintuintIOV glProgramUniform4uiFunPtr
+
+glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui")
+
+{-# NOINLINE glProgramUniform4uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uiv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uiv = ffiuintintsizeiPtruintIOV glProgramUniform4uivFunPtr
+
+glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiv")
+
+{-# NOINLINE glProgramUniform4uivFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvFunPtr
+
+glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dv")
+
+{-# NOINLINE glProgramUniformMatrix2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvFunPtr
+
+glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fv")
+
+{-# NOINLINE glProgramUniformMatrix2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvFunPtr
+
+glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dv")
+
+{-# NOINLINE glProgramUniformMatrix2x3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvFunPtr
+
+glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fv")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvFunPtr
+
+glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dv")
+
+{-# NOINLINE glProgramUniformMatrix2x4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvFunPtr
+
+glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fv")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvFunPtr
+
+glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dv")
+
+{-# NOINLINE glProgramUniformMatrix3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvFunPtr
+
+glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fv")
+
+{-# NOINLINE glProgramUniformMatrix3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvFunPtr
+
+glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dv")
+
+{-# NOINLINE glProgramUniformMatrix3x2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvFunPtr
+
+glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fv")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvFunPtr
+
+glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dv")
+
+{-# NOINLINE glProgramUniformMatrix3x4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvFunPtr
+
+glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fv")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvFunPtr
+
+glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dv")
+
+{-# NOINLINE glProgramUniformMatrix4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvFunPtr
+
+glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fv")
+
+{-# NOINLINE glProgramUniformMatrix4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvFunPtr
+
+glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dv")
+
+{-# NOINLINE glProgramUniformMatrix4x2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvFunPtr
+
+glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fv")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvFunPtr
+
+glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dv")
+
+{-# NOINLINE glProgramUniformMatrix4x3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvFunPtr
+
+glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fv")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvFunPtr #-}
+
+-- | Usage: @'glReleaseShaderCompiler'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml>
+
+
+glReleaseShaderCompiler :: MonadIO m => m ()
+glReleaseShaderCompiler = ffiIOV glReleaseShaderCompilerFunPtr
+
+glReleaseShaderCompilerFunPtr :: FunPtr (IO ())
+glReleaseShaderCompilerFunPtr = unsafePerformIO (getProcAddress "glReleaseShaderCompiler")
+
+{-# NOINLINE glReleaseShaderCompilerFunPtr #-}
+
+-- | Usage: @'glScissorArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
+glScissorArrayv = ffiuintsizeiPtrintIOV glScissorArrayvFunPtr
+
+glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+glScissorArrayvFunPtr = unsafePerformIO (getProcAddress "glScissorArrayv")
+
+{-# NOINLINE glScissorArrayvFunPtr #-}
+
+-- | Usage: @'glScissorIndexed' index left bottom width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml>
+
+
+glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissorIndexed = ffiuintintintsizeisizeiIOV glScissorIndexedFunPtr
+
+glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorIndexedFunPtr = unsafePerformIO (getProcAddress "glScissorIndexed")
+
+{-# NOINLINE glScissorIndexedFunPtr #-}
+
+-- | Usage: @'glScissorIndexedv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glScissorIndexedv = ffiuintPtrintIOV glScissorIndexedvFunPtr
+
+glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glScissorIndexedvFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedv")
+
+{-# NOINLINE glScissorIndexedvFunPtr #-}
+
+-- | Usage: @'glShaderBinary' count shaders binaryformat binary length@
+--
+-- The length of @shaders@ should be @count@.
+--
+-- The length of @binary@ should be @length@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml>
+
+
+glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glShaderBinary = ffisizeiPtruintenumPtrVsizeiIOV glShaderBinaryFunPtr
+
+glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glShaderBinaryFunPtr = unsafePerformIO (getProcAddress "glShaderBinary")
+
+{-# NOINLINE glShaderBinaryFunPtr #-}
+
+-- | Usage: @'glUseProgramStages' pipeline stages program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml>
+
+
+glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
+glUseProgramStages = ffiuintbitfielduintIOV glUseProgramStagesFunPtr
+
+glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+glUseProgramStagesFunPtr = unsafePerformIO (getProcAddress "glUseProgramStages")
+
+{-# NOINLINE glUseProgramStagesFunPtr #-}
+
+-- | Usage: @'glValidateProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml>
+
+
+glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
+glValidateProgramPipeline = ffiuintIOV glValidateProgramPipelineFunPtr
+
+glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipeline")
+
+{-# NOINLINE glValidateProgramPipelineFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1d' index x@
+
+
+glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttribL1d = ffiuintdoubleIOV glVertexAttribL1dFunPtr
+
+glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttribL1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1d")
+
+{-# NOINLINE glVertexAttribL1dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1dv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL1dv = ffiuintPtrdoubleIOV glVertexAttribL1dvFunPtr
+
+glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dv")
+
+{-# NOINLINE glVertexAttribL1dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2d' index x y@
+
+
+glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttribL2d = ffiuintdoubledoubleIOV glVertexAttribL2dFunPtr
+
+glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2d")
+
+{-# NOINLINE glVertexAttribL2dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2dv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL2dv = ffiuintPtrdoubleIOV glVertexAttribL2dvFunPtr
+
+glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dv")
+
+{-# NOINLINE glVertexAttribL2dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3d' index x y z@
+
+
+glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL3d = ffiuintdoubledoubledoubleIOV glVertexAttribL3dFunPtr
+
+glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3d")
+
+{-# NOINLINE glVertexAttribL3dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3dv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL3dv = ffiuintPtrdoubleIOV glVertexAttribL3dvFunPtr
+
+glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dv")
+
+{-# NOINLINE glVertexAttribL3dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4d' index x y z w@
+
+
+glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dFunPtr
+
+glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4d")
+
+{-# NOINLINE glVertexAttribL4dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4dv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL4dv = ffiuintPtrdoubleIOV glVertexAttribL4dvFunPtr
+
+glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dv")
+
+{-# NOINLINE glVertexAttribL4dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribLPointer' index size type stride pointer@
+--
+-- The length of @pointer@ should be @size@.
+
+
+glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribLPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerFunPtr
+
+glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribLPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointer")
+
+{-# NOINLINE glVertexAttribLPointerFunPtr #-}
+
+-- | Usage: @'glViewportArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glViewportArrayv = ffiuintsizeiPtrfloatIOV glViewportArrayvFunPtr
+
+glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glViewportArrayvFunPtr = unsafePerformIO (getProcAddress "glViewportArrayv")
+
+{-# NOINLINE glViewportArrayvFunPtr #-}
+
+-- | Usage: @'glViewportIndexedf' index x y w h@
+
+
+glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glViewportIndexedf = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfFunPtr
+
+glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glViewportIndexedfFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedf")
+
+{-# NOINLINE glViewportIndexedfFunPtr #-}
+
+-- | Usage: @'glViewportIndexedfv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glViewportIndexedfv = ffiuintPtrfloatIOV glViewportIndexedfvFunPtr
+
+glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glViewportIndexedfvFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfv")
+
+{-# NOINLINE glViewportIndexedfvFunPtr #-}
+
+pattern GL_ACTIVE_PROGRAM = 0x8259
+
+pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF
+
+pattern GL_FIXED = 0x140C
+
+pattern GL_FRAGMENT_SHADER_BIT = 0x00000002
+
+pattern GL_GEOMETRY_SHADER_BIT = 0x00000004
+
+pattern GL_HIGH_FLOAT = 0x8DF2
+
+pattern GL_HIGH_INT = 0x8DF5
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+
+pattern GL_LAYER_PROVOKING_VERTEX = 0x825E
+
+pattern GL_LOW_FLOAT = 0x8DF0
+
+pattern GL_LOW_INT = 0x8DF3
+
+pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+
+pattern GL_MAX_VARYING_VECTORS = 0x8DFC
+
+pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+
+pattern GL_MAX_VIEWPORTS = 0x825B
+
+pattern GL_MEDIUM_FLOAT = 0x8DF1
+
+pattern GL_MEDIUM_INT = 0x8DF4
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+
+pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9
+
+pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF
+
+pattern GL_PROGRAM_BINARY_LENGTH = 0x8741
+
+pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+
+pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A
+
+pattern GL_PROGRAM_SEPARABLE = 0x8258
+
+pattern GL_RGB565 = 0x8D62
+
+pattern GL_SHADER_BINARY_FORMATS = 0x8DF8
+
+pattern GL_SHADER_COMPILER = 0x8DFA
+
+pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008
+
+pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010
+
+pattern GL_UNDEFINED_VERTEX = 0x8260
+
+pattern GL_VERTEX_SHADER_BIT = 0x00000001
+
+pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C
+
+-- | Usage: @'glBindImageTexture' unit texture level layered layer access format@
+--
+-- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml>
+
+
+glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
+glBindImageTexture = ffiuintuintintbooleanintenumenumIOV glBindImageTextureFunPtr
+
+glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
+glBindImageTextureFunPtr = unsafePerformIO (getProcAddress "glBindImageTexture")
+
+{-# NOINLINE glBindImageTextureFunPtr #-}
+
+-- | Usage: @'glDrawArraysInstancedBaseInstance' mode first count instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml>
+
+
+glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
+glDrawArraysInstancedBaseInstance = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceFunPtr
+
+glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+glDrawArraysInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstance")
+
+{-# NOINLINE glDrawArraysInstancedBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseInstance' mode count type indices instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml>
+
+
+glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
+glDrawElementsInstancedBaseInstance = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
+glDrawElementsInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertexBaseInstance' mode count type indices instancecount basevertex baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml>
+
+
+glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
+glDrawElementsInstancedBaseVertexBaseInstance = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackInstanced' mode id instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml>
+
+
+glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackInstanced = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedFunPtr
+
+glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackInstancedFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackStreamInstanced' mode id stream instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml>
+
+
+glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackStreamInstanced = ffienumuintuintsizeiIOV glDrawTransformFeedbackStreamInstancedFunPtr
+
+glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackStreamInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStreamInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackStreamInstancedFunPtr #-}
+
+-- | Usage: @'glGetActiveAtomicCounterBufferiv' program bufferIndex pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml>
+
+
+glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveAtomicCounterBufferiv = ffiuintuintenumPtrintIOV glGetActiveAtomicCounterBufferivFunPtr
+
+glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveAtomicCounterBufferivFunPtr = unsafePerformIO (getProcAddress "glGetActiveAtomicCounterBufferiv")
+
+{-# NOINLINE glGetActiveAtomicCounterBufferivFunPtr #-}
+
+-- | Usage: @'glGetInternalformativ' target internalformat pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+glGetInternalformativ = ffienumenumenumsizeiPtrintIOV glGetInternalformativFunPtr
+
+glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+glGetInternalformativFunPtr = unsafePerformIO (getProcAddress "glGetInternalformativ")
+
+{-# NOINLINE glGetInternalformativFunPtr #-}
+
+-- | Usage: @'glMemoryBarrier' barriers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml>
+
+
+glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrier = ffibitfieldIOV glMemoryBarrierFunPtr
+
+glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrier")
+
+{-# NOINLINE glMemoryBarrierFunPtr #-}
+
+-- | Usage: @'glTexStorage1D' target levels internalformat width@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml>
+
+
+glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTexStorage1D = ffienumsizeienumsizeiIOV glTexStorage1DFunPtr
+
+glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTexStorage1DFunPtr = unsafePerformIO (getProcAddress "glTexStorage1D")
+
+{-# NOINLINE glTexStorage1DFunPtr #-}
+
+-- | Usage: @'glTexStorage2D' target levels internalformat width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml>
+
+
+glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTexStorage2D = ffienumsizeienumsizeisizeiIOV glTexStorage2DFunPtr
+
+glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTexStorage2DFunPtr = unsafePerformIO (getProcAddress "glTexStorage2D")
+
+{-# NOINLINE glTexStorage2DFunPtr #-}
+
+-- | Usage: @'glTexStorage3D' target levels internalformat width height depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml>
+
+
+glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTexStorage3D = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DFunPtr
+
+glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTexStorage3DFunPtr = unsafePerformIO (getProcAddress "glTexStorage3D")
+
+{-# NOINLINE glTexStorage3DFunPtr #-}
+
+pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+
+pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+
+pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+
+pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+
+pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+
+pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+
+pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+
+pattern GL_COMMAND_BARRIER_BIT = 0x00000040
+
+pattern GL_COPY_READ_BUFFER_BINDING = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER_BINDING = 0x8F37
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400
+
+pattern GL_IMAGE_1D = 0x904C
+
+pattern GL_IMAGE_1D_ARRAY = 0x9052
+
+pattern GL_IMAGE_2D = 0x904D
+
+pattern GL_IMAGE_2D_ARRAY = 0x9053
+
+pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+
+pattern GL_IMAGE_2D_RECT = 0x904F
+
+pattern GL_IMAGE_3D = 0x904E
+
+pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E
+
+pattern GL_IMAGE_BINDING_FORMAT = 0x906E
+
+pattern GL_IMAGE_BINDING_LAYER = 0x8F3D
+
+pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C
+
+pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B
+
+pattern GL_IMAGE_BINDING_NAME = 0x8F3A
+
+pattern GL_IMAGE_BUFFER = 0x9051
+
+pattern GL_IMAGE_CUBE = 0x9050
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+
+pattern GL_INT_IMAGE_1D = 0x9057
+
+pattern GL_INT_IMAGE_1D_ARRAY = 0x905D
+
+pattern GL_INT_IMAGE_2D = 0x9058
+
+pattern GL_INT_IMAGE_2D_ARRAY = 0x905E
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+
+pattern GL_INT_IMAGE_2D_RECT = 0x905A
+
+pattern GL_INT_IMAGE_3D = 0x9059
+
+pattern GL_INT_IMAGE_BUFFER = 0x905C
+
+pattern GL_INT_IMAGE_CUBE = 0x905B
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+
+pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+
+pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+
+pattern GL_MAX_IMAGE_SAMPLES = 0x906D
+
+pattern GL_MAX_IMAGE_UNITS = 0x8F38
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+
+pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+
+pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+
+pattern GL_NUM_SAMPLE_COUNTS = 0x9380
+
+pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+
+pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+
+pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+
+pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+
+pattern GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+
+pattern GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23
+
+pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+
+pattern GL_UNIFORM_BARRIER_BIT = 0x00000004
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+
+pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+
+pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+
+pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+
+pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+-- | Usage: @'glBindVertexBuffer' bindingindex buffer offset stride@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml>
+
+
+glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glBindVertexBuffer = ffiuintuintintptrsizeiIOV glBindVertexBufferFunPtr
+
+glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glBindVertexBufferFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffer")
+
+{-# NOINLINE glBindVertexBufferFunPtr #-}
+
+-- | Usage: @'glClearBufferData' target internalformat format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml>
+
+
+glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferData = ffienumenumenumenumPtrVIOV glClearBufferDataFunPtr
+
+glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferData")
+
+{-# NOINLINE glClearBufferDataFunPtr #-}
+
+-- | Usage: @'glClearBufferSubData' target internalformat offset size format type data@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml>
+
+
+glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferSubData = ffienumenumintptrsizeiptrenumenumPtrVIOV glClearBufferSubDataFunPtr
+
+glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferSubData")
+
+{-# NOINLINE glClearBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCopyImageSubData' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml>
+
+
+glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glCopyImageSubData = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataFunPtr
+
+glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glCopyImageSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubData")
+
+{-# NOINLINE glCopyImageSubDataFunPtr #-}
+
+-- | Usage: @'glDebugMessageCallback' callback userParam@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml>
+
+
+glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
+glDebugMessageCallback = ffiDEBUGPROCPtrVIOV glDebugMessageCallbackFunPtr
+
+glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())
+glDebugMessageCallbackFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallback")
+
+{-# NOINLINE glDebugMessageCallbackFunPtr #-}
+
+-- | Usage: @'glDebugMessageControl' source type severity count ids enabled@
+--
+-- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @ids@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml>
+
+
+glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+glDebugMessageControl = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlFunPtr
+
+glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+glDebugMessageControlFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControl")
+
+{-# NOINLINE glDebugMessageControlFunPtr #-}
+
+-- | Usage: @'glDebugMessageInsert' source type id severity length buf@
+--
+-- The length of @buf@ should be @COMPSIZE(buf,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml>
+
+
+glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
+glDebugMessageInsert = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertFunPtr
+
+glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+glDebugMessageInsertFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsert")
+
+{-# NOINLINE glDebugMessageInsertFunPtr #-}
+
+-- | Usage: @'glDispatchCompute' num_groups_x num_groups_y num_groups_z@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml>
+
+
+glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glDispatchCompute = ffiuintuintuintIOV glDispatchComputeFunPtr
+
+glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glDispatchComputeFunPtr = unsafePerformIO (getProcAddress "glDispatchCompute")
+
+{-# NOINLINE glDispatchComputeFunPtr #-}
+
+-- | Usage: @'glDispatchComputeIndirect' indirect@
+--
+-- The parameter @indirect@ is a @BufferOffset@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml>
+
+
+glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
+glDispatchComputeIndirect = ffiintptrIOV glDispatchComputeIndirectFunPtr
+
+glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())
+glDispatchComputeIndirectFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeIndirect")
+
+{-# NOINLINE glDispatchComputeIndirectFunPtr #-}
+
+-- | Usage: @'glFramebufferParameteri' target pname param@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml>
+
+
+glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glFramebufferParameteri = ffienumenumintIOV glFramebufferParameteriFunPtr
+
+glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glFramebufferParameteri")
+
+{-# NOINLINE glFramebufferParameteriFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLog' count bufSize sources types ids severities lengths messageLog@
+--
+-- The length of @sources@ should be @count@.
+--
+-- The length of @types@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @messageLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml>
+
+
+glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+glGetDebugMessageLog = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogFunPtr
+
+glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+glGetDebugMessageLogFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLog")
+
+{-# NOINLINE glGetDebugMessageLogFunPtr #-}
+
+-- | Usage: @'glGetFramebufferParameteriv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferParameteriv = ffienumenumPtrintIOV glGetFramebufferParameterivFunPtr
+
+glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameteriv")
+
+{-# NOINLINE glGetFramebufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetInternalformati64v' target internalformat pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
+glGetInternalformati64v = ffienumenumenumsizeiPtrint64IOV glGetInternalformati64vFunPtr
+
+glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
+glGetInternalformati64vFunPtr = unsafePerformIO (getProcAddress "glGetInternalformati64v")
+
+{-# NOINLINE glGetInternalformati64vFunPtr #-}
+
+-- | Usage: @'glGetObjectLabel' identifier name bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml>
+
+
+glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectLabel = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelFunPtr
+
+glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabel")
+
+{-# NOINLINE glGetObjectLabelFunPtr #-}
+
+-- | Usage: @'glGetObjectPtrLabel' ptr bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml>
+
+
+glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectPtrLabel = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelFunPtr
+
+glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabel")
+
+{-# NOINLINE glGetObjectPtrLabelFunPtr #-}
+
+-- | Usage: @'glGetProgramInterfaceiv' program programInterface pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramInterfaceiv = ffiuintenumenumPtrintIOV glGetProgramInterfaceivFunPtr
+
+glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramInterfaceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramInterfaceiv")
+
+{-# NOINLINE glGetProgramInterfaceivFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceIndex' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml>
+
+
+glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetProgramResourceIndex = ffiuintenumPtrcharIOuint glGetProgramResourceIndexFunPtr
+
+glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetProgramResourceIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceIndex")
+
+{-# NOINLINE glGetProgramResourceIndexFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceLocation' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml>
+
+
+glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocation = ffiuintenumPtrcharIOint glGetProgramResourceLocationFunPtr
+
+glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocation")
+
+{-# NOINLINE glGetProgramResourceLocationFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceLocationIndex' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml>
+
+
+glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocationIndex = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexFunPtr
+
+glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndex")
+
+{-# NOINLINE glGetProgramResourceLocationIndexFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceName' program programInterface index bufSize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml>
+
+
+glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramResourceName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetProgramResourceNameFunPtr
+
+glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramResourceNameFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceName")
+
+{-# NOINLINE glGetProgramResourceNameFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceiv' program programInterface index propCount props bufSize length params@
+--
+-- The length of @props@ should be @propCount@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetProgramResourceiv = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV glGetProgramResourceivFunPtr
+
+glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetProgramResourceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceiv")
+
+{-# NOINLINE glGetProgramResourceivFunPtr #-}
+
+-- | Usage: @'glInvalidateBufferData' buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml>
+
+
+glInvalidateBufferData :: MonadIO m => GLuint -> m ()
+glInvalidateBufferData = ffiuintIOV glInvalidateBufferDataFunPtr
+
+glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())
+glInvalidateBufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferData")
+
+{-# NOINLINE glInvalidateBufferDataFunPtr #-}
+
+-- | Usage: @'glInvalidateBufferSubData' buffer offset length@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml>
+
+
+glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glInvalidateBufferSubData = ffiuintintptrsizeiptrIOV glInvalidateBufferSubDataFunPtr
+
+glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glInvalidateBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferSubData")
+
+{-# NOINLINE glInvalidateBufferSubDataFunPtr #-}
+
+-- | Usage: @'glInvalidateFramebuffer' target numAttachments attachments@
+--
+-- The length of @attachments@ should be @numAttachments@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml>
+
+
+glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateFramebuffer = ffienumsizeiPtrenumIOV glInvalidateFramebufferFunPtr
+
+glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateFramebuffer")
+
+{-# NOINLINE glInvalidateFramebufferFunPtr #-}
+
+-- | Usage: @'glInvalidateSubFramebuffer' target numAttachments attachments x y width height@
+--
+-- The length of @attachments@ should be @numAttachments@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml>
+
+
+glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateSubFramebuffer = ffienumsizeiPtrenumintintsizeisizeiIOV glInvalidateSubFramebufferFunPtr
+
+glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateSubFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateSubFramebuffer")
+
+{-# NOINLINE glInvalidateSubFramebufferFunPtr #-}
+
+-- | Usage: @'glInvalidateTexImage' texture level@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml>
+
+
+glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
+glInvalidateTexImage = ffiuintintIOV glInvalidateTexImageFunPtr
+
+glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glInvalidateTexImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexImage")
+
+{-# NOINLINE glInvalidateTexImageFunPtr #-}
+
+-- | Usage: @'glInvalidateTexSubImage' texture level xoffset yoffset zoffset width height depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml>
+
+
+glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glInvalidateTexSubImage = ffiuintintintintintsizeisizeisizeiIOV glInvalidateTexSubImageFunPtr
+
+glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glInvalidateTexSubImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexSubImage")
+
+{-# NOINLINE glInvalidateTexSubImageFunPtr #-}
+
+-- | Usage: @'glMultiDrawArraysIndirect' mode indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml>
+
+
+glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawArraysIndirect = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectFunPtr
+
+glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirect")
+
+{-# NOINLINE glMultiDrawArraysIndirectFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirect' mode type indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml>
+
+
+glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawElementsIndirect = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectFunPtr
+
+glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirect")
+
+{-# NOINLINE glMultiDrawElementsIndirectFunPtr #-}
+
+-- | Usage: @'glObjectLabel' identifier name length label@
+--
+-- The length of @label@ should be @COMPSIZE(label,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml>
+
+
+glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glObjectLabel = ffienumuintsizeiPtrcharIOV glObjectLabelFunPtr
+
+glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glObjectLabelFunPtr = unsafePerformIO (getProcAddress "glObjectLabel")
+
+{-# NOINLINE glObjectLabelFunPtr #-}
+
+-- | Usage: @'glObjectPtrLabel' ptr length label@
+--
+-- The length of @label@ should be @COMPSIZE(label,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml>
+
+
+glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
+glObjectPtrLabel = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelFunPtr
+
+glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
+glObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabel")
+
+{-# NOINLINE glObjectPtrLabelFunPtr #-}
+
+-- | Usage: @'glPopDebugGroup'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml>
+
+
+glPopDebugGroup :: MonadIO m => m ()
+glPopDebugGroup = ffiIOV glPopDebugGroupFunPtr
+
+glPopDebugGroupFunPtr :: FunPtr (IO ())
+glPopDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroup")
+
+{-# NOINLINE glPopDebugGroupFunPtr #-}
+
+-- | Usage: @'glPushDebugGroup' source id length message@
+--
+-- The length of @message@ should be @COMPSIZE(message,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml>
+
+
+glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glPushDebugGroup = ffienumuintsizeiPtrcharIOV glPushDebugGroupFunPtr
+
+glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glPushDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroup")
+
+{-# NOINLINE glPushDebugGroupFunPtr #-}
+
+-- | Usage: @'glShaderStorageBlockBinding' program storageBlockIndex storageBlockBinding@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml>
+
+
+glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glShaderStorageBlockBinding = ffiuintuintuintIOV glShaderStorageBlockBindingFunPtr
+
+glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glShaderStorageBlockBindingFunPtr = unsafePerformIO (getProcAddress "glShaderStorageBlockBinding")
+
+{-# NOINLINE glShaderStorageBlockBindingFunPtr #-}
+
+-- | Usage: @'glTexBufferRange' target internalformat buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml>
+
+
+glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTexBufferRange = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeFunPtr
+
+glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTexBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTexBufferRange")
+
+{-# NOINLINE glTexBufferRangeFunPtr #-}
+
+-- | Usage: @'glTexStorage2DMultisample' target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml>
+
+
+glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexStorage2DMultisampleFunPtr
+
+glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DMultisample")
+
+{-# NOINLINE glTexStorage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexStorage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml>
+
+
+glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleFunPtr
+
+glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisample")
+
+{-# NOINLINE glTexStorage3DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureView' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml>
+
+
+glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glTextureView = ffiuintenumuintenumuintuintuintuintIOV glTextureViewFunPtr
+
+glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glTextureViewFunPtr = unsafePerformIO (getProcAddress "glTextureView")
+
+{-# NOINLINE glTextureViewFunPtr #-}
+
+-- | Usage: @'glVertexAttribBinding' attribindex bindingindex@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml>
+
+
+glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribBinding = ffiuintuintIOV glVertexAttribBindingFunPtr
+
+glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexAttribBinding")
+
+{-# NOINLINE glVertexAttribBindingFunPtr #-}
+
+-- | Usage: @'glVertexAttribFormat' attribindex size type normalized relativeoffset@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml>
+
+
+glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribFormat = ffiuintintenumbooleanuintIOV glVertexAttribFormatFunPtr
+
+glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormat")
+
+{-# NOINLINE glVertexAttribFormatFunPtr #-}
+
+-- | Usage: @'glVertexAttribIFormat' attribindex size type relativeoffset@
+
+
+glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribIFormat = ffiuintintenumuintIOV glVertexAttribIFormatFunPtr
+
+glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormat")
+
+{-# NOINLINE glVertexAttribIFormatFunPtr #-}
+
+-- | Usage: @'glVertexAttribLFormat' attribindex size type relativeoffset@
+
+
+glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribLFormat = ffiuintintenumuintIOV glVertexAttribLFormatFunPtr
+
+glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormat")
+
+{-# NOINLINE glVertexAttribLFormatFunPtr #-}
+
+-- | Usage: @'glVertexBindingDivisor' bindingindex divisor@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml>
+
+
+glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexBindingDivisor = ffiuintuintIOV glVertexBindingDivisorFunPtr
+
+glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexBindingDivisor")
+
+{-# NOINLINE glVertexBindingDivisorFunPtr #-}
+
+pattern GL_ACTIVE_RESOURCES = 0x92F5
+
+pattern GL_ACTIVE_VARIABLES = 0x9305
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
+
+pattern GL_ARRAY_SIZE = 0x92FB
+
+pattern GL_ARRAY_STRIDE = 0x92FE
+
+pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
+
+pattern GL_AUTO_GENERATE_MIPMAP = 0x8295
+
+pattern GL_BLOCK_INDEX = 0x92FD
+
+pattern GL_BUFFER = 0x82E0
+
+pattern GL_BUFFER_BINDING = 0x9302
+
+pattern GL_BUFFER_DATA_SIZE = 0x9303
+
+pattern GL_BUFFER_VARIABLE = 0x92E5
+
+pattern GL_CAVEAT_SUPPORT = 0x82B8
+
+pattern GL_CLEAR_BUFFER = 0x82B4
+
+pattern GL_COLOR_COMPONENTS = 0x8283
+
+pattern GL_COLOR_ENCODING = 0x8296
+
+pattern GL_COLOR_RENDERABLE = 0x8286
+
+pattern GL_COMPRESSED_R11_EAC = 0x9270
+
+pattern GL_COMPRESSED_RG11_EAC = 0x9272
+
+pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274
+
+pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
+
+pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278
+
+pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271
+
+pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
+
+pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275
+
+pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
+
+pattern GL_COMPUTE_SHADER = 0x91B9
+
+pattern GL_COMPUTE_SHADER_BIT = 0x00000020
+
+pattern GL_COMPUTE_SUBROUTINE = 0x92ED
+
+pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
+
+pattern GL_COMPUTE_TEXTURE = 0x82A0
+
+pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002
+
+pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D
+
+pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
+
+pattern GL_DEBUG_OUTPUT = 0x92E0
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
+
+pattern GL_DEBUG_SEVERITY_HIGH = 0x9146
+
+pattern GL_DEBUG_SEVERITY_LOW = 0x9148
+
+pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B
+
+pattern GL_DEBUG_SOURCE_API = 0x8246
+
+pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A
+
+pattern GL_DEBUG_SOURCE_OTHER = 0x824B
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
+
+pattern GL_DEBUG_TYPE_ERROR = 0x824C
+
+pattern GL_DEBUG_TYPE_MARKER = 0x8268
+
+pattern GL_DEBUG_TYPE_OTHER = 0x8251
+
+pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250
+
+pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A
+
+pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
+
+pattern GL_DEPTH_COMPONENTS = 0x8284
+
+pattern GL_DEPTH_RENDERABLE = 0x8287
+
+pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
+
+pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE
+
+pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
+
+pattern GL_FILTER = 0x829A
+
+pattern GL_FRAGMENT_SUBROUTINE = 0x92EC
+
+pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
+
+pattern GL_FRAGMENT_TEXTURE = 0x829F
+
+pattern GL_FRAMEBUFFER_BLEND = 0x828B
+
+pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
+
+pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
+
+pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
+
+pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
+
+pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289
+
+pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
+
+pattern GL_FULL_SUPPORT = 0x82B7
+
+pattern GL_GEOMETRY_SUBROUTINE = 0x92EB
+
+pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
+
+pattern GL_GEOMETRY_TEXTURE = 0x829E
+
+pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291
+
+pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292
+
+pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3
+
+pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2
+
+pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE
+
+pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB
+
+pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1
+
+pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD
+
+pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA
+
+pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0
+
+pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC
+
+pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9
+
+pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF
+
+pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8
+
+pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9
+
+pattern GL_IMAGE_PIXEL_TYPE = 0x82AA
+
+pattern GL_IMAGE_TEXEL_SIZE = 0x82A7
+
+pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274
+
+pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B
+
+pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273
+
+pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A
+
+pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275
+
+pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C
+
+pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272
+
+pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279
+
+pattern GL_INTERNALFORMAT_PREFERRED = 0x8270
+
+pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271
+
+pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278
+
+pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277
+
+pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276
+
+pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D
+
+pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F
+
+pattern GL_IS_PER_PATCH = 0x92E7
+
+pattern GL_IS_ROW_MAJOR = 0x9300
+
+pattern GL_LOCATION = 0x930E
+
+pattern GL_LOCATION_INDEX = 0x930F
+
+pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294
+
+pattern GL_MATRIX_STRIDE = 0x92FF
+
+pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
+
+pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282
+
+pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
+
+pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
+
+pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
+
+pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
+
+pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
+
+pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
+
+pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
+
+pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143
+
+pattern GL_MAX_DEPTH = 0x8280
+
+pattern GL_MAX_ELEMENT_INDEX = 0x8D6B
+
+pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
+
+pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317
+
+pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318
+
+pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
+
+pattern GL_MAX_HEIGHT = 0x827F
+
+pattern GL_MAX_LABEL_LENGTH = 0x82E8
+
+pattern GL_MAX_LAYERS = 0x8281
+
+pattern GL_MAX_NAME_LENGTH = 0x92F6
+
+pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7
+
+pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
+
+pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
+
+pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
+
+pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E
+
+pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
+
+pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
+
+pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
+
+pattern GL_MAX_WIDTH = 0x827E
+
+pattern GL_MIPMAP = 0x8293
+
+pattern GL_NAME_LENGTH = 0x92F9
+
+pattern GL_NUM_ACTIVE_VARIABLES = 0x9304
+
+pattern GL_OFFSET = 0x92FC
+
+pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
+
+pattern GL_PROGRAM = 0x82E2
+
+pattern GL_PROGRAM_INPUT = 0x92E3
+
+pattern GL_PROGRAM_OUTPUT = 0x92E4
+
+pattern GL_PROGRAM_PIPELINE = 0x82E4
+
+pattern GL_QUERY = 0x82E3
+
+pattern GL_READ_PIXELS = 0x828C
+
+pattern GL_READ_PIXELS_FORMAT = 0x828D
+
+pattern GL_READ_PIXELS_TYPE = 0x828E
+
+pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B
+
+pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
+
+pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306
+
+pattern GL_SAMPLER = 0x82E6
+
+pattern GL_SHADER = 0x82E1
+
+pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6
+
+pattern GL_SHADER_IMAGE_LOAD = 0x82A4
+
+pattern GL_SHADER_IMAGE_STORE = 0x82A5
+
+pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000
+
+pattern GL_SHADER_STORAGE_BLOCK = 0x92E6
+
+pattern GL_SHADER_STORAGE_BUFFER = 0x90D2
+
+pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3
+
+pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
+
+pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5
+
+pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
+
+pattern GL_SRGB_READ = 0x8297
+
+pattern GL_SRGB_WRITE = 0x8298
+
+pattern GL_STENCIL_COMPONENTS = 0x8285
+
+pattern GL_STENCIL_RENDERABLE = 0x8288
+
+pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9
+
+pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
+
+pattern GL_TESS_CONTROL_TEXTURE = 0x829C
+
+pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA
+
+pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
+
+pattern GL_TESS_EVALUATION_TEXTURE = 0x829D
+
+pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
+
+pattern GL_TEXTURE_BUFFER_SIZE = 0x919E
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
+
+pattern GL_TEXTURE_GATHER = 0x82A2
+
+pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3
+
+pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F
+
+pattern GL_TEXTURE_IMAGE_TYPE = 0x8290
+
+pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF
+
+pattern GL_TEXTURE_SHADOW = 0x82A1
+
+pattern GL_TEXTURE_VIEW = 0x82B5
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC
+
+pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C
+
+pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4
+
+pattern GL_TYPE = 0x92FA
+
+pattern GL_UNIFORM = 0x92E1
+
+pattern GL_UNIFORM_BLOCK = 0x92E2
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
+
+pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4
+
+pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
+
+pattern GL_VERTEX_BINDING_BUFFER = 0x8F4F
+
+pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6
+
+pattern GL_VERTEX_BINDING_OFFSET = 0x82D7
+
+pattern GL_VERTEX_BINDING_STRIDE = 0x82D8
+
+pattern GL_VERTEX_SUBROUTINE = 0x92E8
+
+pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE
+
+pattern GL_VERTEX_TEXTURE = 0x829B
+
+pattern GL_VIEW_CLASS_128_BITS = 0x82C4
+
+pattern GL_VIEW_CLASS_16_BITS = 0x82CA
+
+pattern GL_VIEW_CLASS_24_BITS = 0x82C9
+
+pattern GL_VIEW_CLASS_32_BITS = 0x82C8
+
+pattern GL_VIEW_CLASS_48_BITS = 0x82C7
+
+pattern GL_VIEW_CLASS_64_BITS = 0x82C6
+
+pattern GL_VIEW_CLASS_8_BITS = 0x82CB
+
+pattern GL_VIEW_CLASS_96_BITS = 0x82C5
+
+pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3
+
+pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2
+
+pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0
+
+pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
+
+pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
+
+pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
+
+pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6
+
+-- | Usage: @'glBindBuffersBase' target first count buffers@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml>
+
+
+glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindBuffersBase = ffienumuintsizeiPtruintIOV glBindBuffersBaseFunPtr
+
+glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindBuffersBaseFunPtr = unsafePerformIO (getProcAddress "glBindBuffersBase")
+
+{-# NOINLINE glBindBuffersBaseFunPtr #-}
+
+-- | Usage: @'glBindBuffersRange' target first count buffers offsets sizes@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- The length of @offsets@ should be @count@.
+--
+-- The length of @sizes@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml>
+
+
+glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
+glBindBuffersRange = ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV glBindBuffersRangeFunPtr
+
+glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
+glBindBuffersRangeFunPtr = unsafePerformIO (getProcAddress "glBindBuffersRange")
+
+{-# NOINLINE glBindBuffersRangeFunPtr #-}
+
+-- | Usage: @'glBindImageTextures' first count textures@
+--
+-- The length of @textures@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml>
+
+
+glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindImageTextures = ffiuintsizeiPtruintIOV glBindImageTexturesFunPtr
+
+glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindImageTexturesFunPtr = unsafePerformIO (getProcAddress "glBindImageTextures")
+
+{-# NOINLINE glBindImageTexturesFunPtr #-}
+
+-- | Usage: @'glBindSamplers' first count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml>
+
+
+glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindSamplers = ffiuintsizeiPtruintIOV glBindSamplersFunPtr
+
+glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindSamplersFunPtr = unsafePerformIO (getProcAddress "glBindSamplers")
+
+{-# NOINLINE glBindSamplersFunPtr #-}
+
+-- | Usage: @'glBindTextures' first count textures@
+--
+-- The length of @textures@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml>
+
+
+glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindTextures = ffiuintsizeiPtruintIOV glBindTexturesFunPtr
+
+glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindTexturesFunPtr = unsafePerformIO (getProcAddress "glBindTextures")
+
+{-# NOINLINE glBindTexturesFunPtr #-}
+
+-- | Usage: @'glBindVertexBuffers' first count buffers offsets strides@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- The length of @offsets@ should be @count@.
+--
+-- The length of @strides@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml>
+
+
+glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glBindVertexBuffers = ffiuintsizeiPtruintPtrintptrPtrsizeiIOV glBindVertexBuffersFunPtr
+
+glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glBindVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffers")
+
+{-# NOINLINE glBindVertexBuffersFunPtr #-}
+
+-- | Usage: @'glBufferStorage' target size data flags@
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml>
+
+
+glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glBufferStorage = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageFunPtr
+
+glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glBufferStorageFunPtr = unsafePerformIO (getProcAddress "glBufferStorage")
+
+{-# NOINLINE glBufferStorageFunPtr #-}
+
+-- | Usage: @'glClearTexImage' texture level format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml>
+
+
+glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexImage = ffiuintintenumenumPtrVIOV glClearTexImageFunPtr
+
+glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexImageFunPtr = unsafePerformIO (getProcAddress "glClearTexImage")
+
+{-# NOINLINE glClearTexImageFunPtr #-}
+
+-- | Usage: @'glClearTexSubImage' texture level xoffset yoffset zoffset width height depth format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml>
+
+
+glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexSubImage = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageFunPtr
+
+glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexSubImageFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImage")
+
+{-# NOINLINE glClearTexSubImageFunPtr #-}
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F
+
+pattern GL_BUFFER_STORAGE_FLAGS = 0x8220
+
+pattern GL_CLEAR_TEXTURE = 0x9365
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
+
+pattern GL_CLIENT_STORAGE_BIT = 0x0200
+
+pattern GL_DYNAMIC_STORAGE_BIT = 0x0100
+
+pattern GL_LOCATION_COMPONENT = 0x934A
+
+pattern GL_MAP_COHERENT_BIT = 0x0080
+
+pattern GL_MAP_PERSISTENT_BIT = 0x0040
+
+pattern GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5
+
+pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
+
+pattern GL_QUERY_BUFFER = 0x9192
+
+pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000
+
+pattern GL_QUERY_BUFFER_BINDING = 0x9193
+
+pattern GL_QUERY_RESULT_NO_WAIT = 0x9194
+
+pattern GL_TEXTURE_BUFFER_BINDING = 0x8C2A
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
+
+-- | Usage: @'glBindTextureUnit' unit texture@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml>
+
+
+glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
+glBindTextureUnit = ffiuintuintIOV glBindTextureUnitFunPtr
+
+glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindTextureUnitFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnit")
+
+{-# NOINLINE glBindTextureUnitFunPtr #-}
+
+-- | Usage: @'glBlitNamedFramebuffer' readFramebuffer drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+
+
+glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitNamedFramebuffer = ffiuintuintintintintintintintintintbitfieldenumIOV glBlitNamedFramebufferFunPtr
+
+glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitNamedFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitNamedFramebuffer")
+
+{-# NOINLINE glBlitNamedFramebufferFunPtr #-}
+
+-- | Usage: @'glCheckNamedFramebufferStatus' framebuffer target@
+
+
+glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
+glCheckNamedFramebufferStatus = ffiuintenumIOenum glCheckNamedFramebufferStatusFunPtr
+
+glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
+glCheckNamedFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatus")
+
+{-# NOINLINE glCheckNamedFramebufferStatusFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferData' buffer internalformat format type data@
+
+
+glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferData = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataFunPtr
+
+glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferData")
+
+{-# NOINLINE glClearNamedBufferDataFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferSubData' buffer internalformat offset size format type data@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferSubData = ffiuintenumintptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataFunPtr
+
+glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubData")
+
+{-# NOINLINE glClearNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferfi' framebuffer buffer drawbuffer depth stencil@
+
+
+glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
+glClearNamedFramebufferfi = ffiuintenumintfloatintIOV glClearNamedFramebufferfiFunPtr
+
+glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ())
+glClearNamedFramebufferfiFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfi")
+
+{-# NOINLINE glClearNamedFramebufferfiFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferfv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearNamedFramebufferfv = ffiuintenumintPtrfloatIOV glClearNamedFramebufferfvFunPtr
+
+glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearNamedFramebufferfvFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfv")
+
+{-# NOINLINE glClearNamedFramebufferfvFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferiv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
+glClearNamedFramebufferiv = ffiuintenumintPtrintIOV glClearNamedFramebufferivFunPtr
+
+glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
+glClearNamedFramebufferivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferiv")
+
+{-# NOINLINE glClearNamedFramebufferivFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferuiv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
+glClearNamedFramebufferuiv = ffiuintenumintPtruintIOV glClearNamedFramebufferuivFunPtr
+
+glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearNamedFramebufferuivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferuiv")
+
+{-# NOINLINE glClearNamedFramebufferuivFunPtr #-}
+
+-- | Usage: @'glClipControl' origin depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml>
+
+
+glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
+glClipControl = ffienumenumIOV glClipControlFunPtr
+
+glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClipControlFunPtr = unsafePerformIO (getProcAddress "glClipControl")
+
+{-# NOINLINE glClipControlFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage1D' texture level xoffset width format imageSize data@
+
+
+glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage1D = ffiuintintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DFunPtr
+
+glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1D")
+
+{-# NOINLINE glCompressedTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage2D' texture level xoffset yoffset width height format imageSize data@
+
+
+glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage2D = ffiuintintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DFunPtr
+
+glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2D")
+
+{-# NOINLINE glCompressedTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format imageSize data@
+
+
+glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DFunPtr
+
+glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3D")
+
+{-# NOINLINE glCompressedTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glCopyNamedBufferSubData' readBuffer writeBuffer readOffset writeOffset size@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glCopyNamedBufferSubData = ffiuintuintintptrintptrsizeiptrIOV glCopyNamedBufferSubDataFunPtr
+
+glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glCopyNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyNamedBufferSubData")
+
+{-# NOINLINE glCopyNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage1D' texture level xoffset x y width@
+
+
+glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTextureSubImage1D = ffiuintintintintintsizeiIOV glCopyTextureSubImage1DFunPtr
+
+glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1D")
+
+{-# NOINLINE glCopyTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage2D' texture level xoffset yoffset x y width height@
+
+
+glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage2D = ffiuintintintintintintsizeisizeiIOV glCopyTextureSubImage2DFunPtr
+
+glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2D")
+
+{-# NOINLINE glCopyTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage3D' texture level xoffset yoffset zoffset x y width height@
+
+
+glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage3D = ffiuintintintintintintintsizeisizeiIOV glCopyTextureSubImage3DFunPtr
+
+glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3D")
+
+{-# NOINLINE glCopyTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glCreateBuffers' n buffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml>
+
+
+glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateBuffers = ffisizeiPtruintIOV glCreateBuffersFunPtr
+
+glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateBuffersFunPtr = unsafePerformIO (getProcAddress "glCreateBuffers")
+
+{-# NOINLINE glCreateBuffersFunPtr #-}
+
+-- | Usage: @'glCreateFramebuffers' n framebuffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml>
+
+
+glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateFramebuffers = ffisizeiPtruintIOV glCreateFramebuffersFunPtr
+
+glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateFramebuffersFunPtr = unsafePerformIO (getProcAddress "glCreateFramebuffers")
+
+{-# NOINLINE glCreateFramebuffersFunPtr #-}
+
+-- | Usage: @'glCreateProgramPipelines' n pipelines@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml>
+
+
+glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateProgramPipelines = ffisizeiPtruintIOV glCreateProgramPipelinesFunPtr
+
+glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glCreateProgramPipelines")
+
+{-# NOINLINE glCreateProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glCreateQueries' target n ids@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml>
+
+
+glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateQueries = ffienumsizeiPtruintIOV glCreateQueriesFunPtr
+
+glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateQueriesFunPtr = unsafePerformIO (getProcAddress "glCreateQueries")
+
+{-# NOINLINE glCreateQueriesFunPtr #-}
+
+-- | Usage: @'glCreateRenderbuffers' n renderbuffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml>
+
+
+glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateRenderbuffers = ffisizeiPtruintIOV glCreateRenderbuffersFunPtr
+
+glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glCreateRenderbuffers")
+
+{-# NOINLINE glCreateRenderbuffersFunPtr #-}
+
+-- | Usage: @'glCreateSamplers' n samplers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml>
+
+
+glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateSamplers = ffisizeiPtruintIOV glCreateSamplersFunPtr
+
+glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateSamplersFunPtr = unsafePerformIO (getProcAddress "glCreateSamplers")
+
+{-# NOINLINE glCreateSamplersFunPtr #-}
+
+-- | Usage: @'glCreateTextures' target n textures@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml>
+
+
+glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateTextures = ffienumsizeiPtruintIOV glCreateTexturesFunPtr
+
+glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateTexturesFunPtr = unsafePerformIO (getProcAddress "glCreateTextures")
+
+{-# NOINLINE glCreateTexturesFunPtr #-}
+
+-- | Usage: @'glCreateTransformFeedbacks' n ids@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml>
+
+
+glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateTransformFeedbacks = ffisizeiPtruintIOV glCreateTransformFeedbacksFunPtr
+
+glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glCreateTransformFeedbacks")
+
+{-# NOINLINE glCreateTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glCreateVertexArrays' n arrays@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml>
+
+
+glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateVertexArrays = ffisizeiPtruintIOV glCreateVertexArraysFunPtr
+
+glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateVertexArraysFunPtr = unsafePerformIO (getProcAddress "glCreateVertexArrays")
+
+{-# NOINLINE glCreateVertexArraysFunPtr #-}
+
+-- | Usage: @'glDisableVertexArrayAttrib' vaobj index@
+
+
+glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glDisableVertexArrayAttrib = ffiuintuintIOV glDisableVertexArrayAttribFunPtr
+
+glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDisableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttrib")
+
+{-# NOINLINE glDisableVertexArrayAttribFunPtr #-}
+
+-- | Usage: @'glEnableVertexArrayAttrib' vaobj index@
+
+
+glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glEnableVertexArrayAttrib = ffiuintuintIOV glEnableVertexArrayAttribFunPtr
+
+glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glEnableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttrib")
+
+{-# NOINLINE glEnableVertexArrayAttribFunPtr #-}
+
+-- | Usage: @'glFlushMappedNamedBufferRange' buffer offset length@
+--
+-- The parameter @length@ is a @BufferSize@.
+
+
+glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedNamedBufferRange = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeFunPtr
+
+glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRange")
+
+{-# NOINLINE glFlushMappedNamedBufferRangeFunPtr #-}
+
+-- | Usage: @'glGenerateTextureMipmap' texture@
+
+
+glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
+glGenerateTextureMipmap = ffiuintIOV glGenerateTextureMipmapFunPtr
+
+glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())
+glGenerateTextureMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmap")
+
+{-# NOINLINE glGenerateTextureMipmapFunPtr #-}
+
+-- | Usage: @'glGetCompressedTextureImage' texture level bufSize pixels@
+
+
+glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureImage = ffiuintintsizeiPtrVIOV glGetCompressedTextureImageFunPtr
+
+glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImage")
+
+{-# NOINLINE glGetCompressedTextureImageFunPtr #-}
+
+-- | Usage: @'glGetCompressedTextureSubImage' texture level xoffset yoffset zoffset width height depth bufSize pixels@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml>
+
+
+glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureSubImage = ffiuintintintintintsizeisizeisizeisizeiPtrVIOV glGetCompressedTextureSubImageFunPtr
+
+glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureSubImage")
+
+{-# NOINLINE glGetCompressedTextureSubImageFunPtr #-}
+
+-- | Usage: @'glGetGraphicsResetStatus'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml>
+
+
+glGetGraphicsResetStatus :: MonadIO m => m GLenum
+glGetGraphicsResetStatus = ffiIOenum glGetGraphicsResetStatusFunPtr
+
+glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)
+glGetGraphicsResetStatusFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatus")
+
+{-# NOINLINE glGetGraphicsResetStatusFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameteri64v' buffer pname params@
+
+
+glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetNamedBufferParameteri64v = ffiuintenumPtrint64IOV glGetNamedBufferParameteri64vFunPtr
+
+glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetNamedBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteri64v")
+
+{-# NOINLINE glGetNamedBufferParameteri64vFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameteriv' buffer pname params@
+
+
+glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedBufferParameteriv = ffiuintenumPtrintIOV glGetNamedBufferParameterivFunPtr
+
+glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteriv")
+
+{-# NOINLINE glGetNamedBufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferPointerv' buffer pname params@
+
+
+glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetNamedBufferPointerv = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervFunPtr
+
+glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetNamedBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointerv")
+
+{-# NOINLINE glGetNamedBufferPointervFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferSubData' buffer offset size data@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataFunPtr
+
+glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubData")
+
+{-# NOINLINE glGetNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferAttachmentParameteriv' framebuffer attachment pname params@
+
+
+glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferAttachmentParameteriv = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivFunPtr
+
+glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferAttachmentParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferParameteriv' framebuffer pname param@
+
+
+glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferParameteriv = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivFunPtr
+
+glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedRenderbufferParameteriv' renderbuffer pname params@
+
+
+glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedRenderbufferParameteriv = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivFunPtr
+
+glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameteriv")
+
+{-# NOINLINE glGetNamedRenderbufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjecti64v' id buffer pname offset@
+
+
+glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjecti64v = ffiuintuintenumintptrIOV glGetQueryBufferObjecti64vFunPtr
+
+glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjecti64v")
+
+{-# NOINLINE glGetQueryBufferObjecti64vFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectiv' id buffer pname offset@
+
+
+glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectivFunPtr
+
+glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectiv")
+
+{-# NOINLINE glGetQueryBufferObjectivFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectui64v' id buffer pname offset@
+
+
+glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectui64v = ffiuintuintenumintptrIOV glGetQueryBufferObjectui64vFunPtr
+
+glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectui64v")
+
+{-# NOINLINE glGetQueryBufferObjectui64vFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectuiv' id buffer pname offset@
+
+
+glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectuiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectuivFunPtr
+
+glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectuiv")
+
+{-# NOINLINE glGetQueryBufferObjectuivFunPtr #-}
+
+-- | Usage: @'glGetTextureImage' texture level format type bufSize pixels@
+
+
+glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureImage = ffiuintintenumenumsizeiPtrVIOV glGetTextureImageFunPtr
+
+glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureImage")
+
+{-# NOINLINE glGetTextureImageFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameterfv' texture level pname params@
+
+
+glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureLevelParameterfv = ffiuintintenumPtrfloatIOV glGetTextureLevelParameterfvFunPtr
+
+glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfv")
+
+{-# NOINLINE glGetTextureLevelParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameteriv' texture level pname params@
+
+
+glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTextureLevelParameteriv = ffiuintintenumPtrintIOV glGetTextureLevelParameterivFunPtr
+
+glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameteriv")
+
+{-# NOINLINE glGetTextureLevelParameterivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIiv' texture pname params@
+
+
+glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterIiv = ffiuintenumPtrintIOV glGetTextureParameterIivFunPtr
+
+glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIiv")
+
+{-# NOINLINE glGetTextureParameterIivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIuiv' texture pname params@
+
+
+glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetTextureParameterIuiv = ffiuintenumPtruintIOV glGetTextureParameterIuivFunPtr
+
+glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuiv")
+
+{-# NOINLINE glGetTextureParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterfv' texture pname params@
+
+
+glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureParameterfv = ffiuintenumPtrfloatIOV glGetTextureParameterfvFunPtr
+
+glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfv")
+
+{-# NOINLINE glGetTextureParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTextureParameteriv' texture pname params@
+
+
+glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameteriv = ffiuintenumPtrintIOV glGetTextureParameterivFunPtr
+
+glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameteriv")
+
+{-# NOINLINE glGetTextureParameterivFunPtr #-}
+
+-- | Usage: @'glGetTextureSubImage' texture level xoffset yoffset zoffset width height depth format type bufSize pixels@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml>
+
+
+glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureSubImage = ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV glGetTextureSubImageFunPtr
+
+glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureSubImage")
+
+{-# NOINLINE glGetTextureSubImageFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbacki64_v' xfb pname index param@
+
+
+glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetTransformFeedbacki64_v = ffiuintenumuintPtrint64IOV glGetTransformFeedbacki64_vFunPtr
+
+glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetTransformFeedbacki64_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki64_v")
+
+{-# NOINLINE glGetTransformFeedbacki64_vFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbacki_v' xfb pname index param@
+
+
+glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glGetTransformFeedbacki_v = ffiuintenumuintPtrintIOV glGetTransformFeedbacki_vFunPtr
+
+glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetTransformFeedbacki_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki_v")
+
+{-# NOINLINE glGetTransformFeedbacki_vFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackiv' xfb pname param@
+
+
+glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTransformFeedbackiv = ffiuintenumPtrintIOV glGetTransformFeedbackivFunPtr
+
+glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTransformFeedbackivFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackiv")
+
+{-# NOINLINE glGetTransformFeedbackivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIndexed64iv' vaobj index pname param@
+
+
+glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetVertexArrayIndexed64iv = ffiuintuintenumPtrint64IOV glGetVertexArrayIndexed64ivFunPtr
+
+glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetVertexArrayIndexed64ivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexed64iv")
+
+{-# NOINLINE glGetVertexArrayIndexed64ivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIndexediv' vaobj index pname param@
+
+
+glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIndexediv = ffiuintuintenumPtrintIOV glGetVertexArrayIndexedivFunPtr
+
+glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexediv")
+
+{-# NOINLINE glGetVertexArrayIndexedivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayiv' vaobj pname param@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml>
+
+
+glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayiv = ffiuintenumPtrintIOV glGetVertexArrayivFunPtr
+
+glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayiv")
+
+{-# NOINLINE glGetVertexArrayivFunPtr #-}
+
+-- | Usage: @'glGetnUniformfv' program location bufSize params@
+
+
+glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glGetnUniformfv = ffiuintintsizeiPtrfloatIOV glGetnUniformfvFunPtr
+
+glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfv")
+
+{-# NOINLINE glGetnUniformfvFunPtr #-}
+
+-- | Usage: @'glGetnUniformiv' program location bufSize params@
+
+
+glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glGetnUniformiv = ffiuintintsizeiPtrintIOV glGetnUniformivFunPtr
+
+glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glGetnUniformivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformiv")
+
+{-# NOINLINE glGetnUniformivFunPtr #-}
+
+-- | Usage: @'glGetnUniformuiv' program location bufSize params@
+
+
+glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetnUniformuiv = ffiuintintsizeiPtruintIOV glGetnUniformuivFunPtr
+
+glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetnUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuiv")
+
+{-# NOINLINE glGetnUniformuivFunPtr #-}
+
+-- | Usage: @'glInvalidateNamedFramebufferData' framebuffer numAttachments attachments@
+
+
+glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateNamedFramebufferData = ffiuintsizeiPtrenumIOV glInvalidateNamedFramebufferDataFunPtr
+
+glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateNamedFramebufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferData")
+
+{-# NOINLINE glInvalidateNamedFramebufferDataFunPtr #-}
+
+-- | Usage: @'glInvalidateNamedFramebufferSubData' framebuffer numAttachments attachments x y width height@
+
+
+glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateNamedFramebufferSubData = ffiuintsizeiPtrenumintintsizeisizeiIOV glInvalidateNamedFramebufferSubDataFunPtr
+
+glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateNamedFramebufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferSubData")
+
+{-# NOINLINE glInvalidateNamedFramebufferSubDataFunPtr #-}
+
+-- | Usage: @'glMapNamedBuffer' buffer access@
+
+
+glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
+glMapNamedBuffer = ffiuintenumIOPtrV glMapNamedBufferFunPtr
+
+glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
+glMapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glMapNamedBuffer")
+
+{-# NOINLINE glMapNamedBufferFunPtr #-}
+
+-- | Usage: @'glMapNamedBufferRange' buffer offset length access@
+--
+-- The parameter @length@ is a @BufferSize@.
+
+
+glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapNamedBufferRange = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeFunPtr
+
+glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRange")
+
+{-# NOINLINE glMapNamedBufferRangeFunPtr #-}
+
+-- | Usage: @'glMemoryBarrierByRegion' barriers@
+
+
+glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrierByRegion = ffibitfieldIOV glMemoryBarrierByRegionFunPtr
+
+glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierByRegionFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierByRegion")
+
+{-# NOINLINE glMemoryBarrierByRegionFunPtr #-}
+
+-- | Usage: @'glNamedBufferData' buffer size data usage@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glNamedBufferData = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataFunPtr
+
+glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferData")
+
+{-# NOINLINE glNamedBufferDataFunPtr #-}
+
+-- | Usage: @'glNamedBufferStorage' buffer size data flags@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+
+
+glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glNamedBufferStorage = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageFunPtr
+
+glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glNamedBufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorage")
+
+{-# NOINLINE glNamedBufferStorageFunPtr #-}
+
+-- | Usage: @'glNamedBufferSubData' buffer offset size data@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+
+
+glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataFunPtr
+
+glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubData")
+
+{-# NOINLINE glNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferDrawBuffer' framebuffer buf@
+
+
+glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferDrawBuffer = ffiuintenumIOV glNamedFramebufferDrawBufferFunPtr
+
+glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferDrawBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffer")
+
+{-# NOINLINE glNamedFramebufferDrawBufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferDrawBuffers' framebuffer n bufs@
+
+
+glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glNamedFramebufferDrawBuffers = ffiuintsizeiPtrenumIOV glNamedFramebufferDrawBuffersFunPtr
+
+glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glNamedFramebufferDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffers")
+
+{-# NOINLINE glNamedFramebufferDrawBuffersFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferParameteri' framebuffer pname param@
+
+
+glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glNamedFramebufferParameteri = ffiuintenumintIOV glNamedFramebufferParameteriFunPtr
+
+glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glNamedFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteri")
+
+{-# NOINLINE glNamedFramebufferParameteriFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferReadBuffer' framebuffer src@
+
+
+glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferReadBuffer = ffiuintenumIOV glNamedFramebufferReadBufferFunPtr
+
+glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferReadBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferReadBuffer")
+
+{-# NOINLINE glNamedFramebufferReadBufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferRenderbuffer' framebuffer attachment renderbuffertarget renderbuffer@
+
+
+glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glNamedFramebufferRenderbuffer = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferFunPtr
+
+glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glNamedFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbuffer")
+
+{-# NOINLINE glNamedFramebufferRenderbufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture' framebuffer attachment texture level@
+
+
+glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture = ffiuintenumuintintIOV glNamedFramebufferTextureFunPtr
+
+glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture")
+
+{-# NOINLINE glNamedFramebufferTextureFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureLayer' framebuffer attachment texture level layer@
+
+
+glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTextureLayer = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerFunPtr
+
+glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayer")
+
+{-# NOINLINE glNamedFramebufferTextureLayerFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorage' renderbuffer internalformat width height@
+
+
+glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorage = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageFunPtr
+
+glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorage")
+
+{-# NOINLINE glNamedRenderbufferStorageFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageMultisample' renderbuffer samples internalformat width height@
+
+
+glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisample = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleFunPtr
+
+glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisample")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleFunPtr #-}
+
+-- | Usage: @'glReadnPixels' x y width height format type bufSize data@
+
+
+glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glReadnPixels = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsFunPtr
+
+glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glReadnPixelsFunPtr = unsafePerformIO (getProcAddress "glReadnPixels")
+
+{-# NOINLINE glReadnPixelsFunPtr #-}
+
+-- | Usage: @'glTextureBarrier'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml>
+
+
+glTextureBarrier :: MonadIO m => m ()
+glTextureBarrier = ffiIOV glTextureBarrierFunPtr
+
+glTextureBarrierFunPtr :: FunPtr (IO ())
+glTextureBarrierFunPtr = unsafePerformIO (getProcAddress "glTextureBarrier")
+
+{-# NOINLINE glTextureBarrierFunPtr #-}
+
+-- | Usage: @'glTextureBuffer' texture internalformat buffer@
+
+
+glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
+glTextureBuffer = ffiuintenumuintIOV glTextureBufferFunPtr
+
+glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+glTextureBufferFunPtr = unsafePerformIO (getProcAddress "glTextureBuffer")
+
+{-# NOINLINE glTextureBufferFunPtr #-}
+
+-- | Usage: @'glTextureBufferRange' texture internalformat buffer offset size@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTextureBufferRange = ffiuintenumuintintptrsizeiptrIOV glTextureBufferRangeFunPtr
+
+glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTextureBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRange")
+
+{-# NOINLINE glTextureBufferRangeFunPtr #-}
+
+-- | Usage: @'glTextureParameterIiv' texture pname params@
+
+
+glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameterIiv = ffiuintenumPtrintIOV glTextureParameterIivFunPtr
+
+glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIiv")
+
+{-# NOINLINE glTextureParameterIivFunPtr #-}
+
+-- | Usage: @'glTextureParameterIuiv' texture pname params@
+
+
+glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glTextureParameterIuiv = ffiuintenumPtruintIOV glTextureParameterIuivFunPtr
+
+glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuiv")
+
+{-# NOINLINE glTextureParameterIuivFunPtr #-}
+
+-- | Usage: @'glTextureParameterf' texture pname param@
+
+
+glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glTextureParameterf = ffiuintenumfloatIOV glTextureParameterfFunPtr
+
+glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glTextureParameterfFunPtr = unsafePerformIO (getProcAddress "glTextureParameterf")
+
+{-# NOINLINE glTextureParameterfFunPtr #-}
+
+-- | Usage: @'glTextureParameterfv' texture pname param@
+
+
+glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glTextureParameterfv = ffiuintenumPtrfloatIOV glTextureParameterfvFunPtr
+
+glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfv")
+
+{-# NOINLINE glTextureParameterfvFunPtr #-}
+
+-- | Usage: @'glTextureParameteri' texture pname param@
+
+
+glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glTextureParameteri = ffiuintenumintIOV glTextureParameteriFunPtr
+
+glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glTextureParameteriFunPtr = unsafePerformIO (getProcAddress "glTextureParameteri")
+
+{-# NOINLINE glTextureParameteriFunPtr #-}
+
+-- | Usage: @'glTextureParameteriv' texture pname param@
+
+
+glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameteriv = ffiuintenumPtrintIOV glTextureParameterivFunPtr
+
+glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriv")
+
+{-# NOINLINE glTextureParameterivFunPtr #-}
+
+-- | Usage: @'glTextureStorage1D' texture levels internalformat width@
+
+
+glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1D = ffiuintsizeienumsizeiIOV glTextureStorage1DFunPtr
+
+glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1D")
+
+{-# NOINLINE glTextureStorage1DFunPtr #-}
+
+-- | Usage: @'glTextureStorage2D' texture levels internalformat width height@
+
+
+glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2D = ffiuintsizeienumsizeisizeiIOV glTextureStorage2DFunPtr
+
+glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2D")
+
+{-# NOINLINE glTextureStorage2DFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DMultisample' texture samples internalformat width height fixedsamplelocations@
+
+
+glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage2DMultisample = ffiuintsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleFunPtr
+
+glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisample")
+
+{-# NOINLINE glTextureStorage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureStorage3D' texture levels internalformat width height depth@
+
+
+glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3D = ffiuintsizeienumsizeisizeisizeiIOV glTextureStorage3DFunPtr
+
+glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3D")
+
+{-# NOINLINE glTextureStorage3DFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DMultisample' texture samples internalformat width height depth fixedsamplelocations@
+
+
+glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage3DMultisample = ffiuintsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleFunPtr
+
+glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisample")
+
+{-# NOINLINE glTextureStorage3DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureSubImage1D' texture level xoffset width format type pixels@
+
+
+glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage1D = ffiuintintintsizeienumenumPtrVIOV glTextureSubImage1DFunPtr
+
+glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1D")
+
+{-# NOINLINE glTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glTextureSubImage2D' texture level xoffset yoffset width height format type pixels@
+
+
+glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage2D = ffiuintintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DFunPtr
+
+glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2D")
+
+{-# NOINLINE glTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format type pixels@
+
+
+glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DFunPtr
+
+glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3D")
+
+{-# NOINLINE glTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackBufferBase' xfb index buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml>
+
+
+glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glTransformFeedbackBufferBase = ffiuintuintuintIOV glTransformFeedbackBufferBaseFunPtr
+
+glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glTransformFeedbackBufferBaseFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferBase")
+
+{-# NOINLINE glTransformFeedbackBufferBaseFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackBufferRange' xfb index buffer offset size@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml>
+
+
+glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTransformFeedbackBufferRange = ffiuintuintuintintptrsizeiptrIOV glTransformFeedbackBufferRangeFunPtr
+
+glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTransformFeedbackBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferRange")
+
+{-# NOINLINE glTransformFeedbackBufferRangeFunPtr #-}
+
+-- | Usage: @'glUnmapNamedBuffer' buffer@
+
+
+glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
+glUnmapNamedBuffer = ffiuintIOboolean glUnmapNamedBufferFunPtr
+
+glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glUnmapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBuffer")
+
+{-# NOINLINE glUnmapNamedBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribBinding' vaobj attribindex bindingindex@
+
+
+glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayAttribBinding = ffiuintuintuintIOV glVertexArrayAttribBindingFunPtr
+
+glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribBinding")
+
+{-# NOINLINE glVertexArrayAttribBindingFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribFormat' vaobj attribindex size type normalized relativeoffset@
+
+
+glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexArrayAttribFormat = ffiuintuintintenumbooleanuintIOV glVertexArrayAttribFormatFunPtr
+
+glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexArrayAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribFormat")
+
+{-# NOINLINE glVertexArrayAttribFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribIFormat' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribIFormat = ffiuintuintintenumuintIOV glVertexArrayAttribIFormatFunPtr
+
+glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribIFormat")
+
+{-# NOINLINE glVertexArrayAttribIFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribLFormat' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribLFormat = ffiuintuintintenumuintIOV glVertexArrayAttribLFormatFunPtr
+
+glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribLFormat")
+
+{-# NOINLINE glVertexArrayAttribLFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayBindingDivisor' vaobj bindingindex divisor@
+
+
+glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayBindingDivisor = ffiuintuintuintIOV glVertexArrayBindingDivisorFunPtr
+
+glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindingDivisor")
+
+{-# NOINLINE glVertexArrayBindingDivisorFunPtr #-}
+
+-- | Usage: @'glVertexArrayElementBuffer' vaobj buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml>
+
+
+glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexArrayElementBuffer = ffiuintuintIOV glVertexArrayElementBufferFunPtr
+
+glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexArrayElementBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayElementBuffer")
+
+{-# NOINLINE glVertexArrayElementBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBuffer' vaobj bindingindex buffer offset stride@
+
+
+glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glVertexArrayVertexBuffer = ffiuintuintuintintptrsizeiIOV glVertexArrayVertexBufferFunPtr
+
+glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glVertexArrayVertexBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffer")
+
+{-# NOINLINE glVertexArrayVertexBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBuffers' vaobj first count buffers offsets strides@
+
+
+glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glVertexArrayVertexBuffers = ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV glVertexArrayVertexBuffersFunPtr
+
+glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glVertexArrayVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffers")
+
+{-# NOINLINE glVertexArrayVertexBuffersFunPtr #-}
+
+pattern GL_CLIP_DEPTH_MODE = 0x935D
+
+pattern GL_CLIP_ORIGIN = 0x935C
+
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004
+
+pattern GL_CONTEXT_LOST = 0x0507
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
+
+pattern GL_GUILTY_CONTEXT_RESET = 0x8253
+
+pattern GL_INNOCENT_CONTEXT_RESET = 0x8254
+
+pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
+
+pattern GL_MAX_CULL_DISTANCES = 0x82F9
+
+pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E
+
+pattern GL_NO_RESET_NOTIFICATION = 0x8261
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
+
+pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
+
+pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18
+
+pattern GL_QUERY_TARGET = 0x82EA
+
+pattern GL_QUERY_WAIT_INVERTED = 0x8E17
+
+pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256
+
+pattern GL_TEXTURE_TARGET = 0x1006
+
+pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255
+
+pattern GL_ZERO_TO_ONE = 0x935F
+
+pattern GL_BLEND_EQUATION = 0x8009
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
+
+pattern GL_SUBSAMPLE_DISTANCE_AMD = 0x883F
+
+pattern GL_FLOAT16_NV = 0x8FF8
+
+pattern GL_FLOAT16_VEC2_NV = 0x8FF9
+
+pattern GL_FLOAT16_VEC3_NV = 0x8FFA
+
+pattern GL_FLOAT16_VEC4_NV = 0x8FFB
+
+-- | Usage: @'glGetUniformi64vNV' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
+glGetUniformi64vNV = ffiuintintPtrint64EXTIOV glGetUniformi64vNVFunPtr
+
+glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
+glGetUniformi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vNV")
+
+{-# NOINLINE glGetUniformi64vNVFunPtr #-}
+
+-- | Usage: @'glGetUniformui64vNV' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
+glGetUniformui64vNV = ffiuintintPtruint64EXTIOV glGetUniformui64vNVFunPtr
+
+glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
+glGetUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vNV")
+
+{-# NOINLINE glGetUniformui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64NV' program location x@
+
+
+glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
+glProgramUniform1i64NV = ffiuintintint64EXTIOV glProgramUniform1i64NVFunPtr
+
+glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
+glProgramUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64NV")
+
+{-# NOINLINE glProgramUniform1i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform1i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform1i64vNVFunPtr
+
+glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vNV")
+
+{-# NOINLINE glProgramUniform1i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64NV' program location x@
+
+
+glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
+glProgramUniform1ui64NV = ffiuintintuint64EXTIOV glProgramUniform1ui64NVFunPtr
+
+glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+glProgramUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64NV")
+
+{-# NOINLINE glProgramUniform1ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform1ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform1ui64vNVFunPtr
+
+glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vNV")
+
+{-# NOINLINE glProgramUniform1ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64NV' program location x y@
+
+
+glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform2i64NV = ffiuintintint64EXTint64EXTIOV glProgramUniform2i64NVFunPtr
+
+glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64NV")
+
+{-# NOINLINE glProgramUniform2i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform2i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform2i64vNVFunPtr
+
+glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vNV")
+
+{-# NOINLINE glProgramUniform2i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64NV' program location x y@
+
+
+glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform2ui64NV = ffiuintintuint64EXTuint64EXTIOV glProgramUniform2ui64NVFunPtr
+
+glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64NV")
+
+{-# NOINLINE glProgramUniform2ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform2ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform2ui64vNVFunPtr
+
+glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vNV")
+
+{-# NOINLINE glProgramUniform2ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64NV' program location x y z@
+
+
+glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform3i64NV = ffiuintintint64EXTint64EXTint64EXTIOV glProgramUniform3i64NVFunPtr
+
+glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64NV")
+
+{-# NOINLINE glProgramUniform3i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform3i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform3i64vNVFunPtr
+
+glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vNV")
+
+{-# NOINLINE glProgramUniform3i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64NV' program location x y z@
+
+
+glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform3ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTIOV glProgramUniform3ui64NVFunPtr
+
+glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64NV")
+
+{-# NOINLINE glProgramUniform3ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform3ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform3ui64vNVFunPtr
+
+glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vNV")
+
+{-# NOINLINE glProgramUniform3ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64NV' program location x y z w@
+
+
+glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform4i64NV = ffiuintintint64EXTint64EXTint64EXTint64EXTIOV glProgramUniform4i64NVFunPtr
+
+glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64NV")
+
+{-# NOINLINE glProgramUniform4i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform4i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform4i64vNVFunPtr
+
+glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vNV")
+
+{-# NOINLINE glProgramUniform4i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64NV' program location x y z w@
+
+
+glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform4ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV glProgramUniform4ui64NVFunPtr
+
+glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64NV")
+
+{-# NOINLINE glProgramUniform4ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform4ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform4ui64vNVFunPtr
+
+glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vNV")
+
+{-# NOINLINE glProgramUniform4ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform1i64NV' location x@
+
+
+glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
+glUniform1i64NV = ffiintint64EXTIOV glUniform1i64NVFunPtr
+
+glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())
+glUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64NV")
+
+{-# NOINLINE glUniform1i64NVFunPtr #-}
+
+-- | Usage: @'glUniform1i64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform1i64vNV = ffiintsizeiPtrint64EXTIOV glUniform1i64vNVFunPtr
+
+glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vNV")
+
+{-# NOINLINE glUniform1i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform1ui64NV' location x@
+
+
+glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
+glUniform1ui64NV = ffiintuint64EXTIOV glUniform1ui64NVFunPtr
+
+glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
+glUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64NV")
+
+{-# NOINLINE glUniform1ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform1ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform1ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform1ui64vNVFunPtr
+
+glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vNV")
+
+{-# NOINLINE glUniform1ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform2i64NV' location x y@
+
+
+glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
+glUniform2i64NV = ffiintint64EXTint64EXTIOV glUniform2i64NVFunPtr
+
+glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64NV")
+
+{-# NOINLINE glUniform2i64NVFunPtr #-}
+
+-- | Usage: @'glUniform2i64vNV' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform2i64vNV = ffiintsizeiPtrint64EXTIOV glUniform2i64vNVFunPtr
+
+glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vNV")
+
+{-# NOINLINE glUniform2i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform2ui64NV' location x y@
+
+
+glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform2ui64NV = ffiintuint64EXTuint64EXTIOV glUniform2ui64NVFunPtr
+
+glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64NV")
+
+{-# NOINLINE glUniform2ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform2ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform2ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform2ui64vNVFunPtr
+
+glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vNV")
+
+{-# NOINLINE glUniform2ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform3i64NV' location x y z@
+
+
+glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform3i64NV = ffiintint64EXTint64EXTint64EXTIOV glUniform3i64NVFunPtr
+
+glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64NV")
+
+{-# NOINLINE glUniform3i64NVFunPtr #-}
+
+-- | Usage: @'glUniform3i64vNV' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform3i64vNV = ffiintsizeiPtrint64EXTIOV glUniform3i64vNVFunPtr
+
+glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vNV")
+
+{-# NOINLINE glUniform3i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform3ui64NV' location x y z@
+
+
+glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform3ui64NV = ffiintuint64EXTuint64EXTuint64EXTIOV glUniform3ui64NVFunPtr
+
+glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64NV")
+
+{-# NOINLINE glUniform3ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform3ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform3ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform3ui64vNVFunPtr
+
+glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vNV")
+
+{-# NOINLINE glUniform3ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform4i64NV' location x y z w@
+
+
+glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform4i64NV = ffiintint64EXTint64EXTint64EXTint64EXTIOV glUniform4i64NVFunPtr
+
+glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64NV")
+
+{-# NOINLINE glUniform4i64NVFunPtr #-}
+
+-- | Usage: @'glUniform4i64vNV' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform4i64vNV = ffiintsizeiPtrint64EXTIOV glUniform4i64vNVFunPtr
+
+glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vNV")
+
+{-# NOINLINE glUniform4i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform4ui64NV' location x y z w@
+
+
+glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform4ui64NV = ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV glUniform4ui64NVFunPtr
+
+glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64NV")
+
+{-# NOINLINE glUniform4ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform4ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform4ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform4ui64vNVFunPtr
+
+glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vNV")
+
+{-# NOINLINE glUniform4ui64vNVFunPtr #-}
+
+pattern GL_INT16_NV = 0x8FE4
+
+pattern GL_INT16_VEC2_NV = 0x8FE5
+
+pattern GL_INT16_VEC3_NV = 0x8FE6
+
+pattern GL_INT16_VEC4_NV = 0x8FE7
+
+pattern GL_INT64_NV = 0x140E
+
+pattern GL_INT64_VEC2_NV = 0x8FE9
+
+pattern GL_INT64_VEC3_NV = 0x8FEA
+
+pattern GL_INT64_VEC4_NV = 0x8FEB
+
+pattern GL_INT8_NV = 0x8FE0
+
+pattern GL_INT8_VEC2_NV = 0x8FE1
+
+pattern GL_INT8_VEC3_NV = 0x8FE2
+
+pattern GL_INT8_VEC4_NV = 0x8FE3
+
+pattern GL_UNSIGNED_INT16_NV = 0x8FF0
+
+pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1
+
+pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2
+
+pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3
+
+pattern GL_UNSIGNED_INT64_NV = 0x140F
+
+pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5
+
+pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6
+
+pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7
+
+pattern GL_UNSIGNED_INT8_NV = 0x8FEC
+
+pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED
+
+pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE
+
+pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF
+
+pattern GL_DEPTH24_STENCIL8_OES = 0x88F0
+
+pattern GL_DEPTH_COMPONENT32_OES = 0x81A7
+
+pattern GL_DEPTH_STENCIL_OES = 0x84F9
+
+pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA
+
+pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
+
+pattern GL_BGRA8_EXT = 0x93A1
+
+pattern GL_BGRA_EXT = 0x80E1
+
+pattern GL_STORAGE_CACHED_APPLE = 0x85BE
+
+pattern GL_STORAGE_SHARED_APPLE = 0x85BF
+
+pattern GL_UNSIGNED_INT64_ARB = 0x140F
+
+-- | Usage: @'glBindProgramARB' target program@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+
+
+glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
+glBindProgramARB = ffienumuintIOV glBindProgramARBFunPtr
+
+glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindProgramARBFunPtr = unsafePerformIO (getProcAddress "glBindProgramARB")
+
+{-# NOINLINE glBindProgramARBFunPtr #-}
+
+-- | Usage: @'glDeleteProgramsARB' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
+glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramsARB = ffisizeiPtruintIOV glDeleteProgramsARBFunPtr
+
+glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramsARBFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsARB")
+
+{-# NOINLINE glDeleteProgramsARBFunPtr #-}
+
+-- | Usage: @'glGenProgramsARB' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
+glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramsARB = ffisizeiPtruintIOV glGenProgramsARBFunPtr
+
+glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramsARBFunPtr = unsafePerformIO (getProcAddress "glGenProgramsARB")
+
+{-# NOINLINE glGenProgramsARBFunPtr #-}
+
+-- | Usage: @'glGetProgramEnvParameterdvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramEnvParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramEnvParameterdvARBFunPtr
+
+glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramEnvParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterdvARB")
+
+{-# NOINLINE glGetProgramEnvParameterdvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramEnvParameterfvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramEnvParameterfvARB = ffienumuintPtrfloatIOV glGetProgramEnvParameterfvARBFunPtr
+
+glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramEnvParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterfvARB")
+
+{-# NOINLINE glGetProgramEnvParameterfvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterdvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramLocalParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramLocalParameterdvARBFunPtr
+
+glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramLocalParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterdvARB")
+
+{-# NOINLINE glGetProgramLocalParameterdvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterfvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramLocalParameterfvARB = ffienumuintPtrfloatIOV glGetProgramLocalParameterfvARBFunPtr
+
+glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramLocalParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterfvARB")
+
+{-# NOINLINE glGetProgramLocalParameterfvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramStringARB' target pname string@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @pname@ is a @ProgramStringPropertyARB@.
+--
+-- The length of @string@ should be @COMPSIZE(target,pname)@.
+
+
+glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glGetProgramStringARB = ffienumenumPtrVIOV glGetProgramStringARBFunPtr
+
+glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glGetProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringARB")
+
+{-# NOINLINE glGetProgramStringARBFunPtr #-}
+
+-- | Usage: @'glGetProgramivARB' target pname params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @pname@ is a @ProgramPropertyARB@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramivARB = ffienumenumPtrintIOV glGetProgramivARBFunPtr
+
+glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramivARB")
+
+{-# NOINLINE glGetProgramivARBFunPtr #-}
+
+-- | Usage: @'glIsProgramARB' program@
+
+
+glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
+glIsProgramARB = ffiuintIOboolean glIsProgramARBFunPtr
+
+glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramARBFunPtr = unsafePerformIO (getProcAddress "glIsProgramARB")
+
+{-# NOINLINE glIsProgramARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4dARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4dvARB'.
+
+
+glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramEnvParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramEnvParameter4dARBFunPtr
+
+glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramEnvParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dARB")
+
+{-# NOINLINE glProgramEnvParameter4dARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4dvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramEnvParameter4dvARB = ffienumuintPtrdoubleIOV glProgramEnvParameter4dvARBFunPtr
+
+glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramEnvParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dvARB")
+
+{-# NOINLINE glProgramEnvParameter4dvARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4fARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4fvARB'.
+
+
+glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramEnvParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramEnvParameter4fARBFunPtr
+
+glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramEnvParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fARB")
+
+{-# NOINLINE glProgramEnvParameter4fARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4fvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramEnvParameter4fvARB = ffienumuintPtrfloatIOV glProgramEnvParameter4fvARBFunPtr
+
+glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramEnvParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fvARB")
+
+{-# NOINLINE glProgramEnvParameter4fvARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4dARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4dvARB'.
+
+
+glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramLocalParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramLocalParameter4dARBFunPtr
+
+glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramLocalParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dARB")
+
+{-# NOINLINE glProgramLocalParameter4dARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4dvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramLocalParameter4dvARB = ffienumuintPtrdoubleIOV glProgramLocalParameter4dvARBFunPtr
+
+glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramLocalParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dvARB")
+
+{-# NOINLINE glProgramLocalParameter4dvARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4fARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4fvARB'.
+
+
+glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramLocalParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramLocalParameter4fARBFunPtr
+
+glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramLocalParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fARB")
+
+{-# NOINLINE glProgramLocalParameter4fARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4fvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramLocalParameter4fvARB = ffienumuintPtrfloatIOV glProgramLocalParameter4fvARBFunPtr
+
+glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramLocalParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fvARB")
+
+{-# NOINLINE glProgramLocalParameter4fvARBFunPtr #-}
+
+-- | Usage: @'glProgramStringARB' target format len string@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @format@ is a @ProgramFormatARB@.
+--
+-- The length of @string@ should be @len@.
+
+
+glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glProgramStringARB = ffienumenumsizeiPtrVIOV glProgramStringARBFunPtr
+
+glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glProgramStringARB")
+
+{-# NOINLINE glProgramStringARBFunPtr #-}
+
+pattern GL_CURRENT_MATRIX_ARB = 0x8641
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640
+
+pattern GL_MATRIX0_ARB = 0x88C0
+
+pattern GL_MATRIX10_ARB = 0x88CA
+
+pattern GL_MATRIX11_ARB = 0x88CB
+
+pattern GL_MATRIX12_ARB = 0x88CC
+
+pattern GL_MATRIX13_ARB = 0x88CD
+
+pattern GL_MATRIX14_ARB = 0x88CE
+
+pattern GL_MATRIX15_ARB = 0x88CF
+
+pattern GL_MATRIX16_ARB = 0x88D0
+
+pattern GL_MATRIX17_ARB = 0x88D1
+
+pattern GL_MATRIX18_ARB = 0x88D2
+
+pattern GL_MATRIX19_ARB = 0x88D3
+
+pattern GL_MATRIX1_ARB = 0x88C1
+
+pattern GL_MATRIX20_ARB = 0x88D4
+
+pattern GL_MATRIX21_ARB = 0x88D5
+
+pattern GL_MATRIX22_ARB = 0x88D6
+
+pattern GL_MATRIX23_ARB = 0x88D7
+
+pattern GL_MATRIX24_ARB = 0x88D8
+
+pattern GL_MATRIX25_ARB = 0x88D9
+
+pattern GL_MATRIX26_ARB = 0x88DA
+
+pattern GL_MATRIX27_ARB = 0x88DB
+
+pattern GL_MATRIX28_ARB = 0x88DC
+
+pattern GL_MATRIX29_ARB = 0x88DD
+
+pattern GL_MATRIX2_ARB = 0x88C2
+
+pattern GL_MATRIX30_ARB = 0x88DE
+
+pattern GL_MATRIX31_ARB = 0x88DF
+
+pattern GL_MATRIX3_ARB = 0x88C3
+
+pattern GL_MATRIX4_ARB = 0x88C4
+
+pattern GL_MATRIX5_ARB = 0x88C5
+
+pattern GL_MATRIX6_ARB = 0x88C6
+
+pattern GL_MATRIX7_ARB = 0x88C7
+
+pattern GL_MATRIX8_ARB = 0x88C8
+
+pattern GL_MATRIX9_ARB = 0x88C9
+
+pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD
+
+pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5
+
+pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1
+
+pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4
+
+pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F
+
+pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E
+
+pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF
+
+pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3
+
+pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB
+
+pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7
+
+pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9
+
+pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5
+
+pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872
+
+pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC
+
+pattern GL_PROGRAM_BINDING_ARB = 0x8677
+
+pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B
+
+pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874
+
+pattern GL_PROGRAM_FORMAT_ARB = 0x8876
+
+pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875
+
+pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0
+
+pattern GL_PROGRAM_LENGTH_ARB = 0x8627
+
+pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE
+
+pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2
+
+pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA
+
+pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6
+
+pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8
+
+pattern GL_PROGRAM_STRING_ARB = 0x8628
+
+pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4
+
+pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6
+
+pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7
+
+pattern GL_SAMPLES_ARB = 0x80A9
+
+pattern GL_TEXTURE0_ARB = 0x84C0
+
+pattern GL_TEXTURE1_ARB = 0x84C1
+
+pattern GL_FLOAT_MAT2_ARB = 0x8B5A
+
+pattern GL_FLOAT_MAT3_ARB = 0x8B5B
+
+pattern GL_FLOAT_MAT4_ARB = 0x8B5C
+
+pattern GL_FLOAT_VEC2_ARB = 0x8B50
+
+pattern GL_FLOAT_VEC3_ARB = 0x8B51
+
+pattern GL_FLOAT_VEC4_ARB = 0x8B52
+
+-- | Usage: @'glDisableVertexAttribArrayARB' index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisableVertexAttribArray'.
+
+
+glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArrayARB = ffiuintIOV glDisableVertexAttribArrayARBFunPtr
+
+glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArrayARB")
+
+{-# NOINLINE glDisableVertexAttribArrayARBFunPtr #-}
+
+-- | Usage: @'glEnableVertexAttribArrayARB' index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnableVertexAttribArray'.
+
+
+glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArrayARB = ffiuintIOV glEnableVertexAttribArrayARBFunPtr
+
+glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArrayARB")
+
+{-# NOINLINE glEnableVertexAttribArrayARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribPointervARB' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribPointerv'.
+
+
+glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointervARB = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervARBFunPtr
+
+glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexAttribPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervARB")
+
+{-# NOINLINE glGetVertexAttribPointervARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribdvARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribdv'.
+
+
+glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdvARB = ffiuintenumPtrdoubleIOV glGetVertexAttribdvARBFunPtr
+
+glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvARB")
+
+{-# NOINLINE glGetVertexAttribdvARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribfvARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribfv'.
+
+
+glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfvARB = ffiuintenumPtrfloatIOV glGetVertexAttribfvARBFunPtr
+
+glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvARB")
+
+{-# NOINLINE glGetVertexAttribfvARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribivARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribiv'.
+
+
+glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribivARB = ffiuintenumPtrintIOV glGetVertexAttribivARBFunPtr
+
+glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivARB")
+
+{-# NOINLINE glGetVertexAttribivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dvARB'.
+
+
+glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1dARB = ffiuintdoubleIOV glVertexAttrib1dARBFunPtr
+
+glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dARB")
+
+{-# NOINLINE glVertexAttrib1dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dvARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
+
+
+glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dvARB = ffiuintPtrdoubleIOV glVertexAttrib1dvARBFunPtr
+
+glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvARB")
+
+{-# NOINLINE glVertexAttrib1dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fvARB'.
+
+
+glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1fARB = ffiuintfloatIOV glVertexAttrib1fARBFunPtr
+
+glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fARB")
+
+{-# NOINLINE glVertexAttrib1fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fvARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
+
+
+glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fvARB = ffiuintPtrfloatIOV glVertexAttrib1fvARBFunPtr
+
+glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvARB")
+
+{-# NOINLINE glVertexAttrib1fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1sARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1svARB'.
+
+
+glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1sARB = ffiuintshortIOV glVertexAttrib1sARBFunPtr
+
+glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sARB")
+
+{-# NOINLINE glVertexAttrib1sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1svARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
+
+
+glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1svARB = ffiuintPtrshortIOV glVertexAttrib1svARBFunPtr
+
+glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svARB")
+
+{-# NOINLINE glVertexAttrib1svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dvARB'.
+
+
+glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2dARB = ffiuintdoubledoubleIOV glVertexAttrib2dARBFunPtr
+
+glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dARB")
+
+{-# NOINLINE glVertexAttrib2dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dvARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
+
+
+glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dvARB = ffiuintPtrdoubleIOV glVertexAttrib2dvARBFunPtr
+
+glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvARB")
+
+{-# NOINLINE glVertexAttrib2dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fvARB'.
+
+
+glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2fARB = ffiuintfloatfloatIOV glVertexAttrib2fARBFunPtr
+
+glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fARB")
+
+{-# NOINLINE glVertexAttrib2fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fvARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
+
+
+glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fvARB = ffiuintPtrfloatIOV glVertexAttrib2fvARBFunPtr
+
+glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvARB")
+
+{-# NOINLINE glVertexAttrib2fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2sARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2svARB'.
+
+
+glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2sARB = ffiuintshortshortIOV glVertexAttrib2sARBFunPtr
+
+glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sARB")
+
+{-# NOINLINE glVertexAttrib2sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2svARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
+
+
+glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2svARB = ffiuintPtrshortIOV glVertexAttrib2svARBFunPtr
+
+glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svARB")
+
+{-# NOINLINE glVertexAttrib2svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dvARB'.
+
+
+glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3dARB = ffiuintdoubledoubledoubleIOV glVertexAttrib3dARBFunPtr
+
+glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dARB")
+
+{-# NOINLINE glVertexAttrib3dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dvARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
+
+
+glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dvARB = ffiuintPtrdoubleIOV glVertexAttrib3dvARBFunPtr
+
+glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvARB")
+
+{-# NOINLINE glVertexAttrib3dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fvARB'.
+
+
+glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3fARB = ffiuintfloatfloatfloatIOV glVertexAttrib3fARBFunPtr
+
+glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fARB")
+
+{-# NOINLINE glVertexAttrib3fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fvARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
+
+
+glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fvARB = ffiuintPtrfloatIOV glVertexAttrib3fvARBFunPtr
+
+glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvARB")
+
+{-# NOINLINE glVertexAttrib3fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3sARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3svARB'.
+
+
+glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3sARB = ffiuintshortshortshortIOV glVertexAttrib3sARBFunPtr
+
+glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sARB")
+
+{-# NOINLINE glVertexAttrib3sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3svARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
+
+
+glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3svARB = ffiuintPtrshortIOV glVertexAttrib3svARBFunPtr
+
+glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svARB")
+
+{-# NOINLINE glVertexAttrib3svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NbvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nbv'.
+
+
+glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4NbvARB = ffiuintPtrbyteIOV glVertexAttrib4NbvARBFunPtr
+
+glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NbvARB")
+
+{-# NOINLINE glVertexAttrib4NbvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Niv'.
+
+
+glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4NivARB = ffiuintPtrintIOV glVertexAttrib4NivARBFunPtr
+
+glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NivARB")
+
+{-# NOINLINE glVertexAttrib4NivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NsvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nsv'.
+
+
+glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4NsvARB = ffiuintPtrshortIOV glVertexAttrib4NsvARBFunPtr
+
+glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NsvARB")
+
+{-# NOINLINE glVertexAttrib4NsvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NubARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nub'.
+
+
+glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4NubARB = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubARBFunPtr
+
+glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubARB")
+
+{-# NOINLINE glVertexAttrib4NubARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NubvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nubv'.
+
+
+glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4NubvARB = ffiuintPtrubyteIOV glVertexAttrib4NubvARBFunPtr
+
+glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubvARB")
+
+{-# NOINLINE glVertexAttrib4NubvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NuivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nuiv'.
+
+
+glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4NuivARB = ffiuintPtruintIOV glVertexAttrib4NuivARBFunPtr
+
+glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NuivARB")
+
+{-# NOINLINE glVertexAttrib4NuivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NusvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nusv'.
+
+
+glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4NusvARB = ffiuintPtrushortIOV glVertexAttrib4NusvARBFunPtr
+
+glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NusvARB")
+
+{-# NOINLINE glVertexAttrib4NusvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4bvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4bv'.
+
+
+glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bvARB = ffiuintPtrbyteIOV glVertexAttrib4bvARBFunPtr
+
+glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bvARB")
+
+{-# NOINLINE glVertexAttrib4bvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dvARB'.
+
+
+glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4dARB = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dARBFunPtr
+
+glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dARB")
+
+{-# NOINLINE glVertexAttrib4dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
+
+
+glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dvARB = ffiuintPtrdoubleIOV glVertexAttrib4dvARBFunPtr
+
+glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvARB")
+
+{-# NOINLINE glVertexAttrib4dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fvARB'.
+
+
+glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4fARB = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fARBFunPtr
+
+glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fARB")
+
+{-# NOINLINE glVertexAttrib4fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
+
+
+glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fvARB = ffiuintPtrfloatIOV glVertexAttrib4fvARBFunPtr
+
+glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvARB")
+
+{-# NOINLINE glVertexAttrib4fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4iv'.
+
+
+glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4ivARB = ffiuintPtrintIOV glVertexAttrib4ivARBFunPtr
+
+glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ivARB")
+
+{-# NOINLINE glVertexAttrib4ivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4sARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4svARB'.
+
+
+glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4sARB = ffiuintshortshortshortshortIOV glVertexAttrib4sARBFunPtr
+
+glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sARB")
+
+{-# NOINLINE glVertexAttrib4sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4svARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
+
+
+glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4svARB = ffiuintPtrshortIOV glVertexAttrib4svARBFunPtr
+
+glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svARB")
+
+{-# NOINLINE glVertexAttrib4svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4ubv'.
+
+
+glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubvARB = ffiuintPtrubyteIOV glVertexAttrib4ubvARBFunPtr
+
+glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvARB")
+
+{-# NOINLINE glVertexAttrib4ubvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4uivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4uiv'.
+
+
+glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uivARB = ffiuintPtruintIOV glVertexAttrib4uivARBFunPtr
+
+glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uivARB")
+
+{-# NOINLINE glVertexAttrib4uivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4usvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4usv'.
+
+
+glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usvARB = ffiuintPtrushortIOV glVertexAttrib4usvARBFunPtr
+
+glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usvARB")
+
+{-# NOINLINE glVertexAttrib4usvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttribPointerARB' index size type normalized stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribPointer'.
+
+
+glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointerARB = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerARBFunPtr
+
+glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerARB")
+
+{-# NOINLINE glVertexAttribPointerARBFunPtr #-}
+
+pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626
+
+pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C
+
+-- | Usage: @'glBindFragDataLocationEXT' program color name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindFragDataLocation'.
+
+
+glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocationEXT = ffiuintuintPtrcharIOV glBindFragDataLocationEXTFunPtr
+
+glBindFragDataLocationEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationEXTFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationEXT")
+
+{-# NOINLINE glBindFragDataLocationEXTFunPtr #-}
+
+pattern GL_R16F_EXT = 0x822D
+
+pattern GL_RG16F_EXT = 0x822F
+
+pattern GL_RGB16F_EXT = 0x881B
+
+pattern GL_RGBA16F_EXT = 0x881A
+
+-- | Usage: @'glDisableIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
+
+
+glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableIndexedEXT = ffienumuintIOV glDisableIndexedEXTFunPtr
+
+glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableIndexedEXT")
+
+{-# NOINLINE glDisableIndexedEXTFunPtr #-}
+
+-- | Usage: @'glEnableIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
+
+
+glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableIndexedEXT = ffienumuintIOV glEnableIndexedEXTFunPtr
+
+glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableIndexedEXT")
+
+{-# NOINLINE glEnableIndexedEXTFunPtr #-}
+
+-- | Usage: @'glGetBooleanIndexedvEXT' target index data@
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBooleani_v'.
+
+
+glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleanIndexedvEXT = ffienumuintPtrbooleanIOV glGetBooleanIndexedvEXTFunPtr
+
+glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleanIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetBooleanIndexedvEXT")
+
+{-# NOINLINE glGetBooleanIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetIntegerIndexedvEXT' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetIntegeri_v'.
+
+
+glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegerIndexedvEXT = ffienumuintPtrintIOV glGetIntegerIndexedvEXTFunPtr
+
+glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegerIndexedvEXT")
+
+{-# NOINLINE glGetIntegerIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glIsEnabledIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
+
+
+glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledIndexedEXT = ffienumuintIOboolean glIsEnabledIndexedEXTFunPtr
+
+glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnabledIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnabledIndexedEXT")
+
+{-# NOINLINE glIsEnabledIndexedEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1f'.
+
+
+glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1fEXT = ffiuintintfloatIOV glProgramUniform1fEXTFunPtr
+
+glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fEXT")
+
+{-# NOINLINE glProgramUniform1fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1fv'.
+
+
+glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvEXTFunPtr
+
+glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fvEXT")
+
+{-# NOINLINE glProgramUniform1fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1iEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1i'.
+
+
+glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1iEXT = ffiuintintintIOV glProgramUniform1iEXTFunPtr
+
+glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iEXT")
+
+{-# NOINLINE glProgramUniform1iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ivEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1iv'.
+
+
+glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform1ivEXTFunPtr
+
+glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ivEXT")
+
+{-# NOINLINE glProgramUniform1ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uiEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1ui'.
+
+
+glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1uiEXT = ffiuintintuintIOV glProgramUniform1uiEXTFunPtr
+
+glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiEXT")
+
+{-# NOINLINE glProgramUniform1uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uivEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1uiv'.
+
+
+glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform1uivEXTFunPtr
+
+glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uivEXT")
+
+{-# NOINLINE glProgramUniform1uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2f'.
+
+
+glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2fEXT = ffiuintintfloatfloatIOV glProgramUniform2fEXTFunPtr
+
+glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fEXT")
+
+{-# NOINLINE glProgramUniform2fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2fv'.
+
+
+glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvEXTFunPtr
+
+glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fvEXT")
+
+{-# NOINLINE glProgramUniform2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2iEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2i'.
+
+
+glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2iEXT = ffiuintintintintIOV glProgramUniform2iEXTFunPtr
+
+glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iEXT")
+
+{-# NOINLINE glProgramUniform2iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2iv'.
+
+
+glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform2ivEXTFunPtr
+
+glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ivEXT")
+
+{-# NOINLINE glProgramUniform2ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uiEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2ui'.
+
+
+glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2uiEXT = ffiuintintuintuintIOV glProgramUniform2uiEXTFunPtr
+
+glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiEXT")
+
+{-# NOINLINE glProgramUniform2uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2uiv'.
+
+
+glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform2uivEXTFunPtr
+
+glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uivEXT")
+
+{-# NOINLINE glProgramUniform2uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3f'.
+
+
+glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3fEXT = ffiuintintfloatfloatfloatIOV glProgramUniform3fEXTFunPtr
+
+glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fEXT")
+
+{-# NOINLINE glProgramUniform3fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3fv'.
+
+
+glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvEXTFunPtr
+
+glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fvEXT")
+
+{-# NOINLINE glProgramUniform3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3iEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3i'.
+
+
+glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3iEXT = ffiuintintintintintIOV glProgramUniform3iEXTFunPtr
+
+glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iEXT")
+
+{-# NOINLINE glProgramUniform3iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3iv'.
+
+
+glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform3ivEXTFunPtr
+
+glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ivEXT")
+
+{-# NOINLINE glProgramUniform3ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uiEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3ui'.
+
+
+glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3uiEXT = ffiuintintuintuintuintIOV glProgramUniform3uiEXTFunPtr
+
+glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiEXT")
+
+{-# NOINLINE glProgramUniform3uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3uiv'.
+
+
+glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform3uivEXTFunPtr
+
+glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uivEXT")
+
+{-# NOINLINE glProgramUniform3uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4f'.
+
+
+glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4fEXT = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fEXTFunPtr
+
+glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fEXT")
+
+{-# NOINLINE glProgramUniform4fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4fv'.
+
+
+glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvEXTFunPtr
+
+glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fvEXT")
+
+{-# NOINLINE glProgramUniform4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4iEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4i'.
+
+
+glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4iEXT = ffiuintintintintintintIOV glProgramUniform4iEXTFunPtr
+
+glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iEXT")
+
+{-# NOINLINE glProgramUniform4iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4iv'.
+
+
+glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform4ivEXTFunPtr
+
+glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ivEXT")
+
+{-# NOINLINE glProgramUniform4ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uiEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4ui'.
+
+
+glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4uiEXT = ffiuintintuintuintuintuintIOV glProgramUniform4uiEXTFunPtr
+
+glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiEXT")
+
+{-# NOINLINE glProgramUniform4uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4uiv'.
+
+
+glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform4uivEXTFunPtr
+
+glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uivEXT")
+
+{-# NOINLINE glProgramUniform4uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2fv'.
+
+
+glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvEXTFunPtr
+
+glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x3fv'.
+
+
+glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvEXTFunPtr
+
+glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x4fv'.
+
+
+glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvEXTFunPtr
+
+glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3fv'.
+
+
+glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvEXTFunPtr
+
+glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x2fv'.
+
+
+glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvEXTFunPtr
+
+glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x4fv'.
+
+
+glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvEXTFunPtr
+
+glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4fv'.
+
+
+glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvEXTFunPtr
+
+glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x2fv'.
+
+
+glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvEXTFunPtr
+
+glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x3fv'.
+
+
+glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvEXTFunPtr
+
+glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage1DEXT' texture target levels internalformat width@
+
+
+glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1DEXT = ffiuintenumsizeienumsizeiIOV glTextureStorage1DEXTFunPtr
+
+glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1DEXT")
+
+{-# NOINLINE glTextureStorage1DEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DEXT' texture target levels internalformat width height@
+
+
+glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2DEXT = ffiuintenumsizeienumsizeisizeiIOV glTextureStorage2DEXTFunPtr
+
+glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DEXT")
+
+{-# NOINLINE glTextureStorage2DEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DEXT' texture target levels internalformat width height depth@
+
+
+glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3DEXT = ffiuintenumsizeienumsizeisizeisizeiIOV glTextureStorage3DEXTFunPtr
+
+glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DEXT")
+
+{-# NOINLINE glTextureStorage3DEXTFunPtr #-}
+
+-- | Usage: @'glBeginQueryEXT' target id@
+
+
+glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQueryEXT = ffienumuintIOV glBeginQueryEXTFunPtr
+
+glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryEXTFunPtr = unsafePerformIO (getProcAddress "glBeginQueryEXT")
+
+{-# NOINLINE glBeginQueryEXTFunPtr #-}
+
+-- | Usage: @'glDeleteQueriesEXT' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueriesEXT = ffisizeiPtruintIOV glDeleteQueriesEXTFunPtr
+
+glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesEXT")
+
+{-# NOINLINE glDeleteQueriesEXTFunPtr #-}
+
+-- | Usage: @'glEndQueryEXT' target@
+
+
+glEndQueryEXT :: MonadIO m => GLenum -> m ()
+glEndQueryEXT = ffienumIOV glEndQueryEXTFunPtr
+
+glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryEXTFunPtr = unsafePerformIO (getProcAddress "glEndQueryEXT")
+
+{-# NOINLINE glEndQueryEXTFunPtr #-}
+
+-- | Usage: @'glGenQueriesEXT' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueriesEXT = ffisizeiPtruintIOV glGenQueriesEXTFunPtr
+
+glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glGenQueriesEXT")
+
+{-# NOINLINE glGenQueriesEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjecti64vEXT' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjecti64v'.
+
+
+glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64vEXT = ffiuintenumPtrint64IOV glGetQueryObjecti64vEXTFunPtr
+
+glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64vEXT")
+
+{-# NOINLINE glGetQueryObjecti64vEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectui64vEXT' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectui64v'.
+
+
+glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64vEXT = ffiuintenumPtruint64IOV glGetQueryObjectui64vEXTFunPtr
+
+glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64vEXT")
+
+{-# NOINLINE glGetQueryObjectui64vEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectuivEXT' id pname params@
+
+
+glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuivEXT = ffiuintenumPtruintIOV glGetQueryObjectuivEXTFunPtr
+
+glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivEXT")
+
+{-# NOINLINE glGetQueryObjectuivEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryivEXT' target pname params@
+
+
+glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryivEXT = ffienumenumPtrintIOV glGetQueryivEXTFunPtr
+
+glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryivEXT")
+
+{-# NOINLINE glGetQueryivEXTFunPtr #-}
+
+-- | Usage: @'glIsQueryEXT' id@
+
+
+glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
+glIsQueryEXT = ffiuintIOboolean glIsQueryEXTFunPtr
+
+glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryEXTFunPtr = unsafePerformIO (getProcAddress "glIsQueryEXT")
+
+{-# NOINLINE glIsQueryEXTFunPtr #-}
+
+pattern GL_CURRENT_QUERY_EXT = 0x8865
+
+pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867
+
+pattern GL_QUERY_RESULT_EXT = 0x8866
+
+pattern GL_TIME_ELAPSED_EXT = 0x88BF
+
+pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9
+
+pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF
+
+-- | Usage: @'glDrawArraysInstancedEXT' mode start count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
+
+
+glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstancedEXT = ffienumintsizeisizeiIOV glDrawArraysInstancedEXTFunPtr
+
+glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedEXT")
+
+{-# NOINLINE glDrawArraysInstancedEXTFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedEXT' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
+
+
+glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstancedEXT = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedEXTFunPtr
+
+glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedEXT")
+
+{-# NOINLINE glDrawElementsInstancedEXTFunPtr #-}
+
+pattern GL_FRAGMENT_DEPTH_EXT = 0x8452
+
+-- | Usage: @'glRenderbufferStorageMultisampleEXT' target samples internalformat width height@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorageMultisample'.
+
+
+glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleEXT = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleEXTFunPtr
+
+glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleEXT")
+
+{-# NOINLINE glRenderbufferStorageMultisampleEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56
+
+pattern GL_MAX_SAMPLES_EXT = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB
+
+pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9
+
+-- | Usage: @'glFramebufferTextureEXT' target attachment texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
+
+
+glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTextureEXT = ffienumenumuintintIOV glFramebufferTextureEXTFunPtr
+
+glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureEXT")
+
+{-# NOINLINE glFramebufferTextureEXTFunPtr #-}
+
+pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8
+
+pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9
+
+pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E
+
+pattern GL_LINES_ADJACENCY_EXT = 0x000A
+
+pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF
+
+pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87
+
+pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D
+
+-- | Usage: @'glProgramParameteriEXT' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramParameteri'.
+
+
+glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteriEXT = ffiuintenumintIOV glProgramParameteriEXTFunPtr
+
+glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriEXT")
+
+{-# NOINLINE glProgramParameteriEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9
+
+pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC
+
+pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA
+
+pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642
+
+pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0
+
+pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8
+
+pattern GL_MULTISAMPLE_EXT = 0x809D
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F
+
+-- | Usage: @'glRasterSamplesEXT' samples fixedsamplelocations@
+
+
+glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
+glRasterSamplesEXT = ffiuintbooleanIOV glRasterSamplesEXTFunPtr
+
+glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())
+glRasterSamplesEXTFunPtr = unsafePerformIO (getProcAddress "glRasterSamplesEXT")
+
+{-# NOINLINE glRasterSamplesEXTFunPtr #-}
+
+pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
+
+pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329
+
+pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
+
+pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
+
+pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327
+
+pattern GL_RASTER_SAMPLES_EXT = 0x9328
+
+pattern GL_R16_SNORM_EXT = 0x8F98
+
+pattern GL_RG16_SNORM_EXT = 0x8F99
+
+pattern GL_RGBA16_SNORM_EXT = 0x8F9B
+
+pattern GL_SRGB8_ALPHA8_EXT = 0x8C43
+
+pattern GL_SRGB_ALPHA_EXT = 0x8C42
+
+pattern GL_SRGB_EXT = 0x8C40
+
+pattern GL_IMAGE_BUFFER_EXT = 0x9051
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
+
+pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES = 0x9009
+
+pattern GL_ALPHA8_EXT = 0x803C
+
+pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045
+
+pattern GL_LUMINANCE8_EXT = 0x8040
+
+pattern GL_RGB10_A2_EXT = 0x8059
+
+pattern GL_RGB10_EXT = 0x8052
+
+pattern GL_RGB16_EXT = 0x8054
+
+pattern GL_RGBA16_EXT = 0x805B
+
+-- | Usage: @'glFramebufferTextureLayerEXT' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTextureLayer'.
+
+
+glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayerEXT = ffienumenumuintintintIOV glFramebufferTextureLayerEXTFunPtr
+
+glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerEXT")
+
+{-# NOINLINE glFramebufferTextureLayerEXTFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIiv'.
+
+
+glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIivEXT = ffienumenumPtrintIOV glGetTexParameterIivEXTFunPtr
+
+glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivEXT")
+
+{-# NOINLINE glGetTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIuivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIuiv'.
+
+
+glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuivEXT = ffienumenumPtruintIOV glGetTexParameterIuivEXTFunPtr
+
+glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivEXT")
+
+{-# NOINLINE glGetTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTexParameterIivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIiv'.
+
+
+glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIivEXT = ffienumenumPtrintIOV glTexParameterIivEXTFunPtr
+
+glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivEXT")
+
+{-# NOINLINE glTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glTexParameterIuivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIuiv'.
+
+
+glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuivEXT = ffienumenumPtruintIOV glTexParameterIuivEXTFunPtr
+
+glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivEXT")
+
+{-# NOINLINE glTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTexBufferEXT' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
+
+
+glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBufferEXT = ffienumenumuintIOV glTexBufferEXTFunPtr
+
+glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferEXT")
+
+{-# NOINLINE glTexBufferEXTFunPtr #-}
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B
+
+pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D
+
+pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
+
+pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
+
+pattern GL_R8_EXT = 0x8229
+
+pattern GL_RG8_EXT = 0x822B
+
+pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68
+
+pattern GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67
+
+pattern GL_TEXTURE_EXTERNAL_OES = 0x8D65
+
+pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
+
+pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9
+
+pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5
+
+pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4
+
+pattern GL_COLOR_SAMPLES_NV = 0x8E20
+
+pattern GL_PRIMARY_COLOR_NV = 0x852C
+
+pattern GL_SECONDARY_COLOR_NV = 0x852D
+
+pattern GL_DEPTH_COMPONENT24_OES = 0x81A6
+
+-- | Usage: @'glDisableiOES' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
+
+
+glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableiOES = ffienumuintIOV glDisableiOESFunPtr
+
+glDisableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiOESFunPtr = unsafePerformIO (getProcAddress "glDisableiOES")
+
+{-# NOINLINE glDisableiOESFunPtr #-}
+
+-- | Usage: @'glEnableiOES' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
+
+
+glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableiOES = ffienumuintIOV glEnableiOESFunPtr
+
+glEnableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiOESFunPtr = unsafePerformIO (getProcAddress "glEnableiOES")
+
+{-# NOINLINE glEnableiOESFunPtr #-}
+
+-- | Usage: @'glIsEnablediOES' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
+
+
+glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnablediOES = ffienumuintIOboolean glIsEnablediOESFunPtr
+
+glIsEnablediOESFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediOESFunPtr = unsafePerformIO (getProcAddress "glIsEnablediOES")
+
+{-# NOINLINE glIsEnablediOESFunPtr #-}
+
+-- | Usage: @'glGetTexGenxvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexGenxvOES = ffienumenumPtrfixedIOV glGetTexGenxvOESFunPtr
+
+glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenxvOES")
+
+{-# NOINLINE glGetTexGenxvOESFunPtr #-}
+
+-- | Usage: @'glTexGenxOES' coord pname param@
+
+
+glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexGenxOES = ffienumenumfixedIOV glTexGenxOESFunPtr
+
+glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexGenxOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxOES")
+
+{-# NOINLINE glTexGenxOESFunPtr #-}
+
+-- | Usage: @'glTexGenxvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexGenxvOES = ffienumenumPtrfixedIOV glTexGenxvOESFunPtr
+
+glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxvOES")
+
+{-# NOINLINE glTexGenxvOESFunPtr #-}
+
+pattern GL_DEPTH_COMPONENT16_OES = 0x81A5
+
+pattern GL_RGB565_OES = 0x8D62
+
+pattern GL_RGB5_A1_OES = 0x8057
+
+pattern GL_RGBA4_OES = 0x8056
+
+pattern GL_RGB8_OES = 0x8051
+
+pattern GL_RGBA8_OES = 0x8058
+
+pattern GL_STENCIL_INDEX8_OES = 0x8D48
+
+pattern GL_HALF_FLOAT_OES = 0x8D61
diff --git a/generated-src/Graphics/GL/SafetyCritical20.hs b/generated-src/Graphics/GL/SafetyCritical20.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/SafetyCritical20.hs
@@ -0,0 +1,391 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.SafetyCritical20 (
+  -- * Graphics.GL.SafetyCritical20
+    glActiveTexture
+  , glBindBuffer
+  , glBindFramebuffer
+  , glBindRenderbuffer
+  , glBindTexture
+  , glBlendColor
+  , glBlendEquation
+  , glBlendEquationSeparate
+  , glBlendFunc
+  , glBlendFuncSeparate
+  , glBufferData
+  , glBufferSubData
+  , glCheckFramebufferStatus
+  , glClear
+  , glClearColor
+  , glClearDepthf
+  , glClearStencil
+  , glColorMask
+  , glCompressedTexSubImage2D
+  , glCreateProgram
+  , glCullFace
+  , glDepthFunc
+  , glDepthMask
+  , glDepthRangef
+  , glDisable
+  , glDisableVertexAttribArray
+  , glDrawArrays
+  , glDrawRangeElements
+  , glEnable
+  , glEnableVertexAttribArray
+  , glFinish
+  , glFlush
+  , glFramebufferRenderbuffer
+  , glFramebufferTexture2D
+  , glFrontFace
+  , glGenBuffers
+  , glGenFramebuffers
+  , glGenRenderbuffers
+  , glGenTextures
+  , glGenerateMipmap
+  , glGetAttribLocation
+  , glGetBooleanv
+  , glGetBufferParameteriv
+  , glGetError
+  , glGetFloatv
+  , glGetFramebufferAttachmentParameteriv
+  , glGetGraphicsResetStatus
+  , glGetIntegerv
+  , glGetProgramiv
+  , glGetRenderbufferParameteriv
+  , glGetString
+  , glGetTexParameterfv
+  , glGetTexParameteriv
+  , glGetUniformLocation
+  , glGetVertexAttribPointerv
+  , glGetVertexAttribfv
+  , glGetVertexAttribiv
+  , glGetnUniformfv
+  , glGetnUniformiv
+  , glHint
+  , glIsEnabled
+  , glLineWidth
+  , glPixelStorei
+  , glPolygonOffset
+  , glProgramBinary
+  , glReadnPixels
+  , glRenderbufferStorage
+  , glSampleCoverage
+  , glScissor
+  , glStencilFunc
+  , glStencilFuncSeparate
+  , glStencilMask
+  , glStencilMaskSeparate
+  , glStencilOp
+  , glStencilOpSeparate
+  , glTexParameterf
+  , glTexParameterfv
+  , glTexParameteri
+  , glTexParameteriv
+  , glTexStorage2D
+  , glTexSubImage2D
+  , glUniform1f
+  , glUniform1fv
+  , glUniform1i
+  , glUniform1iv
+  , glUniform2f
+  , glUniform2fv
+  , glUniform2i
+  , glUniform2iv
+  , glUniform3f
+  , glUniform3fv
+  , glUniform3i
+  , glUniform3iv
+  , glUniform4f
+  , glUniform4fv
+  , glUniform4i
+  , glUniform4iv
+  , glUniformMatrix2fv
+  , glUniformMatrix3fv
+  , glUniformMatrix4fv
+  , glUseProgram
+  , glVertexAttrib1f
+  , glVertexAttrib1fv
+  , glVertexAttrib2f
+  , glVertexAttrib2fv
+  , glVertexAttrib3f
+  , glVertexAttrib3fv
+  , glVertexAttrib4f
+  , glVertexAttrib4fv
+  , glVertexAttribPointer
+  , glViewport
+  , pattern GL_ACTIVE_TEXTURE
+  , pattern GL_ALIASED_LINE_WIDTH_RANGE
+  , pattern GL_ALIASED_POINT_SIZE_RANGE
+  , pattern GL_ALPHA_BITS
+  , pattern GL_ALWAYS
+  , pattern GL_ARRAY_BUFFER
+  , pattern GL_ARRAY_BUFFER_BINDING
+  , pattern GL_BACK
+  , pattern GL_BLEND
+  , pattern GL_BLEND_COLOR
+  , pattern GL_BLEND_DST_ALPHA
+  , pattern GL_BLEND_DST_RGB
+  , pattern GL_BLEND_EQUATION
+  , pattern GL_BLEND_EQUATION_ALPHA
+  , pattern GL_BLEND_EQUATION_RGB
+  , pattern GL_BLEND_SRC_ALPHA
+  , pattern GL_BLEND_SRC_RGB
+  , pattern GL_BLUE_BITS
+  , pattern GL_BUFFER_SIZE
+  , pattern GL_BUFFER_USAGE
+  , pattern GL_BYTE
+  , pattern GL_CCW
+  , pattern GL_CLAMP_TO_EDGE
+  , pattern GL_COLOR_ATTACHMENT0
+  , pattern GL_COLOR_BUFFER_BIT
+  , pattern GL_COLOR_CLEAR_VALUE
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_CONSTANT_ALPHA
+  , pattern GL_CONSTANT_COLOR
+  , pattern GL_CONTEXT_LOST
+  , pattern GL_CONTEXT_ROBUST_ACCESS
+  , pattern GL_CULL_FACE
+  , pattern GL_CULL_FACE_MODE
+  , pattern GL_CURRENT_PROGRAM
+  , pattern GL_CURRENT_VERTEX_ATTRIB
+  , pattern GL_CW
+  , pattern GL_DECR
+  , pattern GL_DECR_WRAP
+  , pattern GL_DEPTH_ATTACHMENT
+  , pattern GL_DEPTH_BITS
+  , pattern GL_DEPTH_BUFFER_BIT
+  , pattern GL_DEPTH_CLEAR_VALUE
+  , pattern GL_DEPTH_COMPONENT16
+  , pattern GL_DEPTH_FUNC
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_DEPTH_TEST
+  , pattern GL_DEPTH_WRITEMASK
+  , pattern GL_DITHER
+  , pattern GL_DONT_CARE
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_DYNAMIC_DRAW
+  , pattern GL_ELEMENT_ARRAY_BUFFER
+  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
+  , pattern GL_EQUAL
+  , pattern GL_EXTENSIONS
+  , pattern GL_FALSE
+  , pattern GL_FASTEST
+  , pattern GL_FLOAT
+  , pattern GL_FRAMEBUFFER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
+  , pattern GL_FRAMEBUFFER_BINDING
+  , pattern GL_FRAMEBUFFER_COMPLETE
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_UNDEFINED
+  , pattern GL_FRAMEBUFFER_UNSUPPORTED
+  , pattern GL_FRONT
+  , pattern GL_FRONT_AND_BACK
+  , pattern GL_FRONT_FACE
+  , pattern GL_FUNC_ADD
+  , pattern GL_FUNC_REVERSE_SUBTRACT
+  , pattern GL_FUNC_SUBTRACT
+  , pattern GL_GENERATE_MIPMAP_HINT
+  , pattern GL_GEQUAL
+  , pattern GL_GREATER
+  , pattern GL_GREEN_BITS
+  , pattern GL_GUILTY_CONTEXT_RESET
+  , pattern GL_HIGH_FLOAT
+  , pattern GL_HIGH_INT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT
+  , pattern GL_IMPLEMENTATION_COLOR_READ_TYPE
+  , pattern GL_INCR
+  , pattern GL_INCR_WRAP
+  , pattern GL_INNOCENT_CONTEXT_RESET
+  , pattern GL_INT
+  , pattern GL_INVALID_ENUM
+  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
+  , pattern GL_INVALID_OPERATION
+  , pattern GL_INVALID_VALUE
+  , pattern GL_INVERT
+  , pattern GL_KEEP
+  , pattern GL_LEQUAL
+  , pattern GL_LESS
+  , pattern GL_LINEAR
+  , pattern GL_LINEAR_MIPMAP_LINEAR
+  , pattern GL_LINEAR_MIPMAP_NEAREST
+  , pattern GL_LINES
+  , pattern GL_LINE_LOOP
+  , pattern GL_LINE_STRIP
+  , pattern GL_LINE_WIDTH
+  , pattern GL_LINK_STATUS
+  , pattern GL_LOSE_CONTEXT_ON_RESET
+  , pattern GL_LOW_FLOAT
+  , pattern GL_LOW_INT
+  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS
+  , pattern GL_MAX_RENDERBUFFER_SIZE
+  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_TEXTURE_SIZE
+  , pattern GL_MAX_VARYING_VECTORS
+  , pattern GL_MAX_VERTEX_ATTRIBS
+  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_VERTEX_UNIFORM_VECTORS
+  , pattern GL_MAX_VIEWPORT_DIMS
+  , pattern GL_MEDIUM_FLOAT
+  , pattern GL_MEDIUM_INT
+  , pattern GL_MIRRORED_REPEAT
+  , pattern GL_NEAREST
+  , pattern GL_NEAREST_MIPMAP_LINEAR
+  , pattern GL_NEAREST_MIPMAP_NEAREST
+  , pattern GL_NEVER
+  , pattern GL_NICEST
+  , pattern GL_NONE
+  , pattern GL_NOTEQUAL
+  , pattern GL_NO_ERROR
+  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_NUM_PROGRAM_BINARY_FORMATS
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_OUT_OF_MEMORY
+  , pattern GL_PACK_ALIGNMENT
+  , pattern GL_POINTS
+  , pattern GL_POLYGON_OFFSET_FACTOR
+  , pattern GL_POLYGON_OFFSET_FILL
+  , pattern GL_POLYGON_OFFSET_UNITS
+  , pattern GL_PROGRAM_BINARY_FORMATS
+  , pattern GL_R8
+  , pattern GL_RED
+  , pattern GL_RED_BITS
+  , pattern GL_RENDERBUFFER
+  , pattern GL_RENDERBUFFER_ALPHA_SIZE
+  , pattern GL_RENDERBUFFER_BINDING
+  , pattern GL_RENDERBUFFER_BLUE_SIZE
+  , pattern GL_RENDERBUFFER_DEPTH_SIZE
+  , pattern GL_RENDERBUFFER_GREEN_SIZE
+  , pattern GL_RENDERBUFFER_HEIGHT
+  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
+  , pattern GL_RENDERBUFFER_RED_SIZE
+  , pattern GL_RENDERBUFFER_STENCIL_SIZE
+  , pattern GL_RENDERBUFFER_WIDTH
+  , pattern GL_RENDERER
+  , pattern GL_REPEAT
+  , pattern GL_REPLACE
+  , pattern GL_RESET_NOTIFICATION_STRATEGY
+  , pattern GL_RG
+  , pattern GL_RG8
+  , pattern GL_RGB
+  , pattern GL_RGB565
+  , pattern GL_RGB5_A1
+  , pattern GL_RGB8
+  , pattern GL_RGBA
+  , pattern GL_RGBA4
+  , pattern GL_RGBA8
+  , pattern GL_SAMPLER_2D
+  , pattern GL_SAMPLES
+  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
+  , pattern GL_SAMPLE_BUFFERS
+  , pattern GL_SAMPLE_COVERAGE
+  , pattern GL_SAMPLE_COVERAGE_INVERT
+  , pattern GL_SAMPLE_COVERAGE_VALUE
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_SHADING_LANGUAGE_VERSION
+  , pattern GL_SHORT
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_STATIC_DRAW
+  , pattern GL_STENCIL_ATTACHMENT
+  , pattern GL_STENCIL_BACK_FAIL
+  , pattern GL_STENCIL_BACK_FUNC
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_BACK_REF
+  , pattern GL_STENCIL_BACK_VALUE_MASK
+  , pattern GL_STENCIL_BACK_WRITEMASK
+  , pattern GL_STENCIL_BITS
+  , pattern GL_STENCIL_BUFFER_BIT
+  , pattern GL_STENCIL_CLEAR_VALUE
+  , pattern GL_STENCIL_FAIL
+  , pattern GL_STENCIL_FUNC
+  , pattern GL_STENCIL_INDEX8
+  , pattern GL_STENCIL_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_REF
+  , pattern GL_STENCIL_TEST
+  , pattern GL_STENCIL_VALUE_MASK
+  , pattern GL_STENCIL_WRITEMASK
+  , pattern GL_STREAM_DRAW
+  , pattern GL_SUBPIXEL_BITS
+  , pattern GL_TEXTURE
+  , pattern GL_TEXTURE0
+  , pattern GL_TEXTURE1
+  , pattern GL_TEXTURE10
+  , pattern GL_TEXTURE11
+  , pattern GL_TEXTURE12
+  , pattern GL_TEXTURE13
+  , pattern GL_TEXTURE14
+  , pattern GL_TEXTURE15
+  , pattern GL_TEXTURE16
+  , pattern GL_TEXTURE17
+  , pattern GL_TEXTURE18
+  , pattern GL_TEXTURE19
+  , pattern GL_TEXTURE2
+  , pattern GL_TEXTURE20
+  , pattern GL_TEXTURE21
+  , pattern GL_TEXTURE22
+  , pattern GL_TEXTURE23
+  , pattern GL_TEXTURE24
+  , pattern GL_TEXTURE25
+  , pattern GL_TEXTURE26
+  , pattern GL_TEXTURE27
+  , pattern GL_TEXTURE28
+  , pattern GL_TEXTURE29
+  , pattern GL_TEXTURE3
+  , pattern GL_TEXTURE30
+  , pattern GL_TEXTURE31
+  , pattern GL_TEXTURE4
+  , pattern GL_TEXTURE5
+  , pattern GL_TEXTURE6
+  , pattern GL_TEXTURE7
+  , pattern GL_TEXTURE8
+  , pattern GL_TEXTURE9
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_BINDING_2D
+  , pattern GL_TEXTURE_IMMUTABLE_FORMAT
+  , pattern GL_TEXTURE_MAG_FILTER
+  , pattern GL_TEXTURE_MIN_FILTER
+  , pattern GL_TEXTURE_WRAP_S
+  , pattern GL_TEXTURE_WRAP_T
+  , pattern GL_TRIANGLES
+  , pattern GL_TRIANGLE_FAN
+  , pattern GL_TRIANGLE_STRIP
+  , pattern GL_TRUE
+  , pattern GL_UNKNOWN_CONTEXT_RESET
+  , pattern GL_UNPACK_ALIGNMENT
+  , pattern GL_UNSIGNED_BYTE
+  , pattern GL_UNSIGNED_INT
+  , pattern GL_UNSIGNED_SHORT
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4
+  , pattern GL_UNSIGNED_SHORT_5_5_5_1
+  , pattern GL_UNSIGNED_SHORT_5_6_5
+  , pattern GL_VENDOR
+  , pattern GL_VERSION
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
+  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
+  , pattern GL_VIEWPORT
+  , pattern GL_ZERO
+) where
+
+import Graphics.GL.Internal.Shared
diff --git a/generated-src/Graphics/GL/Standard10.hs b/generated-src/Graphics/GL/Standard10.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard10.hs
@@ -0,0 +1,313 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard10 (
+  -- * Graphics.GL.Standard10
+    glAccum
+  , glAlphaFunc
+  , glBegin
+  , glBitmap
+  , glBlendFunc
+  , glCallList
+  , glCallLists
+  , glClear
+  , glClearAccum
+  , glClearColor
+  , glClearDepth
+  , glClearIndex
+  , glClearStencil
+  , glClipPlane
+  , glColor3b
+  , glColor3bv
+  , glColor3d
+  , glColor3dv
+  , glColor3f
+  , glColor3fv
+  , glColor3i
+  , glColor3iv
+  , glColor3s
+  , glColor3sv
+  , glColor3ub
+  , glColor3ubv
+  , glColor3ui
+  , glColor3uiv
+  , glColor3us
+  , glColor3usv
+  , glColor4b
+  , glColor4bv
+  , glColor4d
+  , glColor4dv
+  , glColor4f
+  , glColor4fv
+  , glColor4i
+  , glColor4iv
+  , glColor4s
+  , glColor4sv
+  , glColor4ub
+  , glColor4ubv
+  , glColor4ui
+  , glColor4uiv
+  , glColor4us
+  , glColor4usv
+  , glColorMask
+  , glColorMaterial
+  , glCopyPixels
+  , glCullFace
+  , glDeleteLists
+  , glDepthFunc
+  , glDepthMask
+  , glDepthRange
+  , glDisable
+  , glDrawBuffer
+  , glDrawPixels
+  , glEdgeFlag
+  , glEdgeFlagv
+  , glEnable
+  , glEnd
+  , glEndList
+  , glEvalCoord1d
+  , glEvalCoord1dv
+  , glEvalCoord1f
+  , glEvalCoord1fv
+  , glEvalCoord2d
+  , glEvalCoord2dv
+  , glEvalCoord2f
+  , glEvalCoord2fv
+  , glEvalMesh1
+  , glEvalMesh2
+  , glEvalPoint1
+  , glEvalPoint2
+  , glFeedbackBuffer
+  , glFinish
+  , glFlush
+  , glFogf
+  , glFogfv
+  , glFogi
+  , glFogiv
+  , glFrontFace
+  , glFrustum
+  , glGenLists
+  , glGetBooleanv
+  , glGetClipPlane
+  , glGetDoublev
+  , glGetError
+  , glGetFloatv
+  , glGetIntegerv
+  , glGetLightfv
+  , glGetLightiv
+  , glGetMapdv
+  , glGetMapfv
+  , glGetMapiv
+  , glGetMaterialfv
+  , glGetMaterialiv
+  , glGetPixelMapfv
+  , glGetPixelMapuiv
+  , glGetPixelMapusv
+  , glGetPolygonStipple
+  , glGetString
+  , glGetTexEnvfv
+  , glGetTexEnviv
+  , glGetTexGendv
+  , glGetTexGenfv
+  , glGetTexGeniv
+  , glGetTexImage
+  , glGetTexLevelParameterfv
+  , glGetTexLevelParameteriv
+  , glGetTexParameterfv
+  , glGetTexParameteriv
+  , glHint
+  , glIndexMask
+  , glIndexd
+  , glIndexdv
+  , glIndexf
+  , glIndexfv
+  , glIndexi
+  , glIndexiv
+  , glIndexs
+  , glIndexsv
+  , glInitNames
+  , glIsEnabled
+  , glIsList
+  , glLightModelf
+  , glLightModelfv
+  , glLightModeli
+  , glLightModeliv
+  , glLightf
+  , glLightfv
+  , glLighti
+  , glLightiv
+  , glLineStipple
+  , glLineWidth
+  , glListBase
+  , glLoadIdentity
+  , glLoadMatrixd
+  , glLoadMatrixf
+  , glLoadName
+  , glLogicOp
+  , glMap1d
+  , glMap1f
+  , glMap2d
+  , glMap2f
+  , glMapGrid1d
+  , glMapGrid1f
+  , glMapGrid2d
+  , glMapGrid2f
+  , glMaterialf
+  , glMaterialfv
+  , glMateriali
+  , glMaterialiv
+  , glMatrixMode
+  , glMultMatrixd
+  , glMultMatrixf
+  , glNewList
+  , glNormal3b
+  , glNormal3bv
+  , glNormal3d
+  , glNormal3dv
+  , glNormal3f
+  , glNormal3fv
+  , glNormal3i
+  , glNormal3iv
+  , glNormal3s
+  , glNormal3sv
+  , glOrtho
+  , glPassThrough
+  , glPixelMapfv
+  , glPixelMapuiv
+  , glPixelMapusv
+  , glPixelStoref
+  , glPixelStorei
+  , glPixelTransferf
+  , glPixelTransferi
+  , glPixelZoom
+  , glPointSize
+  , glPolygonMode
+  , glPolygonStipple
+  , glPopAttrib
+  , glPopMatrix
+  , glPopName
+  , glPushAttrib
+  , glPushMatrix
+  , glPushName
+  , glRasterPos2d
+  , glRasterPos2dv
+  , glRasterPos2f
+  , glRasterPos2fv
+  , glRasterPos2i
+  , glRasterPos2iv
+  , glRasterPos2s
+  , glRasterPos2sv
+  , glRasterPos3d
+  , glRasterPos3dv
+  , glRasterPos3f
+  , glRasterPos3fv
+  , glRasterPos3i
+  , glRasterPos3iv
+  , glRasterPos3s
+  , glRasterPos3sv
+  , glRasterPos4d
+  , glRasterPos4dv
+  , glRasterPos4f
+  , glRasterPos4fv
+  , glRasterPos4i
+  , glRasterPos4iv
+  , glRasterPos4s
+  , glRasterPos4sv
+  , glReadBuffer
+  , glReadPixels
+  , glRectd
+  , glRectdv
+  , glRectf
+  , glRectfv
+  , glRecti
+  , glRectiv
+  , glRects
+  , glRectsv
+  , glRenderMode
+  , glRotated
+  , glRotatef
+  , glScaled
+  , glScalef
+  , glScissor
+  , glSelectBuffer
+  , glShadeModel
+  , glStencilFunc
+  , glStencilMask
+  , glStencilOp
+  , glTexCoord1d
+  , glTexCoord1dv
+  , glTexCoord1f
+  , glTexCoord1fv
+  , glTexCoord1i
+  , glTexCoord1iv
+  , glTexCoord1s
+  , glTexCoord1sv
+  , glTexCoord2d
+  , glTexCoord2dv
+  , glTexCoord2f
+  , glTexCoord2fv
+  , glTexCoord2i
+  , glTexCoord2iv
+  , glTexCoord2s
+  , glTexCoord2sv
+  , glTexCoord3d
+  , glTexCoord3dv
+  , glTexCoord3f
+  , glTexCoord3fv
+  , glTexCoord3i
+  , glTexCoord3iv
+  , glTexCoord3s
+  , glTexCoord3sv
+  , glTexCoord4d
+  , glTexCoord4dv
+  , glTexCoord4f
+  , glTexCoord4fv
+  , glTexCoord4i
+  , glTexCoord4iv
+  , glTexCoord4s
+  , glTexCoord4sv
+  , glTexEnvf
+  , glTexEnvfv
+  , glTexEnvi
+  , glTexEnviv
+  , glTexGend
+  , glTexGendv
+  , glTexGenf
+  , glTexGenfv
+  , glTexGeni
+  , glTexGeniv
+  , glTexImage1D
+  , glTexImage2D
+  , glTexParameterf
+  , glTexParameterfv
+  , glTexParameteri
+  , glTexParameteriv
+  , glTranslated
+  , glTranslatef
+  , glVertex2d
+  , glVertex2dv
+  , glVertex2f
+  , glVertex2fv
+  , glVertex2i
+  , glVertex2iv
+  , glVertex2s
+  , glVertex2sv
+  , glVertex3d
+  , glVertex3dv
+  , glVertex3f
+  , glVertex3fv
+  , glVertex3i
+  , glVertex3iv
+  , glVertex3s
+  , glVertex3sv
+  , glVertex4d
+  , glVertex4dv
+  , glVertex4f
+  , glVertex4fv
+  , glVertex4i
+  , glVertex4iv
+  , glVertex4s
+  , glVertex4sv
+  , glViewport
+) where
+
+import Graphics.GL.Internal.Shared
diff --git a/generated-src/Graphics/GL/Standard11.hs b/generated-src/Graphics/GL/Standard11.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard11.hs
@@ -0,0 +1,568 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard11 (
+  -- * Graphics.GL.Standard11
+    module Graphics.GL.Standard10
+  , glAreTexturesResident
+  , glArrayElement
+  , glBindTexture
+  , glColorPointer
+  , glCopyTexImage1D
+  , glCopyTexImage2D
+  , glCopyTexSubImage1D
+  , glCopyTexSubImage2D
+  , glDeleteTextures
+  , glDisableClientState
+  , glDrawArrays
+  , glDrawElements
+  , glEdgeFlagPointer
+  , glEnableClientState
+  , glGenTextures
+  , glGetPointerv
+  , glIndexPointer
+  , glIndexub
+  , glIndexubv
+  , glInterleavedArrays
+  , glIsTexture
+  , glNormalPointer
+  , glPolygonOffset
+  , glPopClientAttrib
+  , glPrioritizeTextures
+  , glPushClientAttrib
+  , glTexCoordPointer
+  , glTexSubImage1D
+  , glTexSubImage2D
+  , glVertexPointer
+  , pattern GL_2D
+  , pattern GL_2_BYTES
+  , pattern GL_3D
+  , pattern GL_3D_COLOR
+  , pattern GL_3D_COLOR_TEXTURE
+  , pattern GL_3_BYTES
+  , pattern GL_4D_COLOR_TEXTURE
+  , pattern GL_4_BYTES
+  , pattern GL_ACCUM
+  , pattern GL_ACCUM_ALPHA_BITS
+  , pattern GL_ACCUM_BLUE_BITS
+  , pattern GL_ACCUM_BUFFER_BIT
+  , pattern GL_ACCUM_CLEAR_VALUE
+  , pattern GL_ACCUM_GREEN_BITS
+  , pattern GL_ACCUM_RED_BITS
+  , pattern GL_ADD
+  , pattern GL_ALL_ATTRIB_BITS
+  , pattern GL_ALPHA
+  , pattern GL_ALPHA12
+  , pattern GL_ALPHA16
+  , pattern GL_ALPHA4
+  , pattern GL_ALPHA8
+  , pattern GL_ALPHA_BIAS
+  , pattern GL_ALPHA_BITS
+  , pattern GL_ALPHA_SCALE
+  , pattern GL_ALPHA_TEST
+  , pattern GL_ALPHA_TEST_FUNC
+  , pattern GL_ALPHA_TEST_REF
+  , pattern GL_ALWAYS
+  , pattern GL_AMBIENT
+  , pattern GL_AMBIENT_AND_DIFFUSE
+  , pattern GL_AND
+  , pattern GL_AND_INVERTED
+  , pattern GL_AND_REVERSE
+  , pattern GL_ATTRIB_STACK_DEPTH
+  , pattern GL_AUTO_NORMAL
+  , pattern GL_AUX0
+  , pattern GL_AUX1
+  , pattern GL_AUX2
+  , pattern GL_AUX3
+  , pattern GL_AUX_BUFFERS
+  , pattern GL_BACK
+  , pattern GL_BACK_LEFT
+  , pattern GL_BACK_RIGHT
+  , pattern GL_BITMAP
+  , pattern GL_BITMAP_TOKEN
+  , pattern GL_BLEND
+  , pattern GL_BLEND_DST
+  , pattern GL_BLEND_SRC
+  , pattern GL_BLUE
+  , pattern GL_BLUE_BIAS
+  , pattern GL_BLUE_BITS
+  , pattern GL_BLUE_SCALE
+  , pattern GL_BYTE
+  , pattern GL_C3F_V3F
+  , pattern GL_C4F_N3F_V3F
+  , pattern GL_C4UB_V2F
+  , pattern GL_C4UB_V3F
+  , pattern GL_CCW
+  , pattern GL_CLAMP
+  , pattern GL_CLEAR
+  , pattern GL_CLIENT_ALL_ATTRIB_BITS
+  , pattern GL_CLIENT_ATTRIB_STACK_DEPTH
+  , pattern GL_CLIENT_PIXEL_STORE_BIT
+  , pattern GL_CLIENT_VERTEX_ARRAY_BIT
+  , pattern GL_CLIP_PLANE0
+  , pattern GL_CLIP_PLANE1
+  , pattern GL_CLIP_PLANE2
+  , pattern GL_CLIP_PLANE3
+  , pattern GL_CLIP_PLANE4
+  , pattern GL_CLIP_PLANE5
+  , pattern GL_COEFF
+  , pattern GL_COLOR
+  , pattern GL_COLOR_ARRAY
+  , pattern GL_COLOR_ARRAY_POINTER
+  , pattern GL_COLOR_ARRAY_SIZE
+  , pattern GL_COLOR_ARRAY_STRIDE
+  , pattern GL_COLOR_ARRAY_TYPE
+  , pattern GL_COLOR_BUFFER_BIT
+  , pattern GL_COLOR_CLEAR_VALUE
+  , pattern GL_COLOR_INDEX
+  , pattern GL_COLOR_INDEXES
+  , pattern GL_COLOR_LOGIC_OP
+  , pattern GL_COLOR_MATERIAL
+  , pattern GL_COLOR_MATERIAL_FACE
+  , pattern GL_COLOR_MATERIAL_PARAMETER
+  , pattern GL_COLOR_WRITEMASK
+  , pattern GL_COMPILE
+  , pattern GL_COMPILE_AND_EXECUTE
+  , pattern GL_CONSTANT_ATTENUATION
+  , pattern GL_COPY
+  , pattern GL_COPY_INVERTED
+  , pattern GL_COPY_PIXEL_TOKEN
+  , pattern GL_CULL_FACE
+  , pattern GL_CULL_FACE_MODE
+  , pattern GL_CURRENT_BIT
+  , pattern GL_CURRENT_COLOR
+  , pattern GL_CURRENT_INDEX
+  , pattern GL_CURRENT_NORMAL
+  , pattern GL_CURRENT_RASTER_COLOR
+  , pattern GL_CURRENT_RASTER_DISTANCE
+  , pattern GL_CURRENT_RASTER_INDEX
+  , pattern GL_CURRENT_RASTER_POSITION
+  , pattern GL_CURRENT_RASTER_POSITION_VALID
+  , pattern GL_CURRENT_RASTER_TEXTURE_COORDS
+  , pattern GL_CURRENT_TEXTURE_COORDS
+  , pattern GL_CW
+  , pattern GL_DECAL
+  , pattern GL_DECR
+  , pattern GL_DEPTH
+  , pattern GL_DEPTH_BIAS
+  , pattern GL_DEPTH_BITS
+  , pattern GL_DEPTH_BUFFER_BIT
+  , pattern GL_DEPTH_CLEAR_VALUE
+  , pattern GL_DEPTH_COMPONENT
+  , pattern GL_DEPTH_FUNC
+  , pattern GL_DEPTH_RANGE
+  , pattern GL_DEPTH_SCALE
+  , pattern GL_DEPTH_TEST
+  , pattern GL_DEPTH_WRITEMASK
+  , pattern GL_DIFFUSE
+  , pattern GL_DITHER
+  , pattern GL_DOMAIN
+  , pattern GL_DONT_CARE
+  , pattern GL_DOUBLE
+  , pattern GL_DOUBLEBUFFER
+  , pattern GL_DRAW_BUFFER
+  , pattern GL_DRAW_PIXEL_TOKEN
+  , pattern GL_DST_ALPHA
+  , pattern GL_DST_COLOR
+  , pattern GL_EDGE_FLAG
+  , pattern GL_EDGE_FLAG_ARRAY
+  , pattern GL_EDGE_FLAG_ARRAY_POINTER
+  , pattern GL_EDGE_FLAG_ARRAY_STRIDE
+  , pattern GL_EMISSION
+  , pattern GL_ENABLE_BIT
+  , pattern GL_EQUAL
+  , pattern GL_EQUIV
+  , pattern GL_EVAL_BIT
+  , pattern GL_EXP
+  , pattern GL_EXP2
+  , pattern GL_EXTENSIONS
+  , pattern GL_EYE_LINEAR
+  , pattern GL_EYE_PLANE
+  , pattern GL_FALSE
+  , pattern GL_FASTEST
+  , pattern GL_FEEDBACK
+  , pattern GL_FEEDBACK_BUFFER_POINTER
+  , pattern GL_FEEDBACK_BUFFER_SIZE
+  , pattern GL_FEEDBACK_BUFFER_TYPE
+  , pattern GL_FILL
+  , pattern GL_FLAT
+  , pattern GL_FLOAT
+  , pattern GL_FOG
+  , pattern GL_FOG_BIT
+  , pattern GL_FOG_COLOR
+  , pattern GL_FOG_DENSITY
+  , pattern GL_FOG_END
+  , pattern GL_FOG_HINT
+  , pattern GL_FOG_INDEX
+  , pattern GL_FOG_MODE
+  , pattern GL_FOG_START
+  , pattern GL_FRONT
+  , pattern GL_FRONT_AND_BACK
+  , pattern GL_FRONT_FACE
+  , pattern GL_FRONT_LEFT
+  , pattern GL_FRONT_RIGHT
+  , pattern GL_GEQUAL
+  , pattern GL_GREATER
+  , pattern GL_GREEN
+  , pattern GL_GREEN_BIAS
+  , pattern GL_GREEN_BITS
+  , pattern GL_GREEN_SCALE
+  , pattern GL_HINT_BIT
+  , pattern GL_INCR
+  , pattern GL_INDEX_ARRAY
+  , pattern GL_INDEX_ARRAY_POINTER
+  , pattern GL_INDEX_ARRAY_STRIDE
+  , pattern GL_INDEX_ARRAY_TYPE
+  , pattern GL_INDEX_BITS
+  , pattern GL_INDEX_CLEAR_VALUE
+  , pattern GL_INDEX_LOGIC_OP
+  , pattern GL_INDEX_MODE
+  , pattern GL_INDEX_OFFSET
+  , pattern GL_INDEX_SHIFT
+  , pattern GL_INDEX_WRITEMASK
+  , pattern GL_INT
+  , pattern GL_INTENSITY
+  , pattern GL_INTENSITY12
+  , pattern GL_INTENSITY16
+  , pattern GL_INTENSITY4
+  , pattern GL_INTENSITY8
+  , pattern GL_INVALID_ENUM
+  , pattern GL_INVALID_OPERATION
+  , pattern GL_INVALID_VALUE
+  , pattern GL_INVERT
+  , pattern GL_KEEP
+  , pattern GL_LEFT
+  , pattern GL_LEQUAL
+  , pattern GL_LESS
+  , pattern GL_LIGHT0
+  , pattern GL_LIGHT1
+  , pattern GL_LIGHT2
+  , pattern GL_LIGHT3
+  , pattern GL_LIGHT4
+  , pattern GL_LIGHT5
+  , pattern GL_LIGHT6
+  , pattern GL_LIGHT7
+  , pattern GL_LIGHTING
+  , pattern GL_LIGHTING_BIT
+  , pattern GL_LIGHT_MODEL_AMBIENT
+  , pattern GL_LIGHT_MODEL_LOCAL_VIEWER
+  , pattern GL_LIGHT_MODEL_TWO_SIDE
+  , pattern GL_LINE
+  , pattern GL_LINEAR
+  , pattern GL_LINEAR_ATTENUATION
+  , pattern GL_LINEAR_MIPMAP_LINEAR
+  , pattern GL_LINEAR_MIPMAP_NEAREST
+  , pattern GL_LINES
+  , pattern GL_LINE_BIT
+  , pattern GL_LINE_LOOP
+  , pattern GL_LINE_RESET_TOKEN
+  , pattern GL_LINE_SMOOTH
+  , pattern GL_LINE_SMOOTH_HINT
+  , pattern GL_LINE_STIPPLE
+  , pattern GL_LINE_STIPPLE_PATTERN
+  , pattern GL_LINE_STIPPLE_REPEAT
+  , pattern GL_LINE_STRIP
+  , pattern GL_LINE_TOKEN
+  , pattern GL_LINE_WIDTH
+  , pattern GL_LINE_WIDTH_GRANULARITY
+  , pattern GL_LINE_WIDTH_RANGE
+  , pattern GL_LIST_BASE
+  , pattern GL_LIST_BIT
+  , pattern GL_LIST_INDEX
+  , pattern GL_LIST_MODE
+  , pattern GL_LOAD
+  , pattern GL_LOGIC_OP
+  , pattern GL_LOGIC_OP_MODE
+  , pattern GL_LUMINANCE
+  , pattern GL_LUMINANCE12
+  , pattern GL_LUMINANCE12_ALPHA12
+  , pattern GL_LUMINANCE12_ALPHA4
+  , pattern GL_LUMINANCE16
+  , pattern GL_LUMINANCE16_ALPHA16
+  , pattern GL_LUMINANCE4
+  , pattern GL_LUMINANCE4_ALPHA4
+  , pattern GL_LUMINANCE6_ALPHA2
+  , pattern GL_LUMINANCE8
+  , pattern GL_LUMINANCE8_ALPHA8
+  , pattern GL_LUMINANCE_ALPHA
+  , pattern GL_MAP1_COLOR_4
+  , pattern GL_MAP1_GRID_DOMAIN
+  , pattern GL_MAP1_GRID_SEGMENTS
+  , pattern GL_MAP1_INDEX
+  , pattern GL_MAP1_NORMAL
+  , pattern GL_MAP1_TEXTURE_COORD_1
+  , pattern GL_MAP1_TEXTURE_COORD_2
+  , pattern GL_MAP1_TEXTURE_COORD_3
+  , pattern GL_MAP1_TEXTURE_COORD_4
+  , pattern GL_MAP1_VERTEX_3
+  , pattern GL_MAP1_VERTEX_4
+  , pattern GL_MAP2_COLOR_4
+  , pattern GL_MAP2_GRID_DOMAIN
+  , pattern GL_MAP2_GRID_SEGMENTS
+  , pattern GL_MAP2_INDEX
+  , pattern GL_MAP2_NORMAL
+  , pattern GL_MAP2_TEXTURE_COORD_1
+  , pattern GL_MAP2_TEXTURE_COORD_2
+  , pattern GL_MAP2_TEXTURE_COORD_3
+  , pattern GL_MAP2_TEXTURE_COORD_4
+  , pattern GL_MAP2_VERTEX_3
+  , pattern GL_MAP2_VERTEX_4
+  , pattern GL_MAP_COLOR
+  , pattern GL_MAP_STENCIL
+  , pattern GL_MATRIX_MODE
+  , pattern GL_MAX_ATTRIB_STACK_DEPTH
+  , pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH
+  , pattern GL_MAX_CLIP_PLANES
+  , pattern GL_MAX_EVAL_ORDER
+  , pattern GL_MAX_LIGHTS
+  , pattern GL_MAX_LIST_NESTING
+  , pattern GL_MAX_MODELVIEW_STACK_DEPTH
+  , pattern GL_MAX_NAME_STACK_DEPTH
+  , pattern GL_MAX_PIXEL_MAP_TABLE
+  , pattern GL_MAX_PROJECTION_STACK_DEPTH
+  , pattern GL_MAX_TEXTURE_SIZE
+  , pattern GL_MAX_TEXTURE_STACK_DEPTH
+  , pattern GL_MAX_VIEWPORT_DIMS
+  , pattern GL_MODELVIEW
+  , pattern GL_MODELVIEW_MATRIX
+  , pattern GL_MODELVIEW_STACK_DEPTH
+  , pattern GL_MODULATE
+  , pattern GL_MULT
+  , pattern GL_N3F_V3F
+  , pattern GL_NAME_STACK_DEPTH
+  , pattern GL_NAND
+  , pattern GL_NEAREST
+  , pattern GL_NEAREST_MIPMAP_LINEAR
+  , pattern GL_NEAREST_MIPMAP_NEAREST
+  , pattern GL_NEVER
+  , pattern GL_NICEST
+  , pattern GL_NONE
+  , pattern GL_NOOP
+  , pattern GL_NOR
+  , pattern GL_NORMALIZE
+  , pattern GL_NORMAL_ARRAY
+  , pattern GL_NORMAL_ARRAY_POINTER
+  , pattern GL_NORMAL_ARRAY_STRIDE
+  , pattern GL_NORMAL_ARRAY_TYPE
+  , pattern GL_NOTEQUAL
+  , pattern GL_NO_ERROR
+  , pattern GL_OBJECT_LINEAR
+  , pattern GL_OBJECT_PLANE
+  , pattern GL_ONE
+  , pattern GL_ONE_MINUS_DST_ALPHA
+  , pattern GL_ONE_MINUS_DST_COLOR
+  , pattern GL_ONE_MINUS_SRC_ALPHA
+  , pattern GL_ONE_MINUS_SRC_COLOR
+  , pattern GL_OR
+  , pattern GL_ORDER
+  , pattern GL_OR_INVERTED
+  , pattern GL_OR_REVERSE
+  , pattern GL_OUT_OF_MEMORY
+  , pattern GL_PACK_ALIGNMENT
+  , pattern GL_PACK_LSB_FIRST
+  , pattern GL_PACK_ROW_LENGTH
+  , pattern GL_PACK_SKIP_PIXELS
+  , pattern GL_PACK_SKIP_ROWS
+  , pattern GL_PACK_SWAP_BYTES
+  , pattern GL_PASS_THROUGH_TOKEN
+  , pattern GL_PERSPECTIVE_CORRECTION_HINT
+  , pattern GL_PIXEL_MAP_A_TO_A
+  , pattern GL_PIXEL_MAP_A_TO_A_SIZE
+  , pattern GL_PIXEL_MAP_B_TO_B
+  , pattern GL_PIXEL_MAP_B_TO_B_SIZE
+  , pattern GL_PIXEL_MAP_G_TO_G
+  , pattern GL_PIXEL_MAP_G_TO_G_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_A
+  , pattern GL_PIXEL_MAP_I_TO_A_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_B
+  , pattern GL_PIXEL_MAP_I_TO_B_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_G
+  , pattern GL_PIXEL_MAP_I_TO_G_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_I
+  , pattern GL_PIXEL_MAP_I_TO_I_SIZE
+  , pattern GL_PIXEL_MAP_I_TO_R
+  , pattern GL_PIXEL_MAP_I_TO_R_SIZE
+  , pattern GL_PIXEL_MAP_R_TO_R
+  , pattern GL_PIXEL_MAP_R_TO_R_SIZE
+  , pattern GL_PIXEL_MAP_S_TO_S
+  , pattern GL_PIXEL_MAP_S_TO_S_SIZE
+  , pattern GL_PIXEL_MODE_BIT
+  , pattern GL_POINT
+  , pattern GL_POINTS
+  , pattern GL_POINT_BIT
+  , pattern GL_POINT_SIZE
+  , pattern GL_POINT_SIZE_GRANULARITY
+  , pattern GL_POINT_SIZE_RANGE
+  , pattern GL_POINT_SMOOTH
+  , pattern GL_POINT_SMOOTH_HINT
+  , pattern GL_POINT_TOKEN
+  , pattern GL_POLYGON
+  , pattern GL_POLYGON_BIT
+  , pattern GL_POLYGON_MODE
+  , pattern GL_POLYGON_OFFSET_FACTOR
+  , pattern GL_POLYGON_OFFSET_FILL
+  , pattern GL_POLYGON_OFFSET_LINE
+  , pattern GL_POLYGON_OFFSET_POINT
+  , pattern GL_POLYGON_OFFSET_UNITS
+  , pattern GL_POLYGON_SMOOTH
+  , pattern GL_POLYGON_SMOOTH_HINT
+  , pattern GL_POLYGON_STIPPLE
+  , pattern GL_POLYGON_STIPPLE_BIT
+  , pattern GL_POLYGON_TOKEN
+  , pattern GL_POSITION
+  , pattern GL_PROJECTION
+  , pattern GL_PROJECTION_MATRIX
+  , pattern GL_PROJECTION_STACK_DEPTH
+  , pattern GL_PROXY_TEXTURE_1D
+  , pattern GL_PROXY_TEXTURE_2D
+  , pattern GL_Q
+  , pattern GL_QUADRATIC_ATTENUATION
+  , pattern GL_QUADS
+  , pattern GL_QUAD_STRIP
+  , pattern GL_R
+  , pattern GL_R3_G3_B2
+  , pattern GL_READ_BUFFER
+  , pattern GL_RED
+  , pattern GL_RED_BIAS
+  , pattern GL_RED_BITS
+  , pattern GL_RED_SCALE
+  , pattern GL_RENDER
+  , pattern GL_RENDERER
+  , pattern GL_RENDER_MODE
+  , pattern GL_REPEAT
+  , pattern GL_REPLACE
+  , pattern GL_RETURN
+  , pattern GL_RGB
+  , pattern GL_RGB10
+  , pattern GL_RGB10_A2
+  , pattern GL_RGB12
+  , pattern GL_RGB16
+  , pattern GL_RGB4
+  , pattern GL_RGB5
+  , pattern GL_RGB5_A1
+  , pattern GL_RGB8
+  , pattern GL_RGBA
+  , pattern GL_RGBA12
+  , pattern GL_RGBA16
+  , pattern GL_RGBA2
+  , pattern GL_RGBA4
+  , pattern GL_RGBA8
+  , pattern GL_RGBA_MODE
+  , pattern GL_RIGHT
+  , pattern GL_S
+  , pattern GL_SCISSOR_BIT
+  , pattern GL_SCISSOR_BOX
+  , pattern GL_SCISSOR_TEST
+  , pattern GL_SELECT
+  , pattern GL_SELECTION_BUFFER_POINTER
+  , pattern GL_SELECTION_BUFFER_SIZE
+  , pattern GL_SET
+  , pattern GL_SHADE_MODEL
+  , pattern GL_SHININESS
+  , pattern GL_SHORT
+  , pattern GL_SMOOTH
+  , pattern GL_SPECULAR
+  , pattern GL_SPHERE_MAP
+  , pattern GL_SPOT_CUTOFF
+  , pattern GL_SPOT_DIRECTION
+  , pattern GL_SPOT_EXPONENT
+  , pattern GL_SRC_ALPHA
+  , pattern GL_SRC_ALPHA_SATURATE
+  , pattern GL_SRC_COLOR
+  , pattern GL_STACK_OVERFLOW
+  , pattern GL_STACK_UNDERFLOW
+  , pattern GL_STENCIL
+  , pattern GL_STENCIL_BITS
+  , pattern GL_STENCIL_BUFFER_BIT
+  , pattern GL_STENCIL_CLEAR_VALUE
+  , pattern GL_STENCIL_FAIL
+  , pattern GL_STENCIL_FUNC
+  , pattern GL_STENCIL_INDEX
+  , pattern GL_STENCIL_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_REF
+  , pattern GL_STENCIL_TEST
+  , pattern GL_STENCIL_VALUE_MASK
+  , pattern GL_STENCIL_WRITEMASK
+  , pattern GL_STEREO
+  , pattern GL_SUBPIXEL_BITS
+  , pattern GL_T
+  , pattern GL_T2F_C3F_V3F
+  , pattern GL_T2F_C4F_N3F_V3F
+  , pattern GL_T2F_C4UB_V3F
+  , pattern GL_T2F_N3F_V3F
+  , pattern GL_T2F_V3F
+  , pattern GL_T4F_C4F_N3F_V4F
+  , pattern GL_T4F_V4F
+  , pattern GL_TEXTURE
+  , pattern GL_TEXTURE_1D
+  , pattern GL_TEXTURE_2D
+  , pattern GL_TEXTURE_ALPHA_SIZE
+  , pattern GL_TEXTURE_BINDING_1D
+  , pattern GL_TEXTURE_BINDING_2D
+  , pattern GL_TEXTURE_BIT
+  , pattern GL_TEXTURE_BLUE_SIZE
+  , pattern GL_TEXTURE_BORDER
+  , pattern GL_TEXTURE_BORDER_COLOR
+  , pattern GL_TEXTURE_COMPONENTS
+  , pattern GL_TEXTURE_COORD_ARRAY
+  , pattern GL_TEXTURE_COORD_ARRAY_POINTER
+  , pattern GL_TEXTURE_COORD_ARRAY_SIZE
+  , pattern GL_TEXTURE_COORD_ARRAY_STRIDE
+  , pattern GL_TEXTURE_COORD_ARRAY_TYPE
+  , pattern GL_TEXTURE_ENV
+  , pattern GL_TEXTURE_ENV_COLOR
+  , pattern GL_TEXTURE_ENV_MODE
+  , pattern GL_TEXTURE_GEN_MODE
+  , pattern GL_TEXTURE_GEN_Q
+  , pattern GL_TEXTURE_GEN_R
+  , pattern GL_TEXTURE_GEN_S
+  , pattern GL_TEXTURE_GEN_T
+  , pattern GL_TEXTURE_GREEN_SIZE
+  , pattern GL_TEXTURE_HEIGHT
+  , pattern GL_TEXTURE_INTENSITY_SIZE
+  , pattern GL_TEXTURE_INTERNAL_FORMAT
+  , pattern GL_TEXTURE_LUMINANCE_SIZE
+  , pattern GL_TEXTURE_MAG_FILTER
+  , pattern GL_TEXTURE_MATRIX
+  , pattern GL_TEXTURE_MIN_FILTER
+  , pattern GL_TEXTURE_PRIORITY
+  , pattern GL_TEXTURE_RED_SIZE
+  , pattern GL_TEXTURE_RESIDENT
+  , pattern GL_TEXTURE_STACK_DEPTH
+  , pattern GL_TEXTURE_WIDTH
+  , pattern GL_TEXTURE_WRAP_S
+  , pattern GL_TEXTURE_WRAP_T
+  , pattern GL_TRANSFORM_BIT
+  , pattern GL_TRIANGLES
+  , pattern GL_TRIANGLE_FAN
+  , pattern GL_TRIANGLE_STRIP
+  , pattern GL_TRUE
+  , pattern GL_UNPACK_ALIGNMENT
+  , pattern GL_UNPACK_LSB_FIRST
+  , pattern GL_UNPACK_ROW_LENGTH
+  , pattern GL_UNPACK_SKIP_PIXELS
+  , pattern GL_UNPACK_SKIP_ROWS
+  , pattern GL_UNPACK_SWAP_BYTES
+  , pattern GL_UNSIGNED_BYTE
+  , pattern GL_UNSIGNED_INT
+  , pattern GL_UNSIGNED_SHORT
+  , pattern GL_V2F
+  , pattern GL_V3F
+  , pattern GL_VENDOR
+  , pattern GL_VERSION
+  , pattern GL_VERTEX_ARRAY
+  , pattern GL_VERTEX_ARRAY_POINTER
+  , pattern GL_VERTEX_ARRAY_SIZE
+  , pattern GL_VERTEX_ARRAY_STRIDE
+  , pattern GL_VERTEX_ARRAY_TYPE
+  , pattern GL_VIEWPORT
+  , pattern GL_VIEWPORT_BIT
+  , pattern GL_XOR
+  , pattern GL_ZERO
+  , pattern GL_ZOOM_X
+  , pattern GL_ZOOM_Y
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard10
diff --git a/generated-src/Graphics/GL/Standard12.hs b/generated-src/Graphics/GL/Standard12.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard12.hs
@@ -0,0 +1,55 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard12 (
+  -- * Graphics.GL.Standard12
+    module Graphics.GL.Standard11
+  , glCopyTexSubImage3D
+  , glDrawRangeElements
+  , glTexImage3D
+  , glTexSubImage3D
+  , pattern GL_ALIASED_LINE_WIDTH_RANGE
+  , pattern GL_ALIASED_POINT_SIZE_RANGE
+  , pattern GL_BGR
+  , pattern GL_BGRA
+  , pattern GL_CLAMP_TO_EDGE
+  , pattern GL_LIGHT_MODEL_COLOR_CONTROL
+  , pattern GL_MAX_3D_TEXTURE_SIZE
+  , pattern GL_MAX_ELEMENTS_INDICES
+  , pattern GL_MAX_ELEMENTS_VERTICES
+  , pattern GL_PACK_IMAGE_HEIGHT
+  , pattern GL_PACK_SKIP_IMAGES
+  , pattern GL_PROXY_TEXTURE_3D
+  , pattern GL_RESCALE_NORMAL
+  , pattern GL_SEPARATE_SPECULAR_COLOR
+  , pattern GL_SINGLE_COLOR
+  , pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY
+  , pattern GL_SMOOTH_LINE_WIDTH_RANGE
+  , pattern GL_SMOOTH_POINT_SIZE_GRANULARITY
+  , pattern GL_SMOOTH_POINT_SIZE_RANGE
+  , pattern GL_TEXTURE_3D
+  , pattern GL_TEXTURE_BASE_LEVEL
+  , pattern GL_TEXTURE_BINDING_3D
+  , pattern GL_TEXTURE_DEPTH
+  , pattern GL_TEXTURE_MAX_LEVEL
+  , pattern GL_TEXTURE_MAX_LOD
+  , pattern GL_TEXTURE_MIN_LOD
+  , pattern GL_TEXTURE_WRAP_R
+  , pattern GL_UNPACK_IMAGE_HEIGHT
+  , pattern GL_UNPACK_SKIP_IMAGES
+  , pattern GL_UNSIGNED_BYTE_2_3_3_REV
+  , pattern GL_UNSIGNED_BYTE_3_3_2
+  , pattern GL_UNSIGNED_INT_10_10_10_2
+  , pattern GL_UNSIGNED_INT_2_10_10_10_REV
+  , pattern GL_UNSIGNED_INT_8_8_8_8
+  , pattern GL_UNSIGNED_INT_8_8_8_8_REV
+  , pattern GL_UNSIGNED_SHORT_1_5_5_5_REV
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4
+  , pattern GL_UNSIGNED_SHORT_4_4_4_4_REV
+  , pattern GL_UNSIGNED_SHORT_5_5_5_1
+  , pattern GL_UNSIGNED_SHORT_5_6_5
+  , pattern GL_UNSIGNED_SHORT_5_6_5_REV
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard11
diff --git a/generated-src/Graphics/GL/Standard13.hs b/generated-src/Graphics/GL/Standard13.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard13.hs
@@ -0,0 +1,152 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard13 (
+  -- * Graphics.GL.Standard13
+    module Graphics.GL.Standard12
+  , glActiveTexture
+  , glClientActiveTexture
+  , glCompressedTexImage1D
+  , glCompressedTexImage2D
+  , glCompressedTexImage3D
+  , glCompressedTexSubImage1D
+  , glCompressedTexSubImage2D
+  , glCompressedTexSubImage3D
+  , glGetCompressedTexImage
+  , glLoadTransposeMatrixd
+  , glLoadTransposeMatrixf
+  , glMultTransposeMatrixd
+  , glMultTransposeMatrixf
+  , glMultiTexCoord1d
+  , glMultiTexCoord1dv
+  , glMultiTexCoord1f
+  , glMultiTexCoord1fv
+  , glMultiTexCoord1i
+  , glMultiTexCoord1iv
+  , glMultiTexCoord1s
+  , glMultiTexCoord1sv
+  , glMultiTexCoord2d
+  , glMultiTexCoord2dv
+  , glMultiTexCoord2f
+  , glMultiTexCoord2fv
+  , glMultiTexCoord2i
+  , glMultiTexCoord2iv
+  , glMultiTexCoord2s
+  , glMultiTexCoord2sv
+  , glMultiTexCoord3d
+  , glMultiTexCoord3dv
+  , glMultiTexCoord3f
+  , glMultiTexCoord3fv
+  , glMultiTexCoord3i
+  , glMultiTexCoord3iv
+  , glMultiTexCoord3s
+  , glMultiTexCoord3sv
+  , glMultiTexCoord4d
+  , glMultiTexCoord4dv
+  , glMultiTexCoord4f
+  , glMultiTexCoord4fv
+  , glMultiTexCoord4i
+  , glMultiTexCoord4iv
+  , glMultiTexCoord4s
+  , glMultiTexCoord4sv
+  , glSampleCoverage
+  , pattern GL_ACTIVE_TEXTURE
+  , pattern GL_ADD_SIGNED
+  , pattern GL_CLAMP_TO_BORDER
+  , pattern GL_CLIENT_ACTIVE_TEXTURE
+  , pattern GL_COMBINE
+  , pattern GL_COMBINE_ALPHA
+  , pattern GL_COMBINE_RGB
+  , pattern GL_COMPRESSED_ALPHA
+  , pattern GL_COMPRESSED_INTENSITY
+  , pattern GL_COMPRESSED_LUMINANCE
+  , pattern GL_COMPRESSED_LUMINANCE_ALPHA
+  , pattern GL_COMPRESSED_RGB
+  , pattern GL_COMPRESSED_RGBA
+  , pattern GL_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_CONSTANT
+  , pattern GL_DOT3_RGB
+  , pattern GL_DOT3_RGBA
+  , pattern GL_INTERPOLATE
+  , pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE
+  , pattern GL_MAX_TEXTURE_UNITS
+  , pattern GL_MULTISAMPLE
+  , pattern GL_MULTISAMPLE_BIT
+  , pattern GL_NORMAL_MAP
+  , pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS
+  , pattern GL_OPERAND0_ALPHA
+  , pattern GL_OPERAND0_RGB
+  , pattern GL_OPERAND1_ALPHA
+  , pattern GL_OPERAND1_RGB
+  , pattern GL_OPERAND2_ALPHA
+  , pattern GL_OPERAND2_RGB
+  , pattern GL_PREVIOUS
+  , pattern GL_PRIMARY_COLOR
+  , pattern GL_PROXY_TEXTURE_CUBE_MAP
+  , pattern GL_REFLECTION_MAP
+  , pattern GL_RGB_SCALE
+  , pattern GL_SAMPLES
+  , pattern GL_SAMPLE_ALPHA_TO_COVERAGE
+  , pattern GL_SAMPLE_ALPHA_TO_ONE
+  , pattern GL_SAMPLE_BUFFERS
+  , pattern GL_SAMPLE_COVERAGE
+  , pattern GL_SAMPLE_COVERAGE_INVERT
+  , pattern GL_SAMPLE_COVERAGE_VALUE
+  , pattern GL_SOURCE0_ALPHA
+  , pattern GL_SOURCE0_RGB
+  , pattern GL_SOURCE1_ALPHA
+  , pattern GL_SOURCE1_RGB
+  , pattern GL_SOURCE2_ALPHA
+  , pattern GL_SOURCE2_RGB
+  , pattern GL_SUBTRACT
+  , pattern GL_TEXTURE0
+  , pattern GL_TEXTURE1
+  , pattern GL_TEXTURE10
+  , pattern GL_TEXTURE11
+  , pattern GL_TEXTURE12
+  , pattern GL_TEXTURE13
+  , pattern GL_TEXTURE14
+  , pattern GL_TEXTURE15
+  , pattern GL_TEXTURE16
+  , pattern GL_TEXTURE17
+  , pattern GL_TEXTURE18
+  , pattern GL_TEXTURE19
+  , pattern GL_TEXTURE2
+  , pattern GL_TEXTURE20
+  , pattern GL_TEXTURE21
+  , pattern GL_TEXTURE22
+  , pattern GL_TEXTURE23
+  , pattern GL_TEXTURE24
+  , pattern GL_TEXTURE25
+  , pattern GL_TEXTURE26
+  , pattern GL_TEXTURE27
+  , pattern GL_TEXTURE28
+  , pattern GL_TEXTURE29
+  , pattern GL_TEXTURE3
+  , pattern GL_TEXTURE30
+  , pattern GL_TEXTURE31
+  , pattern GL_TEXTURE4
+  , pattern GL_TEXTURE5
+  , pattern GL_TEXTURE6
+  , pattern GL_TEXTURE7
+  , pattern GL_TEXTURE8
+  , pattern GL_TEXTURE9
+  , pattern GL_TEXTURE_BINDING_CUBE_MAP
+  , pattern GL_TEXTURE_COMPRESSED
+  , pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE
+  , pattern GL_TEXTURE_COMPRESSION_HINT
+  , pattern GL_TEXTURE_CUBE_MAP
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
+  , pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y
+  , pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z
+  , pattern GL_TRANSPOSE_COLOR_MATRIX
+  , pattern GL_TRANSPOSE_MODELVIEW_MATRIX
+  , pattern GL_TRANSPOSE_PROJECTION_MATRIX
+  , pattern GL_TRANSPOSE_TEXTURE_MATRIX
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard12
diff --git a/generated-src/Graphics/GL/Standard14.hs b/generated-src/Graphics/GL/Standard14.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard14.hs
@@ -0,0 +1,105 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard14 (
+  -- * Graphics.GL.Standard14
+    module Graphics.GL.Standard13
+  , glBlendColor
+  , glBlendEquation
+  , glBlendFuncSeparate
+  , glFogCoordPointer
+  , glFogCoordd
+  , glFogCoorddv
+  , glFogCoordf
+  , glFogCoordfv
+  , glMultiDrawArrays
+  , glMultiDrawElements
+  , glPointParameterf
+  , glPointParameterfv
+  , glPointParameteri
+  , glPointParameteriv
+  , glSecondaryColor3b
+  , glSecondaryColor3bv
+  , glSecondaryColor3d
+  , glSecondaryColor3dv
+  , glSecondaryColor3f
+  , glSecondaryColor3fv
+  , glSecondaryColor3i
+  , glSecondaryColor3iv
+  , glSecondaryColor3s
+  , glSecondaryColor3sv
+  , glSecondaryColor3ub
+  , glSecondaryColor3ubv
+  , glSecondaryColor3ui
+  , glSecondaryColor3uiv
+  , glSecondaryColor3us
+  , glSecondaryColor3usv
+  , glSecondaryColorPointer
+  , glWindowPos2d
+  , glWindowPos2dv
+  , glWindowPos2f
+  , glWindowPos2fv
+  , glWindowPos2i
+  , glWindowPos2iv
+  , glWindowPos2s
+  , glWindowPos2sv
+  , glWindowPos3d
+  , glWindowPos3dv
+  , glWindowPos3f
+  , glWindowPos3fv
+  , glWindowPos3i
+  , glWindowPos3iv
+  , glWindowPos3s
+  , glWindowPos3sv
+  , pattern GL_BLEND_DST_ALPHA
+  , pattern GL_BLEND_DST_RGB
+  , pattern GL_BLEND_SRC_ALPHA
+  , pattern GL_BLEND_SRC_RGB
+  , pattern GL_COLOR_SUM
+  , pattern GL_COMPARE_R_TO_TEXTURE
+  , pattern GL_CONSTANT_ALPHA
+  , pattern GL_CONSTANT_COLOR
+  , pattern GL_CURRENT_FOG_COORDINATE
+  , pattern GL_CURRENT_SECONDARY_COLOR
+  , pattern GL_DECR_WRAP
+  , pattern GL_DEPTH_COMPONENT16
+  , pattern GL_DEPTH_COMPONENT24
+  , pattern GL_DEPTH_COMPONENT32
+  , pattern GL_DEPTH_TEXTURE_MODE
+  , pattern GL_FOG_COORDINATE
+  , pattern GL_FOG_COORDINATE_ARRAY
+  , pattern GL_FOG_COORDINATE_ARRAY_POINTER
+  , pattern GL_FOG_COORDINATE_ARRAY_STRIDE
+  , pattern GL_FOG_COORDINATE_ARRAY_TYPE
+  , pattern GL_FOG_COORDINATE_SOURCE
+  , pattern GL_FRAGMENT_DEPTH
+  , pattern GL_FUNC_ADD
+  , pattern GL_FUNC_REVERSE_SUBTRACT
+  , pattern GL_FUNC_SUBTRACT
+  , pattern GL_GENERATE_MIPMAP
+  , pattern GL_GENERATE_MIPMAP_HINT
+  , pattern GL_INCR_WRAP
+  , pattern GL_MAX
+  , pattern GL_MAX_TEXTURE_LOD_BIAS
+  , pattern GL_MIN
+  , pattern GL_MIRRORED_REPEAT
+  , pattern GL_ONE_MINUS_CONSTANT_ALPHA
+  , pattern GL_ONE_MINUS_CONSTANT_COLOR
+  , pattern GL_POINT_DISTANCE_ATTENUATION
+  , pattern GL_POINT_FADE_THRESHOLD_SIZE
+  , pattern GL_POINT_SIZE_MAX
+  , pattern GL_POINT_SIZE_MIN
+  , pattern GL_SECONDARY_COLOR_ARRAY
+  , pattern GL_SECONDARY_COLOR_ARRAY_POINTER
+  , pattern GL_SECONDARY_COLOR_ARRAY_SIZE
+  , pattern GL_SECONDARY_COLOR_ARRAY_STRIDE
+  , pattern GL_SECONDARY_COLOR_ARRAY_TYPE
+  , pattern GL_TEXTURE_COMPARE_FUNC
+  , pattern GL_TEXTURE_COMPARE_MODE
+  , pattern GL_TEXTURE_DEPTH_SIZE
+  , pattern GL_TEXTURE_FILTER_CONTROL
+  , pattern GL_TEXTURE_LOD_BIAS
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard13
diff --git a/generated-src/Graphics/GL/Standard15.hs b/generated-src/Graphics/GL/Standard15.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard15.hs
@@ -0,0 +1,79 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard15 (
+  -- * Graphics.GL.Standard15
+    module Graphics.GL.Standard14
+  , glBeginQuery
+  , glBindBuffer
+  , glBufferData
+  , glBufferSubData
+  , glDeleteBuffers
+  , glDeleteQueries
+  , glEndQuery
+  , glGenBuffers
+  , glGenQueries
+  , glGetBufferParameteriv
+  , glGetBufferPointerv
+  , glGetBufferSubData
+  , glGetQueryObjectiv
+  , glGetQueryObjectuiv
+  , glGetQueryiv
+  , glIsBuffer
+  , glIsQuery
+  , glMapBuffer
+  , glUnmapBuffer
+  , pattern GL_ARRAY_BUFFER
+  , pattern GL_ARRAY_BUFFER_BINDING
+  , pattern GL_BUFFER_ACCESS
+  , pattern GL_BUFFER_MAPPED
+  , pattern GL_BUFFER_MAP_POINTER
+  , pattern GL_BUFFER_SIZE
+  , pattern GL_BUFFER_USAGE
+  , pattern GL_COLOR_ARRAY_BUFFER_BINDING
+  , pattern GL_CURRENT_FOG_COORD
+  , pattern GL_CURRENT_QUERY
+  , pattern GL_DYNAMIC_COPY
+  , pattern GL_DYNAMIC_DRAW
+  , pattern GL_DYNAMIC_READ
+  , pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING
+  , pattern GL_ELEMENT_ARRAY_BUFFER
+  , pattern GL_ELEMENT_ARRAY_BUFFER_BINDING
+  , pattern GL_FOG_COORD
+  , pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
+  , pattern GL_FOG_COORD_ARRAY
+  , pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING
+  , pattern GL_FOG_COORD_ARRAY_POINTER
+  , pattern GL_FOG_COORD_ARRAY_STRIDE
+  , pattern GL_FOG_COORD_ARRAY_TYPE
+  , pattern GL_FOG_COORD_SRC
+  , pattern GL_INDEX_ARRAY_BUFFER_BINDING
+  , pattern GL_NORMAL_ARRAY_BUFFER_BINDING
+  , pattern GL_QUERY_COUNTER_BITS
+  , pattern GL_QUERY_RESULT
+  , pattern GL_QUERY_RESULT_AVAILABLE
+  , pattern GL_READ_ONLY
+  , pattern GL_READ_WRITE
+  , pattern GL_SAMPLES_PASSED
+  , pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING
+  , pattern GL_SRC0_ALPHA
+  , pattern GL_SRC0_RGB
+  , pattern GL_SRC1_ALPHA
+  , pattern GL_SRC1_RGB
+  , pattern GL_SRC2_ALPHA
+  , pattern GL_SRC2_RGB
+  , pattern GL_STATIC_COPY
+  , pattern GL_STATIC_DRAW
+  , pattern GL_STATIC_READ
+  , pattern GL_STREAM_COPY
+  , pattern GL_STREAM_DRAW
+  , pattern GL_STREAM_READ
+  , pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ARRAY_BUFFER_BINDING
+  , pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+  , pattern GL_WEIGHT_ARRAY_BUFFER_BINDING
+  , pattern GL_WRITE_ONLY
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard14
diff --git a/generated-src/Graphics/GL/Standard20.hs b/generated-src/Graphics/GL/Standard20.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard20.hs
@@ -0,0 +1,187 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard20 (
+  -- * Graphics.GL.Standard20
+    module Graphics.GL.Standard15
+  , glAttachShader
+  , glBindAttribLocation
+  , glBlendEquationSeparate
+  , glCompileShader
+  , glCreateProgram
+  , glCreateShader
+  , glDeleteProgram
+  , glDeleteShader
+  , glDetachShader
+  , glDisableVertexAttribArray
+  , glDrawBuffers
+  , glEnableVertexAttribArray
+  , glGetActiveAttrib
+  , glGetActiveUniform
+  , glGetAttachedShaders
+  , glGetAttribLocation
+  , glGetProgramInfoLog
+  , glGetProgramiv
+  , glGetShaderInfoLog
+  , glGetShaderSource
+  , glGetShaderiv
+  , glGetUniformLocation
+  , glGetUniformfv
+  , glGetUniformiv
+  , glGetVertexAttribPointerv
+  , glGetVertexAttribdv
+  , glGetVertexAttribfv
+  , glGetVertexAttribiv
+  , glIsProgram
+  , glIsShader
+  , glLinkProgram
+  , glShaderSource
+  , glStencilFuncSeparate
+  , glStencilMaskSeparate
+  , glStencilOpSeparate
+  , glUniform1f
+  , glUniform1fv
+  , glUniform1i
+  , glUniform1iv
+  , glUniform2f
+  , glUniform2fv
+  , glUniform2i
+  , glUniform2iv
+  , glUniform3f
+  , glUniform3fv
+  , glUniform3i
+  , glUniform3iv
+  , glUniform4f
+  , glUniform4fv
+  , glUniform4i
+  , glUniform4iv
+  , glUniformMatrix2fv
+  , glUniformMatrix3fv
+  , glUniformMatrix4fv
+  , glUseProgram
+  , glValidateProgram
+  , glVertexAttrib1d
+  , glVertexAttrib1dv
+  , glVertexAttrib1f
+  , glVertexAttrib1fv
+  , glVertexAttrib1s
+  , glVertexAttrib1sv
+  , glVertexAttrib2d
+  , glVertexAttrib2dv
+  , glVertexAttrib2f
+  , glVertexAttrib2fv
+  , glVertexAttrib2s
+  , glVertexAttrib2sv
+  , glVertexAttrib3d
+  , glVertexAttrib3dv
+  , glVertexAttrib3f
+  , glVertexAttrib3fv
+  , glVertexAttrib3s
+  , glVertexAttrib3sv
+  , glVertexAttrib4Nbv
+  , glVertexAttrib4Niv
+  , glVertexAttrib4Nsv
+  , glVertexAttrib4Nub
+  , glVertexAttrib4Nubv
+  , glVertexAttrib4Nuiv
+  , glVertexAttrib4Nusv
+  , glVertexAttrib4bv
+  , glVertexAttrib4d
+  , glVertexAttrib4dv
+  , glVertexAttrib4f
+  , glVertexAttrib4fv
+  , glVertexAttrib4iv
+  , glVertexAttrib4s
+  , glVertexAttrib4sv
+  , glVertexAttrib4ubv
+  , glVertexAttrib4uiv
+  , glVertexAttrib4usv
+  , glVertexAttribPointer
+  , pattern GL_ACTIVE_ATTRIBUTES
+  , pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
+  , pattern GL_ACTIVE_UNIFORMS
+  , pattern GL_ACTIVE_UNIFORM_MAX_LENGTH
+  , pattern GL_ATTACHED_SHADERS
+  , pattern GL_BLEND_EQUATION_ALPHA
+  , pattern GL_BLEND_EQUATION_RGB
+  , pattern GL_BOOL
+  , pattern GL_BOOL_VEC2
+  , pattern GL_BOOL_VEC3
+  , pattern GL_BOOL_VEC4
+  , pattern GL_COMPILE_STATUS
+  , pattern GL_COORD_REPLACE
+  , pattern GL_CURRENT_PROGRAM
+  , pattern GL_CURRENT_VERTEX_ATTRIB
+  , pattern GL_DELETE_STATUS
+  , pattern GL_DRAW_BUFFER0
+  , pattern GL_DRAW_BUFFER1
+  , pattern GL_DRAW_BUFFER10
+  , pattern GL_DRAW_BUFFER11
+  , pattern GL_DRAW_BUFFER12
+  , pattern GL_DRAW_BUFFER13
+  , pattern GL_DRAW_BUFFER14
+  , pattern GL_DRAW_BUFFER15
+  , pattern GL_DRAW_BUFFER2
+  , pattern GL_DRAW_BUFFER3
+  , pattern GL_DRAW_BUFFER4
+  , pattern GL_DRAW_BUFFER5
+  , pattern GL_DRAW_BUFFER6
+  , pattern GL_DRAW_BUFFER7
+  , pattern GL_DRAW_BUFFER8
+  , pattern GL_DRAW_BUFFER9
+  , pattern GL_FLOAT_MAT2
+  , pattern GL_FLOAT_MAT3
+  , pattern GL_FLOAT_MAT4
+  , pattern GL_FLOAT_VEC2
+  , pattern GL_FLOAT_VEC3
+  , pattern GL_FLOAT_VEC4
+  , pattern GL_FRAGMENT_SHADER
+  , pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT
+  , pattern GL_INFO_LOG_LENGTH
+  , pattern GL_INT_VEC2
+  , pattern GL_INT_VEC3
+  , pattern GL_INT_VEC4
+  , pattern GL_LINK_STATUS
+  , pattern GL_LOWER_LEFT
+  , pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_DRAW_BUFFERS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS
+  , pattern GL_MAX_TEXTURE_COORDS
+  , pattern GL_MAX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_VARYING_FLOATS
+  , pattern GL_MAX_VERTEX_ATTRIBS
+  , pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
+  , pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS
+  , pattern GL_POINT_SPRITE
+  , pattern GL_POINT_SPRITE_COORD_ORIGIN
+  , pattern GL_SAMPLER_1D
+  , pattern GL_SAMPLER_1D_SHADOW
+  , pattern GL_SAMPLER_2D
+  , pattern GL_SAMPLER_2D_SHADOW
+  , pattern GL_SAMPLER_3D
+  , pattern GL_SAMPLER_CUBE
+  , pattern GL_SHADER_SOURCE_LENGTH
+  , pattern GL_SHADER_TYPE
+  , pattern GL_SHADING_LANGUAGE_VERSION
+  , pattern GL_STENCIL_BACK_FAIL
+  , pattern GL_STENCIL_BACK_FUNC
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL
+  , pattern GL_STENCIL_BACK_PASS_DEPTH_PASS
+  , pattern GL_STENCIL_BACK_REF
+  , pattern GL_STENCIL_BACK_VALUE_MASK
+  , pattern GL_STENCIL_BACK_WRITEMASK
+  , pattern GL_UPPER_LEFT
+  , pattern GL_VALIDATE_STATUS
+  , pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
+  , pattern GL_VERTEX_ATTRIB_ARRAY_POINTER
+  , pattern GL_VERTEX_ATTRIB_ARRAY_SIZE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE
+  , pattern GL_VERTEX_ATTRIB_ARRAY_TYPE
+  , pattern GL_VERTEX_PROGRAM_POINT_SIZE
+  , pattern GL_VERTEX_PROGRAM_TWO_SIDE
+  , pattern GL_VERTEX_SHADER
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard15
diff --git a/generated-src/Graphics/GL/Standard21.hs b/generated-src/Graphics/GL/Standard21.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard21.hs
@@ -0,0 +1,39 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard21 (
+  -- * Graphics.GL.Standard21
+    module Graphics.GL.Standard20
+  , glUniformMatrix2x3fv
+  , glUniformMatrix2x4fv
+  , glUniformMatrix3x2fv
+  , glUniformMatrix3x4fv
+  , glUniformMatrix4x2fv
+  , glUniformMatrix4x3fv
+  , pattern GL_COMPRESSED_SLUMINANCE
+  , pattern GL_COMPRESSED_SLUMINANCE_ALPHA
+  , pattern GL_COMPRESSED_SRGB
+  , pattern GL_COMPRESSED_SRGB_ALPHA
+  , pattern GL_CURRENT_RASTER_SECONDARY_COLOR
+  , pattern GL_FLOAT_MAT2x3
+  , pattern GL_FLOAT_MAT2x4
+  , pattern GL_FLOAT_MAT3x2
+  , pattern GL_FLOAT_MAT3x4
+  , pattern GL_FLOAT_MAT4x2
+  , pattern GL_FLOAT_MAT4x3
+  , pattern GL_PIXEL_PACK_BUFFER
+  , pattern GL_PIXEL_PACK_BUFFER_BINDING
+  , pattern GL_PIXEL_UNPACK_BUFFER
+  , pattern GL_PIXEL_UNPACK_BUFFER_BINDING
+  , pattern GL_SLUMINANCE
+  , pattern GL_SLUMINANCE8
+  , pattern GL_SLUMINANCE8_ALPHA8
+  , pattern GL_SLUMINANCE_ALPHA
+  , pattern GL_SRGB
+  , pattern GL_SRGB8
+  , pattern GL_SRGB8_ALPHA8
+  , pattern GL_SRGB_ALPHA
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard20
diff --git a/generated-src/Graphics/GL/Standard30.hs b/generated-src/Graphics/GL/Standard30.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard30.hs
@@ -0,0 +1,331 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard30 (
+  -- * Graphics.GL.Standard30
+    module Graphics.GL.Standard21
+  , glBeginConditionalRender
+  , glBeginTransformFeedback
+  , glBindBufferBase
+  , glBindBufferRange
+  , glBindFragDataLocation
+  , glBindFramebuffer
+  , glBindRenderbuffer
+  , glBindVertexArray
+  , glBlitFramebuffer
+  , glCheckFramebufferStatus
+  , glClampColor
+  , glClearBufferfi
+  , glClearBufferfv
+  , glClearBufferiv
+  , glClearBufferuiv
+  , glColorMaski
+  , glDeleteFramebuffers
+  , glDeleteRenderbuffers
+  , glDeleteVertexArrays
+  , glDisablei
+  , glEnablei
+  , glEndConditionalRender
+  , glEndTransformFeedback
+  , glFlushMappedBufferRange
+  , glFramebufferRenderbuffer
+  , glFramebufferTexture1D
+  , glFramebufferTexture2D
+  , glFramebufferTexture3D
+  , glFramebufferTextureLayer
+  , glGenFramebuffers
+  , glGenRenderbuffers
+  , glGenVertexArrays
+  , glGenerateMipmap
+  , glGetBooleani_v
+  , glGetFragDataLocation
+  , glGetFramebufferAttachmentParameteriv
+  , glGetIntegeri_v
+  , glGetRenderbufferParameteriv
+  , glGetStringi
+  , glGetTexParameterIiv
+  , glGetTexParameterIuiv
+  , glGetTransformFeedbackVarying
+  , glGetUniformuiv
+  , glGetVertexAttribIiv
+  , glGetVertexAttribIuiv
+  , glIsEnabledi
+  , glIsFramebuffer
+  , glIsRenderbuffer
+  , glIsVertexArray
+  , glMapBufferRange
+  , glRenderbufferStorage
+  , glRenderbufferStorageMultisample
+  , glTexParameterIiv
+  , glTexParameterIuiv
+  , glTransformFeedbackVaryings
+  , glUniform1ui
+  , glUniform1uiv
+  , glUniform2ui
+  , glUniform2uiv
+  , glUniform3ui
+  , glUniform3uiv
+  , glUniform4ui
+  , glUniform4uiv
+  , glVertexAttribI1i
+  , glVertexAttribI1iv
+  , glVertexAttribI1ui
+  , glVertexAttribI1uiv
+  , glVertexAttribI2i
+  , glVertexAttribI2iv
+  , glVertexAttribI2ui
+  , glVertexAttribI2uiv
+  , glVertexAttribI3i
+  , glVertexAttribI3iv
+  , glVertexAttribI3ui
+  , glVertexAttribI3uiv
+  , glVertexAttribI4bv
+  , glVertexAttribI4i
+  , glVertexAttribI4iv
+  , glVertexAttribI4sv
+  , glVertexAttribI4ubv
+  , glVertexAttribI4ui
+  , glVertexAttribI4uiv
+  , glVertexAttribI4usv
+  , glVertexAttribIPointer
+  , pattern GL_ALPHA_INTEGER
+  , pattern GL_BGRA_INTEGER
+  , pattern GL_BGR_INTEGER
+  , pattern GL_BLUE_INTEGER
+  , pattern GL_BUFFER_ACCESS_FLAGS
+  , pattern GL_BUFFER_MAP_LENGTH
+  , pattern GL_BUFFER_MAP_OFFSET
+  , pattern GL_CLAMP_FRAGMENT_COLOR
+  , pattern GL_CLAMP_READ_COLOR
+  , pattern GL_CLAMP_VERTEX_COLOR
+  , pattern GL_CLIP_DISTANCE0
+  , pattern GL_CLIP_DISTANCE1
+  , pattern GL_CLIP_DISTANCE2
+  , pattern GL_CLIP_DISTANCE3
+  , pattern GL_CLIP_DISTANCE4
+  , pattern GL_CLIP_DISTANCE5
+  , pattern GL_CLIP_DISTANCE6
+  , pattern GL_CLIP_DISTANCE7
+  , pattern GL_COLOR_ATTACHMENT0
+  , pattern GL_COLOR_ATTACHMENT1
+  , pattern GL_COLOR_ATTACHMENT10
+  , pattern GL_COLOR_ATTACHMENT11
+  , pattern GL_COLOR_ATTACHMENT12
+  , pattern GL_COLOR_ATTACHMENT13
+  , pattern GL_COLOR_ATTACHMENT14
+  , pattern GL_COLOR_ATTACHMENT15
+  , pattern GL_COLOR_ATTACHMENT16
+  , pattern GL_COLOR_ATTACHMENT17
+  , pattern GL_COLOR_ATTACHMENT18
+  , pattern GL_COLOR_ATTACHMENT19
+  , pattern GL_COLOR_ATTACHMENT2
+  , pattern GL_COLOR_ATTACHMENT20
+  , pattern GL_COLOR_ATTACHMENT21
+  , pattern GL_COLOR_ATTACHMENT22
+  , pattern GL_COLOR_ATTACHMENT23
+  , pattern GL_COLOR_ATTACHMENT24
+  , pattern GL_COLOR_ATTACHMENT25
+  , pattern GL_COLOR_ATTACHMENT26
+  , pattern GL_COLOR_ATTACHMENT27
+  , pattern GL_COLOR_ATTACHMENT28
+  , pattern GL_COLOR_ATTACHMENT29
+  , pattern GL_COLOR_ATTACHMENT3
+  , pattern GL_COLOR_ATTACHMENT30
+  , pattern GL_COLOR_ATTACHMENT31
+  , pattern GL_COLOR_ATTACHMENT4
+  , pattern GL_COLOR_ATTACHMENT5
+  , pattern GL_COLOR_ATTACHMENT6
+  , pattern GL_COLOR_ATTACHMENT7
+  , pattern GL_COLOR_ATTACHMENT8
+  , pattern GL_COLOR_ATTACHMENT9
+  , pattern GL_COMPARE_REF_TO_TEXTURE
+  , pattern GL_COMPRESSED_RED
+  , pattern GL_COMPRESSED_RED_RGTC1
+  , pattern GL_COMPRESSED_RG
+  , pattern GL_COMPRESSED_RG_RGTC2
+  , pattern GL_COMPRESSED_SIGNED_RED_RGTC1
+  , pattern GL_COMPRESSED_SIGNED_RG_RGTC2
+  , pattern GL_CONTEXT_FLAGS
+  , pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT
+  , pattern GL_DEPTH24_STENCIL8
+  , pattern GL_DEPTH32F_STENCIL8
+  , pattern GL_DEPTH_ATTACHMENT
+  , pattern GL_DEPTH_COMPONENT32F
+  , pattern GL_DEPTH_STENCIL
+  , pattern GL_DEPTH_STENCIL_ATTACHMENT
+  , pattern GL_DRAW_FRAMEBUFFER
+  , pattern GL_DRAW_FRAMEBUFFER_BINDING
+  , pattern GL_FIXED_ONLY
+  , pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
+  , pattern GL_FRAMEBUFFER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
+  , pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
+  , pattern GL_FRAMEBUFFER_BINDING
+  , pattern GL_FRAMEBUFFER_COMPLETE
+  , pattern GL_FRAMEBUFFER_DEFAULT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
+  , pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER
+  , pattern GL_FRAMEBUFFER_SRGB
+  , pattern GL_FRAMEBUFFER_UNDEFINED
+  , pattern GL_FRAMEBUFFER_UNSUPPORTED
+  , pattern GL_GREEN_INTEGER
+  , pattern GL_HALF_FLOAT
+  , pattern GL_INDEX
+  , pattern GL_INTERLEAVED_ATTRIBS
+  , pattern GL_INT_SAMPLER_1D
+  , pattern GL_INT_SAMPLER_1D_ARRAY
+  , pattern GL_INT_SAMPLER_2D
+  , pattern GL_INT_SAMPLER_2D_ARRAY
+  , pattern GL_INT_SAMPLER_3D
+  , pattern GL_INT_SAMPLER_CUBE
+  , pattern GL_INVALID_FRAMEBUFFER_OPERATION
+  , pattern GL_MAJOR_VERSION
+  , pattern GL_MAP_FLUSH_EXPLICIT_BIT
+  , pattern GL_MAP_INVALIDATE_BUFFER_BIT
+  , pattern GL_MAP_INVALIDATE_RANGE_BIT
+  , pattern GL_MAP_READ_BIT
+  , pattern GL_MAP_UNSYNCHRONIZED_BIT
+  , pattern GL_MAP_WRITE_BIT
+  , pattern GL_MAX_ARRAY_TEXTURE_LAYERS
+  , pattern GL_MAX_CLIP_DISTANCES
+  , pattern GL_MAX_COLOR_ATTACHMENTS
+  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET
+  , pattern GL_MAX_RENDERBUFFER_SIZE
+  , pattern GL_MAX_SAMPLES
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS
+  , pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS
+  , pattern GL_MAX_VARYING_COMPONENTS
+  , pattern GL_MINOR_VERSION
+  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET
+  , pattern GL_NUM_EXTENSIONS
+  , pattern GL_PRIMITIVES_GENERATED
+  , pattern GL_PROXY_TEXTURE_1D_ARRAY
+  , pattern GL_PROXY_TEXTURE_2D_ARRAY
+  , pattern GL_QUERY_BY_REGION_NO_WAIT
+  , pattern GL_QUERY_BY_REGION_WAIT
+  , pattern GL_QUERY_NO_WAIT
+  , pattern GL_QUERY_WAIT
+  , pattern GL_R11F_G11F_B10F
+  , pattern GL_R16
+  , pattern GL_R16F
+  , pattern GL_R16I
+  , pattern GL_R16UI
+  , pattern GL_R32F
+  , pattern GL_R32I
+  , pattern GL_R32UI
+  , pattern GL_R8
+  , pattern GL_R8I
+  , pattern GL_R8UI
+  , pattern GL_RASTERIZER_DISCARD
+  , pattern GL_READ_FRAMEBUFFER
+  , pattern GL_READ_FRAMEBUFFER_BINDING
+  , pattern GL_RED_INTEGER
+  , pattern GL_RENDERBUFFER
+  , pattern GL_RENDERBUFFER_ALPHA_SIZE
+  , pattern GL_RENDERBUFFER_BINDING
+  , pattern GL_RENDERBUFFER_BLUE_SIZE
+  , pattern GL_RENDERBUFFER_DEPTH_SIZE
+  , pattern GL_RENDERBUFFER_GREEN_SIZE
+  , pattern GL_RENDERBUFFER_HEIGHT
+  , pattern GL_RENDERBUFFER_INTERNAL_FORMAT
+  , pattern GL_RENDERBUFFER_RED_SIZE
+  , pattern GL_RENDERBUFFER_SAMPLES
+  , pattern GL_RENDERBUFFER_STENCIL_SIZE
+  , pattern GL_RENDERBUFFER_WIDTH
+  , pattern GL_RG
+  , pattern GL_RG16
+  , pattern GL_RG16F
+  , pattern GL_RG16I
+  , pattern GL_RG16UI
+  , pattern GL_RG32F
+  , pattern GL_RG32I
+  , pattern GL_RG32UI
+  , pattern GL_RG8
+  , pattern GL_RG8I
+  , pattern GL_RG8UI
+  , pattern GL_RGB16F
+  , pattern GL_RGB16I
+  , pattern GL_RGB16UI
+  , pattern GL_RGB32F
+  , pattern GL_RGB32I
+  , pattern GL_RGB32UI
+  , pattern GL_RGB8I
+  , pattern GL_RGB8UI
+  , pattern GL_RGB9_E5
+  , pattern GL_RGBA16F
+  , pattern GL_RGBA16I
+  , pattern GL_RGBA16UI
+  , pattern GL_RGBA32F
+  , pattern GL_RGBA32I
+  , pattern GL_RGBA32UI
+  , pattern GL_RGBA8I
+  , pattern GL_RGBA8UI
+  , pattern GL_RGBA_INTEGER
+  , pattern GL_RGB_INTEGER
+  , pattern GL_RG_INTEGER
+  , pattern GL_SAMPLER_1D_ARRAY
+  , pattern GL_SAMPLER_1D_ARRAY_SHADOW
+  , pattern GL_SAMPLER_2D_ARRAY
+  , pattern GL_SAMPLER_2D_ARRAY_SHADOW
+  , pattern GL_SAMPLER_CUBE_SHADOW
+  , pattern GL_SEPARATE_ATTRIBS
+  , pattern GL_STENCIL_ATTACHMENT
+  , pattern GL_STENCIL_INDEX1
+  , pattern GL_STENCIL_INDEX16
+  , pattern GL_STENCIL_INDEX4
+  , pattern GL_STENCIL_INDEX8
+  , pattern GL_TEXTURE_1D_ARRAY
+  , pattern GL_TEXTURE_2D_ARRAY
+  , pattern GL_TEXTURE_ALPHA_TYPE
+  , pattern GL_TEXTURE_BINDING_1D_ARRAY
+  , pattern GL_TEXTURE_BINDING_2D_ARRAY
+  , pattern GL_TEXTURE_BLUE_TYPE
+  , pattern GL_TEXTURE_DEPTH_TYPE
+  , pattern GL_TEXTURE_GREEN_TYPE
+  , pattern GL_TEXTURE_INTENSITY_TYPE
+  , pattern GL_TEXTURE_LUMINANCE_TYPE
+  , pattern GL_TEXTURE_RED_TYPE
+  , pattern GL_TEXTURE_SHARED_SIZE
+  , pattern GL_TEXTURE_STENCIL_SIZE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE
+  , pattern GL_TRANSFORM_FEEDBACK_BUFFER_START
+  , pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
+  , pattern GL_TRANSFORM_FEEDBACK_VARYINGS
+  , pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+  , pattern GL_UNSIGNED_INT_10F_11F_11F_REV
+  , pattern GL_UNSIGNED_INT_24_8
+  , pattern GL_UNSIGNED_INT_5_9_9_9_REV
+  , pattern GL_UNSIGNED_INT_SAMPLER_1D
+  , pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
+  , pattern GL_UNSIGNED_INT_SAMPLER_3D
+  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE
+  , pattern GL_UNSIGNED_INT_VEC2
+  , pattern GL_UNSIGNED_INT_VEC3
+  , pattern GL_UNSIGNED_INT_VEC4
+  , pattern GL_UNSIGNED_NORMALIZED
+  , pattern GL_VERTEX_ARRAY_BINDING
+  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard21
diff --git a/generated-src/Graphics/GL/Standard31.hs b/generated-src/Graphics/GL/Standard31.hs
new file mode 100644
--- /dev/null
+++ b/generated-src/Graphics/GL/Standard31.hs
@@ -0,0 +1,84 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Standard31 (
+  -- * Graphics.GL.Standard31
+    module Graphics.GL.Standard30
+  , glCopyBufferSubData
+  , glDrawArraysInstanced
+  , glDrawElementsInstanced
+  , glGetActiveUniformBlockName
+  , glGetActiveUniformBlockiv
+  , glGetActiveUniformName
+  , glGetActiveUniformsiv
+  , glGetUniformBlockIndex
+  , glGetUniformIndices
+  , glPrimitiveRestartIndex
+  , glTexBuffer
+  , glUniformBlockBinding
+  , pattern GL_ACTIVE_UNIFORM_BLOCKS
+  , pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH
+  , pattern GL_BLEND_COLOR
+  , pattern GL_COPY_READ_BUFFER
+  , pattern GL_COPY_WRITE_BUFFER
+  , pattern GL_INT_SAMPLER_2D_RECT
+  , pattern GL_INT_SAMPLER_BUFFER
+  , pattern GL_INVALID_INDEX
+  , pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS
+  , pattern GL_MAX_COMBINED_UNIFORM_BLOCKS
+  , pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS
+  , pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS
+  , pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS
+  , pattern GL_MAX_RECTANGLE_TEXTURE_SIZE
+  , pattern GL_MAX_TEXTURE_BUFFER_SIZE
+  , pattern GL_MAX_UNIFORM_BLOCK_SIZE
+  , pattern GL_MAX_UNIFORM_BUFFER_BINDINGS
+  , pattern GL_MAX_VERTEX_UNIFORM_BLOCKS
+  , pattern GL_PRIMITIVE_RESTART
+  , pattern GL_PRIMITIVE_RESTART_INDEX
+  , pattern GL_PROXY_TEXTURE_RECTANGLE
+  , pattern GL_R16_SNORM
+  , pattern GL_R8_SNORM
+  , pattern GL_RG16_SNORM
+  , pattern GL_RG8_SNORM
+  , pattern GL_RGB16_SNORM
+  , pattern GL_RGB8_SNORM
+  , pattern GL_RGBA16_SNORM
+  , pattern GL_RGBA8_SNORM
+  , pattern GL_SAMPLER_2D_RECT
+  , pattern GL_SAMPLER_2D_RECT_SHADOW
+  , pattern GL_SAMPLER_BUFFER
+  , pattern GL_SIGNED_NORMALIZED
+  , pattern GL_TEXTURE_BINDING_BUFFER
+  , pattern GL_TEXTURE_BINDING_RECTANGLE
+  , pattern GL_TEXTURE_BUFFER
+  , pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING
+  , pattern GL_TEXTURE_RECTANGLE
+  , pattern GL_UNIFORM_ARRAY_STRIDE
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS
+  , pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES
+  , pattern GL_UNIFORM_BLOCK_BINDING
+  , pattern GL_UNIFORM_BLOCK_DATA_SIZE
+  , pattern GL_UNIFORM_BLOCK_INDEX
+  , pattern GL_UNIFORM_BLOCK_NAME_LENGTH
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
+  , pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER
+  , pattern GL_UNIFORM_BUFFER
+  , pattern GL_UNIFORM_BUFFER_BINDING
+  , pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT
+  , pattern GL_UNIFORM_BUFFER_SIZE
+  , pattern GL_UNIFORM_BUFFER_START
+  , pattern GL_UNIFORM_IS_ROW_MAJOR
+  , pattern GL_UNIFORM_MATRIX_STRIDE
+  , pattern GL_UNIFORM_NAME_LENGTH
+  , pattern GL_UNIFORM_OFFSET
+  , pattern GL_UNIFORM_SIZE
+  , pattern GL_UNIFORM_TYPE
+  , pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT
+  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER
+) where
+
+import Graphics.GL.Internal.Shared
+
+import Graphics.GL.Standard30
diff --git a/gl.cabal b/gl.cabal
--- a/gl.cabal
+++ b/gl.cabal
@@ -1,35 +1,26 @@
 name:          gl
-version:       0.8.0
+version:       0.9
 synopsis:      Complete OpenGL raw bindings
 description:   Complete OpenGL raw bindings
 license:       BSD3
 license-file:  LICENSE
 author:        Edward A. Kmett, Gabríel Arthúr Pétursson, Sven Panne
 maintainer:    ekmett@gmail.com
-copyright:     Copyright © 2014-2017 Edward A. Kmett,
+copyright:     Copyright © 2014-2019 Edward A. Kmett,
                Copyright © 2014-2017 Gabríel Arthúr Pétursson,
                Copyright © 2013 Sven Panne
 category:      Graphics
-build-type:    Custom
+build-type:    Simple
 cabal-version: >=1.24
 extra-source-files:
-  gl.xml man.txt extensions.txt
-  CHANGELOG.markdown README.markdown TODO.markdown
-  Generator.hs Module.hs Parser.hs Registry.hs Utils.hs
+  CHANGELOG.markdown
+  README.markdown
+  TODO.markdown
 
 source-repository head
   type:     git
   location: https://github.com/ekmett/gl
-
-custom-setup
-  setup-depends:
-      base == 4.*
-    , Cabal >= 1.24
-    , directory >= 1.2 && <= 1.4
-    , filepath >= 1.3 && < 1.5
-    , hxt == 9.3.*
-    , transformers >= 0.2 && < 0.6
-    , containers == 0.5.*
+  subdir:   gl
 
 flag UseNativeWindowsLibraries
    description:
@@ -41,19 +32,16 @@
       Use glXGetProcAddress instead of dlsym on non-Windows/-Darwin platforms.
 
 library
-  hs-source-dirs: src
+  hs-source-dirs: src generated-src
   c-sources: cbits/gl.c
   ghc-options: -Wall -O2
 
   build-depends:
       base == 4.*
-    , containers == 0.5.*
+    , containers >= 0.5 && < 0.7
     , fixed >= 0.2.1 && < 0.3
-    , half >= 0.2 && < 0.3
+    , half >= 0.2 && < 0.4
     , transformers >= 0.2 && < 0.6
-
-  -- for Setup.hs
-  build-depends:
 
   default-language: Haskell2010
 
diff --git a/gl.xml b/gl.xml
deleted file mode 100644
# file too large to diff: gl.xml
diff --git a/man.txt b/man.txt
deleted file mode 100644
--- a/man.txt
+++ /dev/null
@@ -1,322 +0,0 @@
-glActiveShaderProgram
-glActiveTexture
-glAttachShader
-glBeginConditionalRender
-glBeginQuery
-glBeginQueryIndexed
-glBeginTransformFeedback
-glBindAttribLocation
-glBindBuffer
-glBindBufferBase
-glBindBufferRange
-glBindBuffersBase
-glBindBuffersRange
-glBindFragDataLocation
-glBindFragDataLocationIndexed
-glBindFramebuffer
-glBindImageTexture
-glBindImageTextures
-glBindProgramPipeline
-glBindRenderbuffer
-glBindSampler
-glBindSamplers
-glBindTexture
-glBindTextureUnit
-glBindTextures
-glBindTransformFeedback
-glBindVertexArray
-glBindVertexBuffer
-glBindVertexBuffers
-glBlendColor
-glBlendEquation
-glBlendEquationSeparate
-glBlendFunc
-glBlendFuncSeparate
-glBlitFramebuffer
-glBufferData
-glBufferStorage
-glBufferSubData
-glCheckFramebufferStatus
-glClampColor
-glClear
-glClearBuffer
-glClearBufferData
-glClearBufferSubData
-glClearColor
-glClearDepth
-glClearStencil
-glClearTexImage
-glClearTexSubImage
-glClientWaitSync
-glClipControl
-glColorMask
-glCompileShader
-glCompressedTexImage1D
-glCompressedTexImage2D
-glCompressedTexImage3D
-glCompressedTexSubImage1D
-glCompressedTexSubImage2D
-glCompressedTexSubImage3D
-glCopyBufferSubData
-glCopyImageSubData
-glCopyTexImage1D
-glCopyTexImage2D
-glCopyTexSubImage1D
-glCopyTexSubImage2D
-glCopyTexSubImage3D
-glCreateBuffers
-glCreateFramebuffers
-glCreateProgram
-glCreateProgramPipelines
-glCreateQueries
-glCreateRenderbuffers
-glCreateSamplers
-glCreateShader
-glCreateShaderProgram
-glCreateTextures
-glCreateTransformFeedbacks
-glCreateVertexArrays
-glCullFace
-glDebugMessageCallback
-glDebugMessageControl
-glDebugMessageInsert
-glDeleteBuffers
-glDeleteFramebuffers
-glDeleteProgram
-glDeleteProgramPipelines
-glDeleteQueries
-glDeleteRenderbuffers
-glDeleteSamplers
-glDeleteShader
-glDeleteSync
-glDeleteTextures
-glDeleteTransformFeedbacks
-glDeleteVertexArrays
-glDepthFunc
-glDepthMask
-glDepthRange
-glDepthRangeArray
-glDepthRangeIndexed
-glDetachShader
-glDispatchCompute
-glDispatchComputeIndirect
-glDrawArrays
-glDrawArraysIndirect
-glDrawArraysInstanced
-glDrawArraysInstancedBaseInstance
-glDrawBuffer
-glDrawBuffers
-glDrawElements
-glDrawElementsBaseVertex
-glDrawElementsIndirect
-glDrawElementsInstanced
-glDrawElementsInstancedBaseInstance
-glDrawElementsInstancedBaseVertex
-glDrawElementsInstancedBaseVertexBaseInstance
-glDrawRangeElements
-glDrawRangeElementsBaseVertex
-glDrawTransformFeedback
-glDrawTransformFeedbackInstanced
-glDrawTransformFeedbackStream
-glDrawTransformFeedbackStreamInstanced
-glEnable
-glEnableVertexAttribArray
-glFenceSync
-glFinish
-glFlush
-glFlushMappedBufferRange
-glFramebufferParameteri
-glFramebufferRenderbuffer
-glFramebufferTexture
-glFramebufferTextureLayer
-glFrontFace
-glGenBuffers
-glGenFramebuffers
-glGenProgramPipelines
-glGenQueries
-glGenRenderbuffers
-glGenSamplers
-glGenTextures
-glGenTransformFeedbacks
-glGenVertexArrays
-glGenerateMipmap
-glGet
-glGetActiveAtomicCounterBufferiv
-glGetActiveAttrib
-glGetActiveSubroutineName
-glGetActiveSubroutineUniform
-glGetActiveSubroutineUniformName
-glGetActiveUniform
-glGetActiveUniformBlock
-glGetActiveUniformBlockName
-glGetActiveUniformName
-glGetActiveUniformsiv
-glGetAttachedShaders
-glGetAttribLocation
-glGetBufferParameter
-glGetBufferPointerv
-glGetBufferSubData
-glGetCompressedTexImage
-glGetCompressedTextureSubImage
-glGetDebugMessageLog
-glGetError
-glGetFragDataIndex
-glGetFragDataLocation
-glGetFramebufferAttachmentParameter
-glGetFramebufferParameter
-glGetGraphicsResetStatus
-glGetInternalformat
-glGetMultisample
-glGetObjectLabel
-glGetObjectPtrLabel
-glGetPointerv
-glGetProgram
-glGetProgramBinary
-glGetProgramInfoLog
-glGetProgramInterface
-glGetProgramPipeline
-glGetProgramPipelineInfoLog
-glGetProgramResource
-glGetProgramResourceIndex
-glGetProgramResourceLocation
-glGetProgramResourceLocationIndex
-glGetProgramResourceName
-glGetProgramStage
-glGetQueryIndexed
-glGetQueryObject
-glGetQueryiv
-glGetRenderbufferParameter
-glGetSamplerParameter
-glGetShader
-glGetShaderInfoLog
-glGetShaderPrecisionFormat
-glGetShaderSource
-glGetString
-glGetSubroutineIndex
-glGetSubroutineUniformLocation
-glGetSync
-glGetTexImage
-glGetTexLevelParameter
-glGetTexParameter
-glGetTextureSubImage
-glGetTransformFeedback
-glGetTransformFeedbackVarying
-glGetUniform
-glGetUniformBlockIndex
-glGetUniformIndices
-glGetUniformLocation
-glGetUniformSubroutine
-glGetVertexArrayIndexed
-glGetVertexArrayiv
-glGetVertexAttrib
-glGetVertexAttribPointerv
-glHint
-glInvalidateBufferData
-glInvalidateBufferSubData
-glInvalidateFramebuffer
-glInvalidateSubFramebuffer
-glInvalidateTexImage
-glInvalidateTexSubImage
-glIsBuffer
-glIsEnabled
-glIsFramebuffer
-glIsProgram
-glIsProgramPipeline
-glIsQuery
-glIsRenderbuffer
-glIsSampler
-glIsShader
-glIsSync
-glIsTexture
-glIsTransformFeedback
-glIsVertexArray
-glLineWidth
-glLinkProgram
-glLogicOp
-glMapBuffer
-glMapBufferRange
-glMemoryBarrier
-glMinSampleShading
-glMultiDrawArrays
-glMultiDrawArraysIndirect
-glMultiDrawElements
-glMultiDrawElementsBaseVertex
-glMultiDrawElementsIndirect
-glObjectLabel
-glObjectPtrLabel
-glPatchParameter
-glPauseTransformFeedback
-glPixelStore
-glPointParameter
-glPointSize
-glPolygonMode
-glPolygonOffset
-glPopDebugGroup
-glPrimitiveRestartIndex
-glProgramBinary
-glProgramParameter
-glProgramUniform
-glProvokingVertex
-glPushDebugGroup
-glQueryCounter
-glReadBuffer
-glReadPixels
-glReleaseShaderCompiler
-glRenderbufferStorage
-glRenderbufferStorageMultisample
-glResumeTransformFeedback
-glSampleCoverage
-glSampleMaski
-glSamplerParameter
-glScissor
-glScissorArray
-glScissorIndexed
-glShaderBinary
-glShaderSource
-glShaderStorageBlockBinding
-glStencilFunc
-glStencilFuncSeparate
-glStencilMask
-glStencilMaskSeparate
-glStencilOp
-glStencilOpSeparate
-glTexBuffer
-glTexBufferRange
-glTexImage1D
-glTexImage2D
-glTexImage2DMultisample
-glTexImage3D
-glTexImage3DMultisample
-glTexParameter
-glTexStorage1D
-glTexStorage2D
-glTexStorage2DMultisample
-glTexStorage3D
-glTexStorage3DMultisample
-glTexSubImage1D
-glTexSubImage2D
-glTexSubImage3D
-glTextureBarrier
-glTextureView
-glTransformFeedbackBufferBase
-glTransformFeedbackBufferRange
-glTransformFeedbackVaryings
-glUniform
-glUniformBlockBinding
-glUniformSubroutines
-glUnmapBuffer
-glUseProgram
-glUseProgramStages
-glValidateProgram
-glValidateProgramPipeline
-glVertexArrayElementBuffer
-glVertexAttrib
-glVertexAttribBinding
-glVertexAttribDivisor
-glVertexAttribFormat
-glVertexAttribPointer
-glVertexBindingDivisor
-glViewport
-glViewportArray
-glViewportIndexed
-glWaitSync
